Wavefunction
Class Methods
|
Create a Wavefunction object. |
Implement a few special cases for the x_min point of the integration. |
|
|
Run the Numerov integration of the radial Schrödinger equation. |
|
Do some sanity checks on the wavefunction. |
Class Attributes and Properties
The radial wavefunction R(r) in atomic units. |
|
The dimensionless wavefunction tilde{u}(x) = sqrt(a_0) r R(r). |
|
The dimensionless scaled wavefunction w(z) = z^{-1/2} tilde{u}(x=z^2) = (r/a_0)^{-1/4} sqrt(a_0) r R(r). |
- class ryd_numerov.radial.Wavefunction(grid, model_potential, quantum_defect)[source]
Create a Wavefunction object.
- Parameters:
grid (
Grid
) – The grid object.model_potential (
ModelPotential
) – The model potential object.quantum_defect (
QuantumDefect
) – The quantum defect object.
- property w_list: ndarray[tuple[int, ...], dtype[Any]]
The dimensionless scaled wavefunction 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[int, ...], dtype[Any]]
The dimensionless wavefunction tilde{u}(x) = sqrt(a_0) r R(r).
- property r_list: ndarray[tuple[int, ...], dtype[Any]]
The radial wavefunction R(r) in atomic units.
- integrate(run_backward=True, w0=1e-10, _use_njit=True)[source]
Run the Numerov integration of the radial Schrödinger equation.
The resulting radial wavefunctions are then stored as attributes, where - w_list is the dimensionless and scaled wavefunction w(z) - u_list is the dimensionless wavefunction tilde{u}(x) - r_list is the radial wavefunction R(r) in atomic units
The radial wavefunction are related as follows:
\[\tilde{u}(x) = \sqrt(a_0) r R(r)\]\[w(z) = z^{-1/2} \tilde{u}(x=z^2) = (r/a_0)^{-1/4} \sqrt(a_0) r R(r)\]where z = sqrt(r/a_0) is the dimensionless scaled coordinate.
The resulting radial wavefunction is normalized such that
\[\int_{0}^{\infty} r^2 |R(x)|^2 dr = \int_{0}^{\infty} |\tilde{u}(x)|^2 dx = \int_{0}^{\infty} 2 z^2 |w(z)|^2 dz = 1\]- Parameters:
(default (_use_njit) – True): Wheter to integrate the radial Schrödinger equation “backward” of “forward”.
(default – 1e-10): The initial magnitude of the radial wavefunction at the outer boundary. For forward integration we set w[0] = 0 and w[1] = w0, for backward integration we set w[-1] = 0 and w[-2] = (-1)^{(n - l - 1) % 2} * w0.
(default – True): Whether to use the fast njit version of the Numerov integration.
run_backward (bool)
w0 (float)
_use_njit (bool)
- Return type:
ndarray
[tuple
[int
,...
],dtype
[Any
]]
- get_x_min()[source]
Implement a few special cases for the x_min point of the integration.
- Return type:
float
- sanity_check(z_stop, run_backward)[source]
Do some sanity checks on the wavefunction.
Check if the wavefuntion fulfills the following conditions: - The wavefunction is positive (or zero) at the inner boundary. - The wavefunction is close to zero at the inner boundary. - The wavefunction is close to zero at the outer boundary. - The wavefunction has exactly (n - l - 1) nodes. - The integration stopped before z_stop (for l>0)
- Return type:
bool
- Parameters:
z_stop (float)
run_backward (bool)