High-precision calculations for one- and two-valence atomic systems
DiracHydrogen Namespace Reference

Detailed Description

Exact relativistic hydrogen-like (Dirac-Coulomb) wavefunctions.

Analytic solutions of the single-particle Dirac equation for a pointlike nuclear charge Z (the Dirac-Coulomb problem). The orbitals have the form

\[ \psi_{n\kappa m}(\vb{r}) = \frac{1}{r} \begin{pmatrix} f_{n\kappa}(r)\,\Omega_{\kappa m}(\hat n) \\ i\,g_{n\kappa}(r)\,\Omega_{-\kappa,m}(\hat n) \end{pmatrix}, \]

with f the large (upper) and g the small (lower) radial component. Expressions follow H. A. Bethe and E. E. Salpeter, Quantum Mechanics of One- and Two-Electron Atoms (1977).

The optional lepton mass mass defaults to 1 (atomic units). The full relativistic energy is \( E = mass\,c^2 + \en_{n\kappa} = mass/\alpha^2 + \en_{n\kappa} \), and the radial functions scale with mass as \( f_{mass}(r) = \sqrt{mass}\,f_1(mass\,r) \).

Non-relativistic limit
Passing \( \alpha \le 0 \) selects the non-relativistic (Schrodinger) limit directly, rather than evaluating the Dirac expressions at a tiny \( \alpha \) (which is numerically unstable). In this limit the large component reduces to the non-relativistic radial function (f = P_nl), the small component vanishes (g = 0), and the energy is \( \en_n = -mass\,Z^2/(2n^2) \).
Note
Uses some numerically unstable functions (Gamma functions and confluent hypergeometric functions), so may be inaccurate for extreme inputs. For reasonable inputs (Zeff = 5, up to n ~ 10) tested good to at least parts in 10^12.

Functions

double enk (double n, int kappa, double zeff, double alpha, double mass=1.0)
 Single-particle energy, without rest mass: enk.
 
double Enk (double n, int kappa, double zeff, double alpha, double mass=1.0)
 Full energy, including rest mass: Enk = mass/alpha^2 + enk.
 
double gamma (int kappa, double zeff, double alpha)
 Relativistic factor gamma = Sqrt[kappa^2 - (Z*alpha)^2].
 
double f (double r, double n, int kappa, double zeff, double alpha, double mass=1.0)
 Upper (large) radial component, f(r)
 
double g (double r, double n, int kappa, double zeff, double alpha, double mass=1.0)
 Lower (small) radial component, g(r)
 
double P_nl (double r, double n, int l, double zeff, double mass=1.0)
 Nonrelativistic bound-state radial function: P_nl(r) = r * R_nl(r)
 
double gfratio (double r, int kappa, double zeff, double alpha, double en, double mass=1.0)
 Ratio g/f at radius r.
 

Function Documentation

◆ enk()

double DiracHydrogen::enk ( double  n,
int  kappa,
double  zeff,
double  alpha,
double  mass = 1.0 
)

Single-particle energy, without rest mass: enk.

Bound-state Dirac-Coulomb energy, excluding the rest-mass term:

\[ \en_{n\kappa} = mass\,c^2\left[ \left(1 + \frac{(Z\alpha)^2}{(\gamma + n - |\kappa|)^2}\right)^{-1/2} - 1 \right], \]

evaluated in a numerically stable form (avoids cancellation between the \( O(c^2) \) terms). For \( \alpha \le 0 \) returns the non-relativistic energy \( \en_n = -mass\,Z^2/(2n^2) \).

Parameters
nPrincipal quantum number (may be non-integer, effective n)
kappaDirac quantum number (ignored in the non-relativistic limit)
zeffEffective nuclear charge, Z
alphaFine-structure constant; alpha <= 0 gives non-relativistic
massLepton mass, in units of the electron mass (default 1)
Returns
enk (atomic units)
Note
alpha <= 0 selects the non-relativistic limit

◆ Enk()

double DiracHydrogen::Enk ( double  n,
int  kappa,
double  zeff,
double  alpha,
double  mass = 1.0 
)

Full energy, including rest mass: Enk = mass/alpha^2 + enk.

\[ E_{n\kappa} = mass\,c^2 + \en_{n\kappa} = mass/\alpha^2 + \en_{n\kappa}. \]

