RydbergState

Class Methods

__init__(species, n, l[, j, m, database])

Initialize the model potential.

calc_angular_matrix_element(other, operator, ...)

Calculate the dimensionless angular matrix element.

calc_matrix_element(other, operator, ...[, unit])

Calculate the matrix element.

calc_radial_matrix_element(other, k_radial)

create_grid([x_min, x_max, dz])

Create the grid object for the integration of the radial Schrödinger equation.

create_model_potential(*[, add_spin_orbit, ...])

Create the model potential for the Rydberg state.

create_wavefunction([run_backward, w0, ...])

get_black_body_transition_rates(temperature)

Calculate the black body transition rates for the Rydberg state.

get_energy([unit])

get_label(fmt)

Label representing the ket.

get_lifetime([temperature, ...])

Calculate the lifetime of the Rydberg state.

get_spontaneous_transition_rates([unit, method])

Calculate the spontaneous transition rates for the Rydberg state.

sanity_check()

Class Attributes and Properties

grid

The grid object for the integration of the radial Schrödinger equation.

model_potential

quantum_defect

s

The total spin quantum number.

wavefunction

class ryd_numerov.RydbergState(species, n, l, j=None, m=None, database=None)[source]

Initialize the model potential.

Parameters:
  • species (str) – Atomic species

  • n (int) – Principal quantum number

  • l (int) – Orbital angular momentum quantum number

  • j (Optional[float]) – Total angular momentum quantum number

  • m (Optional[float]) – Magnetic quantum number Optional, only needed for concrete angular matrix elements.

  • database (Optional[Database]) – Database instance, where the model potential parameters are stored If None, use the global database instance.

get_label(fmt)[source]

Label representing the ket.

Parameters:

fmt (Literal['raw', 'ket', 'bra']) – The format of the label, i.e. whether to return the raw label, or the label in ket or bra notation.

Return type:

str

Returns:

The label of the ket in the given format.

sanity_check()[source]
Return type:

None

property s: float

The total spin quantum number.

property quantum_defect: QuantumDefect
property model_potential: ModelPotential
create_model_potential(*, add_spin_orbit=None, add_model_potentials=True)[source]

Create the model potential for the Rydberg state.

Parameters:
  • add_spin_orbit (Optional[bool]) – Whether to include the spin-orbit coupling potential in the total physical potential. Defaults to True.

  • add_model_potentials (bool) – Whether to include the model potentials (see calc_potential_core and calc_potential_core_polarization) Defaults to True.

Return type:

None

property grid: Grid

The grid object for the integration of the radial Schrödinger equation.

create_grid(x_min=None, x_max=None, dz=0.01)[source]

Create the grid object for the integration of the radial Schrödinger equation.

Parameters:
  • x_min (Optional[float]) – The minimum value of the radial coordinate in dimensionless units (x = r/a_0). Default: Automatically calculate sensible value.

  • x_max (Optional[float]) – The maximum value of the radial coordinate in dimensionless units (x = r/a_0). Default: Automatically calculate sensible value.

  • dz (float) – The step size of the integration (z = r/a_0). Default: 1e-2.

Return type:

None

property wavefunction: Wavefunction
create_wavefunction(run_backward=True, w0=1e-10, _use_njit=True)[source]
Return type:

None

Parameters:
  • run_backward (bool)

  • w0 (float)

  • _use_njit (bool)

get_energy(unit=None)[source]
Return type:

Union[PlainQuantity[float], float]

Parameters:

unit (str | None)

calc_radial_matrix_element(other, k_radial, unit=None)[source]
Return type:

Union[PlainQuantity[float], float]

Parameters:
  • other (Self)

  • k_radial (int)

  • unit (str | None)

calc_angular_matrix_element(other, operator, k_angular, q)[source]

Calculate the dimensionless angular matrix element.

Return type:

float

Parameters:
  • other (Self)

  • operator (Literal['MAGNETIC', 'ELECTRIC', 'SPHERICAL', 'MAGNETIC_S', 'MAGNETIC_L'])

  • k_angular (int)

  • q (int)

calc_matrix_element(other, operator, k_radial, k_angular, q, unit=None)[source]

