Kindfield
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Friends Pages
heliumhartree.cpp
Go to the documentation of this file.
1 #include "heliumhartree.h"
2 
11 {
12  alpha = zeros(4);
13  alpha(0) = 0.298073;
14  alpha(1) = 1.242567;
15  alpha(2) = 5.782948;
16  alpha(3) = 38.474970;
17 }
18 
19 double Helium::coupledIntegral(int p, int r, int q, int s) {
20  double denominator = (alpha(p) + alpha(q))*(alpha(r) + alpha(s))*sqrt(alpha(p) + alpha(q) + alpha(r) + alpha(s));
21  return 2 * powPi5over2 / denominator;
22 }
23 
31 double Helium::kineticIntegral(int p, int q) {
32  double alpha_p = alpha(p);
33  double alpha_q = alpha(q);
34  return 3*pow(M_PI, 3.0/2.0)*alpha_q/(pow(alpha_p, 3.0/2.0)*pow(1 + alpha_q/alpha_p, 5.0/2.0));
35 }
36 
44 double Helium::nuclearAttractionIntegral(int p, int q) {
45  double alpha_p = alpha(p);
46  double alpha_q = alpha(q);
47  return -4*M_PI/(alpha_p*(1 + alpha_q/alpha_p));
48 }
49 
50 double Helium::overlapIntegral(int p, int q) {
51  double alpha_p = alpha(p);
52  double alpha_q = alpha(q);
53  return pow(M_PI, 3.0/2.0)/(pow(alpha_p, 3.0/2.0)*pow(1 + alpha_q/alpha_p, 3.0/2.0));
54 }
55 
57 {
58  return 0;
59 }
60 
62 {
63  return 4;
64 }
65 
66 
67 double Helium::uncoupledIntegral(int p, int q)
68 {
69  return kineticIntegral(p,q) + nuclearAttractionIntegral(p,q);
70 }