Parameters
nPrincipal quantum number (may be non-integer)
kappaDirac quantum number
zeffEffective nuclear charge, Z
alphaFine-structure constant
massLepton mass, in units of the electron mass (default 1)
Returns
Enk (atomic units)
Warning
Diverges as alpha -> 0 (rest energy mass/alpha^2); not meaningful in the non-relativistic limit.

◆ gamma()

double DiracHydrogen::gamma ( int  kappa,
double  zeff,
double  alpha 
)

Relativistic factor gamma = Sqrt[kappa^2 - (Z*alpha)^2].

\[ \gamma = \sqrt{\kappa^2 - (Z\alpha)^2}. \]

Parameters
kappaDirac quantum number
zeffEffective nuclear charge, Z
alphaFine-structure constant
Returns
gamma

◆ f()

double DiracHydrogen::f ( double  r,
double  n,
int  kappa,
double  zeff,
double  alpha,
double  mass = 1.0 
)

Upper (large) radial component, f(r)

Large (upper) component of the Dirac-Coulomb orbital (see the namespace description for the full expression). For \( \alpha \le 0 \) returns the non-relativistic large component, \( f(r) = P_{nl}(r) \) (see P_nl), with l = l(kappa).

Parameters
rRadial coordinate (atomic units)
nPrincipal quantum number (may be non-integer)
kappaDirac quantum number
zeffEffective nuclear charge, Z
alphaFine-structure constant; alpha <= 0 gives non-relativistic
massLepton mass, in units of the electron mass (default 1)
Returns
f(r)
Note
alpha <= 0 selects the non-relativistic limit: f = P_nl (and g = 0)

◆ g()

double DiracHydrogen::g ( double  r,
double  n,
int  kappa,
double  zeff,
double  alpha,
double  mass = 1.0 
)

Lower (small) radial component, g(r)

Small (lower) component of the Dirac-Coulomb orbital (see the namespace description for the full expression). In the non-relativistic limit \( \alpha \le 0 \) the small component vanishes, g(r) = 0.

Parameters
rRadial coordinate (atomic units)
nPrincipal quantum number (may be non-integer)
kappaDirac quantum number
zeffEffective nuclear charge, Z
alphaFine-structure constant; alpha <= 0 gives g = 0
massLepton mass, in units of the electron mass (default 1)
Returns
g(r)
Note
alpha <= 0 selects the non-relativistic limit: g = 0

◆ P_nl()

double DiracHydrogen::P_nl ( double  r,
double  n,
int  l,
double  zeff,
double  mass = 1.0 
)

Nonrelativistic bound-state radial function: P_nl(r) = r * R_nl(r)

Hydrogen-like Schrodinger radial function, unit normalised: \( \int_0^\infty P_{nl}^2\,\d r = 1 \). Mass scales as \( P_{nl,mass}(r) = \sqrt{mass}\,P_{nl,1}(mass\,r) \).

Evaluated via the confluent hypergeometric form \( \rho^l e^{-\rho/2}\,{}_1F_1(l+1-n, 2l+2, \rho) \), \( \rho = 2Z\,mass\,r/n \), so n may be non-integer (effective n). For integer n this reduces to the usual associated Laguerre polynomial.

Parameters
rRadial coordinate (atomic units)
nPrincipal quantum number; may be non-integer (effective n)
lOrbital angular momentum
zeffEffective nuclear charge, Z
massLepton mass, in units of the electron mass (default 1)
Returns
P_nl(r)
Warning
For non-integer n the series does not terminate and the function grows like \( e^{+Zr/n} \) at large r (not a normalisable bound state); it is only meaningful at finite r / near-integer n.

◆ gfratio()

double DiracHydrogen::gfratio ( double  r,
int  kappa,
double  zeff,
double  alpha,
double  en,
double  mass = 1.0 
)

Ratio g/f at radius r.

Small-to-large component ratio at radius r, for a given energy en (without rest mass). Independent of the overall normalisation.

Parameters
rRadial coordinate (atomic units)
kappaDirac quantum number
zeffEffective nuclear charge, Z
alphaFine-structure constant
enSingle-particle energy (without rest mass)
massLepton mass, in units of the electron mass (default 1)
Returns
g(r)/f(r)