Ytterbium173

Class Methods

__init__()

Initialize an species instance.

calc_nu(n, l, j_tot[, s_tot, use_nist_data, ...])

Calculate the effective principal quantum number nu of a Rydberg state with the given n, l, j_tot and s_tot.

from_name(cls, name)

Create an instance of the species class from the species name.

get_available_species()

Get a list of all available species names in the library.

get_corrected_rydberg_constant([unit])

Return the corrected Rydberg constant in the desired unit.

get_ionization_energy([unit])

Return the ionization energy in the desired unit.

is_allowed_shell(n, l[, s_tot])

Check if the quantum numbers describe an allowed shell.

Class Attributes and Properties

Z

Atomic number of the species.

ground_state_shell

Shell (n, l) describing the electronic ground state configuration.

i_c

Nuclear spin, (default None to ignore hyperfine structure, will be treated like i_c = 0).

model_potential_parameter_fei_2009

Parameters (delta, alpha, beta, gamma) for the new four-parameter potential, used in the model potential defined in: Y.

name

The name of the atomic species.

number_valence_electrons

Number of valence electrons (i.e. 1 for alkali atoms and 2 for alkaline earth atoms).

potential_type_default

Default potential type to use for this species.

reduced_mass_au

The reduced mass mu in atomic units.

alpha_c_marinescu_1993

Static dipole polarizability in atomic units (a.u.), used for the parametric model potential.

r_c_dict_marinescu_1993

r_c} to truncate the unphysical short-range contribution of the polarization potential.

model_potential_parameter_marinescu_1993

(a_1, a_2, a_3, a_4)} for the parametric model potential.

class rydstate.species.Ytterbium173[source]

Initialize an species instance.

Use this init method to set up additional properties and data for the species, like loading NIST energy levels from a file.

name: ClassVar[str] = 'Yb173'

The name of the atomic species.

i_c: ClassVar[float | None] = 2.5

Nuclear spin, (default None to ignore hyperfine structure, will be treated like i_c = 0).

Z: ClassVar[int] = 70

Atomic number of the species.

calc_nu(n, l, j_tot, s_tot=None, *, use_nist_data=True, nist_n_max=15)

Calculate the effective principal quantum number nu of a Rydberg state with the given n, l, j_tot and s_tot.

I.e. either look up the energy for low lying states in the nist data (if use_nist_data is True), and calculate nu from the energy via (see also calc_nu_from_energy):

\[\nu = \sqrt{\frac{1}{2} \frac{\mu/m_e}{-E/E_H}}\]

Or calculate nu via the quantum defect theory, where nu is defined as series expansion \(\nu = n^* = n - \delta_{lj}(n)\) with the quantum defect

\[\delta_{lj}(n) = d0_{lj} + d2_{lj} / [n - d0_{lj}(n)]^2 + d4_{lj} / [n - \delta_{lj}(n)]^4 + ...\]

References

Parameters:
  • n (int) – The principal quantum number of the Rydberg state.

  • l (int) – The orbital angular momentum quantum number of the Rydberg state.

  • j_tot (float) – The total angular momentum quantum number of the Rydberg state.

  • s_tot (float | None) – The total spin quantum number of the Rydberg state.

  • use_nist_data (bool) – Whether to use NIST energy data. Default is True.

  • nist_n_max (int) – Maximum principal quantum number for which to use the NIST energy data. Default is 15.

Return type:

float

classmethod from_name(cls, name)

Create an instance of the species class from the species name.

This method searches through all subclasses of SpeciesObject until it finds one with a matching species name. This approach allows for easy extension of the library with new species. A user can even subclass SpeciesObject in his code (without modifying the rydstate library), e.g. class CustomRubidium(SpeciesObject): name = “Custom_Rb” … and then use the new species by calling RydbergStateAlkali(“Custom_Rb”, …)

Parameters:

name (str) – The species name (e.g. “Rb”).

Return type:

SpeciesObject

Returns:

An instance of the corresponding species class.

classmethod get_available_species()

Get a list of all available species names in the library.

This method returns a list of species names for all concrete subclasses of SpeciesObject.

Return type:

list[str]

Returns:

List of species names.

get_corrected_rydberg_constant(unit='hartree')

Return the corrected Rydberg constant in the desired unit.

The corrected Rydberg constant is defined as

\[R_M = R_\infty \frac{m_{Core}}{m_{Core} + m_e}\]

where \(R_\infty\) is the Rydberg constant for infinite nuclear mass, \(m_{Core}\) is the mass of the core, and \(m_e\) is the mass of the electron.

Parameters:

unit (str | None) – Desired unit for the corrected Rydberg constant. Default is atomic units “hartree”.

Return type:

Union[PlainQuantity[float], float]

Returns:

Corrected Rydberg constant in the desired unit.

get_ionization_energy(unit='hartree')

Return the ionization energy in the desired unit.

Parameters:

unit (str | None) – Desired unit for the ionization energy. Default is atomic units “hartree”.

Return type:

Union[PlainQuantity[float], float]

Returns:

Ionization energy in the desired unit.

ground_state_shell: ClassVar[tuple[int, int]] = (6, 0)

Shell (n, l) describing the electronic ground state configuration.

is_allowed_shell(n, l, s_tot=None)

Check if the quantum numbers describe an allowed shell.

I.e. whether the shell is above the ground state shell.

Parameters:
  • n (int) – Principal quantum number

  • l (int) – Orbital angular momentum quantum number

  • s_tot (float | None) – Total spin quantum number

Return type:

bool

Returns:

True if the quantum numbers specify a shell equal to or above the ground state shell, False otherwise.

model_potential_parameter_fei_2009: tuple[float, float, float, float] = (0.8704, 22.004, 0.1513, 0.3306)

Parameters (delta, alpha, beta, gamma) for the new four-parameter potential, used in the model potential defined in: Y. Fei et al., Chin. Phys. B 18, 4349 (2009), https://iopscience.iop.org/article/10.1088/1674-1056/18/10/025

number_valence_electrons: ClassVar[int] = 2

Number of valence electrons (i.e. 1 for alkali atoms and 2 for alkaline earth atoms).

potential_type_default: PotentialType | None = 'model_potential_fei_2009'

Default potential type to use for this species. If None, the potential type must be specified explicitly. In general, it looks like marinescu_1993 is better for alkali atoms, and fei_2009 is better for alkaline earth atoms

property reduced_mass_au: float

The reduced mass mu in atomic units.

The reduced mass in atomic units \(\mu / m_e\) is given by

\[\frac{\mu}{m_e} = \frac{m_{Core}}{m_{Core} + m_e}\]

We calculate the reduced mass via the corrected Rydberg constant

\[\frac{\mu}{m_e} = \frac{R_M}{R_\infty}\]
alpha_c_marinescu_1993: ClassVar[float]

Static dipole polarizability in atomic units (a.u.), used for the parametric model potential. See also: Phys. Rev. A 49, 982 (1994)

r_c_dict_marinescu_1993: ClassVar[dict[int, float]]

r_c} to truncate the unphysical short-range contribution of the polarization potential. See also: Phys. Rev. A 49, 982 (1994)

Type:

Cutoff radius {l

model_potential_parameter_marinescu_1993: ClassVar[dict[int, tuple[float, float, float, float]]]

(a_1, a_2, a_3, a_4)} for the parametric model potential. See also: M. Marinescu, Phys. Rev. A 49, 982 (1994), https://journals.aps.org/pra/abstract/10.1103/PhysRevA.49.982

Type:

Parameters {l