130 lines
4.9 KiB
ReStructuredText
130 lines
4.9 KiB
ReStructuredText
.. index:: fix ffl
|
|
|
|
fix ffl command
|
|
===============
|
|
|
|
Syntax
|
|
""""""
|
|
|
|
.. code-block:: LAMMPS
|
|
|
|
fix ID id-group ffl tau Tstart Tstop seed [flip-type]
|
|
|
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
|
* ffl = style name of this fix command
|
|
* tau = thermostat parameter (positive real)
|
|
* Tstart, Tstop = temperature ramp during the run
|
|
* seed = random number seed to use for generating noise (positive integer)
|
|
* one more value may be appended
|
|
|
|
.. parsed-literal::
|
|
|
|
flip-type = determines the flipping type, can be chosen between rescale - no_flip - hard - soft, if no flip type is given, rescale will be chosen by default
|
|
|
|
Examples
|
|
""""""""
|
|
|
|
.. code-block:: LAMMPS
|
|
|
|
fix 3 boundary ffl 10 300 300 31415
|
|
fix 1 all ffl 100 500 500 9265 soft
|
|
|
|
Description
|
|
"""""""""""
|
|
|
|
Apply a Fast-Forward Langevin Equation (FFL) thermostat as described
|
|
in :ref:`(Hijazi) <Hijazi>`. Contrary to
|
|
:doc:`fix langevin <fix_langevin>`, this fix performs both
|
|
thermostatting and evolution of the Hamiltonian equations of motion, so it
|
|
should not be used together with :doc:`fix nve <fix_nve>` -- at least not
|
|
on the same atom groups.
|
|
|
|
The time-evolution of a single particle undergoing Langevin dynamics is described
|
|
by the equations
|
|
|
|
.. math::
|
|
|
|
\frac {dq}{dt} = \frac{p}{m},
|
|
|
|
.. math::
|
|
|
|
\frac {dp}{dt} = -\gamma p + W + F,
|
|
|
|
where :math:`F` is the physical force, :math:`\gamma` is the friction coefficient, and :math:`W` is a
|
|
Gaussian random force.
|
|
|
|
The friction coefficient is the inverse of the thermostat parameter : :math:`\gamma = 1/\tau`, with :math:`\tau` the thermostat parameter *tau*\ .
|
|
The thermostat parameter is given in the time units, :math:`\gamma` is in inverse time units.
|
|
|
|
Equilibrium sampling a temperature T is obtained by specifying the
|
|
target value as the *Tstart* and *Tstop* arguments, so that the internal
|
|
constants depending on the temperature are computed automatically.
|
|
|
|
The random number *seed* must be a positive integer. A Marsaglia random
|
|
number generator is used. Each processor uses the input seed to
|
|
generate its own unique seed and its own stream of random numbers.
|
|
Thus the dynamics of the system will not be identical on two runs on
|
|
different numbers of processors.
|
|
|
|
The flipping type *flip-type* can be chosen between 4 types described in
|
|
:ref:`(Hijazi) <Hijazi>`. The flipping operation occurs during the thermostatting
|
|
step and it flips the momenta of the atoms. If no_flip is chosen, no flip
|
|
will be executed and the integration will be the same as a standard
|
|
Langevin thermostat :ref:`(Bussi) <Bussi3>`. The other flipping types are : rescale - hard - soft.
|
|
|
|
Restart, fix_modify, output, run start/stop, minimize info
|
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
The instantaneous values of the extended variables are written to
|
|
:doc:`binary restart files <restart>`. Because the state of the
|
|
random number generator is not saved in restart files, this means you
|
|
cannot do "exact" restarts with this fix, where the simulation
|
|
continues on the same as if no restart had taken place. However, in a
|
|
statistical sense, a restarted simulation should produce the same
|
|
behavior. Note however that you should use a different seed each time
|
|
you restart, otherwise the same sequence of random numbers will be
|
|
used each time, which might lead to stochastic synchronization and
|
|
subtle artifacts in the sampling.
|
|
|
|
The cumulative energy change in the system imposed by this fix is
|
|
included in the :doc:`thermodynamic output <thermo_style>` keywords
|
|
*ecouple* and *econserve*. See the :doc:`thermo_style <thermo_style>`
|
|
doc page for details.
|
|
|
|
This fix computes a global scalar which can be accessed by various
|
|
:doc:`output commands <Howto_output>`. The scalar is the same
|
|
cumulative energy change due to this fix described in the previous
|
|
paragraph. The scalar value calculated by this fix is "extensive".
|
|
|
|
This fix can ramp its target temperature over multiple runs, using the
|
|
*start* and *stop* keywords of the :doc:`run <run>` command. See the
|
|
:doc:`run <run>` command for details of how to do this.
|
|
|
|
This fix is not invoked during :doc:`energy minimization <minimize>`.
|
|
|
|
Restrictions
|
|
""""""""""""
|
|
|
|
In order to perform constant-pressure simulations please use
|
|
:doc:`fix press/berendsen <fix_press_berendsen>`, rather than
|
|
:doc:`fix npt <fix_nh>`, to avoid duplicate integration of the
|
|
equations of motion.
|
|
|
|
This fix is part of the EXTRA-FIX package. It is only enabled if
|
|
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
|
|
|
Related commands
|
|
""""""""""""""""
|
|
|
|
:doc:`fix nvt <fix_nh>`, :doc:`fix temp/rescale <fix_temp_rescale>`, :doc:`fix viscous <fix_viscous>`, :doc:`fix nvt <fix_nh>`, :doc:`pair_style dpd/tstat <pair_dpd>`, :doc:`fix gld <fix_gld>`, :doc:`fix gle <fix_gle>`
|
|
|
|
----------
|
|
|
|
.. _Hijazi:
|
|
|
|
.. _Bussi3:
|
|
|
|
**(Hijazi)** M. Hijazi, D. M. Wilkins, M. Ceriotti, J. Chem. Phys. 148, 184109 (2018)
|
|
|
|
**(Bussi)** G. Bussi, M. Parrinello, Phs. Rev. E 75, 056707 (2007)
|