PairStateInteractions.getC3fromLevelDiagram(rStart, rStop, showPlot=False, minStateContribution=0.0, resonantBranch=1)[source]#

Finds \(C_3\) coefficient for original pair state.

Function first finds for each distance in the range [rStart , rStop] the eigen state with highest contribution of the original state. One can set optional parameter minStateContribution to value in the range [0,1), so that function finds only states if they have contribution of the original state that is bigger then minStateContribution.

Once original pair-state is found in the range of interatomic distances, from smallest rStart to the biggest rStop, function will try to perform fitting of the corresponding state energy \(E(R)\) at distance \(R\) to the function \(A+C_3/R^3\) where \(A\) is some offset.

  • rStart (float) – smallest inter-atomic distance to be used for fitting

  • rStop (float) – maximum inter-atomic distance to be used for fitting

  • showPlot (bool) – If set to true, it will print the plot showing fitted energy level and the obtained best fit. Default is False

  • minStateContribution (float) – valid values are in the range [0,1). It specifies minimum amount of the original state in the given energy state necessary for the state to be considered for the adiabatic continuation of the original unperturbed pair state.

  • resonantBranch (int) – optional, default +1. For resonant interactions we have two branches with identical state contributions. In this case, we will select only positively detuned branch (for resonantBranch = +1) or negatively detuned branch (fore resonantBranch = -1) depending on the value of resonantBranch optional parameter


\(C_3\) measured in \(\text{GHz }\mu\text{m}^6\) on success; If unsuccessful returns False.

Return type:



In order to use this functions, highlighting in diagonalise should be based on the original pair state contribution of the eigenvectors (that this, drivingFromState parameter should not be set, which corresponds to drivingFromState = [0,0,0,0,0]).