JDFTx  1.7.0
MinimizeParams Struct Reference

Parameters to control the minimization algorithm. More...

#include <MinimizeParams.h>

Public Types

enum  DirectionUpdateScheme {
  PolakRibiere , FletcherReeves , HestenesStiefel , LBFGS ,
 Search direction update scheme. More...
enum  LinminMethod { DirUpdateRecommended , Relax , Quad , CubicWolfe }
 Line minimization method. More...

Public Member Functions

 MinimizeParams ()
 Set the default values.

Public Attributes

enum MinimizeParams::DirectionUpdateScheme dirUpdateScheme
enum MinimizeParams::LinminMethod linminMethod
int nIterations
 Maximum number of iterations (default 100)
int nDim
 Dimension of optimization space; used only for knormThreshold (default 1)
int history
 Number of past variables and residuals to store (BFGS only)
FILE * fpLog
 Stream to log iterations to.
const char * linePrefix
 prefix for each output line of minimizer, useful for nested minimizations (default "CG\t")
const char * energyLabel
 Label for the minimized quantity (default "E")
const char * energyFormat
 printf format for the minimized quantity (default "%22.15le")
double knormThreshold
 stop when norm of residual against preconditioner falls below this (default: 0)
double energyDiffThreshold
 stop when energy change is below this for nEnergyDiff successive iterations (default: 0)
int nEnergyDiff
 number of successive iterations for energyDiffThreshold check (default: 2)
double alphaTstart
 initial value for the test-step size (default: 1.0)
double alphaTmin
 minimum value of the test-step size (algorithm gives up when difficulties cause alphaT to fall below this value) (default:1e-10)
bool updateTestStepSize
 set alphaT=alpha after every iteration if true (default: true)
double alphaTreduceFactor
 Factor to reduce alphaT on difficulties (default 0.1)
double alphaTincreaseFactor
 Max ratio of alpha to alphaT, increase alphaT by this factor otherwise (default 3.0)
int nAlphaAdjustMax
 maximum number of times to alpha adjust attempts (default 3)
double wolfeEnergy
 Wolfe criterion dimensionless threshold for energy.
double wolfeGradient
 Wolfe criterion dimensionless threshold for gradient.
bool fdTest
 whether to perform a finite difference test before each minimization (default false)

Detailed Description

Parameters to control the minimization algorithm.

Member Enumeration Documentation

◆ DirectionUpdateScheme

Search direction update scheme.


Polak-Ribiere (preconditioned) conjugate gradients (default)


Fletcher-Reeves (preconditioned) conjugate gradients.


Hestenes-Stiefel (preconditioned) conjugate gradients.


Limited memory version of the BFGS algorithm.


Steepest Descent (always along negative (preconditioned) gradient)

◆ LinminMethod

Line minimization method.


default method recommended by the direction update scheme


move by a constant multiple (=alphaTstart) of the search direction (not recommended for CG)


use the energy at a test step location to find the minimum along the line (default)


Cubic line search terminated by Wolfe conditions, possibly without a test step.

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