Kindfield
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Friends Pages
restrictedhartreefocksolver.h
Go to the documentation of this file.
1 #ifndef RESTRICTEDHARTREEFOCKSOLVER_H
2 #define RESTRICTEDHARTREEFOCKSOLVER_H
3 
5 class ElectronSystem;
6 
8 {
9 public:
11 
13 
14  virtual void setup();
15  virtual void advance();
16  virtual void solve();
17 
18  virtual double energy();
19  const mat &densityMatrix() const;
20  const mat& coefficientMatrix() const;
21  void setInitialCoefficientMatrix(const mat &coefficients);
22 private:
23  void setupFockMatrix();
24  void setupDensityMatrix();
25  void resetCoefficientMatrix();
26  void resetFockMatrix();
27  double coupledMatrixTilde(int p, int q, int r, int s);
28 
29  // Matrices
30  mat m_fockMatrix;
31  mat m_densityMatrix;
32  mat m_coefficientMatrix;
33  vec m_fockEnergies;
34  mat m_initialCoefficientMatrix;
35 
36  // Variables
37  double m_energy = 0;
38  bool m_initialCoefficientMatrixSetManually;
39 };
40 
41 #endif // RESTRICTEDHARTREEFOCKSOLVER_H