Hex  1.0
Hydrogen-electron collision solver
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
potential.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
2  * *
3  * / / / / __ \ \ / / *
4  * / /__ / / / _ \ \ \/ / *
5  * / ___ / | |/_/ / /\ \ *
6  * / / / / \_\ / / \ \ *
7  * *
8  * Jakub Benda (c) 2014 *
9  * Charles University in Prague *
10  * *
11 \* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
12 
13 #ifndef HEX_DISTORTING_POTENTIAL
14 #define HEX_DISTORTING_POTENTIAL
15 
16 #include "arrays.h"
17 #include "hydrogen.h"
18 #include "special.h"
19 
35 extern const rArrays Ucoeffs;
36 
67 class DistortingPotential : public RadialFunction<double>
68 {
69 public:
70  // constructors
71  // @{
72  DistortingPotential() : n_(0), k_(0.), rmax_(0) {}
73  DistortingPotential(int n, double rmax = 0.) : n_(n), k_(0.), rmax_(rmax) {}
74  DistortingPotential(double k, double rmax = 0.) : n_(0), k_(k), rmax_(rmax) {}
75  DistortingPotential(DistortingPotential const & U) : n_(U.n_), k_(U.k_), rmax_(U.rmax_) {}
76  // @}
77 
82 
86  bool operator== (DistortingPotential const & V) const;
87 
99  double operator() (double x) const;
100 
107  double getTurningPoint () const { return 0.; }
108 
117  std::pair<double,int> getZeroAsymptotic (double x) const { return std::make_pair(-1,-1); }
118 
128  double plusMonopole(double x) const;
129 
138  double getConstant() const;
139 
146  double getFarRadius() const;
147 
148  void toFile(const char * filename) const;
149  int n() const { return n_; }
150  double k() const { return k_; }
151 
152 private:
153  int n_; // principal quantum number of distorting state
154  double k_; // wavenumber of distorting state
155  double rmax_; // far radius
156 };
157 
158 #endif
Distorting potential information.
Definition: potential.h:67
void toFile(const char *filename) const
Definition: potential.cpp:140
double plusMonopole(double x) const
Add multipole field potential to the distorting potential.
Definition: potential.cpp:76
int n() const
Definition: potential.h:149
DistortingPotential operator=(DistortingPotential const &V)
Assignment.
Definition: potential.cpp:38
DistortingPotential(DistortingPotential const &U)
Definition: potential.h:75
double operator()(double x) const
Evaluate the distorting potential.
Definition: potential.cpp:52
double getConstant() const
Return the zero limit.
Definition: potential.cpp:86
double getTurningPoint() const
Classical turning point.
Definition: potential.h:107
std::pair< double, int > getZeroAsymptotic(double x) const
Near-zero asymptotic behaviour.
Definition: potential.h:117
const rArrays Ucoeffs
U polynomial coefficients.
Definition: potential.cpp:22
bool operator==(DistortingPotential const &V) const
Comparison.
Definition: potential.cpp:46
A comfortable data array class.
Definition: arrays.h:151
DistortingPotential(int n, double rmax=0.)
Definition: potential.h:73
double getFarRadius() const
Return largest evaluated coordinate.
Definition: potential.cpp:104
DistortingPotential(double k, double rmax=0.)
Definition: potential.h:74
DistortingPotential()
Definition: potential.h:72
double k() const
Definition: potential.h:150
Base class for radial functions.
Definition: special.h:536