RydbergStateMQDT
Class Methods
|
|
|
|
|
Calculate the matrix element. |
|
Calculate the reduced matrix element. |
|
Calculate the reduced overlap <self|other> (ignoring the magnetic quantum number m). |
|
|
|
Calculate the black body transition rates of the Rydberg state. |
|
Get the energy of the Rydberg state. |
|
Label representing the state. |
|
Calculate the lifetime of the Rydberg state. |
|
Calculate the spontaneous transition rates for the Rydberg state. |
|
Convert the Rydberg state to a different coupling scheme. |
Class Attributes and Properties
Return the channel coefficients as numpy array. |
|
Return the MQDT object used to calculate this state. |
|
Return the corresponding principal quantum number n of the state. |
|
Return the norm of the state (should be 1). |
|
Return the effective principal quantum numbers nui of the different channels. |
|
The species of the Rydberg state. |
|
The Rydberg kets that form the Rydberg state. |
|
The effective principal quantum number nu given in reference to the reference ionization threshold. |
|
The total angular momentum quantum number f_tot of the Rydberg state. |
- class rydstate.rydberg_state.RydbergStateMQDT(species, coefficients, rydberg_kets, nu, energy_au, model, potential_class)[source]
- Parameters:
species (str)
coefficients (Sequence[float] | NDArray)
rydberg_kets (list[RydbergKet])
nu (float)
energy_au (float)
model (MQDTModel)
potential_class (type[Potential])
- property nui: NDArray[Any]
Return the effective principal quantum numbers nui of the different channels.
- property n: int
Return the corresponding principal quantum number n of the state.
We define the corresponding principal quantum number n for MQDT states via the nodes of the main contributing rydberg ket (nodes = n - l_r - 1). For
TrivialModelstates, the quantum defect is zero, so the channel dependent effective quantum number nui is already an integer and we simply round it to the nearest integer.
- calc_matrix_element(other, operator, q, *, part='all', unit=None)
Calculate the matrix element.
- Overloads:
self, other (RydbergState), operator (MatrixElementOperator), q (int), part (MatrixElementPart), unit (None) → PintFloat
self, other (RydbergState), operator (MatrixElementOperator), q (int), part (MatrixElementPart), unit (str) → float
- Parameters:
other (RydbergState)
operator (Literal['magnetic_dipole', 'electric_monopole', 'electric_dipole', 'electric_quadrupole', 'electric_octupole', 'electric_quadrupole_zero', 'spherical', 'spherical_inner_valence', 'i_c', 's_c', 'l_c', 's_r', 'l_r', 's_tot', 'l_tot', 'j_c', 'j_r', 'j_tot', 'f_c', 'f_tot', 'identity_i_c', 'identity_s_c', 'identity_l_c', 'identity_s_r', 'identity_l_r', 'identity_s_tot', 'identity_l_tot', 'identity_j_c', 'identity_j_r', 'identity_j_tot', 'identity_f_c', 'identity_f_tot'])
q (int)
part (Literal['all', 'rydberg', 'inner_valence', 'closed_shell_core'])
unit (str | None)
- Return type:
PlainQuantity[float] | float
Calculate the full matrix element between self and other, also considering the magnetic quantum numbers m of self and other.
\[\left\langle self | r^k_radial \hat{O}^{(k_{angular})}_q | other \right\rangle\]where hat{O}^{(k_{angular})}_q is the operator of rank k_angular for which to calculate the matrix element. k_radial and k_angular are determined from the operator automatically.
- Parameters:
other (
RydbergState) – The other Rydberg state for which to calculate the matrix element.operator (
Literal['magnetic_dipole','electric_monopole','electric_dipole','electric_quadrupole','electric_octupole','electric_quadrupole_zero','spherical','spherical_inner_valence','i_c','s_c','l_c','s_r','l_r','s_tot','l_tot','j_c','j_r','j_tot','f_c','f_tot','identity_i_c','identity_s_c','identity_l_c','identity_s_r','identity_l_r','identity_s_tot','identity_l_tot','identity_j_c','identity_j_r','identity_j_tot','identity_f_c','identity_f_tot']) – The operator for which to calculate the matrix element.q (
int) – The component of the operator.part (
Literal['all','rydberg','inner_valence','closed_shell_core']) – The part of the matrix element to calculate.unit (
str|None) – 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.
- Returns:
The matrix element for the given operator.
- Return type:
PlainQuantity[float] | float
- calc_reduced_matrix_element(other, operator, *, part='all', unit=None)
Calculate the reduced matrix element.
- Overloads:
self, other (RydbergState), operator (MatrixElementOperator), part (MatrixElementPart), unit (None) → PintFloat
self, other (RydbergState), operator (MatrixElementOperator), part (MatrixElementPart), unit (str) → float
- Parameters:
other (RydbergState)
operator (Literal['magnetic_dipole', 'electric_monopole', 'electric_dipole', 'electric_quadrupole', 'electric_octupole', 'electric_quadrupole_zero', 'spherical', 'spherical_inner_valence', 'i_c', 's_c', 'l_c', 's_r', 'l_r', 's_tot', 'l_tot', 'j_c', 'j_r', 'j_tot', 'f_c', 'f_tot', 'identity_i_c', 'identity_s_c', 'identity_l_c', 'identity_s_r', 'identity_l_r', 'identity_s_tot', 'identity_l_tot', 'identity_j_c', 'identity_j_r', 'identity_j_tot', 'identity_f_c', 'identity_f_tot'])
part (Literal['all', 'rydberg', 'inner_valence', 'closed_shell_core'])
unit (str | None)
- Return type:
PlainQuantity[float] | float
Calculate the reduced matrix element between self and other (ignoring m quantum numbers)
\[\left\langle self || r^k_radial \hat{O}^{(k_{angular})} || other \right\rangle\]where hat{O}^{(k_{angular})} is the operator of rank k_angular for which to calculate the matrix element. k_radial and k_angular are determined from the operator automatically.
- Parameters:
other (
RydbergState) – The other Rydberg state for which to calculate the matrix element.operator (
Literal['magnetic_dipole','electric_monopole','electric_dipole','electric_quadrupole','electric_octupole','electric_quadrupole_zero','spherical','spherical_inner_valence','i_c','s_c','l_c','s_r','l_r','s_tot','l_tot','j_c','j_r','j_tot','f_c','f_tot','identity_i_c','identity_s_c','identity_l_c','identity_s_r','identity_l_r','identity_s_tot','identity_l_tot','identity_j_c','identity_j_r','identity_j_tot','identity_f_c','identity_f_tot']) – The operator for which to calculate the matrix element.part (
Literal['all','rydberg','inner_valence','closed_shell_core']) – The part of the matrix element to calculate.unit (
str|None) – 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.
- Returns:
The reduced matrix element for the given operator.
- Return type:
PlainQuantity[float] | float
- calc_reduced_overlap(other)
Calculate the reduced overlap <self|other> (ignoring the magnetic quantum number m).
- Return type:
float- Parameters:
other (RydbergState)
- property coefficients: NDArray[Any]
Return the channel coefficients as numpy array.
- get_black_body_transition_rates(temperature, temperature_unit=None, unit=None)
Calculate the black body transition rates of the Rydberg state.
- Overloads:
self (Self), temperature (PintFloat), temperature_unit (None), unit (None) → tuple[list[Self], PintArray]
self (Self), temperature (float), temperature_unit (str), unit (None) → tuple[list[Self], PintArray]
self (Self), temperature (PintFloat), temperature_unit (None), unit (str) → tuple[list[Self], NDArray]
self (Self), temperature (float), temperature_unit (str), unit (str) → tuple[list[Self], NDArray]
- Parameters:
self (Self)
temperature (float | PlainQuantity[float])
temperature_unit (str | None)
unit (str | None)
- Return type:
tuple[list[Self], NDArray[Any] | PlainQuantity[NDArray[Any]]]
The black body transition 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 (
str|None) – The unit of the temperature. Default None will assume the temperature is given as pint.Quantity.unit (
str|None) – The unit to which to convert the result. Default None will return a pint.Quantity.self (Self)
- Returns:
The relevant states and the transition rates.
- Return type:
tuple[list[Self], NDArray[Any] | PlainQuantity[NDArray[Any]]]
- get_energy(unit=None)
Get the energy of the Rydberg state.
- Overloads:
self, unit (None) → PintFloat
self, unit (str) → float
- Parameters:
unit (str | None)
- Return type:
PlainQuantity[float] | float
The energy is defined as
\[E = - \frac{1}{2} \frac{\mu}{\nu^2} + E_{ionization}\]where mu = R_M/R_infty is the reduced mass and nu the effective principal quantum number, and E_{ionization} is the reference ionization threshold of the species.
- get_label(fmt='ket')
Label representing the state.
- 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 state in the given format.
- get_lifetime(temperature=None, temperature_unit=None, unit=None)
Calculate the lifetime of the Rydberg state.
- Overloads:
self → PintFloat
self, temperature (PintFloat) → PintFloat
self, temperature (float), temperature_unit (str) → PintFloat
self, unit (str) → float
self, temperature (PintFloat), unit (str) → float
self, temperature (float), temperature_unit (str), unit (str) → float
- Parameters:
temperature (float | PlainQuantity[float] | None)
temperature_unit (str | None)
unit (str | None)
- Return type:
float | PlainQuantity[float]
The lifetime is the inverse of the sum of all transition rates.
- Parameters:
temperature (
Union[float,PlainQuantity[float],None]) – The temperature, for which to calculate the black body transition rates. Default None will not include black body transitions.temperature_unit (
str|None) – The unit of the temperature. Default None will assume the temperature is given as pint.Quantity.unit (
str|None) – The unit to which to convert the result. Default None will return a pint.Quantity.
- Returns:
The lifetime of the state.
- Return type:
float | PlainQuantity[float]
- get_spontaneous_transition_rates(unit=None)
Calculate the spontaneous transition rates for the Rydberg state.
- Overloads:
self (Self), unit (None) → tuple[list[Self], PintArray]
self (Self), unit (str) → tuple[list[Self], NDArray]
- Parameters:
self (Self)
unit (str | None)
- Return type:
tuple[list[Self], NDArray[Any] | PlainQuantity[NDArray[Any]]]
The spontaneous transition rates are given by the Einstein A coefficients.
- Parameters:
unit (
str|None) – The unit to which to convert the result. Default None will return a pint.Quantity.self (Self)
- Returns:
The relevant states and the transition rates.
- Return type:
tuple[list[Self], NDArray[Any] | PlainQuantity[NDArray[Any]]]
- property norm: float
Return the norm of the state (should be 1).
- to_coupling_scheme(coupling_scheme)
Convert the Rydberg state to a different coupling scheme.
- Parameters:
coupling_scheme (
Literal['LS','JJ','FJ']) – The coupling scheme to which to convert the Rydberg state.- Return type:
RydbergState- Returns:
The Rydberg state in the new coupling scheme.
- species: str
The species of the Rydberg state.
- rydberg_kets: list[RydbergKet]
The Rydberg kets that form the Rydberg state.
- nu: float
The effective principal quantum number nu given in reference to the reference ionization threshold.
- f_tot: float
The total angular momentum quantum number f_tot of the Rydberg state.