rydiqule.atom_utils.D1_excited

rydiqule.atom_utils.D1_excited(n: int | str, splitting: Literal[None, 'fs', 'hfs'] = None, expand: bool = False) A_QState | List[A_QState][source]

Retrieve A_QState of the excited state of the D1 line of an atom or principle quantum number.

Optionally, include fine structure splitting or hyperfine splitting, which will include all m_j or all f and m_f values respectively. By default, specifying splitting does not return a list of states, but rather the associated specification with "all" in the appropriate place. The expand keyword argument can be used to modify this behavior, returning a list. place.

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'}) – Type of splitting. 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.

  • expand (boolean, optional) – For states with splitting, whether to return them as a list of all states. If False, return is a single state specification with "all" for the appropriate quantum numbers. If True, a list of all individual states is returned.

Raises:
  • RydiquleError – If n is not a valid atom string or integer value

  • ValueError – If splitting is not one of {None, “fs”, “hfs”}.

Returns:

A_QState corresponding to the D1 excited state of the provided atom with the provided splitting, or list of A_QState`s if `expand is True.

Return type:

A_QState or list of A_QState

Examples

The simplest use is to return the nlj quantum numbers for a particular atom’s excited state of the D1 transtion. Principle quantum number and string atom flags can be used interchangeably.

>>> atom = "Rb85"
>>> print(rq.D1_excited(atom))
(5, 1, 0.5)
>>> print(rq.D1_excited(5))
(5, 1, 0.5)

This function also can return states with splitting, either as a list of states or as a manifold specification.

>>> print(rq.D1_excited(atom, splitting="fs"))
(5, 1, 0.5, m_j='all')
>>> print(rq.D1_excited(5, splitting="fs", expand=True))
[(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_excited(atom, splitting="hfs"))
(5, 1, 0.5, f='all', m_f='all')