arc.calculations_atom_pairstate.PairStateInteractions.getC6perturbativelyAngularChannel#
- PairStateInteractions.getC6perturbativelyAngularChannel(theta, phi, nRange, energyDelta, degeneratePerturbation=False, returnInteractionMatrix=False)[source]#
Calculates \(C_6\) from second order perturbation theory.
Calculates \(C_6=\sum_{\rm r',r''}|\langle {\rm r',r''}|V|\ {\rm r1,r2}\rangle|^2/\Delta_{\rm r',r''}\), where \(\Delta_{\rm r',r''}\equiv E({\rm r',r''})-E({\rm r1, r2})\) When second order perturbation couples to multiple energy degenerate states, users shold use degenerate perturbation calculations by setting degeneratePerturbation=True .
This calculation is faster then full diagonalization, but it is valid only far from the so called spaghetti region that occurs when atoms are close to each other. In that region multiple levels are strongly coupled, and one needs to use full diagonalization. In region where perturbative calculation is correct, energy level shift can be obtained as \(V(R)=-C_6/R^6\)
- Parameters:
theta (float) – state in rad
phi (float) – in rad
nRange (int) – number of the pair state we should be looking
energyDelta (float) – ( \(\Delta E/h\) in Hz) between the original pair state and the other pair states that we are including in calculation
degeneratePerturbation (bool) – use degenerate perturbation theory. This should be used whenever angle between quantisation and interatomic axis is non-zero, as well as when one considers non-stretched states.
returnInteractionMatrix (bool) – Option to return the interaction matrix V(r)*R^6 in [GHz]
- Output:
- C6 (float) - C6 value in [GHz] for the [n1,l1,j1,mj1; n2,l2,j2,mj2]
state specified in the PairStateInteraction class initialisation
- if degeneratePerturbation == False:
- C6hop (float) - C6 value in [GHz] for the
[n1,l1,j1,mj1; n2,l2,j2,mj2] -> [n2,l2,j2,mj2; n1,l1,j1,mj1] state hopping contribution
- elif degeneratePerturbation == True:
- C6 (ndarray) - array of eigenvalues of the full
interaction matrix in [GHz]
- eigenvectors (ndarray) - corresponding list of eigenvectors
\(\{m_{j_1}=-j_1, \ldots, m_{j_1} = +j1\}\bigotimes \ \{ m_{j_2}=-j_2, \ldots, m_{j_2} = +j2\}\) basis
- if returnInteractionMatrix == True:
- Imat_rot (ndarray) - interaction matrix, fine-structure basis resolved
for atomState1 == atomState2: [n1,l1,j1, mj1; n2,l2,j2,mj2] with \(\{m_{j_1}=-j_1, \ldots, m_{j_1} = +j1\}\bigotimes \ \{ m_{j_2}=-j_2, \ldots, m_{j_2} = +j2\}\) for aomState != atomState2: first basis above, then basis with the atomStates interchanged.