Kindfield
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Friends Pages
heliumhartree.h
Go to the documentation of this file.
1 #ifndef HELIUMHARTREE_H
2 #define HELIUMHARTREE_H
3 
5 
6 #include <armadillo>
7 
8 using namespace arma;
9 
10 class Helium : public ElectronSystem
11 {
12 public:
13  Helium();
14 
15  rowvec alpha;
16 
17  // Constants to be precalculated
18  const double powPi5over2 = pow(M_PI, 5./2.);
19  double banana() const;
20  void setBanana(double banana);
21  virtual double kineticIntegral(int p, int q);
22  virtual double nuclearAttractionIntegral(int p, int q);
23 
24  // ElectronSystem interface
25 public:
26  virtual double uncoupledIntegral(int p, int q);
27 
28  virtual double coupledIntegral(int p, int r, int q, int s);
29  virtual double overlapIntegral(int p, int q);
30  virtual double additionalEnergyTerms();
31 
32  virtual uint nBasisFunctions();
33  virtual uint nParticles();
34 };
35 
36 inline uint Helium::nParticles() {
37  return 2;
38 }
39 
40 #endif // HELIUMHARTREE_H