The NEB and min-mode following (dimer/Lanczos) saddle point finding methods use a force
projection in order to direct the optimizers towards minimum energy paths and saddle points.
These modifications to the force mean that the energy is no longer consistent with the
force being optimized. Because of this, we can only use optimizers that are solely based
upon the force (and not the energy). The quasi-Newton and quick-min (IBRION=1 and 3 respectively)
optimizers that are built into VASP are both force-based, but the conjugate-gradient method (IBRION=2)
is not.
Here, we present a set of optimizers that are all force-based so they can be used with the NEB
and min-mode following methods. To use them, the INCAR must set IBRION=3 and POTIM=0, to disable
the built in optimizers. Then, the IOPT parameter will select one of the following methods.
This version of quick-min is essential the same as what has been implemented in vasp. The
conjugate-gradient method is different in that is uses a Newton's line optimizer,
and are entirely force based. The LBFGS is also different in that the NEB can be optimized
globally, instead of image-by-image. The FIRE optimizer is an interesting new optimizer which has
similarities to quick-min, but tends to be faster. The steepest descent method is provided
primarily for testing. We recommend using CG or LBFGS when accurate forces are available. This
is essential for evaluating curvatures. For high
forces (far from the minimum) or inaccurate forces (close to the minimum) the quick-min or FIRE
methods are recommended. These two methods do not rely on curvatures, and tend to be less
aggressive, better behaved, but also less efficient than CG/LBFGS.
Here is a recent paper discussing the performance of these different optimizers with the NEB.
The min-mode following methods can only be used with one of these methods. If IOPT is not set
in a dimer run, the job with die with a corresponding error message.
Optimizer input parameters
The following parameters are read from the INCAR file.
(IOPT = 0) Use VASP optimizers specified from IBRION (default)
(IOPT = 1) LBFGS = Limited-memory Broyden-Fletcher-Goldfarb-Shanno
(IOPT = 2) CG = Conjugate Gradient
(IOPT = 3) QM = Quick-Min
(IOPT = 4) SD = Steepest Descent
(IOPT = 7) FIRE = Fast Inertial Relaxation Engine
Required Parameters
Parameter |
Default |
Description |
IOPT | 0 | Default is to use the VASP optimizers |
IBRION | 3 | Specify that VASP do molecular dynamics (with zero time step) |
POTIM | 0 | Zero time step so that VASP does not move the ions |
LBFGS Parameters (IOPT = 1)
Parameter |
Default |
Description |
MAXMOVE | 0.2 | Maximum allowed step size for translation |
ILBFGSMEM | 20 | Number of steps saved when building the inverse Hessian matrix |
LGLOBAL | .TRUE. | Optimize the NEB globally instead of image-by-image |
LAUTOSCALE | .TRUE. | Automatically determines INVCURV |
INVCURV | 0.01 | Initial inverse curvature, used to construct the inverse Hessian matrix |
LLINEOPT | .FALSE. | Use a force based line minimizer for translation |
FDSTEP | 5E-3 | Finite difference step size for line optimizer |
CG Parameters (IOPT = 2)
Parameter |
Default |
Description |
MAXMOVE | 0.2 | Maximum allowed step size for translation |
FDSTEP | 5E-3 | Finite difference step size to calculate curvature |
QM Parameters (IOPT = 3)
Parameter |
Default |
Description |
MAXMOVE | 0.2 | Maximum allowed step size for translation |
TIMESTEP | 0.1 | Dynamical time step |
SD Parameters (IOPT = 4)
Parameter |
Default |
Description |
MAXMOVE | 0.2 | Maximum allowed step size for translation |
SDALPHA | 0.01 | Ratio between force and step size |
FIRE Parameters (IOPT = 7)
Parameter |
Default |
Description |
MAXMOVE | 0.2 | Maximum allowed step size for translation |
TIMESTEP | 0.1 | Initial dynamical time step |
FTIMEMAX | 1.0 | Maximum dynamical time step allowed |
FTIMEDEC | 0.5 | Factor to decrease dt |
FTIMEINC | 1.1 | Factor to increase dt |
FALPHA | 0.1 | Parameter that controls velocity damping |
FALPHADEC | 0.99 | Factor to decrease alpha |
FNMIN | 5 | Minimum number of iterations before adjusting alpha and dt |
|