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
Collaboration diagram for DistortedWave:
Collaboration graph

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)
DistortedWave::~DistortedWave ( )

Member Function Documentation

double DistortedWave::farRadius ( ) const

Return radius from which the asymptotic form is used.

double DistortedWave::getPhase ( ) const

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

Complex DistortedWave::getPhasef ( ) const

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

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

Evaluate distorted wave.

Implements RadialFunction< double >.

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

Field Documentation

unsigned DistortedWave::Evaluations

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