Merge branch 'develop' into custom-thermo-headers
This commit is contained in:
@ -75,10 +75,11 @@ solids undergoing thermal motion.
|
||||
.. note::
|
||||
|
||||
Initial coordinates are stored in "unwrapped" form, by using the
|
||||
image flags associated with each atom. See the :doc:`dump custom <dump>` command for a discussion of "unwrapped" coordinates.
|
||||
See the Atoms section of the :doc:`read_data <read_data>` command for a
|
||||
discussion of image flags and how they are set for each atom. You can
|
||||
reset the image flags (e.g. to 0) before invoking this compute by
|
||||
image flags associated with each atom. See the :doc:`dump custom
|
||||
<dump>` command for a discussion of "unwrapped" coordinates. See the
|
||||
Atoms section of the :doc:`read_data <read_data>` command for a
|
||||
discussion of image flags and how they are set for each atom. You
|
||||
can reset the image flags (e.g. to 0) before invoking this compute by
|
||||
using the :doc:`set image <set>` command.
|
||||
|
||||
.. note::
|
||||
@ -108,7 +109,8 @@ distance\^2 :doc:`units <units>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
none
|
||||
|
||||
Compute *msd* cannot be used with a dynamic group.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -74,8 +74,11 @@ the third is dimensionless.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This compute is part of the EXTRA-COMPUTE package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
Compute *msd/nongauss* cannot be used with a dynamic group.
|
||||
|
||||
This compute is part of the EXTRA-COMPUTE 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
|
||||
""""""""""""""""
|
||||
|
||||
@ -19,6 +19,12 @@ Syntax
|
||||
* cutlo,cuthi = lo and hi cutoff for Taper radius
|
||||
* tolerance = precision to which charges will be equilibrated
|
||||
* params = reaxff or a filename
|
||||
* one or more keywords or keyword/value pairs may be appended
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
keyword = *maxiter*
|
||||
*maxiter* N = limit the number of iterations to *N*
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -26,7 +32,7 @@ Examples
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix 1 all acks2/reaxff 1 0.0 10.0 1.0e-6 reaxff
|
||||
fix 1 all acks2/reaxff 1 0.0 10.0 1.0e-6 param.acks2
|
||||
fix 1 all acks2/reaxff 1 0.0 10.0 1.0e-6 param.acks2 maxiter 500
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -44,14 +50,14 @@ the charge equilibration performed by fix acks2/reaxff, see the
|
||||
|
||||
The ACKS2 method minimizes the electrostatic energy of the system by
|
||||
adjusting the partial charge on individual atoms based on interactions
|
||||
with their neighbors. It requires some parameters for each atom type.
|
||||
with their neighbors. It requires some parameters for each atom type.
|
||||
If the *params* setting above is the word "reaxff", then these are
|
||||
extracted from the :doc:`pair_style reaxff <pair_reaxff>` command and
|
||||
the ReaxFF force field file it reads in. If a file name is specified
|
||||
for *params*\ , then the parameters are taken from the specified file
|
||||
and the file must contain one line for each atom type. The latter form
|
||||
must be used when performing QeQ with a non-ReaxFF potential. The lines
|
||||
should be formatted as follows:
|
||||
for *params*, then the parameters are taken from the specified file
|
||||
and the file must contain one line for each atom type. The latter
|
||||
form must be used when performing QeQ with a non-ReaxFF potential.
|
||||
The lines should be formatted as follows:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -67,13 +73,25 @@ ReaxFF potential file, except that eta is defined here as twice the eta
|
||||
value in the ReaxFF file. Note that unlike the rest of LAMMPS, the units
|
||||
of this fix are hard-coded to be A, eV, and electronic charge.
|
||||
|
||||
**Restart, fix_modify, output, run start/stop, minimize info:**
|
||||
The optional *maxiter* keyword allows changing the max number
|
||||
of iterations in the linear solver. The default value is 200.
|
||||
|
||||
.. note::
|
||||
|
||||
In order to solve the self-consistent equations for electronegativity
|
||||
equalization, LAMMPS imposes the additional constraint that all the
|
||||
charges in the fix group must add up to zero. The initial charge
|
||||
assignments should also satisfy this constraint. LAMMPS will print a
|
||||
warning if that is not the case.
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files
|
||||
<restart>`. No global scalar or vector or per-atom quantities are
|
||||
stored by this fix for access by various :doc:`output commands
|
||||
<Howto_output>`. No parameter of this fix can be used with the
|
||||
*start/stop* keywords of the :doc:`run <run>` command.
|
||||
<restart>`. This fix computes a global scalar (the number of
|
||||
iterations) for access by various :doc:`output commands <Howto_output>`.
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command.
|
||||
|
||||
This fix is invoked during :doc:`energy minimization <minimize>`.
|
||||
|
||||
@ -86,12 +104,12 @@ This fix is invoked during :doc:`energy minimization <minimize>`.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix is part of the REAXFF package. It is only enabled if LAMMPS
|
||||
was built with that package. See the :doc:`Build package
|
||||
<Build_package>` doc page for more info.
|
||||
This fix is part of the REAXFF package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
This fix does not correctly handle interactions involving multiple
|
||||
periodic images of the same atom. Hence, it should not be used for
|
||||
periodic images of the same atom. Hence, it should not be used for
|
||||
periodic cell dimensions less than 10 angstroms.
|
||||
|
||||
This fix may be used in combination with :doc:`fix efield <fix_efield>`
|
||||
@ -105,7 +123,10 @@ Related commands
|
||||
|
||||
:doc:`pair_style reaxff <pair_reaxff>`, :doc:`fix qeq/reaxff <fix_qeq_reaxff>`
|
||||
|
||||
**Default:** none
|
||||
Default
|
||||
"""""""
|
||||
|
||||
maxiter 200
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -70,7 +70,7 @@ Syntax
|
||||
|
||||
*remap* value = *x* or *v* or *none*
|
||||
x = remap coords of atoms in group into deforming box
|
||||
v = remap velocities of all atoms when they cross periodic boundaries
|
||||
v = remap velocities of atoms in group when they cross periodic boundaries
|
||||
none = no remapping of x or v
|
||||
*flip* value = *yes* or *no*
|
||||
allow or disallow box flips when it becomes highly skewed
|
||||
|
||||
@ -12,7 +12,7 @@ Syntax
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* move = style name of this fix command
|
||||
* style = *linear* or *wiggle* or *rotate* or *variable*
|
||||
* style = *linear* or *wiggle* or *rotate* or *transrot* or *variable*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -25,6 +25,11 @@ Syntax
|
||||
Px,Py,Pz = origin point of axis of rotation (distance units)
|
||||
Rx,Ry,Rz = axis of rotation vector
|
||||
period = period of rotation (time units)
|
||||
*transrot* args = Vx Vy Vz Px Py Pz Rx Ry Rz period
|
||||
Vx,Vy,Vz = components of velocity vector (velocity units)
|
||||
Px,Py,Pz = origin point of axis of rotation (distance units)
|
||||
Rx,Ry,Rz = axis of rotation vector
|
||||
period = period of rotation (time units)
|
||||
*variable* args = v_dx v_dy v_dz v_vx v_vy v_vz
|
||||
v_dx,v_dy,v_dz = 3 variable names that calculate x,y,z displacement as function of time, any component can be specified as NULL
|
||||
v_vx,v_vy,v_vz = 3 variable names that calculate x,y,z velocity as function of time, any component can be specified as NULL
|
||||
@ -44,6 +49,7 @@ Examples
|
||||
fix 1 boundary move wiggle 3.0 0.0 0.0 1.0 units box
|
||||
fix 2 boundary move rotate 0.0 0.0 0.0 0.0 0.0 1.0 5.0
|
||||
fix 2 boundary move variable v_myx v_myy NULL v_VX v_VY NULL
|
||||
fix 3 boundary move transrot 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 1.0 5.0 units box
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -55,15 +61,17 @@ whose movement can influence nearby atoms.
|
||||
|
||||
.. note::
|
||||
|
||||
The atoms affected by this fix should not normally be time
|
||||
integrated by other fixes (e.g. :doc:`fix nve <fix_nve>`, :doc:`fix nvt <fix_nh>`), since that will change their positions and
|
||||
velocities twice.
|
||||
The atoms affected by this fix should not normally be time integrated
|
||||
by other fixes (e.g. :doc:`fix nve <fix_nve>`, :doc:`fix nvt
|
||||
<fix_nh>`), since that will change their positions and velocities
|
||||
twice.
|
||||
|
||||
.. note::
|
||||
|
||||
As atoms move due to this fix, they will pass through periodic
|
||||
boundaries and be remapped to the other side of the simulation box,
|
||||
just as they would during normal time integration (e.g. via the :doc:`fix nve <fix_nve>` command). It is up to you to decide whether
|
||||
just as they would during normal time integration (e.g. via the
|
||||
:doc:`fix nve <fix_nve>` command). It is up to you to decide whether
|
||||
periodic boundaries are appropriate with the kind of atom motion you
|
||||
are prescribing with this fix.
|
||||
|
||||
@ -73,11 +81,11 @@ whose movement can influence nearby atoms.
|
||||
position at the time the fix is specified. These initial coordinates
|
||||
are stored by the fix in "unwrapped" form, by using the image flags
|
||||
associated with each atom. See the :doc:`dump custom <dump>` command
|
||||
for a discussion of "unwrapped" coordinates. See the Atoms section of
|
||||
the :doc:`read_data <read_data>` command for a discussion of image flags
|
||||
and how they are set for each atom. You can reset the image flags
|
||||
(e.g. to 0) before invoking this fix by using the :doc:`set image <set>`
|
||||
command.
|
||||
for a discussion of "unwrapped" coordinates. See the Atoms section
|
||||
of the :doc:`read_data <read_data>` command for a discussion of image
|
||||
flags and how they are set for each atom. You can reset the image
|
||||
flags (e.g. to 0) before invoking this fix by using the :doc:`set
|
||||
image <set>` command.
|
||||
|
||||
----------
|
||||
|
||||
@ -118,13 +126,13 @@ notation as
|
||||
|
||||
where *X0* = (x0,y0,z0) is their position at the time the fix is
|
||||
specified, *A* is the specified amplitude vector with components
|
||||
(Ax,Ay,Az), *omega* is 2 PI / *period*, and *delta* is the time
|
||||
elapsed since the fix was specified. This style also sets the
|
||||
velocity of each atom to the time derivative of this expression. If
|
||||
any of the amplitude components is specified as NULL, then the
|
||||
position and velocity of that component is time integrated the same as
|
||||
the :doc:`fix nve <fix_nve>` command would perform, using the
|
||||
corresponding force component on the atom.
|
||||
(Ax,Ay,Az), *omega* is 2 PI / *period*, and *delta* is the time elapsed
|
||||
since the fix was specified. This style also sets the velocity of each
|
||||
atom to the time derivative of this expression. If any of the amplitude
|
||||
components is specified as NULL, then the position and velocity of that
|
||||
component is time integrated the same as the :doc:`fix nve <fix_nve>`
|
||||
command would perform, using the corresponding force component on the
|
||||
atom.
|
||||
|
||||
Note that the *wiggle* style is identical to using the *variable*
|
||||
style with :doc:`equal-style variables <variable>` that use the
|
||||
@ -139,21 +147,29 @@ swiggle() and cwiggle() functions. E.g.
|
||||
variable v equal v_omega*($A-cwiggle(0.0,$A,$T))
|
||||
fix 1 boundary move variable v_x NULL NULL v_v NULL NULL
|
||||
|
||||
The *rotate* style rotates atoms around a rotation axis *R* =
|
||||
(Rx,Ry,Rz) that goes through a point *P* = (Px,Py,Pz). The *period* of
|
||||
the rotation is also specified. The direction of rotation for the
|
||||
atoms around the rotation axis is consistent with the right-hand rule:
|
||||
if your right-hand thumb points along *R*, then your fingers wrap
|
||||
around the axis in the direction of rotation.
|
||||
The *rotate* style rotates atoms around a rotation axis *R* = (Rx,Ry,Rz)
|
||||
that goes through a point *P* = (Px,Py,Pz). The *period* of the
|
||||
rotation is also specified. The direction of rotation for the atoms
|
||||
around the rotation axis is consistent with the right-hand rule: if your
|
||||
right-hand thumb points along *R*, then your fingers wrap around the
|
||||
axis in the direction of rotation.
|
||||
|
||||
This style also sets the velocity of each atom to (omega cross Rperp)
|
||||
where omega is its angular velocity around the rotation axis and Rperp
|
||||
is a perpendicular vector from the rotation axis to the atom. If the
|
||||
defined :doc:`atom_style <atom_style>` assigns an angular velocity or
|
||||
angular momentum or orientation to each atom (:doc:`atom styles <atom_style>` sphere, ellipsoid, line, tri, body), then
|
||||
angular momentum or orientation to each atom (:doc:`atom styles
|
||||
<atom_style>` sphere, ellipsoid, line, tri, body), then
|
||||
those properties are also updated appropriately to correspond to the
|
||||
atom's motion and rotation over time.
|
||||
|
||||
The *transrot* style combines the effects of *rotate* and *linear* so
|
||||
that it is possible to prescribe a rotating group of atoms that also
|
||||
moves at a constant velocity. The arguments are for the translation
|
||||
first and then for the rotation. Since the rotation affects all
|
||||
coordinate components, it is not possible to set any of the
|
||||
translation vector components to NULL.
|
||||
|
||||
The *variable* style allows the position and velocity components of
|
||||
each atom to be set by formulas specified via the
|
||||
:doc:`variable <variable>` command. Each of the 6 variables is
|
||||
@ -165,10 +181,10 @@ Each variable must be of either the *equal* or *atom* style.
|
||||
a function of the timestep as well as of other simulation values.
|
||||
*Atom*\ -style variables compute a numeric quantity for each atom, that
|
||||
can be a function per-atom quantities, such as the atom's position, as
|
||||
well as of the timestep and other simulation values. Note that this
|
||||
fix stores the original coordinates of each atom (see note below) so
|
||||
that per-atom quantity can be used in an atom-style variable formula.
|
||||
See the :doc:`variable <variable>` command for details.
|
||||
well as of the timestep and other simulation values. Note that this fix
|
||||
stores the original coordinates of each atom (see note below) so that
|
||||
per-atom quantity can be used in an atom-style variable formula. See
|
||||
the :doc:`variable <variable>` command for details.
|
||||
|
||||
The first 3 variables (v_dx,v_dy,v_dz) specified for the *variable*
|
||||
style are used to calculate a displacement from the atom's original
|
||||
@ -206,8 +222,9 @@ spacings can be different in x,y,z.
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
This fix writes the original coordinates of moving atoms to :doc:`binary restart files <restart>`, as well as the initial timestep, so that
|
||||
the motion can be continuous in a restarted simulation. See the
|
||||
This fix writes the original coordinates of moving atoms to :doc:`binary
|
||||
restart files <restart>`, as well as the initial timestep, so that the
|
||||
motion can be continuous in a restarted simulation. See the
|
||||
:doc:`read_restart <read_restart>` command for info on how to re-specify
|
||||
a fix in an input script that reads a restart file, so that the
|
||||
operation of the fix continues in an uninterrupted fashion.
|
||||
@ -224,11 +241,12 @@ fix.
|
||||
|
||||
This fix produces a per-atom array which can be accessed by various
|
||||
:doc:`output commands <Howto_output>`. The number of columns for each
|
||||
atom is 3, and the columns store the original unwrapped x,y,z coords
|
||||
of each atom. The per-atom values can be accessed on any timestep.
|
||||
atom is 3, and the columns store the original unwrapped x,y,z coords of
|
||||
each atom. The per-atom values can be accessed on any timestep.
|
||||
|
||||
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>`.
|
||||
the :doc:`run <run>` command. This fix is not invoked during
|
||||
:doc:`energy minimization <minimize>`.
|
||||
|
||||
For :doc:`rRESPA time integration <run_style>`, this fix adjusts the
|
||||
position and velocity of atoms on the outermost rRESPA level.
|
||||
|
||||
@ -71,7 +71,7 @@ Syntax
|
||||
*no_affinity* values = none
|
||||
*kokkos* args = keyword value ...
|
||||
zero or more keyword/value pairs may be appended
|
||||
keywords = *neigh* or *neigh/qeq* or *neigh/thread* or *newton* or *binsize* or *comm* or *comm/exchange* or *comm/forward* *pair/comm/forward* *fix/comm/forward* or *comm/reverse* or *gpu/aware* or *pair/only*
|
||||
keywords = *neigh* or *neigh/qeq* or *neigh/thread* or *newton* or *binsize* or *comm* or *comm/exchange* or *comm/forward* *comm/pair/forward* *comm/fix/forward* or *comm/reverse* or *gpu/aware* or *pair/only*
|
||||
*neigh* value = *full* or *half*
|
||||
full = full neighbor list
|
||||
half = half neighbor list built in thread-safe manner
|
||||
@ -90,11 +90,11 @@ Syntax
|
||||
*binsize* value = size
|
||||
size = bin size for neighbor list construction (distance units)
|
||||
*comm* value = *no* or *host* or *device*
|
||||
use value for comm/exchange and comm/forward and pair/comm/forward and fix/comm/forward and comm/reverse
|
||||
use value for comm/exchange and comm/forward and comm/pair/forward and comm/fix/forward and comm/reverse
|
||||
*comm/exchange* value = *no* or *host* or *device*
|
||||
*comm/forward* value = *no* or *host* or *device*
|
||||
*pair/comm/forward* value = *no* or *device*
|
||||
*fix/comm/forward* value = *no* or *device*
|
||||
*comm/pair/forward* value = *no* or *device*
|
||||
*comm/fix/forward* value = *no* or *device*
|
||||
*comm/reverse* value = *no* or *host* or *device*
|
||||
no = perform communication pack/unpack in non-KOKKOS mode
|
||||
host = perform pack/unpack on host (e.g. with OpenMP threading)
|
||||
@ -498,8 +498,8 @@ because the GPU is faster at performing pairwise interactions, then this
|
||||
rule of thumb may give too large a binsize and the default should be
|
||||
overridden with a smaller value.
|
||||
|
||||
The *comm* and *comm/exchange* and *comm/forward* and *pair/comm/forward*
|
||||
and *fix/comm/forward* and comm/reverse*
|
||||
The *comm* and *comm/exchange* and *comm/forward* and *comm/pair/forward*
|
||||
and *comm/fix/forward* and comm/reverse*
|
||||
keywords determine whether the host or device performs the packing and
|
||||
unpacking of data when communicating per-atom data between processors.
|
||||
"Exchange" communication happens only on timesteps that neighbor lists
|
||||
@ -520,8 +520,8 @@ packing/unpacking data for the communication. A value of *host* means to
|
||||
use the host, typically a multi-core CPU, and perform the
|
||||
packing/unpacking in parallel with threads. A value of *device* means to
|
||||
use the device, typically a GPU, to perform the packing/unpacking
|
||||
operation. If a value of *host* is used for the *pair/comm/forward* or
|
||||
*fix/comm/forward* keyword, it will be automatically be changed to *no*
|
||||
operation. If a value of *host* is used for the *comm/pair/forward* or
|
||||
*comm/fix/forward* keyword, it will be automatically be changed to *no*
|
||||
since these keywords don't support *host* mode.
|
||||
|
||||
The optimal choice for these keywords depends on the input script and
|
||||
|
||||
Reference in New Issue
Block a user