forked from lijiext/lammps
179 lines
7.5 KiB
Plaintext
179 lines
7.5 KiB
Plaintext
|
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||
|
|
||
|
:link(lws,http://lammps.sandia.gov)
|
||
|
:link(ld,Manual.html)
|
||
|
:link(lc,Section_commands.html#comm)
|
||
|
|
||
|
:line
|
||
|
|
||
|
run_style command :h3
|
||
|
|
||
|
[Syntax:]
|
||
|
|
||
|
run_style style args :pre
|
||
|
|
||
|
style = {verlet} or {respa} :ulb,l
|
||
|
{verlet} args = none
|
||
|
{respa} args = N n1 n2 ... keyword values ...
|
||
|
N = # of levels of rRESPA
|
||
|
n1, n2, ... = loop factor bewteen rRESPA levels (N-1 values)
|
||
|
zero or more keyword/value pairings may be appended to the loop factors
|
||
|
keyword = {bond} or {angle} or {dihedral} or {improper} or
|
||
|
{pair} or {inner} or {middle} or {outer} or {kspace}
|
||
|
{bond} value = M
|
||
|
M = which level (1-N) to compute bond forces in
|
||
|
{angle} value = M
|
||
|
M = which level (1-N) to compute angle forces in
|
||
|
{dihedral} value = M
|
||
|
M = which level (1-N) to compute dihedral forces in
|
||
|
{improper} value = M
|
||
|
M = which level (1-N) to compute improper forces in
|
||
|
{pair} value = M
|
||
|
M = which level (1-N) to compute pair forces in
|
||
|
{inner} values = M cut1 cut2
|
||
|
M = which level (1-N) to compute pair inner forces in
|
||
|
cut1 = inner cutoff between pair inner and
|
||
|
pair middle or outer (distance units)
|
||
|
cut2 = outer cutoff between pair inner and
|
||
|
pair middle or outer (distance units)
|
||
|
{middle} values = M cut1 cut2
|
||
|
M = which level (1-N) to compute pair middle forces in
|
||
|
cut1 = inner cutoff between pair middle and pair outer (distance units)
|
||
|
cut2 = outer cutoff between pair middle and pair outer (distance units)
|
||
|
{outer} value = M
|
||
|
M = which level (1-N) to compute pair outer forces in
|
||
|
{kspace} value = M
|
||
|
M = which level (1-N) to compute kspace forces in :pre
|
||
|
:ule
|
||
|
|
||
|
[Examples:]
|
||
|
|
||
|
run_style verlet
|
||
|
run_style respa 4 2 2 2 bond 1 dihedral 2 pair 3 kspace 4
|
||
|
run_style respa 4 2 2 2 bond 1 dihedral 2 inner 3 5.0 6.0 outer 4 kspace 4 :pre
|
||
|
|
||
|
[Description:]
|
||
|
|
||
|
Choose the style of time integrator used for molecular dynamics
|
||
|
simulations performed by LAMMPS.
|
||
|
|
||
|
The {verlet} style is a velocity-Verlet integrator.
|
||
|
|
||
|
The {respa} style implements the rRESPA multi-timescale integrator
|
||
|
"(Tuckerman)"_#Tuckerman with N hierarchical levels, where level 1 is
|
||
|
the innermost loop (shortest timestep) and level N is the outermost
|
||
|
loop (largest timestep). The loop factor arguments specify what the
|
||
|
looping factor is between levels. N1 specifies the number of
|
||
|
iterations of level 1 for a single iteration of level 2, N2 is the
|
||
|
iterations of level 2 per iteration of level 3, etc. N-1 looping
|
||
|
parameters must be specified.
|
||
|
|
||
|
The "timestep"_timestep.html command sets the timestep for the
|
||
|
outermost rRESPA level. Thus if the example command above for a
|
||
|
4-level rRESPA had an outer timestep of 4.0 fmsec, the inner timestep
|
||
|
would be 8x smaller or 0.5 fmsec. All other LAMMPS commands that
|
||
|
specify number of timesteps (e.g. "neigh_modify"_neigh_modify.html
|
||
|
parameters, "dump"_dump.html every N timesteps, etc) refer to the
|
||
|
outermost timesteps.
|
||
|
|
||
|
The rRESPA keywords enable you to specify at what level of the
|
||
|
hierarchy various forces will be computed. If not specified, the
|
||
|
defaults are that bond forces are computed at level 1 (innermost
|
||
|
loop), angle forces are computed where bond forces are, dihedral
|
||
|
forces are computed where angle forces are, improper forces are
|
||
|
computed where dihedral forces are, pair forces are computed at the
|
||
|
outermost level, and kspace forces are computed where pair forces are.
|
||
|
The inner, middle, outer forces have no defaults.
|
||
|
|
||
|
The {inner} and {middle} keywords take additional arguments for
|
||
|
cutoffs that are used by the force computations. If the 2 cutoffs for
|
||
|
{inner} are 5.0 and 6.0, this means that all pairs up to 6.0 apart are
|
||
|
computed by the inner force. Those between 5.0 and 6.0 have their
|
||
|
force go ramped to 0.0 so the overlap with the next regime (middle or
|
||
|
outer) is smooth. The next regime (middle or outer) will compute
|
||
|
forces for all pairs from 5.0 outward, with those from 5.0 to 6.0
|
||
|
having their value ramped in an inverse manner.
|
||
|
|
||
|
When using rRESPA (or for any MD simulation) care must be taken to
|
||
|
choose a timestep size(s) that insures the Hamiltonian for the chosen
|
||
|
ensemble is conserved. For the constant NVE ensemble, total energy
|
||
|
must be conserved. Unfortunately, it is difficult to know {a priori}
|
||
|
how well energy will be conserved, and a fairly long test simulation
|
||
|
(~10 ps) is usually necessary in order to verify that no long-term
|
||
|
drift in energy occurs with the trial set of parameters.
|
||
|
|
||
|
With that caveat, a few rules-of-thumb may be useful in selecting
|
||
|
{respa} settings. The following applies mostly to biomolecular
|
||
|
simulations using the CHARMM or a similar all-atom force field, but
|
||
|
the concepts are adaptable to other problems. Without SHAKE, bonds
|
||
|
involving hydrogen atoms exhibit high-frequency vibrations and require
|
||
|
a timestep on the order of 0.5 fmsec in order to conserve energy. The
|
||
|
relatively inexpensive force computations for the bonds, angles,
|
||
|
impropers, and dihedrals can be computed on this innermost 0.5 fmsec
|
||
|
step. The outermost timestep cannot be greater than 4.0 fmsec without
|
||
|
risking energy drift. Smooth switching of forces between the levels
|
||
|
of the rRESPA hierarchy is also necessary to avoid drift, and a 1-2
|
||
|
angstrom "healing distance" (the distance between the outer and inner
|
||
|
cutoffs) works reasonably well. We thus recommend the following
|
||
|
settings for use of the {respa} style without SHAKE in biomolecular
|
||
|
simulations:
|
||
|
|
||
|
timestep 4.0
|
||
|
run_style respa 4 2 2 2 inner 2 4.5 6.0 middle 3 8.0 10.0 outer 4 :pre
|
||
|
|
||
|
With these settings, users can expect good energy conservation and
|
||
|
roughly a 2.5 fold speedup over the {verlet} style with a 0.5 fmsec
|
||
|
timestep.
|
||
|
|
||
|
If SHAKE is used with the {respa} style, time reversibility is lost,
|
||
|
but substantially longer time steps can be achieved. For biomolecular
|
||
|
simulations using the CHARMM or similar all-atom force field, bonds
|
||
|
involving hydrogen atoms exhibit high frequency vibrations and require
|
||
|
a time step on the order of 0.5 fmsec in order to conserve energy.
|
||
|
These high frequency modes also limit the outer time step sizes since
|
||
|
the modes are coupled. It is therefore desireable to use SHAKE with
|
||
|
respa in order to freeze out these high frequency motions and increase
|
||
|
the size of the time steps in the respa hierarchy. The following
|
||
|
settings can be used for biomolecular simulations with SHAKE and
|
||
|
rRESPA:
|
||
|
|
||
|
fix 2 all shake 0.000001 500 0 m 1.0 a 1
|
||
|
timestep 4.0
|
||
|
run_style respa 2 2 inner 1 4.0 5.0 outer 2 :pre
|
||
|
|
||
|
With these settings, users can expect good energy conservation and
|
||
|
roughly a 1.5 fold speedup over the {verlet} style with SHAKE and a
|
||
|
2.0 fmsec timestep.
|
||
|
|
||
|
For non-biomolecular simulations, the {respa} style can be
|
||
|
advantageous if there is a clear separation of time scales - fast and
|
||
|
slow modes in the simulation. Even a LJ system can benefit from
|
||
|
rRESPA if the interactions are divided by the inner, middle and outer
|
||
|
keywords. A 2-fold or more speedup can be obtained while maintaining
|
||
|
good energy conservation. In real units, for a pure LJ fluid at
|
||
|
liquid density, with a sigma of 3.0 angstroms, and epsilon of 0.1
|
||
|
Kcal/mol, the following settings seem to work well:
|
||
|
|
||
|
timestep 36.0
|
||
|
run_style respa 3 3 4 inner 1 3.0 4.0 middle 2 6.0 7.0 outer 3 :pre
|
||
|
|
||
|
[Restrictions:] none
|
||
|
|
||
|
Whenever using rRESPA, the user should experiment with trade-offs in
|
||
|
speed and accuracy for their system, and verify that they are
|
||
|
conserving energy to adequate precision.
|
||
|
|
||
|
[Related commands:]
|
||
|
|
||
|
"timestep"_timestep.html, "run"_run.html
|
||
|
|
||
|
[Default:]
|
||
|
|
||
|
run_style verlet :pre
|
||
|
|
||
|
:line
|
||
|
|
||
|
:link(Tuckerman)
|
||
|
[(Tuckerman)] Tuckerman, Berne and Martyna, J Chem Phys, 97, p 1990
|
||
|
(1992).
|