RadialKet
Class Methods
|
Initialize the radial ket. |
|
|
|
Calculate the overlap <self|other> of two radial kets. |
Integrate the wavefunction using the method given by the |
Class Attributes and Properties
The grid step size in the scaled dimensionless coordinate \(z = \sqrt{r/a_0}\). |
|
Return the orbital quantum number of the rydberg electron. |
|
The number of nodes (i.e. zero-crossings) of the wavefunction. |
|
The norm of the wavefunction. |
|
The radial wavefunction in atomic units \(\tilde{R}(r) = a_0^{-3/2} R(r)\). |
|
The number of grid points. |
|
The dimensionless wavefunction \(\tilde{u}(x) = \sqrt{a_0} r R(r)\). |
|
The dimensionless scaled wavefunction \(w(z)\). |
|
The grid in the dimensionless coordinate \(x = r/a_0\). |
|
The grid in the scaled dimensionless coordinate \(z = \sqrt{r/a_0}\). |
- class rydstate.radial.RadialKet(nu, potential, *, n_expected=None, dz=0.01, x_min=None, x_max=None, run_backward=True, w0=1e-10, use_njit=True, integration_method='numerov', sign_convention='positive_at_outer_bound')[source]
Initialize the radial ket.
- Parameters:
nu (
float) – Effective principal quantum number of the rydberg electron, which is used to calculate the energy of the state.potential (
Potential|PotentialDummy) – The potential object.n_expected (
int|None) – Optional principal quantum number of the rydberg electron, used for additional sanity checks of the radial wavefunction (e.g. checking that the number of nodes matches n - l - 1). It is also required for the “n_l_1” sign convention.dz (
float) – The step size of the integration in the scaled dimensionless coordinate \(z = \sqrt{r/a_0}\).x_min (
float|None) – The minimum value of the radial coordinate in dimensionless units \(x = r/a_0\). None means a sensible value is calculated automatically.x_max (
float|None) – The maximum value of the radial coordinate in dimensionless units \(x = r/a_0\). None means a sensible value is calculated automatically.run_backward (
bool) – Whether to integrate the radial Schrödinger equation “backward” or “forward”.w0 (
float) – The initial magnitude of the radial wavefunction at the boundary.use_njit (
bool) – Whether to use the fast njit version of the Numerov integration.integration_method (
Literal['numerov','whittaker']) – The method used to integrate the wavefunction, either “numerov” or “whittaker”.sign_convention (
Optional[Literal['positive_at_outer_bound','n_l_1']]) – The sign convention applied to the wavefunction after the integration. One of “positive_at_outer_bound”, “n_l_1” or None (see_apply_sign_convention()). The “n_l_1” convention requiresn_expectedto be set.args (object)
kwargs (object)
- Return type:
CachedT
- property z_list: ndarray[tuple[Any, ...], dtype[Any]]
The grid in the scaled dimensionless coordinate \(z = \sqrt{r/a_0}\).
In this coordinate the grid points are chosen equidistant, because the nodes of the wavefunction are equally spaced in this coordinate.
- property x_list: ndarray[tuple[Any, ...], dtype[Any]]
The grid in the dimensionless coordinate \(x = r/a_0\).
- property dz: float
The grid step size in the scaled dimensionless coordinate \(z = \sqrt{r/a_0}\).
- property steps: int
The number of grid points.
- property w_list: ndarray[tuple[Any, ...], dtype[Any]]
The dimensionless scaled wavefunction \(w(z)\).
The scaled wavefunction is defined as
\[w(z) = z^{-1/2} \tilde{u}(x=z^2) = (r/a_0)^{-1/4} \sqrt{a_0} r R(r)\]
- property u_list: ndarray[tuple[Any, ...], dtype[Any]]
The dimensionless wavefunction \(\tilde{u}(x) = \sqrt{a_0} r R(r)\).
- property r_list: ndarray[tuple[Any, ...], dtype[Any]]
The radial wavefunction in atomic units \(\tilde{R}(r) = a_0^{-3/2} R(r)\).
- property norm: float
The norm of the wavefunction.
- property nodes: int
The number of nodes (i.e. zero-crossings) of the wavefunction.
- integrate_wavefunction()[source]
Integrate the wavefunction using the method given by the
integration_methodparameter.- Return type:
None
- calc_overlap(other, *, integration_method='sum')[source]
Calculate the overlap <self|other> of two radial kets.
- Parameters:
other (
RadialKet) – Other radial ketintegration_method (
Literal['sum','trapezoid','scipy_simpson','scipy_trapezoid']) – Integration method to use
- Return type:
float- Returns:
The overlap integral between self and other.
- calc_matrix_element(other, k_radial, unit=None, *, integration_method='sum')[source]
- Overloads:
self, other (RadialKet), k_radial (int), unit (None), integration_method (INTEGRATION_METHODS) → PintFloat
self, other (RadialKet), k_radial (int), unit (str), integration_method (INTEGRATION_METHODS) → float
- Parameters:
other (RadialKet)
k_radial (int)
unit (str | None)
integration_method (Literal['sum', 'trapezoid', 'scipy_simpson', 'scipy_trapezoid'])
- Return type:
PlainQuantity[float] | float
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 (
RadialKet) – Other radial ketk_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
- Returns:
The radial matrix element in the desired unit.
- Return type:
PlainQuantity[float] | float