git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@2867 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp 2009-06-05 21:47:11 +00:00
parent 4000154ed3
commit 7d3db28119
2 changed files with 41 additions and 37 deletions

View File

@ -18,8 +18,8 @@
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
<LI>dt/reset = style name of this fix command
<LI>N = recompute dt every N timesteps
<LI>Tmin = minimum dt allowed (can be INF) (time units)
<LI>Tmax = maximum dt allowed (can be INF) (time units)
<LI>Tmin = minimum dt allowed (can be NULL) (time units)
<LI>Tmax = maximum dt allowed (can be NULL) (time units)
<LI>Xmax = maximum distance for an atom to move in one timestep (distance units)
<LI>zero or more keyword/value pairs may be appended
<LI>keyword = <I>units</I>
@ -35,27 +35,29 @@ fix 5 all dt/reset 10 0.01 2.0 0.2 units box
</PRE>
<P><B>Description:</B>
</P>
<P>Reset the timestep size every N steps during a run, based on current
atom velocities and forces. This can be useful when starting from a
configuration with overlapping atoms, where forces will be large. Or
it can be useful when running an impact simulation where one or more
high-energy atoms collide with a solid, causing a damage cascade.
<P>Reset the timestep size every N steps during a run, so that no atom
moves further than Xmax, based on current atom velocities and forces.
This can be useful when starting from a configuration with overlapping
atoms, where forces will be large. Or it can be useful when running
an impact simulation where one or more high-energy atoms collide with
a solid, causing a damage cascade.
</P>
<P>This fix overrides the timestep size setting made by the
<A HREF = "timestep.html">timestep</A> command. The new timestep size <I>dt</I> is
computed in the following way.
computed in the following manner.
</P>
<UL><LI>compute Vmax of any atom in group
<LI>compute Amax of any atom in group
<LI>dt1 = Xmax/Vmax
<LI>dt2 = sqrt(2 Xmax/Amax)
<LI>new dt = MIN(dt1,dt2)
<LI>if dt < Tmin, dt = Tmin
<LI>if dt > Tmax, dt = Tmax
</UL>
<P>Vmax is the maximum velocity; Amax is the maximum acceleration =
force/mass. Note that Tmin or Tmax can be specified as INF, in which
case one or both of the last 2 checks will not be performed.
<P>For each atom, the timestep is computed that would cause it to
displace <I>Xmax</I> on the next integration step, as a function of its
current velocity and force. Since performing this calculation exactly
would require the solution to a quartic equation, a cheaper estimate
is generated. The estimate is conservative in that the atom's
displacement is guaranteed not to exceed <I>Xmax</I>, though it may be
smaller.
</P>
<P>Given this putative timestep for each atom, the minimum timestep value
across all atoms is computed. Then the <I>Tmin</I> and <I>Tmax</I> bounds are
applied, if specified. If one (or both) is specified as NULL, it is
not applied.
</P>
<P>When the <A HREF = "run_style.html">run style</A> is <I>respa</I>, this fix resets the
outer loop (largest) timestep, which is the same timestep that the

View File

@ -15,8 +15,8 @@ fix ID group-ID dt/reset N Tmin Tmax Xmax keyword values ... :pre
ID, group-ID are documented in "fix"_fix.html command
dt/reset = style name of this fix command
N = recompute dt every N timesteps
Tmin = minimum dt allowed (can be INF) (time units)
Tmax = maximum dt allowed (can be INF) (time units)
Tmin = minimum dt allowed (can be NULL) (time units)
Tmax = maximum dt allowed (can be NULL) (time units)
Xmax = maximum distance for an atom to move in one timestep (distance units)
zero or more keyword/value pairs may be appended
keyword = {units} :ul
@ -31,27 +31,29 @@ fix 5 all dt/reset 10 0.01 2.0 0.2 units box :pre
[Description:]
Reset the timestep size every N steps during a run, based on current
atom velocities and forces. This can be useful when starting from a
configuration with overlapping atoms, where forces will be large. Or
it can be useful when running an impact simulation where one or more
high-energy atoms collide with a solid, causing a damage cascade.
Reset the timestep size every N steps during a run, so that no atom
moves further than Xmax, based on current atom velocities and forces.
This can be useful when starting from a configuration with overlapping
atoms, where forces will be large. Or it can be useful when running
an impact simulation where one or more high-energy atoms collide with
a solid, causing a damage cascade.
This fix overrides the timestep size setting made by the
"timestep"_timestep.html command. The new timestep size {dt} is
computed in the following way.
computed in the following manner.
compute Vmax of any atom in group
compute Amax of any atom in group
dt1 = Xmax/Vmax
dt2 = sqrt(2 Xmax/Amax)
new dt = MIN(dt1,dt2)
if dt < Tmin, dt = Tmin
if dt > Tmax, dt = Tmax :ul
For each atom, the timestep is computed that would cause it to
displace {Xmax} on the next integration step, as a function of its
current velocity and force. Since performing this calculation exactly
would require the solution to a quartic equation, a cheaper estimate
is generated. The estimate is conservative in that the atom's
displacement is guaranteed not to exceed {Xmax}, though it may be
smaller.
Vmax is the maximum velocity; Amax is the maximum acceleration =
force/mass. Note that Tmin or Tmax can be specified as INF, in which
case one or both of the last 2 checks will not be performed.
Given this putative timestep for each atom, the minimum timestep value
across all atoms is computed. Then the {Tmin} and {Tmax} bounds are
applied, if specified. If one (or both) is specified as NULL, it is
not applied.
When the "run style"_run_style.html is {respa}, this fix resets the
outer loop (largest) timestep, which is the same timestep that the