HydrogenTextBook

Class Methods

__init__([use_nist_data, nist_n_max])

Initialize an element instance.

calc_energy(n, l, j[, unit])

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

calc_n_star(n, l, j)

Calculate the effective principal quantum number for the given n, l and j.

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)

Check if the quantum numbers describe an allowed shell.

Class Attributes and Properties

ground_state_shell

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

potential_type_default

Default potential type to use for this element.

reduced_mass_factor

The reduced mass factor mu.

s

Total spin quantum number.

species

Atomic species.

Z

Atomic number of the element.

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.

model_potential_parameter_fei_2009

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

class ryd_numerov.elements.HydrogenTextBook(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] = 'H_textbook'

Atomic species.

s: ClassVar[Union[int, float]] = 0.5

Total spin quantum number.

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

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

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

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

calc_energy(n, l, j, unit='hartree')

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

is the quantum defect. The energy of the Rydberg state is then given by :rtype: Union[PlainQuantity[float], float]

\[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).

Parameters:
  • n (int)

  • l (int)

  • j (float)

  • unit (str | None)

Return type:

PlainQuantity[float] | float

calc_n_star(n, l, j)

Calculate the effective principal quantum number for the given n, l and j.

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

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

References

Parameters:
  • n (int)

  • l (int)

  • j (float)

Return type:

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)

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

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}\]
Z: ClassVar[int]

Atomic number of the element.

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

model_potential_parameter_fei_2009: tuple[float, float, float, float]

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