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
[legend]
Collaboration diagram for DistortingPotential:
Collaboration graph
[legend]

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 ( )
inline
DistortingPotential::DistortingPotential ( int  n,
double  rmax = 0. 
)
inline
DistortingPotential::DistortingPotential ( double  k,
double  rmax = 0. 
)
inline
DistortingPotential::DistortingPotential ( DistortingPotential const &  U)
inline

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
inline

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
inline
Parameters
xEvaluation radius.
Returns
Pair (y,k) that can be used to reconstruct the value of the potential,

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

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

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} \ . \]

Todo:
Implement runtime generation of distorting potentials.
Parameters
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

Returns

\[ 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: