Lithium

Class Methods

__init__([use_nist_data, nist_n_max])

Initialize an element instance.

calc_energy(n, l, j_tot, s_tot[, unit])

Calculate the energy of a Rydberg state with for the given n, l, j_tot and s_tot.

from_species(cls, species[, use_nist_data])

Create an instance of the element class from the species string.

get_available_species()

Get a list of all available species 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 element.

alpha_c_marinescu_1993

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

ground_state_shell

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

model_potential_parameter_fei_2009

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

model_potential_parameter_marinescu_1993

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

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 element.

r_c_dict_marinescu_1993

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

reduced_mass_factor

The reduced mass factor mu.

species

Atomic species.

class ryd_numerov.elements.Lithium(use_nist_data=True, *, nist_n_max=15)[source]

Initialize an element instance.

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

Parameters:
  • use_nist_data (bool) – Whether to use NIST data for this element. Default is True.

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

species: ClassVar[str] = 'Li'

Atomic species.

Z: ClassVar[int] = 3

Atomic number of the element.

number_valence_electrons: ClassVar[int] = 1

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

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

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

potential_type_default: Optional['PotentialType'] = 'model_potential_marinescu_1993'

Default potential type to use for this element. 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

alpha_c_marinescu_1993: ClassVar[float] = 0.1923

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 = {0: 0.61340824, 1: 0.61566441, 2: 2.34126273}

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 = {0: (2.47718079, 1.84150932, -0.02169712, -0.11988362), 1: (3.45414648, 2.5515108, -0.21646561, -0.06990078), 2: (2.51909839, 2.4371245, 0.32505524, 0.1060243)}

(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

model_potential_parameter_fei_2009: tuple[float, float, float, float] = (1.0255, 1.7402, 1.0543, 0.7165)

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

calc_energy(n, l, j_tot, s_tot, unit='hartree')

Calculate the energy of a Rydberg state with for the given n, l, j_tot and s_tot.

I.e. either look up the energy for low lying states in the nist data, or calculate it via the quantum defect theory.

The effective principal quantum number in quantum defect theory is defined as series expansion \(n^* = n - \delta_{lj}(n)\) where :rtype: Union[PlainQuantity[float], float]

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

is the quantum defect. The energy of the Rydberg state is then given by

\[E_{nlj} / E_H = -\frac{1}{2} \frac{Ry}{Ry_\infty} \frac{1}{n^*}\]

where \(E_H\) is the Hartree energy (the atomic unit of energy).

References

Parameters:
  • n (int)

  • l (int)

  • j_tot (float)

  • s_tot (float)

  • unit (str | None)

Return type:

PlainQuantity[float] | float

classmethod from_species(cls, species, use_nist_data=True)

Create an instance of the element class from the species string.

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

Parameters:
  • species (str) – The species string (e.g. “Rb”).

  • use_nist_data (bool) – Whether to use NIST data for this element. Default is True.

Return type:

BaseElement

Returns:

An instance of the corresponding element class.

classmethod get_available_species()

Get a list of all available species in the library.

This method returns a list of species strings for all concrete subclasses of BaseElement.

Return type:

list[str]

Returns:

List of species strings.

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 (Optional[str]) – 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 (Optional[str]) – Desired unit for the ionization energy. Default is atomic units “hartree”.

Return type:

Union[PlainQuantity[float], float]

Returns:

Ionization energy in the desired unit.

is_allowed_shell(n, l, s_tot)

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) – 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.

property reduced_mass_factor: float

The reduced mass factor mu.

The reduced mass factor

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

calculated via the corrected Rydberg constant

\[\mu = \frac{R_M}{R_\infty}\]