Kindfield
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Friends Pages
hydrogenmolecule.h
Go to the documentation of this file.
1 #ifndef HYDROGENMOLECULE_H
2 #define HYDROGENMOLECULE_H
3 
5 
6 #include <armadillo>
7 #include <fstream>
8 
9 using namespace arma;
10 
12 {
13 public:
14  HydrogenMolecule(double distance = 1.4);
15  virtual ~HydrogenMolecule();
16 
17  virtual double coupledIntegral(int p, int q, int r, int s);
18  virtual double kineticIntegral(int p, int q);
19  virtual double nuclearAttractionIntegral(int p, int q);
20  virtual double overlapIntegral(int p, int q);
21 
22  virtual uint nBasisFunctions();
23  virtual uint nParticles();
24 
25  mat R;
26 
27  rowvec alpha;
28 
29  // Constants to be precalculated
30  const double powPi5over2 = pow(M_PI, 5./2.);
31  double boysFunction(double arg);
32 
33  virtual double additionalEnergyTerms();
34 private:
35  int nNuclei = 2;
36  int nOrbitalsPerNuclei = 4;
37 
38  // ElectronSystem interface
39 public:
40  double uncoupledIntegral(int p, int q);
41 };
42 
44  return 2;
45 }
46 
48 {
49  return nNuclei * nOrbitalsPerNuclei;
50 }
51 
52 #endif // HYDROGENMOLECULE_H