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_QStates with the provided splitting according to the rydberg_ground() and D1_excited() functions with the provided splitting values passed through. When splitting is None, the g_splitting and e_splitting values are passed to rydberg_ground and D1_excited respectively. Otherwise, the value of splitting is passed to both and g_splitting and e_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. The expand 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 both f and m_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 both f and m_f respectively. Ignored if splitting 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 both f and m_f respectively. Ignored if splitting is specified.

Returns:

Ground and D1 excited state specifications of the provided atom or pricipal quantum number.

Return type:

list of A_QState

Examples

The basic use of this function is to return the A_QStates associated with the states of the D1 transtition 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, or e_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.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)]