Sodium
Class Methods
|
Initialize an element instance. |
|
Calculate the energy of a Rydberg state with for the given n, l and j. |
|
Calculate the effective principal quantum number for the given n, l and j. |
|
Create an instance of the element class from the species string. |
Get a list of all available species 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 element. |
|
Static dipole polarizability in atomic units (a.u.), used for the parametric model potential. |
|
Shell (n, l) describing the electronic ground state configuration. |
|
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. |
|
Default potential type to use for this element. |
|
r_c} to truncate the unphysical short-range contribution of the polarization potential. |
|
The reduced mass factor mu. |
|
Total spin quantum number. |
|
Atomic species. |
- class ryd_numerov.elements.Sodium(use_nist_data=True, *, nist_n_max=15)[source]
Initialize an element instance.
Use this init method to set up additional properties and data for the element, like loading NIST energy levels from a file.
- Parameters:
use_nist_data (
bool
) – Whether to use NIST data for this element. Default is True.nist_n_max (
int
) – Maximum principal quantum number for which to load the NIST energy levels. Default is 15.
- species: ClassVar[str] = 'Na'
Atomic species.
- Z: ClassVar[int] = 11
Atomic number of the element.
- s: ClassVar[Union[int, float]] = 0.5
Total spin quantum number.
- ground_state_shell: ClassVar[tuple[int, int]] = (3, 0)
Shell (n, l) describing the electronic ground state configuration.
- potential_type_default: Optional['PotentialType'] = 'model_potential_marinescu_1993'
Default potential type to use for this element. 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
- alpha_c_marinescu_1993: ClassVar[float] = 0.9448
Static dipole polarizability in atomic units (a.u.), used for the parametric model potential. See also: Phys. Rev. A 49, 982 (1994)
-
r_c_dict_marinescu_1993:
ClassVar
= {0: 0.45489422, 1: 0.45798739, 2: 0.71875312, 3: 28.6735059} 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
-
model_potential_parameter_marinescu_1993:
ClassVar
= {0: (4.82223117, 2.45449865, -1.12255048, -1.42631393), 1: (5.08382502, 2.18226881, -1.19534623, -1.03142861), 2: (3.53324124, 2.48697936, -0.75688448, -1.27852357), 3: (1.11056646, 1.05458759, 1.73203428, -0.09265696)} (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
- model_potential_parameter_fei_2009: tuple[float, float, float, float] = (0.9729, 2.5434, 1.0406, 0.4685)
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
- calc_energy(n, l, j, unit='hartree')
Calculate the energy of a Rydberg state with for the given n, l and j.
is the quantum defect. The energy of the Rydberg state is then given by :rtype:
Union
[PlainQuantity
[float
],float
]\[E_{nlj} / E_H = -\frac{1}{2} \frac{Ry}{Ry_\infty} \frac{1}{n^*}\]where \(E_H\) is the Hartree energy (the atomic unit of energy).
- Parameters:
n (int)
l (int)
j (float)
unit (str | None)
- Return type:
PlainQuantity[float] | float
- calc_n_star(n, l, j)
Calculate the effective principal quantum number for the given n, l and j.
The effective principal quantum number in quantum defect theory is defined as series expansion \(n^* = n - \delta_{lj}(n)\) where :rtype:
float
\[\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)
l (int)
j (float)
- Return type:
float
- classmethod from_species(cls, species, use_nist_data=True)
Create an instance of the element class from the species string.
This method searches through all subclasses of BaseElement until it finds one with a matching species attribute. This approach allows for easy extension of the library with new elements. A user can even subclass BaseElement in his code (without modifying the ryd-numerov library), e.g. class CustomRubidium(BaseElement): species = “Custom_Rb” … and then use the new element by calling RydbergState(“Custom_Rb”, …)
- Parameters:
species (
str
) – The species string (e.g. “Rb”).use_nist_data (
bool
) – Whether to use NIST data for this element. Default is True.
- Return type:
- Returns:
An instance of the corresponding element class.
- classmethod get_available_species()
Get a list of all available species in the library.
This method returns a list of species strings for all concrete subclasses of BaseElement.
- Return type:
list
[str
]- Returns:
List of species strings.
- 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 (
Optional
[str
]) – 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 (
Optional
[str
]) – Desired unit for the ionization energy. Default is atomic units “hartree”.- Return type:
Union
[PlainQuantity
[float
],float
]- Returns:
Ionization energy in the desired unit.
- is_allowed_shell(n, l)
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 number
- Return type:
bool
- Returns:
True if the quantum numbers specify a shell equal to or above the ground state shell, False otherwise.
- property reduced_mass_factor: float
The reduced mass factor mu.
The reduced mass factor
\[\mu = \frac{m_{Core}}{m_{Core} + m_e}\]calculated via the corrected Rydberg constant
\[\mu = \frac{R_M}{R_\infty}\]