RadialState
Class Methods
|
Initialize the radial state. |
|
Calculate the radial matrix element <self | r^k_radial | other>. |
|
Calculate the overlap <self|other> of two radial states. |
|
Create the grid object for the integration of the radial Schrödinger equation. |
|
Create the model for the Rydberg state. |
|
|
Provide n for additional sanity checks of the radial wavefunction. |
Class Attributes and Properties
The grid object for the integration of the radial Schrödinger equation. |
|
- class rydstate.radial.RadialState(species, nu, l_r)[source]
Initialize the radial state.
- Parameters:
species (
str|SpeciesObject) – Atomic species.nu (
float) – Effective principal quantum number of the rydberg electron, which is used to calculate the energy of the state.l_r (
int) – Orbital angular momentum quantum number of the rydberg electron.
- set_n_for_sanity_check(n)[source]
Provide n for additional sanity checks of the radial wavefunction.
E.g. if n is provided, we can check whether the number of nodes in the wavefunction matches n - l - 1.
- Parameters:
n (
int) – Principal quantum number of the rydberg electron.- Return type:
None
- create_model(potential_type=None)[source]
Create the model for the Rydberg state.
- Parameters:
potential_type (
Optional[Literal['coulomb','model_potential_marinescu_1993','model_potential_fei_2009']]) – Which potential to use for the model.- Return type:
None
- create_grid(x_min=None, x_max=None, dz=0.01)[source]
Create the grid object for the integration of the radial Schrödinger equation.
- Parameters:
x_min (
float|None) – The minimum value of the radial coordinate in dimensionless units (x = r/a_0). Default: Automatically calculate sensible value.x_max (
float|None) – The maximum value of the radial coordinate in dimensionless units (x = r/a_0). Default: Automatically calculate sensible value.dz (
float) – The step size of the integration (z = r/a_0). Default: 1e-2.
- Return type:
None
- property wavefunction: Wavefunction
- create_wavefunction(method='numerov', sign_convention='positive_at_outer_bound', *, run_backward=True, w0=1e-10, _use_njit=True)[source]
- Return type:
None- Parameters:
method (Literal['numerov', 'whittaker'])
sign_convention (Literal['positive_at_outer_bound', 'n_l_1'] | None)
run_backward (bool)
w0 (float)
_use_njit (bool)
- calc_overlap(other, *, integration_method='sum')[source]
Calculate the overlap <self|other> of two radial states.
- Parameters:
other (
RadialState) – Other radial stateintegration_method (
Literal['sum','trapezoid','scipy_simpson','scipy_trapezoid']) – Integration method to use
- Return type:
float- Returns:
The overlap inegral between self and other.
- calc_matrix_element(other, k_radial, unit=None, *, integration_method='sum')[source]
Calculate the radial matrix element <self | r^k_radial | other>.
Computes the integral
\[\int_{0}^{\infty} dr r^2 r^k_{radial} R_1(r) R_2(r) = a_0^{k_{radial}} \int_{0}^{\infty} dx x^k_{radial} \tilde{u}_1(x) \tilde{u}_2(x) = a_0^{k_{radial}} \int_{0}^{\infty} dz 2 z^{2 + 2k_{radial}} w_1(z) w_2(z)\]where R_1 and R_2 are the radial wavefunctions of self and other, and w(z) = z^{-1/2} tilde{u}(z^2) = (r/_a_0)^{1/4} sqrt{a_0} r R(r).
- Parameters:
other (
RadialState) – Other radial statek_radial (
int) – Power of r in the matrix element (default=0, this corresponds to the overlap integral int dr r^2 R_1(r) R_2(r))unit (
str|None) – Unit of the returned matrix element, default None returns a Pint quantity.integration_method (
Literal['sum','trapezoid','scipy_simpson','scipy_trapezoid']) – Integration method to use
- Return type:
Union[PlainQuantity[float],float]- Returns:
The radial matrix element in the desired unit.