Calculate the matrix element.

Calculate the matrix element between two Rydberg states ket{self}=ket{n’,l’,j’,m’} and ket{other}= ket{n,l,j,m}.

\[\langle n,l,j,m,s | r^k_radial \hat{O}_{k_angular,q} | n',l',j',m',s' \rangle\]

where hat{O}_{k_angular,q} is the operators of rank k_angular and component q, for which to calculate the matrix element.

Parameters:
  • other (Self) – The other Rydberg state ket{n,l,j,m,s} to which to calculate the matrix element.

  • operator (Literal['MAGNETIC', 'ELECTRIC', 'SPHERICAL', 'MAGNETIC_S', 'MAGNETIC_L']) – The operator type for which to calculate the matrix element. Can be one of “MAGNETIC”, “ELECTRIC”, “SPHERICAL”.

  • k_radial (int) – The radial matrix element power k.

  • k_angular (int) – The rank of the angular operator.

  • q (int) – The component of the angular operator.

  • unit (Optional[str]) – The unit to which to convert the radial matrix element. Can be “a.u.” for atomic units (so no conversion is done), or a specific unit. Default None will return a pint quantity.

Return type:

Union[PlainQuantity[float], float]

Returns:

The matrix element for the given operator.

get_spontaneous_transition_rates(unit=None, method='exact')[source]

Calculate the spontaneous transition rates for the Rydberg state.

The spontaneous transition rates are given by the Einstein A coefficients.

Parameters:
  • unit (Optional[str]) – The unit to which to convert the result to. Can be “a.u.” for atomic units (so no conversion is done), or a specific unit. Default None will return a pint quantity.

  • method (Literal['exact', 'approximation']) – How to calculate the transition rates. Can be “exact” or “approximation”. Defaults to “exact”.

Return type:

tuple[list[Self], Union[PlainQuantity[ndarray[tuple[int, ...], dtype[Any]]], ndarray[tuple[int, ...], dtype[Any]]]]

Returns:

The relevant states and the transition rates.

get_black_body_transition_rates(temperature, temperature_unit=None, unit=None, method='exact')[source]

Calculate the black body transition rates for the Rydberg state.

The black body transitions rates are given by the Einstein B coefficients, with a weight factor given by Planck’s law.

Parameters:
  • temperature (Union[float, PlainQuantity[float]]) – The temperature, for which to calculate the black body transition rates.

  • temperature_unit (Optional[str]) – The unit of the temperature. Default None will assume the temperature is given as pint quantity.

  • unit (Optional[str]) – The unit to which to convert the result. Can be “a.u.” for atomic units (so no conversion is done), or a specific unit. Default None will return a pint quantity.

  • method (Literal['exact', 'approximation']) – How to calculate the transition rates. Can be “exact” or “approximation”. Defaults to “exact”.

Return type:

tuple[list[Self], Union[PlainQuantity[ndarray[tuple[int, ...], dtype[Any]]], ndarray[tuple[int, ...], dtype[Any]]]]

Returns:

The relevant states and the transition rates.

get_lifetime(temperature=None, temperature_unit=None, unit=None, method='exact')[source]

Calculate the lifetime of the Rydberg state.

The lifetime is given by the inverse of the sum of the transition rates:

\[\begin{split}\tau = \frac{1}{\\sum_i A_i}\end{split}\]

where \(A_i\) are the transition rates (see get_spontaneous_transition_rates and get_black_body_transition_rates).

Parameters:
  • temperature (Union[float, PlainQuantity[float], None]) – The temperature, for which to calculate the lifetime. Default None will only consider the spontaneous transition rates for the lifetime.

  • temperature_unit (Optional[str]) – The unit of the temperature. Default None will assume the temperature is given as pint quantity.

  • unit (Optional[str]) – The unit to which to convert the result to. Can be “a.u.” for atomic units (so no conversion is done), or a specific unit. Default None will return a pint quantity.

  • method (Literal['exact', 'approximation']) – How to calculate the transition rates. Can be “exact” or “approximation”. Defaults to “exact”.

Return type:

Union[PlainQuantity[float], float]

Returns:

The lifetime of the Rydberg state in the given unit.