PairStateInteractions#
- class PairStateInteractions(atom, n, l, j, nn, ll, jj, m1, m2, interactionsUpTo=1, s=0.5, s2=None, atom2=None)[source]#
Calculates Rydberg level diagram (spaghetti) for the given pair state
Initializes Rydberg level spaghetti calculation for the given atom species (or for two atoms of different species) in the vicinity of the given pair state. For details of calculation see Ref. [1]. For a quick start point example see interactions example snippet. For inter-species calculations see inter-species interaction calculation snippet.
- Parameters:
atom (
arc.alkali_atom_functions.AlkaliAtom
orarc.divalent_atom_functions.DivalentAtom
) – = {arc.alkali_atom_data.Lithium6
,arc.alkali_atom_data.Lithium7
,arc.alkali_atom_data.Sodium
,arc.alkali_atom_data.Potassium39
,arc.alkali_atom_data.Potassium40
,arc.alkali_atom_data.Potassium41
,arc.alkali_atom_data.Rubidium85
,arc.alkali_atom_data.Rubidium87
,arc.alkali_atom_data.Caesium
,arc.divalent_atom_data.Strontium88
,arc.divalent_atom_data.Calcium40
arc.divalent_atom_data.Ytterbium174
} Select the alkali metal for energy level diagram calculationn (int) – principal quantum number for the first atom
l (int) – orbital angular momentum for the first atom
j (float) – total angular momentum for the first atom
nn (int) – principal quantum number for the second atom
ll (int) – orbital angular momentum for the second atom
jj (float) – total angular momentum for the second atom
m1 (float) – projection of the total angular momentum on z-axis for the first atom
m2 (float) – projection of the total angular momentum on z-axis for the second atom
interactionsUpTo (int) – Optional. If set to 1, includes only dipole-dipole interactions. If set to 2 includes interactions up to quadrupole-quadrupole. Default value is 1.
s (float) – optional, spin state of the first atom. Default value of 0.5 is correct for
arc.alkali_atom_functions.AlkaliAtom
but forarc.divalent_atom_functions.DivalentAtom
it has to be explicitly set to 0 or 1 for singlet and triplet states respectively. If `s2` is not specified, it is assumed that the second atom is in the same spin state.s2 (float) – optinal, spin state of the second atom. If not specified (left to default value None) it will assume spin state of the first atom.
atom2 (
arc.alkali_atom_functions.AlkaliAtom
orarc.divalent_atom_functions.DivalentAtom
) – optional, specifies atomic species for the second atom, enabeling calculation of inter-species pair-state interactions. If not specified (left to default value None) it will assume spin state of the first atom.
References
Examples
Advanced interfacing of pair-state is2=None, atom2=Nonenteractions calculations (PairStateInteractions class). This is an advanced example intended for building up extensions to the existing code. If you want to directly access the pair-state interaction matrix, constructed by
defineBasis
, you can assemble it easily from diagonal part (stored inmatDiagonal
) and off-diagonal matrices whose spatial dependence is \(R^{-3},R^{-4},R^{-5}\) stored in that order inmatR
. Basis states are stored inbasisStates
array.>>> from arc import * >>> calc = PairStateInteractions(Rubidium(), 60,0,0.5, 60,0,0.5, 0.5,0.5,interactionsUpTo = 1) >>> # theta=0, phi = 0, range of pqn, range of l, deltaE = 25e9 >>> calc.defineBasis(0 ,0 , 5, 5, 25e9, progressOutput=True) >>> # now calc stores interaction matrix and relevant basis >>> # we can access this directly and generate interaction matrix >>> # at distance rval : >>> rval = 4 # in mum >>> matrix = calc.matDiagonal >>> rX = (rval*1.e-6)**3 >>> for matRX in self.matR: >>> matrix = matrix + matRX/rX >>> rX *= (rval*1.e-6) >>> # matrix variable now holds full interaction matrix for >>> # interacting atoms at distance rval calculated in >>> # pair-state basis states can be accessed as >>> basisStates = calc.basisStates
Calculate#
|
Finds relevant states in the vicinity of the given pair-state |
|
Calculates \(C_6\) from second order perturbation theory. |
Returns Le Roy radius for initial pair-state. |
|
|
Finds eigenstates in atom pair basis. |
Analyse#
|
Finds \(C_6\) coefficient for original pair state. |
|
Finds \(C_3\) coefficient for original pair state. |
|
Finds \(r_{\rm vdW}\) coefficient for original pair state. |
|
Exports PairStateInteractions calculation data. |
Visualise#
|
Plots pair state level diagram |
|
Shows level diagram printed by |
|
Saves plot made by |
Attributes#
Internal variables of the class. This is for low-level access to intermediate results (low level API).
the first atom type (isotope) |
|
total spin angular momentum, optional (default 0.5) |
|
Specifies up to which approximation we include in pair-state interactions. |
|
List of pair-states for calculation. |
|
index of the original n,l,j,m1,nn,ll,jj,m2 pair-state in the |
|
states relevant for calculation, defined in J basis (not resolving \(m_j\). |
|
List of matrices defineing coupling strengths between the states in J basis (not resolving \(m_j\) ). |
|
matrixElement[i] gives index of state in |
|
Part of interaction matrix in pair-state basis that doesn't depend on inter-atomic distance. |
|
Stores interaction matrices in pair-state basis that scale as \(1/R^3\), \(1/R^4\) and \(1/R^5\) with distance in |