JDFTx  1.7.0
IonicMinimizer Class Reference

Ionic minimizer. More...

#include <IonicMinimizer.h>

Inheritance diagram for IonicMinimizer:
Minimizable< IonicGradient >

Public Member Functions

 IonicMinimizer (Everything &e, bool dynamicsMode=false)
void step (const IonicGradient &dir, double alpha)
 Move the state in parameter space along direction dir with scale alpha.
double compute (IonicGradient *grad, IonicGradient *Kgrad)
 Returns the objective function at the current state and store the gradient in grad and preconditioned gradient in Kgrad, if non-null.
bool report (int iter)
void constrain (IonicGradient &)
 Constrain search directions to the space of free directions for minimize.
double safeStepSize (const IonicGradient &dir) const
 enforces IonicMinimizer::maxAtomTestDisplacement on test step size
double sync (double x) const
 All processes minimize together; make sure scalars are in sync to round-off error.
double minimize (const MinimizeParams &params)
 minor addition to Minimizable::minimize to invoke charge analysis at final positions
- Public Member Functions inherited from Minimizable< IonicGradient >
double minimize (const MinimizeParams &params)
 Minimize this objective function with algorithm controlled by params and return the minimized value.
void fdTest (const MinimizeParams &params)

Static Public Attributes

static const double maxAtomTestDisplacement
 maximum allowed atom displacement in test step
static const double maxWfnsDragDisplacement
 maximum atom displacement for which wavefunction drag is allowed

Detailed Description

Ionic minimizer.

Member Function Documentation

◆ report()

bool IonicMinimizer::report ( int  iter)

Override for optional processing/reporting after each/every few iterations It should return whether the state was modified

Reimplemented from Minimizable< IonicGradient >.

The documentation for this class was generated from the following file: