Hex  2.2
Hydrogen-electron collision solver
Public Member Functions | Data Fields
DistortedWave Class Reference

Distorted wave information. More...

#include <wave_distort.h>

Inheritance diagram for DistortedWave:
Inheritance graph
[legend]
Collaboration diagram for DistortedWave:
Collaboration graph
[legend]

Public Member Functions

 ~DistortedWave ()
 
DistortedWave operator= (DistortedWave const &W)
 
double operator() (double x) const
 
Complex getPhasef () const
 
double getPhase () const
 
double k () const
 Wavenumber. More...
 
int l () const
 Angular momentum. More...
 
double getTurningPoint () const
 Classical turning point. More...
 
std::pair< double, int > getZeroAsymptotic (double x) const
 Near-zero asymptotic behaviour. More...
 
void toFile (const char *filename) const
 Export data to file using write_array. More...
 
double farRadius () const
 
std::size_t sampleCount () const
 
 DistortedWave (double _kn, int _ln, DistortingPotential const &_U)
 
 DistortedWave (DistortedWave const &W)
 

Data Fields

unsigned Evaluations
 (debuging parameter) number of evaluations More...
 

Detailed Description

The distorted wave \( \phi_{l_n}(k_n, r) \) is a solution of the equation

\[ \left(-\frac{\mathrm{d}^2}{\mathrm{d}r^2} + \frac{l_n(l_n+1)}{r^2} + 2U_n(r) \right) \phi_{l_n} (k_n, r) = k_n^2 \phi_{l_n} (k_n, r) \]

which is regular at origin and which satisfies the boundary condition

\[ \phi_{l_n} (k_n, r) \propto \hat{j}_{l_n}(k_n r) + t_{l_n}(k_n) \mathrm{i}\hat{h}_{l_n}^{(+)}(k_n r) \ . \]

Most of the work is being done in the constructor. The radial interval between the origin and the far radius of DistortingPotential is divided into an equidistant grid (with spacing adjusted to the energy of projectile), on which the solution is sought. Integration starts from \( r = h \), where \( h \) is a small number compared to grid size. The initial conditions here are chosen as

\[ \phi_{l_n}(k_n, h) \simeq h \cdot 10^{-5} \ , \]

\[ \phi_{l_n}'(k_n, h) \simeq (l_n + 1) \cdot 10^{-5} \ , \]

which is in accord with the behaviour of Ricatti-Bessel functions near origin. Resulting solution is real and using the standard formula

\[ \tan \delta_{l_n} = \frac{k_n \cos(k_n R - l_n\pi/2) - D \sin(k_n R - l_n\pi/2)} {k_n \sin(k_n R - l_n\pi/2) + D \cos(k_n R - l_n\pi/2)} \]

the phase shift is determined. This number sets the phase factor \( \mathrm{e}^{\mathrm{i}\delta_{l_n}} \) of the whole wave.

Constructor & Destructor Documentation

◆ DistortedWave() [1/2]

DistortedWave::DistortedWave ( double  _kn,
int  _ln,
DistortingPotential const &  _U 
)

◆ DistortedWave() [2/2]

DistortedWave::DistortedWave ( DistortedWave const &  W)
inline

◆ ~DistortedWave()

DistortedWave::~DistortedWave ( )

Member Function Documentation

◆ farRadius()

double DistortedWave::farRadius ( ) const
inline

Return radius from which the asymptotic form is used.

◆ getPhase()

double DistortedWave::getPhase ( ) const
inline

Return the phase \( \delta_{l_n} \).

◆ getPhasef()

Complex DistortedWave::getPhasef ( ) const
inline

Return the phase factor \( \mathrm{e}^{\mathrm{i}\delta_{l_n}} \).

◆ getTurningPoint()

double DistortedWave::getTurningPoint ( ) const
inline

◆ getZeroAsymptotic()

std::pair< double, int > DistortedWave::getZeroAsymptotic ( double  x) const

◆ k()

double DistortedWave::k ( ) const
inline

◆ l()

int DistortedWave::l ( ) const
inline

◆ operator()()

double DistortedWave::operator() ( double  x) const

Evaluate distorted wave.

◆ operator=()

DistortedWave DistortedWave::operator= ( DistortedWave const &  W)

◆ sampleCount()

std::size_t DistortedWave::sampleCount ( ) const
inline

◆ toFile()

void DistortedWave::toFile ( const char *  filename) const
inline

Field Documentation

◆ Evaluations

unsigned DistortedWave::Evaluations
mutable

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