Model

Class Methods

__init__(element, l[, potential_type])

Initialize the model.

calc_effective_potential_centrifugal(x)

Calculate the effective centrifugal potential V_l(x) in atomic units.

calc_effective_potential_sqrt(x)

Calculate the effective potential V_sqrt(x) from the sqrt transformation in atomic units.

calc_hydrogen_turning_point_z(n, l)

Calculate the classical turning point z_i of the state if it would be a hydrogen atom.

calc_model_potential_fei_2009(x)

Calculate the model potential by Fei et al. (2009) in atomic units.

calc_model_potential_marinescu_1993(x)

Calculate the model potential by Marinescu et al. (1994) in atomic units.

calc_potential_coulomb(x)

Calculate the Coulomb potential V_Col(x) in atomic units.

calc_total_effective_potential(x)

Calculate the total effective potential V_eff(x) in atomic units.

calc_turning_point_z(n, l, j[, dz])

Calculate the classical inner turning point z_i for the given state.

class ryd_numerov.model.Model(element, l, potential_type=None)[source]

Initialize the model.

Parameters:
  • element (BaseElement) – BaseElement object representing the atomic species.

  • l (int) – Orbital angular momentum quantum number

  • potential_type (Optional[Literal['coulomb', 'model_potential_marinescu_1993', 'model_potential_fei_2009']]) – Which potential to use for the model.

calc_potential_coulomb(x)[source]

Calculate the Coulomb potential V_Col(x) in atomic units.

The Coulomb potential is given as

\[V_{Col}(x) = -1 / x\]

where x = r / a_0.

Parameters:

x (TypeVar(XType, NDArray, float)) – The dimensionless radial coordinate x = r / a_0, for which to calculate the potential.

Returns:

The Coulomb potential V_Col(x) in atomic units.

Return type:

V_Col

calc_model_potential_marinescu_1993(x)[source]

Calculate the model potential by Marinescu et al. (1994) in atomic units.

The model potential from M. Marinescu, Phys. Rev. A 49, 982 (1994), https://journals.aps.org/pra/abstract/10.1103/PhysRevA.49.982 is given by

\[V_{mp,marinescu}(x) = - \frac{Z_{l}}{x} - \frac{\alpha_c}{2x^4} (1 - e^{-x^6/x_c**6})\]

where Z_{l} is the effective nuclear charge, \(\alpha_c\) is the static core dipole polarizability, and x_c is the effective core size.

\[Z_{l} = 1 + (Z - 1) \exp(-a_1 x) - x (a_3 + a_4 x) \exp(-a_2 x)\]

with the nuclear charge Z.

Parameters:

x (TypeVar(XType, NDArray, float)) – The dimensionless radial coordinate x = r / a_0, for which to calculate potential.

Returns:

The four parameter potential V_{mp,marinescu}(x) in atomic units.

Return type:

V_{mp,marinescu}

calc_model_potential_fei_2009(x)[source]

Calculate the model potential by Fei et al. (2009) in atomic units.

The four parameter potential from Y. Fei et al., Chin. Phys. B 18, 4349 (2009), https://iopscience.iop.org/article/10.1088/1674-1056/18/10/025 is given by

\[V_{mp,fei}(x) = - \frac{1}{x} - \frac{Z-1}{x} \cdot [1 - \alpha + \alpha e^{\beta x^\delta + \gamma x^{2\delta}}]^{-1}\]

where Z is the nuclear charge.

Parameters:

x (TypeVar(XType, NDArray, float)) – The dimensionless radial coordinate x = r / a_0, for which to calculate potential.

Returns:

The four parameter potential V_{mp,fei}(x) in atomic units.

Return type:

V_{mp,fei}

calc_effective_potential_centrifugal(x)[source]

Calculate the effective centrifugal potential V_l(x) in atomic units.

The effective centrifugal potential is given as

\[V_l(x) = \frac{l(l+1)}{2x^2}\]

