Hex  1.0
Hydrogen-electron collision solver
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions
DistortingPotential Class Reference

Distorting potential information. More...

#include <potential.h>

Inheritance diagram for DistortingPotential:
Inheritance graph
Collaboration diagram for DistortingPotential:
Collaboration graph

Public Member Functions

DistortingPotential operator= (DistortingPotential const &V)
 Assignment. More...
bool operator== (DistortingPotential const &V) const
 Comparison. More...
double operator() (double x) const
 Evaluate the distorting potential. More...
double getTurningPoint () const
 Classical turning point. More...
std::pair< double, int > getZeroAsymptotic (double x) const
 Near-zero asymptotic behaviour. More...
double plusMonopole (double x) const
 Add multipole field potential to the distorting potential. More...
double getConstant () const
 Return the zero limit. More...
double getFarRadius () const
 Return largest evaluated coordinate. More...
void toFile (const char *filename) const
int n () const
double k () const
 DistortingPotential ()
 DistortingPotential (int n, double rmax=0.)
 DistortingPotential (double k, double rmax=0.)
 DistortingPotential (DistortingPotential const &U)

Detailed Description

Distorting potential is a spherically averaged potential of atomic particles. Here, it is generated by the hydrogen proton and electron. The formula for the distorting potential says

\[ U_n(r) = \int_{r}^{\infty} P_{n0}(r) \left( \frac{1}{r'} - \frac{1}{r} \right) \mathrm{d}r' \ , \]

where \( P_{nl}(r) = rR_{nl}(r) \) and \( R_{nl}(r) \) is the common hydrogen radial function (see Hydrogen).

This class is used to evaluate the distorting potential \( U_n(r) \) and also to compute distorted waves \( \phi_{l_n}(k_n,r) \), \( \eta_{l_n}(k_n, r) \), \( \theta_{l_n}(k_n, r) \) and \( \zeta_{l_n}(k_n, r) \) from their respective definition differential equations, i.e.

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

for allowed waves ( DistortedWave \( \phi_{l_n}(k_n,r) \) and IrregularWave \( \eta_{l_n}(k_n, r) \) ) and

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

for forbidden waves ( ForbiddenWave \( \theta_{l_n}(k_n, r) \) and HyperbolicWave \( \zeta_{l_n}(k_n, r) \) ).

Constructor & Destructor Documentation

DistortingPotential::DistortingPotential ( )
DistortingPotential::DistortingPotential ( int  n,
double  rmax = 0. 
DistortingPotential::DistortingPotential ( double  k,
double  rmax = 0. 
DistortingPotential::DistortingPotential ( DistortingPotential const &  U)

Member Function Documentation

double DistortingPotential::getConstant ( ) const

Return the asymptotic constant around zero,

\[ a = \lim_{r \rightarrow 0+} \left( \frac{1}{r} + U(r) \right) \ . \]

double DistortingPotential::getFarRadius ( ) const

Return a radius sufficiently far from the atom. The radial orbital ought to be small here.

double DistortingPotential::getTurningPoint ( ) const

This is only a compulsory pure-virtual function of the base class; it has no physical meaning in DistortingPotential.

std::pair<double,int> DistortingPotential::getZeroAsymptotic ( double  x) const
xEvaluation radius.
Pair (y,k) that can be used to reconstruct the value of the potential,

\[ U(x) = y \cdot r^k\ . \]

double DistortingPotential::k ( ) const
int DistortingPotential::n ( ) const
double DistortingPotential::operator() ( double  x) const

Evaluate the distorting potential. At the moment, it is hard-coded, and only for \( n = 1 \) state, which is

\[ U(r) = -\left(1 + \frac{1}{r}\right) \mathrm{e}^{-2r} \ . \]

Implement runtime generation of distorting potentials.
xCoordinate where to evaluate.

Implements RadialFunction< double >.

DistortingPotential DistortingPotential::operator= ( DistortingPotential const &  V)
bool DistortingPotential::operator== ( DistortingPotential const &  V) const
double DistortingPotential::plusMonopole ( double  x) const


\[ U'(r) = U(r) + \frac{1}{r} \ . \]

The function handles correctly the input \( r = 0 \).

void DistortingPotential::toFile ( const char *  filename) const

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