Lattice minimizer. More...
#include <LatticeMinimizer.h>
Public Member Functions | |
| LatticeMinimizer (Everything &) | |
| void | step (const LatticeGradient &dir, double alpha) |
| Move the state in parameter space along direction dir with scale alpha. | |
| double | compute (LatticeGradient *grad, LatticeGradient *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 (LatticeGradient &) |
| Constrain search directions to the space of free directions for minimize. | |
| double | safeStepSize (const LatticeGradient &dir) const |
| Override to return maximum safe step size along a given direction. Steps can be arbitrarily large by default. | |
| double | sync (double x) const |
| All processes minimize together; make sure scalars are in sync to round-off error. | |
| void | calculateStress () |
| calculate current stress (in Eh/a0^3 units) and store to IonInfo::stress | |
| double | minimize (const MinimizeParams ¶ms) |
| minor addition to Minimizable::minimize to invoke charge analysis at final positions | |
Public Member Functions inherited from Minimizable< LatticeGradient > | |
| double | minimize (const MinimizeParams ¶ms) |
| Minimize this objective function with algorithm controlled by params and return the minimized value. | |
| void | fdTest (const MinimizeParams ¶ms) |
Friends | |
| class | IonDynamics |
Lattice minimizer.
|
virtual |
Override for optional processing/reporting after each/every few iterations It should return whether the state was modified
Reimplemented from Minimizable< LatticeGradient >.