lammps/doc/_sources/fix_dt_reset.txt

104 lines
3.3 KiB
Plaintext

.. index:: fix dt/reset
fix dt/reset command
====================
Syntax
""""""
.. parsed-literal::
fix ID group-ID dt/reset N Tmin Tmax Xmax keyword values ...
* ID, group-ID are documented in :doc:`fix <fix>` command
* dt/reset = style name of this fix command
* N = recompute dt every N timesteps
* Tmin = minimum dt allowed which can be NULL (time units)
* Tmax = maximum dt allowed which 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*
.. parsed-literal::
*units* value = *lattice* or *box*
lattice = Xmax is defined in lattice units
box = Xmax is defined in simulation box units
Examples
""""""""
.. parsed-literal::
fix 5 all dt/reset 10 1.0e-5 0.01 0.1
fix 5 all dt/reset 10 0.01 2.0 0.2 units box
Description
"""""""""""
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
:doc:`timestep <timestep>` command. The new timestep size *dt* is
computed in the following manner.
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.
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 :doc:`run style <run_style>` is *respa*, this fix resets the
outer loop (largest) timestep, which is the same timestep that the
:doc:`timestep <timestep>` command sets.
Note that the cumulative simulation time (in time units), which
accounts for changes in the timestep size as a simulation proceeds,
can be accessed by the :doc:`thermo_style time <thermo_style>` keyword.
Restart, fix_modify, output, run start/stop, minimize info
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
are relevant to this fix.
This fix computes a global scalar which can be accessed by various
:ref:`output commands <howto_15>`. The scalar stores
the last timestep on which the timestep was reset to a new value.
The scalar value calculated by this fix is "intensive".
No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
Restrictions
""""""""""""
none
Related commands
""""""""""""""""
:doc:`timestep <timestep>`
Default
"""""""
The option defaults is units = lattice.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Section_commands.html#comm