rydiqule.atom_utils.D1_states¶
- rydiqule.atom_utils.D1_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_QStateswith the provided splitting according to therydberg_ground()andD1_excited()functions with the provided splitting values passed through. When splitting isNone, theg_splittingande_splittingvalues are passed torydberg_groundandD1_excitedrespectively. Otherwise, the value ofsplittingis passed to both andg_splittingande_splittingare ignored.By default, specifying splitting does not return a list of all states, but rather the associated specifications with
"all"in the appropriate place. Theexpandkeyword 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 bothfandm_frespectively.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 bothfandm_frespectively. Ignored ifsplittingis 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 bothfandm_frespectively. Ignored ifsplittingis specified.
- Returns:
Ground and D1 excited state specifications of the provided atom or principal quantum number.
- Return type:
Examples
The basic use of this function is to return the A_QStates associated with the states of the D1 transition of a particular Rydberg atom. String flags and principle quantum numbers can be used interchangeably.
>>> atom = "Rb85" >>> print(rq.D1_states(atom)) [(n=5, l=0, j=0.5), (n=5, l=1, j=0.5)] >>> print(rq.D1_states(5)) [(n=5, l=0, j=0.5), (n=5, l=1, j=0.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_splittingargument.>>> 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.D1_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=0.5, m_j=-0.5), (n=5, l=1, j=0.5, m_j=0.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)]