Kindfield
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Friends Pages
Functions
helium-tests.cpp File Reference
#include <iostream>
#include <unittest++/UnitTest++.h>
#include <unittest++/Test.h>
#include <unittest++/TestReporterStdout.h>
#include <unittest++/TestRunner.h>
#include "solvers/hartreesolver.h"
#include "solvers/restrictedhartreefocksolver.h"
#include <electronsystems/helium/heliumhartree.h>
#include <electronsystems/hydrogen/hydrogenmolecule.h>
#include <electronsystems/hydrogen/multihydrogen.h>
#include <armadillo>
#include <fstream>
Include dependency graph for helium-tests.cpp:

Go to the source code of this file.

Functions

 SUITE (Helium)
 

Function Documentation

SUITE ( Helium  )

Definition at line 19 of file helium-tests.cpp.

19  {
20 
21  TEST(MatrixElement) {
22  Helium basisFunction;
23  int p = 0;
24  int q = 1;
25  int r = 2;
26  int s = 3;
27 
28  double value = basisFunction.coupledIntegral(p,r,q,s);
29 
30  CHECK_CLOSE(0.075820496873881579, value, 1e-9);
31  }
32 
33  TEST(KineticIntegral) {
34  Helium basisFunction;
35  int p = 0;
36  int q = 3;
37 
38  double value = basisFunction.kineticIntegral(p,q);
39 
40  CHECK_CLOSE(0.0204654960291562, value, 1e-9);
41  }
42 
43  TEST(NuclearAttractionIntegral) {
44  Helium basisFunction;
45  int p = 1;
46  int q = 2;
47 
48  double value = basisFunction.nuclearAttractionIntegral(p,q);
49 
50  CHECK_CLOSE(-1.78867607774792, value, 1e-9);
51  }
52 
53  TEST(OverlapIntegral) {
54  Helium basisFunction;
55  int p = 3;
56  int q = 2;
57 
58  double value = basisFunction.overlapIntegral(p, q);
59 
60  CHECK_CLOSE(0.01891203832678, value, 1e-9);
61  }
62 
63  TEST(HeliumAdvanceMany) {
64  Helium basisFunction;
65  HartreeSolver solver(&basisFunction);
66  solver.reset();
67  for(int i = 0; i < 500; i++) {
68  solver.advance();
69  }
70  double value = solver.energy();
71  CHECK_CLOSE(-2.855160382370257377, value, 1e-7);
72  }
73 
74 }