WavefunctionNumerov

Class Methods

__init__(state, grid, model)

Create a Wavefunction object.

apply_sign_convention(sign_convention)

Set the sign of the wavefunction according to the sign convention.

integrate([run_backward, w0, _use_njit])

Run the Numerov integration of the radial Schrödinger equation.

sanity_check(z_stop, run_backward)

Do some sanity checks on the wavefunction.

Class Attributes and Properties

r_list

The radial wavefunction tilde{R}(r) in atomic units tilde{R}(r) = a_0^{-3/2} R(r).

u_list

The dimensionless wavefunction tilde{u}(x) = sqrt(a_0) r R(r).

w_list

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.WavefunctionNumerov(state, grid, model)[source]

Create a Wavefunction object.

Parameters:
  • state (_CommonRydbergState) – The RydbergState object.

  • grid (Grid) – The grid object.

  • model (Model) – The model object.

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:

None

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)

apply_sign_convention(sign_convention)

Set the sign of the wavefunction according to the sign convention.

Parameters:

sign_convention (Literal[None, 'positive_at_outer_bound', 'n_l_1']) – The sign convention for the wavefunction. - None: Leave the wavefunction as it is. - “n_l_1”: The wavefunction is defined to have the sign of (-1)^{(n - l - 1)} at the outer boundary. - “positive_at_outer_bound”: The wavefunction is defined to be positive at the outer boundary.

Return type:

None

property r_list: ndarray[tuple[int, ...], dtype[Any]]

The radial wavefunction tilde{R}(r) in atomic units tilde{R}(r) = a_0^{-3/2} R(r).

property u_list: ndarray[tuple[int, ...], dtype[Any]]

The dimensionless wavefunction tilde{u}(x) = sqrt(a_0) r R(r).

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).