JDFTx  1.1.0
BandMinimizer Class Reference
Inheritance diagram for BandMinimizer:
Minimizable< ColumnBundle >

Public Member Functions

 BandMinimizer (Everything &e, int qActive, bool precond=true)
 
double compute (ColumnBundle *grad)
 Returns the objective function at the current state and store the gradient in grad, if non-null.
 
void step (const ColumnBundle &dir, double alpha)
 Move the state in parameter space along direction dir with scale alpha.
 
ColumnBundle precondition (const ColumnBundle &grad)
 
bool report (int iter)
 
void constrain (ColumnBundle &)
 
- Public Member Functions inherited from Minimizable< ColumnBundle >
virtual double sync (double x) const
 Override to synchronize scalars over MPI processes (if the same minimization is happening in sync over many processes)
 
double minimize (const MinimizeParams &params)
 Minimize this objective function with algorithm controlled by params and return the minimized value.
 
void fdTest (const MinimizeParams &params)
 

Public Attributes

int qActive
 
ColumnBundle Kgrad
 Quantum number of the subspace that is being minimized.
 

Member Function Documentation

void BandMinimizer::constrain ( ColumnBundle )
virtual

Constrain an arbitrary vector to the space of free directions for minimize. Used only to generate a random direction for fdTest within the valid minimization subspace.

Reimplemented from Minimizable< ColumnBundle >.

ColumnBundle BandMinimizer::precondition ( const ColumnBundle grad)
virtual

Override to enable preconditioning: return the preconditioned gradient, given the gradient The last call to compute() is guaranteed to be at the same position, so a cached result may be returned

Reimplemented from Minimizable< ColumnBundle >.

bool BandMinimizer::report ( int  iter)
virtual

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

Reimplemented from Minimizable< ColumnBundle >.


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