20 #ifndef JDFTX_CORE_MINIMIZEPARAMS_H 21 #define JDFTX_CORE_MINIMIZEPARAMS_H 75 nIterations(100), nDim(1), history(15), fpLog(stdout),
76 linePrefix(
"CG\t"), energyLabel(
"E"), energyFormat(
"%22.15le"),
77 knormThreshold(0), energyDiffThreshold(0), nEnergyDiff(2),
78 alphaTstart(1.0), alphaTmin(1e-10), updateTestStepSize(true),
79 alphaTreduceFactor(0.1), alphaTincreaseFactor(3.0), nAlphaAdjustMax(3),
80 wolfeEnergy(1e-4), wolfeGradient(0.9),
86 #endif // JDFTX_CORE_MINIMIZEPARAMS_H double alphaTmin
minimum value of the test-step size (algorithm gives up when difficulties cause alphaT to fall below ...
Definition: MinimizeParams.h:60
Limited memory version of the BFGS algorithm.
Definition: MinimizeParams.h:36
LinminMethod
Line minimization method.
Definition: MinimizeParams.h:41
int nIterations
Maximum number of iterations (default 100)
Definition: MinimizeParams.h:48
Hestenes-Stiefel (preconditioned) conjugate gradients.
Definition: MinimizeParams.h:35
int history
Number of past variables and residuals to store (BFGS only)
Definition: MinimizeParams.h:50
Parameters to control the minimization algorithm.
Definition: MinimizeParams.h:29
double energyDiffThreshold
stop when energy change is below this for nEnergyDiff successive iterations (default: 0) ...
Definition: MinimizeParams.h:56
Cubic line search terminated by Wolfe conditions, possibly without a test step.
Definition: MinimizeParams.h:45
double alphaTreduceFactor
Factor to reduce alphaT on difficulties (default 0.1)
Definition: MinimizeParams.h:63
move by a constant multiple (=alphaTstart) of the search direction (not recommended for CG) ...
Definition: MinimizeParams.h:43
double alphaTstart
initial value for the test-step size (default: 1.0)
Definition: MinimizeParams.h:59
int nEnergyDiff
number of successive iterations for energyDiffThreshold check (default: 2)
Definition: MinimizeParams.h:57
Steepest Descent (always along negative (preconditioned) gradient)
Definition: MinimizeParams.h:37
double knormThreshold
stop when norm of residual against preconditioner falls below this (default: 0)
Definition: MinimizeParams.h:55
default method recommended by the direction update scheme
Definition: MinimizeParams.h:42
MinimizeParams()
Set the default values.
Definition: MinimizeParams.h:73
double wolfeGradient
Wolfe criterion dimensionless threshold for gradient.
Definition: MinimizeParams.h:68
bool updateTestStepSize
set alphaT=alpha after every iteration if true (default: true)
Definition: MinimizeParams.h:61
double wolfeEnergy
Wolfe criterion dimensionless threshold for energy.
Definition: MinimizeParams.h:67
double alphaTincreaseFactor
Max ratio of alpha to alphaT, increase alphaT by this factor otherwise (default 3.0)
Definition: MinimizeParams.h:64
Polak-Ribiere (preconditioned) conjugate gradients (default)
Definition: MinimizeParams.h:33
const char * linePrefix
prefix for each output line of minimizer, useful for nested minimizations (default "CG\t") ...
Definition: MinimizeParams.h:52
const char * energyLabel
Label for the minimized quantity (default "E")
Definition: MinimizeParams.h:53
Fletcher-Reeves (preconditioned) conjugate gradients.
Definition: MinimizeParams.h:34
int nDim
Dimension of optimization space; used only for knormThreshold (default 1)
Definition: MinimizeParams.h:49
int nAlphaAdjustMax
maximum number of times to alpha adjust attempts (default 3)
Definition: MinimizeParams.h:65
const char * energyFormat
printf format for the minimized quantity (default "%22.15le")
Definition: MinimizeParams.h:54
FILE * fpLog
Stream to log iterations to.
Definition: MinimizeParams.h:51
DirectionUpdateScheme
Search direction update scheme.
Definition: MinimizeParams.h:32
bool fdTest
whether to perform a finite difference test before each minimization (default false) ...
Definition: MinimizeParams.h:70
use the energy at a test step location to find the minimum along the line (default) ...
Definition: MinimizeParams.h:44