rydiqule.atom_utils.D2_states¶
- rydiqule.atom_utils.D2_states(n: int | str, splitting: Literal[None, 'fs', 'hfs'] = None, g_splitting: Literal[None, 'fs', 'hfs'] = None, e_splitting: Literal[None, 'fs', 'hfs'] = None, expand: bool = False) List[A_QState | List[A_QState]] [source]¶
Return the ground and excited states for the D1 line of a rydberg atom.
States are returned as a pair of
A_QStates
with the provided splitting according to therydberg_ground()
andD2_excited()
functions with the provided splitting values passed through. When splitting isNone
, theg_splitting
ande_splitting
values are passed torydberg_ground
andD2_excited
respectively. Otherwise, the value ofsplitting
is passed to both andg_splitting
ande_splitting
are ignored.By default, specifying splitting does not return a list of all states, but rather the associated specifications with
"all"
in the appropriate place. Theexpand
keyword argument can be used to modify this behavior, returning a full list.- Parameters:
n (int or str) – Either the string flag of the atom or the principle quantum number n of an atom. If string, must begin with [‘H’, ‘Li’, ‘Na’, ‘K’, ‘Rb’, ‘Cs’].
splitting (None, "fs", "hfs, optional) – Type of splitting for both states. Must be one of
None
,"fs"
, or"hfs"
, corresponding to the inclusion of(n,l,j)
only,m_j
, or bothf
andm_f
respectively.g_splitting (None, "fs", "hfs, optional) – Type of splitting for both states. Must be one of
None
,"fs"
, or"hfs"
, corresponding to the inclusion of(n,l,j)
only,m_j
, or bothf
andm_f
respectively. Ignored ifsplitting
is specified.e_splitting (None, "fs", "hfs, optional) – Type of splitting for both states. Must be one of
None
,"fs"
, or"hfs"
, corresponding to the inclusion of(n,l,j)
only,m_j
, or bothf
andm_f
respectively. Ignored ifsplitting
is specified.
- Returns:
Ground and D2 excited state specifications of the provided atom or pricipal quantum number.
- Return type:
Examples
The basic use of this function is to return the A_QStates associated with the states of the D2 transtition of a particular Rydberg atom. String flags and principle quantum numbers can be used interchangeably.
>>> atom = "Rb85" >>> print(rq.D2_states(atom)) [(n=5, l=0, j=0.5), (n=5, l=1, j=1.5)] >>> print(rq.D2_states(5)) [(n=5, l=0, j=0.5), (n=5, l=1, j=1.5)]
Furthermore, splitting can be specified either for each state individually, or just for one of the states using the optional
splitting
,g_splitting
, ore_splitting
argument.>>> print(rq.D1_states(5, splitting="fs")) [(n=5, l=0, j=0.5, m_j='all'), (n=5, l=1, j=0.5, m_j='all')] >>> print(rq.D2_states(5, splitting="fs", expand=True)) [(n=5, l=0, j=0.5, m_j=-0.5), (n=5, l=0, j=0.5, m_j=0.5), (n=5, l=1, j=1.5, m_j=-1.5), (n=5, l=1, j=1.5, m_j=-0.5), (n=5, l=1, j=1.5, m_j=0.5), (n=5, l=1, j=1.5, m_j=1.5)] >>> print(rq.D1_states(5, g_splitting="fs")) [(n=5, l=0, j=0.5, m_j='all'), (n=5, l=1, j=0.5)]