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

ok

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

Large-r Dirac-Coulomb oscillating tail spinors of a continuum (en > 0) state, energy-normalised.

The en > 0 continuation of AsymptoticSpinor. For a bound state the decay constant lambda = sqrt(-en(2 + en alpha^2/m)) is real and the spinor decays as r^sigma exp(-lambda r). For en > 0, lambda -> i p, with the relativistic momentum

\[ p = \sqrt{\en(2 + \en\alpha^2/m)} = \sqrt{\en(\en + 2c^2)}/c , \]

so the solution oscillates as exp(-i(pr + nu ln r)), with sigma = -i nu and nu = (m + en alpha^2) Z_ion / p. The expansion coefficients obey the same recurrence as the bound case, with complex values. The real and imaginary parts of the resulting complex spinor are the two real, linearly independent oscillating solutions

\[ F^C \to \begin{pmatrix} A_L\cos\theta \\ -A_S\sin\theta\end{pmatrix}, \qquad G^C \to \begin{pmatrix} -A_L\sin\theta \\ -A_S\cos\theta\end{pmatrix}, \qquad A_S = \beta A_L, \]

with beta = sqrt(en/(en + 2c^2)). They are scaled to the energy normalisation A_L = sqrt(alpha/(pi beta)), so that the Wronskian is W[F^C, G^C] = f^C g^G - f^G g^C = -alpha/pi exactly.

Implemented as the complex-energy AsymptoticSpinor on the branch lambda = +i p (chosen explicitly: the principal sqrt is ambiguous on the branch cut), with the energy-normalisation scale applied on output.

Used to seed the inward integration of the irregular continuum solution (solveContinuumIrregular), as AsymptoticSpinor seeds the decaying bound solution.

Warning
Valid only for en > 0 and at large r (where the 1/r expansion has converged); for en < 0 use AsymptoticSpinor.

#include <AsymptoticSpinor.hpp>

Public Member Functions

 AsymptoticSpinorContinuum (int kappa, double Zeff, double en, double alpha=PhysConst::alpha, double eps_target=1.0e-14, double m=1.0)
 
double momentum () const
 Relativistic momentum p = sqrt(en(en+2c^2))/c.
 
double amplitude_large () const
 Energy-normalised large-component amplitude A_L = sqrt(alpha/(pi*beta)).
 
double beta () const
 Small/large amplitude ratio beta = sqrt(en/(en+2c^2)).
 
ContinuumTailSpinors fg (double r) const
 Returns the two real oscillating tail spinors {F^C, G^C} at r.
 

Member Function Documentation

◆ momentum()

template<std::size_t Nx = 15>
double DiracODE::AsymptoticSpinorContinuum< Nx >::momentum ( ) const
inline

Relativistic momentum p = sqrt(en(en+2c^2))/c.

◆ amplitude_large()

template<std::size_t Nx = 15>
double DiracODE::AsymptoticSpinorContinuum< Nx >::amplitude_large ( ) const
inline

Energy-normalised large-component amplitude A_L = sqrt(alpha/(pi*beta)).

◆ beta()

template<std::size_t Nx = 15>
double DiracODE::AsymptoticSpinorContinuum< Nx >::beta ( ) const
inline

Small/large amplitude ratio beta = sqrt(en/(en+2c^2)).

◆ fg()

template<std::size_t Nx = 15>
ContinuumTailSpinors DiracODE::AsymptoticSpinorContinuum< Nx >::fg ( double  r) const
inline

Returns the two real oscillating tail spinors {F^C, G^C} at r.

F^C (large ~ cos) and G^C (large ~ sin) are the real and imaginary parts of the complex en > 0 asymptotic spinor, energy-normalised. The 1/r series is truncated at order Nx, or when the relative change drops below the eps_target supplied at construction.


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