Syntax:
minimize tolerance maxiter maxeval
Examples:
minimize 1.0e-4 100 1000
Description:
Perform an energy minimization of the system, by adjusting each atom's atomic coordinates. The algorithm used is set by the min_style command. Minimize commands can be interspersed with run commands to alternate between relaxation and dynamics. The minimizers are implemented in a robust fashion that should allow for systems with highly overlapped atoms (large energies and forces) to still be minimized by pushing the atoms off of each other.
A minimization involves an outer iteration loop which sets the search direction along which coordinates are changed. An inner iteration is then performed using a line search algorithm. The line search typically evaluates forces and energies several times to set new coordinates. The minimization stops if any of several criteria are met:
For the first criterion, the specified tolerance is unitless; it is met when the ratio of the energy delta to the energy magnitude is equal to the tolerance (e.g. one part in 10^4 in the example above).
During a minimization, the outer iteration count is treated as a timestep. Output is triggered by this timestep, e.g. thermodynamic output or dump and restart files.
For optimal convergence, a pair style that goes smoothly to 0.0 at the cutoff distance for both energy and force should typically be used though this is not required. Examples include pair/lj/charmm/coul/charmm and pair/lj/charmm/coul/long. If a soft potential is used the Astop value is used for the prefactor (no time dependence).
Only fixes that apply force constraints are invoked during minimization. The list of the currently implemented ones include fix addforce, aveforce, enforce2d, indent, lineforce, planeforce, setforce, and wall/lj93. Note that indent, wall/lj93 have an associated potential energy. If you want that energy to be included in the total potential energy of the system (the quantity being minimized), you must enable the fix_modify energy option for that fix.
Following the minimization a statistical summary is printed that includes the energy change and convergence criteria information.
Restrictions:
Two features that are not yet implemented listed here, in case someone knows how they could be coded:
Two fixes not invoked by a minimization are fix shake and fix rigid. The effect of a fix shake can be approximated during a minimization by using stiff spring constants for the bonds and/or angles that would normally be constrained by the SHAKE algorithm.
The volume of the simulation domain is not allowed to change during a minimzation. Ideally we would allow a fix such as npt to impose an external pressure that would be included in the minimization (i.e. allow the box dimensions to change), but this has not yet been implemented.
Related commands:
min_modify, min_style, run_style
Default: none