AngularKetJJ
Class Methods
|
|
|
Calculate the expectation value of a quantum number qn. |
|
Calculate the dimensionless angular matrix element. |
|
Calculate the reduced angular matrix element. |
|
Calculate the reduced overlap <self||other> (ignoring the magnetic quantum number m). |
|
Calculate the standard deviation of a quantum number qn. |
|
|
|
Return a copy of this ket with the given magnetic quantum number m. |
|
Check that the quantum numbers are valid. |
|
Class Attributes and Properties
Total core electron angular quantum number (s_c + l_c). |
|
Total rydberg electron angular quantum number (s_r + l_r). |
|
Total electron angular momentum quantum number (j_c + j_r). |
|
Return True if any of the quantum numbers is Unknown. |
|
Mapping of coupled quantum numbers to their constituent quantum numbers. |
|
Name of the coupling scheme, e.g. 'LS', 'JJ', or 'FJ'. |
|
Total atom angular quantum number (including nuclear, core electron and rydberg electron contributions). |
|
Nuclear spin quantum number. |
|
Core electron orbital quantum number (usually 0). |
|
Rydberg electron orbital quantum number. |
|
Optional label for this ket, should only be used, if the ket has Unknown quantum numbers. |
|
Magnetic quantum number, which is the projection of f_tot onto the quantization axis. |
|
Parity of the angular ket, which is given by (-1)^(l_c + l_r). |
|
Names of all well defined spin quantum numbers (without the magnetic quantum number m) in this class. |
|
The quantum numbers corresponding to the quantum_number_names (without the magnetic quantum number m). |
|
Core electron spin quantum number (0 for alkali atoms, 0.5 for alkaline earth atoms). |
|
Rydberg electron spin quantum number (always 0.5). |
- class rydstate.angular.AngularKetJJ(i_c=None, s_c=None, l_c=0, s_r=0.5, l_r=Unknown, j_c=None, j_r=None, j_tot=None, f_tot=None, m=NotSet, *, parity=None, label=None, species=None, allow_unknown=False)[source]
Initialize the Spin ket.
- Parameters:
args (object)
kwargs (object)
- Return type:
CachedT
- calc_exp_qn(qn)
Calculate the expectation value of a quantum number qn.
If the quantum number is a good quantum number simply return it, otherwise calculate it, see also AngularState.calc_exp_qn for more details.
- Parameters:
qn (
Literal['i_c','s_c','l_c','s_r','l_r','s_tot','l_tot','j_c','j_r','j_tot','f_c','f_tot']) – The quantum number to calculate the expectation value for.- Return type:
Union[float,TypeVar(GenericT_Unknown,Never,Unknown)]
- calc_matrix_element(other, operator, kappa, q)
Calculate the dimensionless angular matrix element.
Use the Wigner-Eckart theorem to calculate the angular matrix element from the reduced matrix element. We stick to the convention from Edmonds 1985 “Angular Momentum in Quantum Mechanics”, see equation (5.4.1). This means, calculate the following matrix element:
\[\left\langle self | \hat{O}^{(\kappa)}_q | other \right\rangle = <\alpha',f_{tot}',m'| \hat{O}^{(\kappa)}_q |\alpha,f_{tot},m> = (-1)^{(f_{tot} - m)} \cdot \mathrm{Wigner3j}(f_{tot}', \kappa, f_{tot}, -m', q, m) \cdot <\alpha',f_{tot}' || \hat{O}^{(\kappa)} || \alpha,f_{tot}>\]where alpha denotes all other quantum numbers and \(<\alpha',f_{tot}' || \hat{O}^{(\kappa)} || \alpha,f_{tot}>\) is the reduced matrix element (see calc_reduced_matrix_element).
- Parameters:
other (
AngularKetBase[Any]) – The other AngularKet \(|other>\).operator (
Literal['spherical','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 type \(\hat{O}^{(\kappa)}_q\) for which to calculate the matrix element. E.g. ‘spherical’, ‘s_tot’, ‘l_r’, etc.kappa (
int) – The rank \(\kappa\) of the angular momentum operator.q (
int) – The component \(q\) of the angular momentum operator.
- Return type:
float- Returns:
The dimensionless angular matrix element.
- calc_reduced_matrix_element(other, operator, kappa)
Calculate the reduced angular matrix element.
We follow equation (7.1.7) from Edmonds 1985 “Angular Momentum in Quantum Mechanics”. This means, calculate the following matrix element:
\[\left\langle self || \hat{O}^{(\kappa)} || other \right\rangle\]- Return type:
float- Parameters:
other (AngularKetBase[Any])
operator (Literal['spherical', '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'])
kappa (int)
- calc_reduced_overlap(other)
Calculate the reduced overlap <self||other> (ignoring the magnetic quantum number m).
If both kets are of the same type (=same coupling scheme), this is just a delta function of all spin quantum numbers. If the kets are of different types, the overlap is calculated using the corresponding Clebsch-Gordan coefficients (/ Wigner-j symbols).
- Return type:
float- Parameters:
other (AngularKetBase[Any])
- calc_std_qn(qn)
Calculate the standard deviation of a quantum number qn.
If the quantum number is a good quantum number return 0, otherwise calculate the std, see also AngularState.calc_std_qn for more details.
- Parameters:
qn (
Literal['i_c','s_c','l_c','s_r','l_r','s_tot','l_tot','j_c','j_r','j_tot','f_c','f_tot']) – The quantum number to calculate the standard deviation for.- Return type:
Union[float,TypeVar(GenericT_Unknown,Never,Unknown)]
- property contains_unknown: bool
Return True if any of the quantum numbers is Unknown.
- get_qn(qn, *, allow_unknown=None)
- Overloads:
self, qn (AngularMomentumQuantumNumbers), allow_unknown (None) → float | GenericT_Unknown
self, qn (AngularMomentumQuantumNumbers), allow_unknown (Literal[False]) → float
self, qn (AngularMomentumQuantumNumbers), allow_unknown (bool) → float | Unknown
- Parameters:
qn (Literal['i_c', 's_c', 'l_c', 's_r', 'l_r', 's_tot', 'l_tot', 'j_c', 'j_r', 'j_tot', 'f_c', 'f_tot'])
allow_unknown (bool | None)
- Return type:
float | Unknown
Get the value of a quantum number by name.
- i_c: float
Nuclear spin quantum number.
- l_c: int | GenericT_Unknown
Core electron orbital quantum number (usually 0).
- l_r: int | GenericT_Unknown
Rydberg electron orbital quantum number.
- label: str | None
Optional label for this ket, should only be used, if the ket has Unknown quantum numbers.
- m: float | NotSet
Magnetic quantum number, which is the projection of f_tot onto the quantization axis. If NotSet, only reduced matrix elements can be calculated.
- parity: Literal[-1, 1]
Parity of the angular ket, which is given by (-1)^(l_c + l_r).
- quantum_numbers: tuple[float, ...]
The quantum numbers corresponding to the quantum_number_names (without the magnetic quantum number m).
- replace_m(m)
Return a copy of this ket with the given magnetic quantum number m.
- Return type:
Self- Parameters:
m (float | NotSet)
- s_c: float
Core electron spin quantum number (0 for alkali atoms, 0.5 for alkaline earth atoms).
- s_r: float
Rydberg electron spin quantum number (always 0.5).
- to_state(coupling_scheme=None)
- Overloads:
self (Self), coupling_scheme (None) → AngularState[Self]
self (AngularKetBase[T_Unknown]), coupling_scheme (Literal[‘LS’]) → AngularState[AngularKetLS[T_Unknown]]
self (AngularKetBase[T_Unknown]), coupling_scheme (Literal[‘JJ’]) → AngularState[AngularKetJJ[T_Unknown]]
self (AngularKetBase[T_Unknown]), coupling_scheme (Literal[‘FJ’]) → AngularState[AngularKetFJ[T_Unknown]]
- Parameters:
coupling_scheme (Literal['LS', 'JJ', 'FJ'] | None)
- Return type:
AngularState[Any]
Convert to state in the specified coupling scheme.
- Parameters:
coupling_scheme (
Optional[Literal['LS','JJ','FJ']]) – The coupling scheme to convert to (e.g. “LS”, “JJ”, “FJ”). If None, the state will be a trivial state (one component) in the current coupling scheme.- Returns:
The angular state in the specified coupling scheme.
- Return type:
AngularState[Any]
- quantum_number_names: ClassVar = ('i_c', 's_c', 'l_c', 's_r', 'l_r', 'j_c', 'j_r', 'j_tot', 'f_tot')
Names of all well defined spin quantum numbers (without the magnetic quantum number m) in this class.
- coupled_quantum_numbers: ClassVar = {'f_tot': ('i_c', 'j_tot'), 'j_c': ('s_c', 'l_c'), 'j_r': ('s_r', 'l_r'), 'j_tot': ('j_c', 'j_r')}
Mapping of coupled quantum numbers to their constituent quantum numbers.
- coupling_scheme: Literal['LS', 'JJ', 'FJ'] = 'JJ'
Name of the coupling scheme, e.g. ‘LS’, ‘JJ’, or ‘FJ’.
- j_c: float | GenericT_Unknown
Total core electron angular quantum number (s_c + l_c).
- j_r: float | GenericT_Unknown
Total rydberg electron angular quantum number (s_r + l_r).
- j_tot: float | GenericT_Unknown
Total electron angular momentum quantum number (j_c + j_r).
- f_tot: float
Total atom angular quantum number (including nuclear, core electron and rydberg electron contributions).