RydbergKet

Class Methods

__init__(species, angular, radial, *[, n])

Initialize the Rydberg state.

calc_matrix_element(other, operator, q, *[, ...])

Calculate the matrix element.

calc_reduced_matrix_element(other, operator, *)

Calculate the reduced matrix element.

calc_reduced_overlap(other)

Calculate the reduced overlap <self|other> (ignoring the magnetic quantum number m).

get_label([fmt])

Return a label of the Rydberg ket in the common spectroscopic notation.

Class Attributes and Properties

core_state

Get the corresponding ion state of the Rydberg ket.

valence_electrons_are_in_the_same_shell

Whether the Rydberg electron occupies the same shell as the inner valence electron.

class rydstate.rydberg_state.RydbergKet(species, angular, radial, *, n=None)[source]

Initialize the Rydberg state.

Parameters:
  • species (str)

  • angular (AngularKetBase[Any])

  • radial (Radial)

  • n (int | None)

get_label(fmt='ket')[source]

Return a label of the Rydberg ket in the common spectroscopic notation.

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 Rydberg ket.

calc_reduced_overlap(other)[source]

Calculate the reduced overlap <self|other> (ignoring the magnetic quantum number m).

Return type:

float

Parameters:

other (RydbergKet)

calc_reduced_matrix_element(other, operator, *, part='all', unit=None)[source]

Calculate the reduced matrix element.

Overloads:
  • self, other (RydbergKet), operator (MatrixElementOperator), part (MatrixElementPart), unit (None) → PintFloat

  • self, other (RydbergKet), operator (MatrixElementOperator), part (MatrixElementPart), unit (str) → float

Parameters:
  • other (RydbergKet)

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

For the "electric_..." operators, the matrix element of “rydberg”, “inner_valence” and “closed_shell_core” are calculated separately and added together (currently “closed_shell_core” is only supported for the “electric_dipole” operator). In addition, each term is multiplied by the symmetry factor sqrt(2), if exactly one of self and other has both its valence electrons in the same shell, see also valence_electrons_are_in_the_same_shell.

Parameters:
  • other (RydbergKet) – 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

property core_state: RydbergStateSQDT[Any] | None

Get the corresponding ion state of the Rydberg ket.

property valence_electrons_are_in_the_same_shell: bool

Whether the Rydberg electron occupies the same shell as the inner valence electron.

calc_matrix_element(other, operator, q, *, part='all', unit=None)[source]

Calculate the matrix element.

Overloads:
  • self, other (RydbergKet), operator (MatrixElementOperator), q (int), part (MatrixElementPart), unit (None) → PintFloat

  • self, other (RydbergKet), operator (MatrixElementOperator), q (int), part (MatrixElementPart), unit (str) → float

Parameters:
  • other (RydbergKet)

  • 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 (RydbergKet) – 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