Strontium87
Class Methods
|
Initialize an species instance. |
|
Calculate the effective principal quantum number nu of a Rydberg state with the given n, l, j_tot and s_tot. |
|
Create an instance of the species class from the species name. |
Get a list of all available species names in the library. |
|
|
Return the corrected Rydberg constant in the desired unit. |
|
Return the ionization energy in the desired unit. |
|
Check if the quantum numbers describe an allowed shell. |
Class Attributes and Properties
Atomic number of the species. |
|
Static dipole polarizability in atomic units (a.u.), used for the parametric model potential. |
|
Shell (n, l) describing the electronic ground state configuration. |
|
Nuclear spin, (default None to ignore hyperfine structure, will be treated like i_c = 0). |
|
Parameters (delta, alpha, beta, gamma) for the new four-parameter potential, used in the model potential defined in: Y. |
|
(a_1, a_2, a_3, a_4)} for the parametric model potential. |
|
The name of the atomic species. |
|
Number of valence electrons (i.e. 1 for alkali atoms and 2 for alkaline earth atoms). |
|
Default potential type to use for this species. |
|
r_c} to truncate the unphysical short-range contribution of the polarization potential. |
|
The reduced mass mu in atomic units. |
- class rydstate.species.Strontium87[source]
Initialize an species instance.
Use this init method to set up additional properties and data for the species, like loading NIST energy levels from a file.
- name: ClassVar[str] = 'Sr87'
The name of the atomic species.
- i_c: ClassVar[float | None] = 4.5
Nuclear spin, (default None to ignore hyperfine structure, will be treated like i_c = 0).
- Z: ClassVar[int] = 38
Atomic number of the species.
- alpha_c_marinescu_1993: ClassVar[float] = 7.5
Static dipole polarizability in atomic units (a.u.), used for the parametric model potential. See also: Phys. Rev. A 49, 982 (1994)
- calc_nu(n, l, j_tot, s_tot=None, *, use_nist_data=True, nist_n_max=15)
Calculate the effective principal quantum number nu of a Rydberg state with the given n, l, j_tot and s_tot.
I.e. either look up the energy for low lying states in the nist data (if use_nist_data is True), and calculate nu from the energy via (see also calc_nu_from_energy):
\[\nu = \sqrt{\frac{1}{2} \frac{\mu/m_e}{-E/E_H}}\]Or calculate nu via the quantum defect theory, where nu is defined as series expansion \(\nu = n^* = n - \delta_{lj}(n)\) with the quantum defect
\[\delta_{lj}(n) = d0_{lj} + d2_{lj} / [n - d0_{lj}(n)]^2 + d4_{lj} / [n - \delta_{lj}(n)]^4 + ...\]References
On a New Law of Series Spectra, Ritz; DOI: 10.1086/141591, https://ui.adsabs.harvard.edu/abs/1908ApJ….28..237R/abstract
Rydberg atoms, Gallagher; DOI: 10.1088/0034-4885/51/2/001, (Eq. 16.19)
- Parameters:
n (
int) – The principal quantum number of the Rydberg state.l (
int) – The orbital angular momentum quantum number of the Rydberg state.j_tot (
float) – The total angular momentum quantum number of the Rydberg state.s_tot (
float|None) – The total spin quantum number of the Rydberg state.use_nist_data (
bool) – Whether to use NIST energy data. Default is True.nist_n_max (
int) – Maximum principal quantum number for which to use the NIST energy data. Default is 15.
- Return type:
float
- classmethod from_name(cls, name)
Create an instance of the species class from the species name.
This method searches through all subclasses of SpeciesObject until it finds one with a matching species name. This approach allows for easy extension of the library with new species. A user can even subclass SpeciesObject in his code (without modifying the rydstate library), e.g. class CustomRubidium(SpeciesObject): name = “Custom_Rb” … and then use the new species by calling RydbergStateAlkali(“Custom_Rb”, …)
- Parameters:
name (
str) – The species name (e.g. “Rb”).- Return type:
- Returns:
An instance of the corresponding species class.
- classmethod get_available_species()
Get a list of all available species names in the library.
This method returns a list of species names for all concrete subclasses of SpeciesObject.
- Return type:
list[str]- Returns:
List of species names.
- 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 (
str|None) – 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 (
str|None) – Desired unit for the ionization energy. Default is atomic units “hartree”.- Return type:
Union[PlainQuantity[float],float]- Returns:
Ionization energy in the desired unit.
- ground_state_shell: ClassVar[tuple[int, int]] = (5, 0)
Shell (n, l) describing the electronic ground state configuration.
- is_allowed_shell(n, l, s_tot=None)
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 numberl (
int) – Orbital angular momentum quantum numbers_tot (
float|None) – Total spin quantum number
- Return type:
bool- Returns:
True if the quantum numbers specify a shell equal to or above the ground state shell, False otherwise.
- model_potential_parameter_fei_2009: tuple[float, float, float, float] = (0.9959, 16.9567, 0.2648, 0.1439)
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
- model_potential_parameter_marinescu_1993: ClassVar = {0: (3.36124, 1.3337, 0, 5.94337), 1: (3.28205, 1.24035, 0, 3.78861), 2: (2.155, 1.4545, 0, 4.5111), 3: (2.1547, 1.14099, 0, 2.1987)}
(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
- number_valence_electrons: ClassVar[int] = 2
Number of valence electrons (i.e. 1 for alkali atoms and 2 for alkaline earth atoms).
- potential_type_default: PotentialType | None = 'model_potential_fei_2009'
Default potential type to use for this species. 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
- r_c_dict_marinescu_1993: ClassVar = {0: 1.59, 1: 1.58, 2: 1.57, 3: 1.56}
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
- property reduced_mass_au: float
The reduced mass mu in atomic units.
The reduced mass in atomic units \(\mu / m_e\) is given by
\[\frac{\mu}{m_e} = \frac{m_{Core}}{m_{Core} + m_e}\]We calculate the reduced mass via the corrected Rydberg constant
\[\frac{\mu}{m_e} = \frac{R_M}{R_\infty}\]