1 #ifndef HARTREEFOCKSOLVER_H
2 #define HARTREEFOCKSOLVER_H
21 virtual void advance();
27 virtual double energy() = 0;
28 double convergenceTreshold()
const;
29 void setConvergenceTreshold(
double convergenceTreshold);
31 int iterationsUsed()
const;
33 int nIterationsMax()
const;
34 void setNIterationsMax(
int nIterationsMax);
36 const mat &uncoupledMatrix()
const;
37 const mat &overlapMatrix()
const;
38 const mat &transformationMatrix()
const;
39 const field<mat> &coupledMatrix()
const;
41 double densityMixFactor()
const;
42 void setDensityMixFactor(
double densityMixFactor);
45 void setupIntegralMatrices();
46 void normalizeCoefficientMatrix(uint nParticles, mat &coefficientMatrix);
49 void setupCoupledMatrix();
50 void setupOverlapMatrix();
51 void setupUncoupledMatrix();
52 void cleanUpCoupledMatrix();
53 void allocateCoupledMatrix();
54 void setupTransformationMatrix();
59 mat m_uncoupledMatrix;
61 mat m_transformationMatrix;
62 field<mat> m_coupledMatrix;
66 double m_convergenceTreshold;
67 double m_previousFockEnergyRMS;
69 double m_densityMixFactor;
73 #endif // HARTREEFOCKSOLVER_H