ampsci
High-precision calculations for one- and two-valence atomic systems
DiracODE::AsymptoticSpinor< Nx >

ok

template<std::size_t Nx = 15>
class DiracODE::AsymptoticSpinor< Nx >

Performs asymptotic expansion for f and g at large r, up to order Nx in (1/r).

#include <AsymptoticSpinor.hpp>

Public Member Functions

 AsymptoticSpinor (int in_kappa, double in_Zeff, double in_en, double in_alpha=PhysConst::alpha, double in_eps_target=1.0e-14, double m=1.0)
 
std::pair< double, double > fg (double r) const
 Returns {f(r), g(r)} via asymptotic expansion at large r.
 

Member Function Documentation

◆ fg()

template<std::size_t Nx = 15>
std::pair< double, double > DiracODE::AsymptoticSpinor< Nx >::fg ( double  r) const
inline

Returns {f(r), g(r)} via asymptotic expansion at large r.

Large-r expansion of upper/lower radial components of the Dirac solution, see Johnson (2007), Eqs. (2.170) – (2.171).

f(r) = r^s exp(-yr) * { A(1 + O(1/r) + ...) + B(O(1/r) + ...)},

g(r) = r^s exp(-yr) * { -B(1 + O(1/r) + ...) + A(O(1/r) + ...)},

where s~1, y~1, A~1, B<<1.

The 1/r expansion inside the braces is truncated at order Nx. The series is terminated early if the relative change drops below eps_target (typically around order ~5).


The documentation for this class was generated from the following file: