ModelPotential

Class Methods

__init__(species, n, l, s, j, quantum_defect)

Initialize the model potential.

calc_effective_potential_sqrt(x)

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

calc_potential_centrifugal(x)

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

calc_potential_core(x)

Calculate the core potential V_c(x) in atomic units.

calc_potential_core_polarization(x)

Calculate the core polarization potential V_p(x) in atomic units.

calc_potential_spin_orbit(x)

Calculate the spin-orbit coupling potential V_so(x) in atomic units.

calc_total_effective_potential(x)

Calculate the total potential V_tot(x) in atomic units.

calc_total_physical_potential(x)

Calculate the total physical potential V_phys(x) in atomic units.

calc_z_turning_point(which[, dz])

Calculate the inner turning point z_i for the model potential.

Class Attributes and Properties

xc

Core radius parameter in dimensionless units.

class ryd_numerov.model.ModelPotential(species, n, l, s, j, quantum_defect, database=None, *, add_spin_orbit=True, add_model_potentials=True)[source]

Initialize the model potential.

Parameters:
  • species (str) – Atomic species

  • n (int) – Principal quantum number

  • l (int) – Orbital angular momentum quantum number

  • s (float) – Spin quantum number

  • j (float) – Total angular momentum quantum number

  • quantum_defect (QuantumDefect) – QuantumDefect object for the atomic species and quantum numbers.

  • database (Optional[Database]) – Database instance, where the model potential parameters are stored If None, use the global database instance.

  • add_spin_orbit (bool) – Whether to include the spin-orbit coupling potential in the total physical potential.

  • add_model_potentials (bool) – Whether to include the model potentials (see calc_potential_core and calc_potential_core_polarization)

property xc: float

Core radius parameter in dimensionless units.

calc_potential_core(x)[source]

Calculate the core potential V_c(x) in atomic units.

The core potential is given as

\[V_c(x) = -Z_{nl} / x\]

where x = r / a_0 and Z_{nl} is the effective nuclear charge

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

x (ndarray[tuple[int, ...], dtype[Any]]) – The dimensionless radial coordinate x = r / a_0, for which to calculate potential.

Returns:

The core potential V_c(x) in atomic units.

Return type:

V_c

calc_potential_core_polarization(x)[source]

Calculate the core polarization potential V_p(x) in atomic units.

The core polarization potential is given as

\[V_p(x) = -\frac{a_c}{2x^4} (1 - e^{-x^6/x_c**6})\]

where x = r / a_0, a_c is the static core dipole polarizability and x_c is the effective core size.

Parameters:

x (ndarray[tuple[int, ...], dtype[Any]]) – The dimensionless radial coordinate x = r / a_0, for which to calculate potential.

Returns:

The polarization potential V_p(x) in atomic units.

Return type:

V_p

calc_potential_spin_orbit(x)[source]

Calculate the spin-orbit coupling potential V_so(x) in atomic units.

The spin-orbit coupling potential is given as

\[V_{so}(x > x_c) = \frac{\alpha^2}{4x^3} [j(j+1) - l(l+1) - s(s+1)]\]

where x = r / a_0, alpha is the fine structure constant, j is the total angular momentum quantum number, l is the orbital angular momentum quantum number, and s is the spin quantum number.

Parameters:

x (ndarray[tuple[int, ...], dtype[Any]]) – The dimensionless radial coordinate x = r / a_0, for which to calculate potential.

Returns:

The spin-orbit coupling potential V_so(x) in atomic units.

Return type:

V_so

calc_potential_centrifugal(x)[source]

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

The 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 (ndarray[tuple[int, ...], dtype[Any]]) – The dimensionless radial coordinate x = r / a_0, for which to calculate potential.

Returns:

The 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 (ndarray[tuple[int, ...], dtype[Any]]) – The dimensionless radial coordinate x = r / a_0, for which to calculate potential.

Returns:

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

Return type:

V_sqrt

calc_total_physical_potential(x)[source]

Calculate the total physical potential V_phys(x) in atomic units.

The total physical potential is the sum of the core potential, polarization potential, centrifugal potential, and optionally the spin-orbit coupling:

\[V_{phys}(x) = V_c(x) + V_p(x) + V_l(x) + V_{so}(x)\]
Parameters:

x (ndarray[tuple[int, ...], dtype[Any]]) – The dimensionless radial coordinate x = r / a_0, for which to calculate potential.

Returns:

The total physical potential V_phys(x) in atomic units.

Return type:

V_phys

calc_total_effective_potential(x)[source]

Calculate the total potential V_tot(x) in atomic units.

The total effective potential includes all physical and non-physical potentials:

\[V_{tot}(x) = V_c(x) + V_p(x) + V_l(x) + V_{so}(x) + V_{sqrt}(x)\]
Parameters:

x (ndarray[tuple[int, ...], dtype[Any]]) – The dimensionless radial coordinate x = r / a_0, for which to calculate potential.

Returns:

The total potential V_tot(x) in atomic units.

Return type:

V_tot

calc_z_turning_point(which, dz=0.001)[source]

Calculate the inner turning point z_i for the model potential.

There are three different turning points we consider:

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

    \[r_i = n^2 - n \sqrt{n^2 - l(l + 1)}\]
  • The classical turning point, where the physical potential of the Rydberg model potential equals the energy, i.e. V_phys(r_i) = V_c(r_i) + V_p(r_i) + V_l(r_i) + V_{so}(r_i) = E.

  • The zero-crossing turning point, where the physical potential of the Rydberg model potential equals zero, i.e. V_phys(r_i) = V_c(r_i) + V_p(r_i) + V_l(r_i) + V_{so}(r_i) = 0.

Parameters:
  • which (Literal['hydrogen', 'classical', 'zerocrossing']) – Which turning point to calculate, one of “hydrogen”, “classical”, “zerocrossing”.

  • 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