Hex
1.0
Hydrogen-electron collision solver
|
Distorting potential information. More...
#include <potential.h>
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) | |
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) \) ).
|
inline |
|
inline |
|
inline |
|
inline |
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.
|
inline |
This is only a compulsory pure-virtual function of the base class; it has no physical meaning in DistortingPotential.
|
inline |
x | Evaluation radius. |
\[ U(x) = y \cdot r^k\ . \]
|
inline |
|
inline |
|
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} \ . \]
x | Coordinate 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 |