"LIGGGHTS(R)-PUBLIC WWW Site"_liws - "LIGGGHTS(R)-PUBLIC Documentation"_ld - "LIGGGHTS(R)-PUBLIC Commands"_lc :c

:link(liws,http://www.cfdem.com)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)

:line

fix nve/limit command :h3

[Syntax:]

fix ID group-ID nve/limit limitstyle xmax :pre

ID, group-ID are documented in "fix"_fix.html command
nve/limit = style name of this fix command
limitstyle = absolute or radius_ratio
xmax = maximum distance an atom can move in one timestep (distance units or relative to atom radius) :ul

[Examples:]

fix 1 all nve/limit absolute 0.1 :pre

[Description:]

Perform constant NVE updates of position and velocity for atoms in the
group each timestep.  A limit is imposed on the maximum distance an
atom can move in one timestep.  This is useful when starting a
simulation with a configuration containing highly overlapped atoms.
Normally this would generate huge forces which would blow atoms out of
the simulation box, causing LIGGGHTS(R)-PUBLIC to stop with an error.

Using this fix can overcome that problem.  Forces on atoms must still
be computable (which typically means 2 atoms must have a separation
distance > 0.0).  But large velocities generated by large forces are
reset to a value that corresponds to a displacement of length {xmax}
in a single timestep.  {Xmax} is specified in distance units; see the
"units"_units.html command for details.  The value of {xmax} should be
consistent with the neighbor skin distance and the frequency of
neighbor list re-building, so that pairwise interactions are not
missed on successive timesteps as atoms move.  See the
"neighbor"_neighbor.html and "neigh_modify"_neigh_modify.html commands
for details.

If limitstyle {absolute} is used, {xmax} is applied directly.
If limitstyle {radius_ratio} is used, a maxmimum distance per step
of {xmax}*radius is applied for each atom. This can be useful for
the simulation of poly-disperse systems. Note that this option requires
the atom radius to be stored by using an appropriate atom style.

Note that if a velocity reset occurs the integrator will not conserve
energy.  On steps where no velocity resets occur, this integrator is
exactly like the "fix nve"_fix_nve.html command.  Since forces are
unaltered, pressures computed by thermodynamic output will still be
very large for overlapped configurations.

IMPORTANT NOTE: You should not use "fix shake"_fix_shake.html in
conjunction with this fix.  That is because fix shake applies
contraint forces based on the predicted postitions of atoms after the
next timestep.  It has no way of knowing the timestep may change due
to this fix, which will cause the constraint forces to be invalid.  A
better strategy is to turn off fix shake when performing initial
dynamics that need this fix, then turn fix shake on when doing normal
dynamics with a fixed-size timestep.

[Restart, fix_modify, output, run start/stop, minimize info:]

No information about this fix is written to "binary restart
files"_restart.html.  None of the "fix_modify"_fix_modify.html options
are relevant to this fix.

This fix computes a global scalar which can be accessed by various
"output commands"_Section_howto.html#howto_8.  The scalar is the
count of how many updates of atom's velocity/position were limited by
the maximum distance criterion.  This should be roughly the number of
atoms so affected, except that updates occur at both the beginning and
end of a timestep in a velocity Verlet timestepping algorithm.  This
is a cumulative quantity for the current run, but is re-initialized to
zero each time a run is performed.  The scalar value calculated by
this fix is "extensive".

No parameter of this fix can be used with the {start/stop} keywords of
the "run"_run.html command.  This fix is not invoked during "energy
minimization"_minimize.html.

[Restrictions:] none

[Related commands:]

"fix nve"_fix_nve.html, "fix nve/noforce"_fix_nve_noforce.html,
"pair_style soft"_pair_soft.html

[Default:] none