where x = r / a_0 and l is the orbital angular momentum quantum number.

Parameters:

x (TypeVar(XType, NDArray, float)) – The dimensionless radial coordinate x = r / a_0, for which to calculate the potential.

Returns:

The effective centrifugal potential V_l(x) in atomic units.

Return type:

V_l

calc_effective_potential_sqrt(x)[source]

Calculate the effective potential V_sqrt(x) from the sqrt transformation in atomic units.

The sqrt transformation potential arises from the transformation from the wavefunction u(x) to w(z), where x = r / a_0 and w(z) = z^{-1/2} u(x=z^2) = (r/a_0)^{-1/4} sqrt(a_0) r R(r). Due to the transformation, an additional term is added to the radial Schrödinger equation, which can be written as effective potential V_{sqrt}(x) and is given by

\[V_{sqrt}(x) = \frac{3}{32x^2}\]
Parameters:

x (TypeVar(XType, NDArray, float)) – The dimensionless radial coordinate x = r / a_0, for which to calculate the potential.

Returns:

The sqrt transformation potential V_sqrt(x) in atomic units.

Return type:

V_sqrt

calc_total_effective_potential(x)[source]

Calculate the total effective potential V_eff(x) in atomic units.

The total effective potential includes all physical and effective potentials:

\[V_{eff}(x) = V(x) + V_l(x) + V_{sqrt}(x)\]

where V(x) is the physical potential (either Coulomb or a model potential), V_l(x) is the effective centrifugal potential, and V_{sqrt}(x) is the effective potential from the sqrt transformation.

Note that we on purpose do not include the spin-orbit potential for several reasons:

  1. The fine structure corrections are important for the energies of the states. This includes a) spin-orbit coupling, b) Darwin term, and c) relativistic corrections to the kinetic energy. Since we (obviously) can not include the latter two in the model, it is only consistent to not include the spin-orbit term either.

  2. The model potentials are generated without the spin-orbit term, since their accuracy is not sufficient to resolve the fine structure corrections at small distances. (This can also be seen by running Numerov for low lying states with an energy changed by e.g. 1%, which will lead to almost no change in the wavefunction.)

Parameters:

x (TypeVar(XType, NDArray, float)) – The dimensionless radial coordinate x = r / a_0, for which to calculate potential.

Returns:

The total potential V_eff(x) in atomic units.

Return type:

V_eff

calc_hydrogen_turning_point_z(n, l)[source]

Calculate the classical turning point z_i of the state if it would be a hydrogen atom.

The hydrogen turning point is defined as the point, where for the idealized hydrogen atom the potential equals the energy, i.e. V_Col(r_i) + V_l(r_i) = E. This is exactly the case at

\[r_i = n^2 - n \sqrt{n^2 - l(l + 1)}\]

and z_i = sqrt{r_i / a_0}.

Parameters:
  • n (int) – Principal quantum number of the state.

  • l (int) – Orbital angular momentum quantum number of the state.

Returns:

The inner hydrogen turning point z_i in the scaled dimensionless coordinate z_i = sqrt{r_i / a_0}.

Return type:

z_i

calc_turning_point_z(n, l, j, dz=0.001)[source]

Calculate the classical inner turning point z_i for the given state.

The classical turning point is defined as the point, where the total effective potential of the Rydberg model equals the energy, i.e. V_eff(r_i) = E.

Note: Because we use the total effective potential, even for l=0 the turning point is not at r=0. The advantage of this is, that this definition of the turning point should correspond to where w(z) should have its last change of sign in the second derivative.

Parameters:
  • n (int) – Principal quantum number of the state.

  • l (int) – Orbital angular momentum quantum number of the state.

  • j (float) – Total angular momentum quantum number of the state.

  • dz (float) – The precision of the turning point calculation.

Returns:

The inner turning point z_i in the scaled dimensionless coordinate z_i = sqrt{r_i / a_0}.

Return type:

z_i