Hex: DistortingPotential Class Reference

| Hex 2.2 Hydrogen-electron collision solver

Public Member Functions
DistortingPotential Class Reference

Distorting potential information. More...

`#include <potential.h>`

Inheritance diagram for DistortingPotential:
[legend]
Collaboration diagram for DistortingPotential:
[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() [1/4]

DistortingPotential::DistortingPotential | ( |  | ) |

inline

## ◆ DistortingPotential() [2/4]

DistortingPotential::DistortingPotential | ( | int | n,
|  | double | rmax = `0.`
| ) |  |

inline

## ◆ DistortingPotential() [3/4]

DistortingPotential::DistortingPotential | ( | double | k,
|  | double | rmax = `0.`
| ) |  |

inline

## ◆ DistortingPotential() [4/4]

DistortingPotential::DistortingPotential | ( | DistortingPotential const & | U | ) |

inline

## Member Function Documentation

## ◆ getConstant()

double DistortingPotential::getConstant | ( |  | ) | const

Return the asymptotic constant around zero,

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

## ◆ getFarRadius()

double DistortingPotential::getFarRadius | ( |  | ) | const

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

## ◆ getTurningPoint()

double DistortingPotential::getTurningPoint | ( |  | ) | const

inline

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

## ◆ getZeroAsymptotic()

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

inline

Parameters

  x | Evaluation radius.

Returns
  Pair (y,k) that can be used to reconstruct the value of the potential,

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

## ◆ k()

double DistortingPotential::k | ( |  | ) | const

inline

## ◆ n()

int DistortingPotential::n | ( |  | ) | const

inline

## ◆ operator()()

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

Todo:
  Implement runtime generation of distorting potentials.

Parameters

  x | Coordinate where to evaluate.

## ◆ operator=()

DistortingPotential DistortingPotential::operator= | ( | DistortingPotential const & | V | ) |

## ◆ operator==()

bool DistortingPotential::operator== | ( | DistortingPotential const & | V | ) | const

## ◆ plusMonopole()

double DistortingPotential::plusMonopole | ( | double | x | ) | const

Returns

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

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

## ◆ toFile()

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

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

- src/potential.h
- src/potential.cpp