21 #ifndef JDFTX_ELECTRONIC_NONLINEARPCM_H 22 #define JDFTX_ELECTRONIC_NONLINEARPCM_H 24 #include <fluid/PCM.h> 45 void loadState(
const char* filename);
46 void saveState(
const char* filename)
const;
47 void dumpDensities(
const char* filenamePattern)
const;
62 double pMol, ionNbulk, ionZ;
66 std::shared_ptr<RealKernel> metric;
68 std::shared_ptr<class LinearPCM> linearPCM;
72 double cycle(
double dEprev, std::vector<double>& extraValues);
83 void phiToState(
bool setState);
86 #endif // JDFTX_ELECTRONIC_NONLINEARPCM_H Pulay mixing to optimize self-consistent field optimization .
Definition: Pulay.h:35
Helper class for dielectric portion of NonlinearPCM.
Definition: PCM_internal.h:351
complex dot(const Tptr &X, const Tptr &Y)
Definition: Operators.h:196
size_t variableSize() const
Number of bytes per variable.
Definition: NonlinearPCM.h:75
std::shared_ptr< ScalarFieldTildeData > ScalarFieldTilde
A smart reference-counting pointer to ScalarFieldTildeData.
Definition: ScalarField.h:45
void axpy(double alpha, const ScalarFieldTilde &X, ScalarFieldTilde &Y) const
Scaled accumulate on variable.
Definition: NonlinearPCM.h:73
Pulay mixing algorithm template.
Helper class for ionic screening portion of NonlinearPCM.
Definition: PCM_internal.h:175
bool prefersGummel() const
Specify whether fluid prefers a gummel loop (true) or is minimized each time (false) ...
Definition: NonlinearPCM.h:43
ScalarFieldMuEps state
State of the solver = the total electrostatic potential.
Definition: NonlinearPCM.h:37
double dot(const ScalarFieldTilde &X, const ScalarFieldTilde &Y) const
Euclidean dot product. Metric applied separately for efficiency.
Definition: NonlinearPCM.h:74
Definition: NonlinearPCM.h:34
G-space radial function stored on a uniform grid (of |G|)
Definition: RadialFunction.h:28
Generic multiplet of data arrays (and specialized to triplets for vector fields in real/reciprocal sp...
Definition: Everything.h:41
Base class for all PCMs.
Definition: PCM.h:29
Nonlinear minimization templates.
Definition: NonlinearPCM.h:29
Complex number (need to define our own because we need operators for gpu code as well) ...
Definition: scalar.h:49
Definition: Minimize.h:46
Extra parameters for fluids:
Definition: FluidSolverParams.h:93
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
Object to hold all the forces.
Definition: IonicMinimizer.h:31