use proper units (fmsec -> fs, psec -> ps and so on)
This commit is contained in:
@ -552,9 +552,9 @@ when writing to XTC files. By default they are initialized for
|
||||
whatever :doc:`units <units>` style is being used, to write out
|
||||
coordinates in nanometers and time in picoseconds. I.e. for *real*
|
||||
units, LAMMPS defines *sfactor* = 0.1 and *tfactor* = 0.001, since the
|
||||
Angstroms and fmsec used by *real* units are 0.1 nm and 0.001 psec
|
||||
Angstroms and fs used by *real* units are 0.1 nm and 0.001 ps
|
||||
respectively. If you are using a units system with distance and time
|
||||
units far from nm and psec, you may wish to write XTC files with
|
||||
units far from nm and ps, you may wish to write XTC files with
|
||||
different units, since the compression algorithm used in XTC files is
|
||||
most effective when the typical magnitude of position data is between
|
||||
10.0 and 0.1.
|
||||
|
||||
@ -154,8 +154,8 @@ specified in units of distance/time. This is effectively a "constant
|
||||
engineering strain rate", where rate = V/L0 and L0 is the initial box
|
||||
length. The distance can be in lattice or box distance units. See
|
||||
the discussion of the units keyword below. For example, if the
|
||||
initial box length is 100 Angstroms, and V is 10 Angstroms/psec, then
|
||||
after 10 psec, the box length will have doubled. After 20 psec, it
|
||||
initial box length is 100 Angstroms, and V is 10 Angstroms/ps, then
|
||||
after 10 ps, the box length will have doubled. After 20 ps, it
|
||||
will have tripled.
|
||||
|
||||
The *erate* style changes a dimension of the box at a "constant
|
||||
@ -174,7 +174,7 @@ function of time will change as
|
||||
where dt is the elapsed time (in time units). Thus if *erate* R is
|
||||
specified as 0.1 and time units are picoseconds, this means the box
|
||||
length will increase by 10% of its original length every picosecond.
|
||||
I.e. strain after 1 psec = 0.1, strain after 2 psec = 0.2, etc. R =
|
||||
I.e. strain after 1 ps = 0.1, strain after 2 ps = 0.2, etc. R =
|
||||
-0.01 means the box length will shrink by 1% of its original length
|
||||
every picosecond. Note that for an "engineering" rate the change is
|
||||
based on the original box length, so running with R = 1 for 10
|
||||
@ -201,7 +201,7 @@ The box length L as a function of time will change as
|
||||
where dt is the elapsed time (in time units). Thus if *trate* R is
|
||||
specified as ln(1.1) and time units are picoseconds, this means the
|
||||
box length will increase by 10% of its current (not original) length
|
||||
every picosecond. I.e. strain after 1 psec = 0.1, strain after 2 psec
|
||||
every picosecond. I.e. strain after 1 ps = 0.1, strain after 2 ps
|
||||
= 0.21, etc. R = ln(2) or ln(3) means the box length will double or
|
||||
triple every picosecond. R = ln(0.99) means the box length will
|
||||
shrink by 1% of its current length every picosecond. Note that for a
|
||||
@ -317,8 +317,8 @@ specified in units of distance/time. This is effectively an
|
||||
initial box length perpendicular to the direction of shear. The
|
||||
distance can be in lattice or box distance units. See the discussion
|
||||
of the units keyword below. For example, if the initial tilt factor
|
||||
is 5 Angstroms, and the V is 10 Angstroms/psec, then after 1 psec, the
|
||||
tilt factor will be 15 Angstroms. After 2 psec, it will be 25
|
||||
is 5 Angstroms, and the V is 10 Angstroms/ps, then after 1 ps, the
|
||||
tilt factor will be 15 Angstroms. After 2 ps, it will be 25
|
||||
Angstroms.
|
||||
|
||||
The *erate* style changes a tilt factor at a "constant engineering
|
||||
@ -342,9 +342,9 @@ box perpendicular to the shear direction (e.g. y box length for xy
|
||||
deformation), and dt is the elapsed time (in time units). Thus if
|
||||
*erate* R is specified as 0.1 and time units are picoseconds, this
|
||||
means the shear strain will increase by 0.1 every picosecond. I.e. if
|
||||
the xy shear strain was initially 0.0, then strain after 1 psec = 0.1,
|
||||
strain after 2 psec = 0.2, etc. Thus the tilt factor would be 0.0 at
|
||||
time 0, 0.1\*ybox at 1 psec, 0.2\*ybox at 2 psec, etc, where ybox is the
|
||||
the xy shear strain was initially 0.0, then strain after 1 ps = 0.1,
|
||||
strain after 2 ps = 0.2, etc. Thus the tilt factor would be 0.0 at
|
||||
time 0, 0.1\*ybox at 1 ps, 0.2\*ybox at 2 ps, etc, where ybox is the
|
||||
original y box length. R = 1 or 2 means the tilt factor will increase
|
||||
by 1 or 2 every picosecond. R = -0.01 means a decrease in shear
|
||||
strain by 0.01 every picosecond.
|
||||
@ -373,7 +373,7 @@ where T0 is the initial tilt factor and dt is the elapsed time (in
|
||||
time units). Thus if *trate* R is specified as ln(1.1) and time units
|
||||
are picoseconds, this means the shear strain or tilt factor will
|
||||
increase by 10% every picosecond. I.e. if the xy shear strain was
|
||||
initially 0.1, then strain after 1 psec = 0.11, strain after 2 psec =
|
||||
initially 0.1, then strain after 1 ps = 0.11, strain after 2 ps =
|
||||
0.121, etc. R = ln(2) or ln(3) means the tilt factor will double or
|
||||
triple every picosecond. R = ln(0.99) means the tilt factor will
|
||||
shrink by 1% every picosecond. Note that the change is continuous, so
|
||||
|
||||
@ -57,7 +57,7 @@ its current value(s) used to determine the flux.
|
||||
|
||||
If *eflux* is a numeric constant or equal-style variable which evaluates
|
||||
to a scalar value, then *eflux* determines the change in aggregate energy
|
||||
of the entire group of atoms per unit time, e.g. in eV/psec for
|
||||
of the entire group of atoms per unit time, e.g. in eV/ps for
|
||||
:doc:`metal units <units>`. In this case it is an "extensive" quantity,
|
||||
meaning its magnitude should be scaled with the number of atoms in the
|
||||
group. Note that since *eflux* also has per-time units (i.e. it is a
|
||||
|
||||
@ -188,7 +188,7 @@ particles.
|
||||
*damp_com* is the characteristic time for reaching thermal equilibrium
|
||||
of the centers of mass. For example, a value of 100.0 means to relax
|
||||
the temperature of the centers of mass in a timespan of (roughly) 100
|
||||
time units (tau or fmsec or psec - see the :doc:`units <units>`
|
||||
time units (tau or fs or ps - see the :doc:`units <units>`
|
||||
command). *damp_drude* is the characteristic time for reaching
|
||||
thermal equilibrium of the dipoles. It is typically a few timesteps.
|
||||
|
||||
|
||||
@ -196,7 +196,7 @@ The *units* keyword determines the meaning of the distance units used
|
||||
to define the *linear* velocity and *wiggle* amplitude and *rotate*
|
||||
origin. This setting is ignored for the *variable* style. A *box*
|
||||
value selects standard units as defined by the :doc:`units <units>`
|
||||
command, e.g. velocity in Angstroms/fmsec and amplitude and position
|
||||
command, e.g. velocity in Angstroms/fs and amplitude and position
|
||||
in Angstroms for units = real. A *lattice* value means the velocity
|
||||
units are in lattice spacings per time and the amplitude and position
|
||||
are in lattice spacings. The :doc:`lattice <lattice>` command must have
|
||||
|
||||
@ -193,7 +193,7 @@ The *units* keyword determines the meaning of the distance units used
|
||||
to define the *linear* velocity and *wiggle* amplitude and *rotate*
|
||||
origin. This setting is ignored for the *variable* style. A *box*
|
||||
value selects standard units as defined by the :doc:`units <units>`
|
||||
command, e.g. velocity in Angstroms/fmsec and amplitude and position
|
||||
command, e.g. velocity in Angstroms/fs and amplitude and position
|
||||
in Angstroms for units = real. A *lattice* value means the velocity
|
||||
units are in lattice spacings per time and the amplitude and position
|
||||
are in lattice spacings. The :doc:`lattice <lattice>` command must have
|
||||
|
||||
@ -137,8 +137,8 @@ description below. The desired temperature at each timestep is a
|
||||
ramped value during the run from *Tstart* to *Tstop*\ . The *Tdamp*
|
||||
parameter is specified in time units and determines how rapidly the
|
||||
temperature is relaxed. For example, a value of 10.0 means to relax
|
||||
the temperature in a timespan of (roughly) 10 time units (e.g. tau or
|
||||
fmsec or psec - see the :doc:`units <units>` command). The atoms in the
|
||||
the temperature in a timespan of (roughly) 10 time units (e.g. :math:`\tau`
|
||||
or fs or ps - see the :doc:`units <units>` command). The atoms in the
|
||||
fix group are the only ones whose velocities and positions are updated
|
||||
by the velocity/position update portion of the integration.
|
||||
|
||||
@ -195,8 +195,8 @@ simulation box must be triclinic, even if its initial tilt factors are
|
||||
For all barostat keywords, the *Pdamp* parameter operates like the
|
||||
*Tdamp* parameter, determining the time scale on which pressure is
|
||||
relaxed. For example, a value of 10.0 means to relax the pressure in
|
||||
a timespan of (roughly) 10 time units (e.g. tau or fmsec or psec - see
|
||||
the :doc:`units <units>` command).
|
||||
a timespan of (roughly) 10 time units (e.g. :math:`\tau` or fs or ps
|
||||
- see the :doc:`units <units>` command).
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
@ -103,8 +103,8 @@ description below. The desired temperature at each timestep is a
|
||||
ramped value during the run from *Tstart* to *Tstop*\ . The *Tdamp*
|
||||
parameter is specified in time units and determines how rapidly the
|
||||
temperature is relaxed. For example, a value of 10.0 means to relax
|
||||
the temperature in a timespan of (roughly) 10 time units (e.g. tau or
|
||||
fmsec or psec - see the :doc:`units <units>` command). The atoms in the
|
||||
the temperature in a timespan of (roughly) 10 time units (e.g. :math:`\tau`
|
||||
or fs or ps - see the :doc:`units <units>` command). The atoms in the
|
||||
fix group are the only ones whose velocities and positions are updated
|
||||
by the velocity/position update portion of the integration.
|
||||
|
||||
@ -154,8 +154,8 @@ simulation box must be triclinic, even if its initial tilt factors are
|
||||
For all barostat keywords, the *Pdamp* parameter operates like the
|
||||
*Tdamp* parameter, determining the time scale on which pressure is
|
||||
relaxed. For example, a value of 10.0 means to relax the pressure in
|
||||
a timespan of (roughly) 10 time units (e.g. tau or fmsec or psec - see
|
||||
the :doc:`units <units>` command).
|
||||
a timespan of (roughly) 10 time units (e.g. :math:`\tau` or fs or ps
|
||||
- see the :doc:`units <units>` command).
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
@ -94,7 +94,7 @@ corresponds to T = 300 K.
|
||||
The *damp* parameter is specified in time units and determines how
|
||||
rapidly the temperature is relaxed. For example, a value of 0.03
|
||||
means to relax the temperature in a timespan of (roughly) 0.03 time
|
||||
units tau (see the :doc:`units <units>` command).
|
||||
units :math:`\tau` (see the :doc:`units <units>` command).
|
||||
The damp factor can be thought of as inversely related to the
|
||||
viscosity of the solvent, i.e. a small relaxation time implies a
|
||||
high-viscosity solvent and vice versa. See the discussion about gamma
|
||||
|
||||
@ -90,7 +90,7 @@ although you have the option to change that dimension via the :doc:`fix deform <
|
||||
For all barostat keywords, the *Pdamp* parameter determines the time
|
||||
scale on which pressure is relaxed. For example, a value of 10.0
|
||||
means to relax the pressure in a timespan of (roughly) 10 time units
|
||||
(tau or fmsec or psec - see the :doc:`units <units>` command).
|
||||
(tau or fs or ps - see the :doc:`units <units>` command).
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
@ -429,8 +429,8 @@ that dimension via the :doc:`fix deform <fix_deform>` command.
|
||||
For all barostat keywords, the *Pdamp* parameter operates like the
|
||||
*Tdamp* parameter, determining the time scale on which pressure is
|
||||
relaxed. For example, a value of 10.0 means to relax the pressure in
|
||||
a timespan of (roughly) 10 time units (e.g. tau or fmsec or psec - see
|
||||
the :doc:`units <units>` command).
|
||||
a timespan of (roughly) 10 time units (e.g. :math:`\tau` or fs or ps
|
||||
- see the :doc:`units <units>` command).
|
||||
|
||||
Regardless of what atoms are in the fix group (the only atoms which
|
||||
are time integrated), a global pressure or stress tensor is computed
|
||||
@ -514,7 +514,7 @@ desired temperature at each timestep is a ramped value during the run
|
||||
from *Tstart* to *Tstop*\ . The *Tdamp* parameter is specified in time
|
||||
units and determines how rapidly the temperature is relaxed. For
|
||||
example, a value of 100.0 means to relax the temperature in a timespan
|
||||
of (roughly) 100 time units (tau or fmsec or psec - see the
|
||||
of (roughly) 100 time units (:math:`\tau` or fs or ps - see the
|
||||
:doc:`units <units>` command). The random # *seed* must be a positive
|
||||
integer.
|
||||
|
||||
@ -539,7 +539,7 @@ timestep is a ramped value during the run from *Tstart* to *Tstop*\ .
|
||||
The *Tdamp* parameter is specified in time units and determines how
|
||||
rapidly the temperature is relaxed. For example, a value of 100.0
|
||||
means to relax the temperature in a timespan of (roughly) 100 time
|
||||
units (tau or fmsec or psec - see the :doc:`units <units>` command).
|
||||
units (tau or fs or ps - see the :doc:`units <units>` command).
|
||||
|
||||
Nose/Hoover chains are used in conjunction with this thermostat. The
|
||||
*tparam* keyword can optionally be used to change the chain settings
|
||||
|
||||
@ -45,7 +45,7 @@ The desired temperature at each timestep is a ramped value during the
|
||||
run from *Tstart* to *Tstop*\ . The *Tdamp* parameter is specified in
|
||||
time units and determines how rapidly the temperature is relaxed. For
|
||||
example, a value of 100.0 means to relax the temperature in a timespan
|
||||
of (roughly) 100 time units (tau or fmsec or psec - see the
|
||||
of (roughly) 100 time units (tau or fs or ps - see the
|
||||
:doc:`units <units>` command).
|
||||
|
||||
*Tstart* can be specified as an equal-style :doc:`variable <variable>`.
|
||||
|
||||
@ -59,7 +59,7 @@ The desired temperature at each timestep is a ramped value during the
|
||||
run from *Tstart* to *Tstop*\ . The *Tdamp* parameter is specified in
|
||||
time units and determines how rapidly the temperature is relaxed. For
|
||||
example, a value of 100.0 means to relax the temperature in a timespan
|
||||
of (roughly) 100 time units (tau or fmsec or psec - see the
|
||||
of (roughly) 100 time units (tau or fs or ps - see the
|
||||
:doc:`units <units>` command).
|
||||
|
||||
*Tstart* can be specified as an equal-style :doc:`variable <variable>`.
|
||||
|
||||
@ -88,7 +88,7 @@ time:
|
||||
|
||||
\lambda(\tau) = \tau
|
||||
|
||||
where tau is the scaled time variable *t/t_s*. The option *2* performs
|
||||
where :math:`\tau` is the scaled time variable *t/t_s*. The option *2* performs
|
||||
the lambda switching at a rate defined by the following switching
|
||||
function
|
||||
|
||||
|
||||
@ -150,8 +150,8 @@ timestep, angle interactions computed 4x, pair interactions computed
|
||||
|
||||
The :doc:`timestep <timestep>` command sets the large timestep for the
|
||||
outermost rRESPA level. Thus if the 3 loop factors are "2 2 2" for
|
||||
4-level rRESPA, and the outer timestep is set to 4.0 fmsec, then the
|
||||
inner timestep would be 8x smaller or 0.5 fmsec. All other LAMMPS
|
||||
4-level rRESPA, and the outer timestep is set to 4.0 fs, then the
|
||||
inner timestep would be 8x smaller or 0.5 fs. All other LAMMPS
|
||||
commands that specify number of timesteps (e.g. :doc:`thermo <thermo>`
|
||||
for thermo output every N steps, :doc:`neigh_modify delay/every <neigh_modify>` parameters, :doc:`dump <dump>` every N
|
||||
steps, etc) refer to the outermost timesteps.
|
||||
@ -213,10 +213,10 @@ With that caveat, a few rules-of-thumb may be useful in selecting
|
||||
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
|
||||
a timestep on the order of 0.5 fs 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
|
||||
impropers, and dihedrals can be computed on this innermost 0.5 fs
|
||||
step. The outermost timestep cannot be greater than 4.0 fs 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
|
||||
@ -230,14 +230,14 @@ simulations:
|
||||
run_style respa 4 2 2 2 inner 2 4.5 6.0 middle 3 8.0 10.0 outer 4
|
||||
|
||||
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
|
||||
roughly a 2.5 fold speedup over the *verlet* style with a 0.5 fs
|
||||
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.
|
||||
a time step on the order of 0.5 fs in order to conserve energy.
|
||||
These high frequency modes also limit the outer time step sizes since
|
||||
the modes are coupled. It is therefore desirable to use SHAKE with
|
||||
respa in order to freeze out these high frequency motions and increase
|
||||
@ -253,7 +253,7 @@ rRESPA:
|
||||
|
||||
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.
|
||||
2.0 fs timestep.
|
||||
|
||||
For non-biomolecular simulations, the *respa* style can be
|
||||
advantageous if there is a clear separation of time scales - fast and
|
||||
|
||||
@ -46,22 +46,22 @@ Related commands
|
||||
Default
|
||||
"""""""
|
||||
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| choice of :doc:`units <units>` | time units | default timestep size |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| lj | tau | 0.005 tau |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| real | fmsec | 1.0 fmsec |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| metal | psec | 0.001 psec |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| si | sec | 1.0e-8 sec (10 nsec) |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| cgs | sec | 1.0e-8 sec (10 nsec) |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| electron | fmsec | 0.001 fmsec |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| micro | usec | 2.0 usec |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
| nano | nsec | 0.00045 nsec |
|
||||
+--------------------------------+------------+-----------------------+
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| choice of :doc:`units <units>` | time units | default timestep size |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| lj | :math:`\tau` | 0.005 :math:`\tau` |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| real | fs | 1.0 fs |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| metal | ps | 0.001 ps |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| si | s | 1.0e-8 s (10 ns) |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| cgs | s | 1.0e-8 s (10 ns) |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| electron | fs | 0.001 fs |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| micro | :math:`\mu`\ s| 2.0 :math:`\mu`\ s |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
| nano | ns | 0.00045 ns |
|
||||
+--------------------------------+---------------+-----------------------+
|
||||
|
||||
@ -203,7 +203,7 @@ For style *nano*\ , these are the units:
|
||||
The units command also sets the timestep size and neighbor skin
|
||||
distance to default values for each style:
|
||||
|
||||
* For style *lj* these are dt = 0.005 tau and skin = 0.3 sigma.
|
||||
* For style *lj* these are dt = 0.005 :math:`\tau` and skin = 0.3 :math:`\sigma`.
|
||||
* For style *real* these are dt = 1.0 femtoseconds and skin = 2.0 Angstroms.
|
||||
* For style *metal* these are dt = 0.001 picoseconds and skin = 2.0 Angstroms.
|
||||
* For style *si* these are dt = 1.0e-8 seconds and skin = 0.001 meters.
|
||||
|
||||
@ -225,8 +225,8 @@ body defined by the fix, as described above.
|
||||
The *units* keyword is used by *set* and *ramp*\ . If units = box,
|
||||
the velocities and coordinates specified in the velocity command are
|
||||
in the standard units described by the :doc:`units <units>` command
|
||||
(e.g. Angstroms/fmsec for real units). If units = lattice, velocities
|
||||
are in units of lattice spacings per time (e.g. spacings/fmsec) and
|
||||
(e.g. Angstroms/fs for real units). If units = lattice, velocities
|
||||
are in units of lattice spacings per time (e.g. spacings/fs) and
|
||||
coordinates are in lattice spacings. The :doc:`lattice <lattice>`
|
||||
command must have been previously used to define the lattice spacing.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user