![]() |
|
High-precision calculations for one- and two-valence atomic systems
|
Exact relativistic continuum (en > 0) hydrogen-like (Coulomb) wavefunctions.
In the form
\[ \psi_{\en\kappa m}(\vb{r}) = \frac{1}{r} \begin{pmatrix} f_{\en\kappa}(r)\,\Omega_{\kappa m}(\hat n) \\ i\,g_{\en\kappa}(r)\,\Omega_{-\kappa,m}(\hat n) \end{pmatrix}, \]
normalised on the energy scale,
\[ \int_0^\infty (f_\en f_{\en'} + g_\en g_{\en'})\,dr = \delta(\en - \en'). \]
See Methods for full definitions.
The optional electron mass parameter m defaults to 1 (atomic units). The full relativistic energy is E = m*c^2 + en = m/alpha^2 + en, with en > 0 for continuum states.
Functions | |
| double | gamma (int kappa, double zeff, double alpha) |
| Relativistic factor gamma = Sqrt[kappa^2 - (aZ)^2]. | |
| double | pe (double en, double alpha, double m=1.0) |
| Equivalent momentum: pe = Sqrt[en*(2m + en*alpha^2)]. | |
| std::pair< double, double > | fg (double r, double en, int kappa, double zeff, double alpha, double m=1.0) |
| Both radial components {f, g} at radius r. | |
| double | f (double r, double en, int kappa, double zeff, double alpha, double m=1.0) |
| Upper (large) radial component. | |
| double | g (double r, double en, int kappa, double zeff, double alpha, double m=1.0) |
| Lower (small) radial component. | |
| double | f_asymptotic (double r, double en, int kappa, double zeff, double alpha, double m=1.0) |
| Large-r asymptotic form of f. | |
| double | g_asymptotic (double r, double en, int kappa, double zeff, double alpha, double m=1.0) |
| Large-r asymptotic form of g. | |
| double | P_el (double r, double en, int l, double zeff, double m=1.0) |
| Nonrelativistic continuum radial function, energy normalised. | |
Variables | |
| constexpr bool | available = Hypergeometric::has_flint |
| True if compiled with FLINT support; f, g, and fg return NaN otherwise. | |
| double DiracContinuum::gamma | ( | int | kappa, |
| double | zeff, | ||
| double | alpha | ||
| ) |
Relativistic factor gamma = Sqrt[kappa^2 - (aZ)^2].
| double DiracContinuum::pe | ( | double | en, |
| double | alpha, | ||
| double | m = 1.0 |
||
| ) |
Equivalent momentum: pe = Sqrt[en*(2m + en*alpha^2)].
en is the energy without rest mass (en > 0); m is the electron mass (default 1 a.u.).
| std::pair< double, double > DiracContinuum::fg | ( | double | r, |
| double | en, | ||
| int | kappa, | ||
| double | zeff, | ||
| double | alpha, | ||
| double | m = 1.0 |
||
| ) |
Both radial components {f, g} at radius r.
More efficient than separate calls to f() and g(), since the (expensive) hypergeometric factors are shared. For \( \alpha \le 0 \) returns the non-relativistic limit {P_el, 0} (see P_el), which does not require FLINT.
| double DiracContinuum::f | ( | double | r, |
| double | en, | ||
| int | kappa, | ||
| double | zeff, | ||
| double | alpha, | ||
| double | m = 1.0 |
||
| ) |
Upper (large) radial component.
m is the electron mass (default 1 a.u.).
| double DiracContinuum::g | ( | double | r, |
| double | en, | ||
| int | kappa, | ||
| double | zeff, | ||
| double | alpha, | ||
| double | m = 1.0 |
||
| ) |
Lower (small) radial component.
m is the electron mass (default 1 a.u.).
| double DiracContinuum::f_asymptotic | ( | double | r, |
| double | en, | ||
| int | kappa, | ||
| double | zeff, | ||
| double | alpha, | ||
| double | m = 1.0 |
||
| ) |
Large-r asymptotic form of f.
f ~ Sqrt[pe/(pi*en)] * cos(pe*r + nu*ln(2*pe*r) - Delta). Does not require FLINT.
| double DiracContinuum::g_asymptotic | ( | double | r, |
| double | en, | ||
| int | kappa, | ||
| double | zeff, | ||
| double | alpha, | ||
| double | m = 1.0 |
||
| ) |
Large-r asymptotic form of g.
g ~ -alpha * Sqrt[en/(pi*pe)] * sin(pe*r + nu*ln(2*pe*r) - Delta). Does not require FLINT.
| double DiracContinuum::P_el | ( | double | r, |
| double | en, | ||
| int | l, | ||
| double | zeff, | ||
| double | m = 1.0 |
||
| ) |
Nonrelativistic continuum radial function, energy normalised.
P_el = Sqrt[2m/(pi*p)] * F_l(-Z*m/p, p*r), with p = Sqrt[2*m*en] and F_l the regular Coulomb function. Does not require FLINT.
|
constexpr |
True if compiled with FLINT support; f, g, and fg return NaN otherwise.