Hex  1.0
Hydrogen-electron collision solver
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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
 
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::DistortedWave ( double  _kn,
int  _ln,
DistortingPotential const &  _U 
)
DistortedWave::DistortedWave ( DistortedWave const &  W)
inline
DistortedWave::~DistortedWave ( )

Member Function Documentation

double DistortedWave::farRadius ( ) const
inline

Return radius from which the asymptotic form is used.

double DistortedWave::getPhase ( ) const
inline

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

Complex DistortedWave::getPhasef ( ) const
inline

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

double DistortedWave::getTurningPoint ( ) const
inline
std::pair< double, int > DistortedWave::getZeroAsymptotic ( double  x) const
double DistortedWave::k ( ) const
inline
int DistortedWave::l ( ) const
inline
double DistortedWave::operator() ( double  x) const
virtual

Evaluate distorted wave.

Implements RadialFunction< double >.

DistortedWave DistortedWave::operator= ( DistortedWave const &  W)
size_t DistortedWave::sampleCount ( ) const
inline
void DistortedWave::toFile ( const char *  filename) const
inline

Field Documentation

unsigned DistortedWave::Evaluations
mutable

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