lammps/doc/minimize.html

126 lines
5.3 KiB
HTML
Raw Normal View History

<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>minimize command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>minimize tolerance maxiter maxeval
</PRE>
<UL><LI>tolerance = stopping tolerance
<LI>maxiter = max iterations of minimizer
<LI>maxeval = max number of total force/energy evaluations
</UL>
<P><B>Examples:</B>
</P>
<PRE>minimize 1.0e-4 100 1000
</PRE>
<P><B>Description:</B>
</P>
<P>Perform an energy minimization of the system, by adjusting each atom's
atomic coordinates. The algorithm used is set by the
<A HREF = "min_style.html">min_style</A> command. Minimize commands can be
interspersed with <A HREF = "run.html">run</A> 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.
</P>
<P>Alternate means of relaxing a system are to run dynamics with a small
or <A HREF = "fix_nve_limit.html">limited timestep</A>. Or dynamics can be run
using <A HREF = "fix_viscous.html">fix viscous</A> to impose a damping force that
slowly drains all kinetic energy from the system. The <A HREF = "pair_soft.html">pair_style
soft</A> potential can be used to un-overlap atoms while
running dynamics.
</P>
<P>Following the minimization a statistical summary is printed that
includes the energy change and convergence criteria information.
</P>
<P>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:
</P>
<UL><LI>the change in energy between outer iterations is less than the tolerance
<LI>the number of outer iterations exceeds maxiter
<LI>the number of force evaluations exceeds maxeval
<LI>the 3N dimensional force vector goes (nearly) to zero
</UL>
<P>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).
</P>
<P>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.
</P>
<P>For optimal convergence, a <A HREF = "pair_style.html">pair style</A> 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 <I>pair/lj/charmm/coul/charmm</I> and <I>pair/lj/charmm/coul/long</I>.
If a <I>soft</I> potential is used the Astop value is used for the
prefactor (no time dependence).
</P>
<P>Only some fixes (typically those that apply force constraints) are
invoked during minimization. See the doc pages for individual
<A HREF = "fix.html">fix</A> commands to see which ones are relevant.
</P>
<P>IMPORTANT NOTE: Some fixes which are invoked during minimization have
an associated potential energy. For that energy to be included in the
total potential energy of the system (the quantity being minimized),
you MUST enable the <A HREF = "fix_modify.html">fix_modify</A> <I>energy</I> option for
that fix. The doc pages for individual <A HREF = "fix.html">fix</A> commands
specify if this should be done.
</P>
<P><B>Restrictions:</B>
</P>
<P>Features that are not yet implemented are listed here, in case someone
knows how they could be coded:
</P>
<P>It is an error to use <A HREF = "fix_shake.html">fix shake</A> with minimization
because it turns off bonds that should be included in the potential
energy of the system. 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.
</P>
<P><A HREF = "fix_rigid.html">Fix rigid</A> is also not supported by minimization. It
is not an error to have it defined, but the energy minimization will
not keep the defined body(s) rigid during the minimization. Note that
if bonds, angles, etc internal to a rigid body have been turned off
(e.g. via <A HREF = "neigh_modify.html">neigh_modify exclude</A>), they will not
contribute to the potential energy which is probably not what is
desired.
</P>
<P>The volume of the simulation domain is not allowed to change during a
minimization. Ideally we would allow a fix such as <I>npt</I> 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.
</P>
<P>Pair potentials that produce torque on a particle (e.g. <A HREF = "pair_gran.html">granular
potentials</A> or the <A HREF = "pair_gayberne.html">GayBerne
potential</A> for ellipsoidal particles) are not
relaxed by a minimization. More specifically, radial relaxations are
induced, but no rotations are induced by a minimization, so such a
system will not fully relax.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "min_modify.html">min_modify</A>, <A HREF = "min_style.html">min_style</A>,
<A HREF = "run_style.html">run_style</A>
</P>
<P><B>Default:</B> none
</P>
</HTML>