20 #ifndef JDFTX_ELECTRONIC_SCF_H 21 #define JDFTX_ELECTRONIC_SCF_H 23 #include <electronic/common.h> 24 #include <electronic/Everything.h> 25 #include <electronic/BandMinimizer.h> 46 static double eigDiffRMS(
const std::vector<diagMatrix>&,
const std::vector<diagMatrix>&,
const Everything& e);
50 double sync(
double x)
const;
51 double cycle(
double dEprev, std::vector<double>& extraValues);
52 void report(
int iter);
55 size_t variableSize()
const;
57 void writeVariable(
const SCFvariable&, FILE*)
const;
68 double eigDiffRMS(
const std::vector<diagMatrix>&,
const std::vector<diagMatrix>&)
const;
Pulay mixing to optimize self-consistent field optimization .
Definition: Pulay.h:35
std::vector< ScalarField > ScalarFieldArray
dynamic size collection of real space scalar fields
Definition: ScalarFieldArray.h:32
complex dot(const Tptr &X, const Tptr &Y)
Definition: Operators.h:196
Self-Consistent Field method for converging electronic state.
Definition: SCF.h:38
Pulay mixing algorithm template.
std::vector< matrix > rhoAtom
atomic density matrices (or corresponding potential) [DFT+U only]
Definition: SCF.h:34
ScalarFieldArray n
electron density (or potential)
Definition: SCF.h:32
Operators specific to the electronic code.
Definition: Everything.h:41
ScalarFieldArray tau
KE density (or potential) [mGGA only].
Definition: SCF.h:33
Special class for storing real reciprocal-space kernels encountered ever so often for convolutions...
Definition: ScalarField.h:180
Variable that is mixed during SCF Component names are density-like, but when mixing potential...
Definition: SCF.h:31
void axpy(double alpha, const Tptr &X, Tptr &Y)
Generic axpy for complex data types (Note: null pointers are treated as zero)
Definition: Operators.h:158