Merge branch 'lammps:develop' into mliappy_unified
This commit is contained in:
@ -15,7 +15,9 @@
|
||||
General commands
|
||||
================
|
||||
|
||||
An alphabetic list of general LAMMPS commands.
|
||||
An alphabetic list of general LAMMPS commands. Note that style
|
||||
commands with many variants, can be more easily accessed via the small
|
||||
table above.
|
||||
|
||||
.. table_from_list::
|
||||
:columns: 5
|
||||
|
||||
@ -165,6 +165,7 @@ OPT.
|
||||
* :doc:`orient/fcc <fix_orient>`
|
||||
* :doc:`orient/eco <fix_orient_eco>`
|
||||
* :doc:`pafi <fix_pafi>`
|
||||
* :doc:`pair <fix_pair>`
|
||||
* :doc:`phonon <fix_phonon>`
|
||||
* :doc:`pimd <fix_pimd>`
|
||||
* :doc:`planeforce <fix_planeforce>`
|
||||
|
||||
@ -328,7 +328,7 @@ removed so this update is **required** to avoid compilation failure.
|
||||
Split of fix STORE into fix STORE/GLOBAL and fix STORE/PERATOM
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. versionchanged:: TBD
|
||||
.. versionchanged:: 15Sep2022
|
||||
|
||||
This change splits the GLOBAL and PERATOM modes of fix STORE into two
|
||||
separate fixes STORE/GLOBAL and STORE/PERATOM. There was very little
|
||||
@ -387,7 +387,7 @@ This change is **required** or else the code will not compile.
|
||||
Use Output::get_dump_by_id() instead of Output::find_dump()
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. versionchanged:: TBD
|
||||
.. versionchanged:: 15Sep2022
|
||||
|
||||
The accessor function to individual dump style instances has been changed
|
||||
from ``Output::find_dump()`` returning the index of the dump instance in
|
||||
|
||||
@ -33,46 +33,6 @@ reference state of a bond. Bonds that are created midway into a run,
|
||||
such as those created by pouring grains using :doc:`fix pour
|
||||
<fix_pour>`, are initialized on that timestep.
|
||||
|
||||
As bonds can be broken between neighbor list builds, the
|
||||
:doc:`special_bonds <special_bonds>` command works differently for BPM
|
||||
bond styles. There are two possible settings which determine how pair
|
||||
interactions work between bonded particles. First, one can turn off
|
||||
all pair interactions between bonded particles. Unlike :doc:`bond
|
||||
quartic <bond_quartic>`, this is not done by subtracting pair forces
|
||||
during the bond computation but rather by dynamically updating the
|
||||
special bond list. This is the default behavior of BPM bond styles and
|
||||
is done by updating the 1-2 special bond list as bonds break. To do
|
||||
this, LAMMPS requires :doc:`newton <newton>` bond off such that all
|
||||
processors containing an atom know when a bond breaks. Additionally,
|
||||
one must do either (A) or (B).
|
||||
|
||||
A) Use the following special bond settings
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
special_bonds lj 0 1 1 coul 1 1 1
|
||||
|
||||
These settings accomplish two goals. First, they turn off 1-3 and 1-4
|
||||
special bond lists, which are not currently supported for BPMs. As
|
||||
BPMs often have dense bond networks, generating 1-3 and 1-4 special
|
||||
bond lists is expensive. By setting the lj weight for 1-2 bonds to
|
||||
zero, this turns off pairwise interactions. Even though there are no
|
||||
charges in BPM models, setting a nonzero coul weight for 1-2 bonds
|
||||
ensures all bonded neighbors are still included in the neighbor list
|
||||
in case bonds break between neighbor list builds.
|
||||
|
||||
B) Alternatively, one can simply overlay pair interactions such that all
|
||||
bonded particles also feel pair interactions. This can be
|
||||
accomplished by using the *overlay/pair* keyword present in all bpm
|
||||
bond styles and by using the following special bond settings
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
special_bonds lj/coul 1 1 1
|
||||
|
||||
See the :doc:`Howto <Howto_broken_bonds>` page on broken bonds for
|
||||
more information.
|
||||
|
||||
----------
|
||||
|
||||
Currently there are two types of bonds included in the BPM
|
||||
@ -91,12 +51,6 @@ This also requires a unique integrator :doc:`fix nve/bpm/sphere
|
||||
<fix_nve_bpm_sphere>` which numerically integrates orientation similar
|
||||
to :doc:`fix nve/asphere <fix_nve_asphere>`.
|
||||
|
||||
To monitor the fracture of bonds in the system, all BPM bond styles
|
||||
have the ability to record instances of bond breakage to output using
|
||||
the :doc:`dump local <dump>` command. Additionally, one can use
|
||||
:doc:`compute nbond/atom <compute_nbond_atom>` to tally the current
|
||||
number of bonds per atom.
|
||||
|
||||
In addition to bond styles, a new pair style :doc:`pair bpm/spring
|
||||
<pair_bpm_spring>` was added to accompany the bpm/spring bond
|
||||
style. This pair style is simply a hookean repulsion with similar
|
||||
@ -104,6 +58,73 @@ velocity damping as its sister bond style.
|
||||
|
||||
----------
|
||||
|
||||
Bond data can be output using a combination of standard LAMMPS commands.
|
||||
A list of IDs for bonded atoms can be generated using the
|
||||
:doc:`compute property/local <compute_property_local>` command.
|
||||
Various properties of bonds can be computed using the
|
||||
:doc:`compute bond/local <compute_bond_local>` command. This
|
||||
command allows one to access data saved to the bond's history
|
||||
such as the reference length of the bond. More information on
|
||||
bond history data can be found on the documentation pages for the specific
|
||||
BPM bond styles. Finally, this data can be output using a :doc:`dump local <dump>`
|
||||
command. As one may output many columns from the same compute, the
|
||||
:doc:`dump modify <dump_modify>` *colname* option may be used to provide
|
||||
more helpful column names. An example of this procedure is found in
|
||||
/examples/bpm/pour/. External software, such as OVITO, can read these dump
|
||||
files to render bond data.
|
||||
|
||||
----------
|
||||
|
||||
As bonds can be broken between neighbor list builds, the
|
||||
:doc:`special_bonds <special_bonds>` command works differently for BPM
|
||||
bond styles. There are two possible settings which determine how pair
|
||||
interactions work between bonded particles. First, one can overlay
|
||||
pair forces with bond forces such that all bonded particles also
|
||||
feel pair interactions. This can be accomplished by using the *overlay/pair*
|
||||
keyword present in all bpm bond styles and by using the following special
|
||||
bond settings
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
special_bonds lj/coul 1 1 1
|
||||
|
||||
Alternatively, one can turn off all pair interactions between bonded
|
||||
particles. Unlike :doc:`bond quartic <bond_quartic>`, this is not done
|
||||
by subtracting pair forces during the bond computation but rather by
|
||||
dynamically updating the special bond list. This is the default behavior
|
||||
of BPM bond styles and is done by updating the 1-2 special bond list as
|
||||
bonds break. To do this, LAMMPS requires :doc:`newton <newton>` bond off
|
||||
such that all processors containing an atom know when a bond breaks.
|
||||
Additionally, one must use the following special bond settings
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
special_bonds lj 0 1 1 coul 1 1 1
|
||||
|
||||
These settings accomplish two goals. First, they turn off 1-3 and 1-4
|
||||
special bond lists, which are not currently supported for BPMs. As
|
||||
BPMs often have dense bond networks, generating 1-3 and 1-4 special
|
||||
bond lists is expensive. By setting the lj weight for 1-2 bonds to
|
||||
zero, this turns off pairwise interactions. Even though there are no
|
||||
charges in BPM models, setting a nonzero coul weight for 1-2 bonds
|
||||
ensures all bonded neighbors are still included in the neighbor list
|
||||
in case bonds break between neighbor list builds.
|
||||
|
||||
To monitor the fracture of bonds in the system, all BPM bond styles
|
||||
have the ability to record instances of bond breakage to output using
|
||||
the :doc:`dump local <dump>` command. Since one may frequently output
|
||||
a list of broken bonds and the time they broke, the
|
||||
:doc:`dump modify <dump_modify>` option *header no* may be useful to
|
||||
avoid repeatedly printing the header of the dump file. An example of
|
||||
this procedure is found in /examples/bpm/impact/. Additionally,
|
||||
one can use :doc:`compute nbond/atom <compute_nbond_atom>` to tally the
|
||||
current number of bonds per atom.
|
||||
|
||||
See the :doc:`Howto <Howto_broken_bonds>` page on broken bonds for
|
||||
more information.
|
||||
|
||||
----------
|
||||
|
||||
While LAMMPS has many utilities to create and delete bonds, *only*
|
||||
the following are currently compatible with BPM bond styles:
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Type labels
|
||||
===========
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 15Sep2022
|
||||
|
||||
Each atom in LAMMPS has an associated numeric atom type. Similarly,
|
||||
each bond, angle, dihedral, and improper is assigned a bond type,
|
||||
|
||||
@ -24,7 +24,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 15Sep2022
|
||||
|
||||
The *mesocnt* angle style uses the potential
|
||||
|
||||
|
||||
@ -138,15 +138,14 @@ the *overlay/pair* keyword. These settings require specific
|
||||
restrictions. Further details can be found in the `:doc: how to
|
||||
<Howto_BPM>` page on BPMs.
|
||||
|
||||
If the *store/local* keyword is used, this fix will track bonds that
|
||||
If the *store/local* keyword is used, an internal fix will track bonds that
|
||||
break during the simulation. Whenever a bond breaks, data is processed
|
||||
and transferred to an internal fix labeled *fix_ID*. This allows the
|
||||
local data to be accessed by other LAMMPS commands.
|
||||
Following any optional keyword/value arguments, a list of one or more
|
||||
attributes is specified. These include the IDs of the two atoms in
|
||||
the bond. The other attributes for the two atoms include the timestep
|
||||
during which the bond broke and the current/initial center of mass
|
||||
position of the two atoms.
|
||||
local data to be accessed by other LAMMPS commands. Following this optional
|
||||
keyword, a list of one or more attributes is specified. These include the
|
||||
IDs of the two atoms in the bond. The other attributes for the two atoms
|
||||
include the timestep during which the bond broke and the current/initial
|
||||
center of mass position of the two atoms.
|
||||
|
||||
Data is continuously accumulated over intervals of *N*
|
||||
timesteps. At the end of each interval, all of the saved accumulated
|
||||
@ -177,29 +176,38 @@ Restart and other info
|
||||
|
||||
This bond style writes the reference state of each bond to
|
||||
:doc:`binary restart files <restart>`. Loading a restart file will
|
||||
properly resume bonds.
|
||||
properly resume bonds. However, the reference state is NOT
|
||||
written to data files. Therefore reading a data file will not
|
||||
restore bonds and will cause their reference states to be redefined.
|
||||
|
||||
The single() function of these pair styles returns 0.0 for the energy
|
||||
of a pairwise interaction, since energy is not conserved in these
|
||||
dissipative potentials. It also returns only the normal component of
|
||||
the pairwise interaction force.
|
||||
|
||||
The accumulated data is not written to restart files and should be
|
||||
output before a restart file is written to avoid missing data.
|
||||
|
||||
The internal fix calculates a local vector or local array depending on the
|
||||
number of input values. The length of the vector or number of rows in
|
||||
the array is the number of recorded, lost interactions. If a single
|
||||
input is specified, a local vector is produced. If two or more inputs
|
||||
are specified, a local array is produced where the number of columns =
|
||||
the number of inputs. The vector or array can be accessed by any
|
||||
command that uses local values from a compute as input. See the
|
||||
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS
|
||||
output options.
|
||||
If the *store/local* option is used, an internal fix will calculate
|
||||
a local vector or local array depending on the number of input values.
|
||||
The length of the vector or number of rows in the array is the number
|
||||
of recorded, broken bonds. If a single input is specified, a local
|
||||
vector is produced. If two or more inputs are specified, a local array
|
||||
is produced where the number of columns = the number of inputs. The
|
||||
vector or array can be accessed by any command that uses local values
|
||||
from a compute as input. See the :doc:`Howto output <Howto_output>` page
|
||||
for an overview of LAMMPS output options.
|
||||
|
||||
The vector or array will be floating point values that correspond to
|
||||
the specified attribute.
|
||||
|
||||
The single() function of this bond style returns 0.0 for the energy
|
||||
of a bonded interaction, since energy is not conserved in these
|
||||
dissipative potentials. It also returns only the normal component of
|
||||
the bonded interaction force. However, the single() function also
|
||||
calculates 7 extra bond quantities. The first 4 are data from the
|
||||
reference state of the bond including the initial distance between particles
|
||||
:math:`r_0` followed by the :math:`x`, :math:`y`, and :math:`z` components
|
||||
of the initial unit vector pointing to particle I from particle J. The next 3
|
||||
quantities (5-7) are the :math:`x`, :math:`y`, and :math:`z` components
|
||||
of the total force, including normal and tangential contributions, acting
|
||||
on particle I.
|
||||
|
||||
These extra quantities can be accessed by the :doc:`compute bond/local <compute_bond_local>`
|
||||
command, as *b1*, *b2*, ..., *b7*\ .
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
||||
@ -103,15 +103,14 @@ the *overlay/pair* keyword. These settings require specific
|
||||
restrictions. Further details can be found in the `:doc: how to
|
||||
<Howto_BPM>` page on BPMs.
|
||||
|
||||
If the *store/local* keyword is used, this fix will track bonds that
|
||||
If the *store/local* keyword is used, an internal fix will track bonds that
|
||||
break during the simulation. Whenever a bond breaks, data is processed
|
||||
and transferred to an internal fix labeled *fix_ID*. This allows the
|
||||
local data to be accessed by other LAMMPS commands.
|
||||
Following any optional keyword/value arguments, a list of one or more
|
||||
attributes is specified. These include the IDs of the two atoms in
|
||||
the bond. The other attributes for the two atoms include the timestep
|
||||
during which the bond broke and the current/initial center of mass
|
||||
position of the two atoms.
|
||||
local data to be accessed by other LAMMPS commands. Following this optional
|
||||
keyword, a list of one or more attributes is specified. These include the
|
||||
IDs of the two atoms in the bond. The other attributes for the two atoms
|
||||
include the timestep during which the bond broke and the current/initial
|
||||
center of mass position of the two atoms.
|
||||
|
||||
Data is continuously accumulated over intervals of *N*
|
||||
timesteps. At the end of each interval, all of the saved accumulated
|
||||
@ -141,28 +140,30 @@ Restart and other info
|
||||
|
||||
This bond style writes the reference state of each bond to
|
||||
:doc:`binary restart files <restart>`. Loading a restart
|
||||
file will properly resume bonds.
|
||||
file will properly restore bonds. However, the reference state is NOT
|
||||
written to data files. Therefore reading a data file will not
|
||||
restore bonds and will cause their reference states to be redefined.
|
||||
|
||||
The single() function of these pair styles returns 0.0 for the energy
|
||||
of a pairwise interaction, since energy is not conserved in these
|
||||
dissipative potentials.
|
||||
|
||||
The accumulated data is not written to restart files and should be
|
||||
output before a restart file is written to avoid missing data.
|
||||
|
||||
The internal fix calculates a local vector or local array depending on the
|
||||
number of input values. The length of the vector or number of rows in
|
||||
the array is the number of recorded, lost interactions. If a single
|
||||
input is specified, a local vector is produced. If two or more inputs
|
||||
are specified, a local array is produced where the number of columns =
|
||||
the number of inputs. The vector or array can be accessed by any
|
||||
command that uses local values from a compute as input. See the
|
||||
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS
|
||||
output options.
|
||||
If the *store/local* option is used, an internal fix will calculate
|
||||
a local vector or local array depending on the number of input values.
|
||||
The length of the vector or number of rows in the array is the number
|
||||
of recorded, broken bonds. If a single input is specified, a local
|
||||
vector is produced. If two or more inputs are specified, a local array
|
||||
is produced where the number of columns = the number of inputs. The
|
||||
vector or array can be accessed by any command that uses local values
|
||||
from a compute as input. See the :doc:`Howto output <Howto_output>` page
|
||||
for an overview of LAMMPS output options.
|
||||
|
||||
The vector or array will be floating point values that correspond to
|
||||
the specified attribute.
|
||||
|
||||
The single() function of this bond style returns 0.0 for the energy
|
||||
of a bonded interaction, since energy is not conserved in these
|
||||
dissipative potentials. The single() function also calculates an
|
||||
extra bond quantity, the initial distance :math:`r_0`. This
|
||||
extra quantity can be accessed by the
|
||||
:doc:`compute bond/local <compute_bond_local>` command as *b1*\ .
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 15Sep2022
|
||||
|
||||
The *mesocnt* bond style is a wrapper for the :doc:`harmonic
|
||||
<bond_harmonic>` style, and uses the potential
|
||||
|
||||
@ -13,7 +13,7 @@ Syntax
|
||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||
* bond/local = style name of this compute command
|
||||
* one or more values may be appended
|
||||
* value = *dist* or *dx* or *dy* or *dz* or *engpot* or *force* or *fx* or *fy* or *fz* or *engvib* or *engrot* or *engtrans* or *omega* or *velvib* or *v_name*
|
||||
* value = *dist* or *dx* or *dy* or *dz* or *engpot* or *force* or *fx* or *fy* or *fz* or *engvib* or *engrot* or *engtrans* or *omega* or *velvib* or *v_name* or *bN*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -29,6 +29,7 @@ Syntax
|
||||
*omega* = magnitude of bond angular velocity
|
||||
*velvib* = vibrational velocity along the bond length
|
||||
*v_name* = equal-style variable with name (see below)
|
||||
*bN* = bond style specific quantities for allowed N values
|
||||
|
||||
* zero or more keyword/args pairs may be appended
|
||||
* keyword = *set*
|
||||
@ -47,7 +48,7 @@ Examples
|
||||
compute 1 all bond/local engpot
|
||||
compute 1 all bond/local dist engpot force
|
||||
|
||||
compute 1 all bond/local dist fx fy fz
|
||||
compute 1 all bond/local dist fx fy fz b1 b2
|
||||
|
||||
compute 1 all bond/local dist v_distsq set dist d
|
||||
|
||||
@ -147,6 +148,19 @@ those quantities via the :doc:`compute reduce <compute_reduce>` command
|
||||
with thermo output, and the :doc:`fix ave/histo <fix_ave_histo>`
|
||||
command will histogram the length\ :math:`^2` values and write them to a file.
|
||||
|
||||
A bond style may define additional bond quantities which can be
|
||||
accessed as *b1* to *bN*, where N is defined by the bond style. Most
|
||||
bond styles do not define any additional quantities, so N = 0. An
|
||||
example of ones that do are the :doc:`BPM bond styles <Howto_bpm>`
|
||||
which store the reference state between two particles. See
|
||||
individual bond styles for details.
|
||||
|
||||
When using *bN* with bond style *hybrid*, the output will be the Nth
|
||||
quantity from the sub-style that computes the bonded interaction
|
||||
(based on bond type). If that sub-style does not define a *bN*,
|
||||
the output will be 0.0. The maximum allowed N is the maximum number
|
||||
of quantities provided by any sub-style.
|
||||
|
||||
----------
|
||||
|
||||
The local data stored by this command is generated by looping over all
|
||||
|
||||
@ -93,7 +93,9 @@ Restrictions
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`compute pe <compute_pe>`, :doc:`compute bond <compute_bond>`
|
||||
:doc:`compute pe <compute_pe>`, :doc:`compute bond <compute_bond>`,
|
||||
:doc:`fix pair <fix_pair>`
|
||||
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
@ -167,7 +167,7 @@ triangular particles and define the corner points of each triangle.
|
||||
In addition, the various per-atom quantities listed above for specific
|
||||
packages are only accessible by this command.
|
||||
|
||||
.. versionchanged:: TBD
|
||||
.. versionchanged:: 15Sep2022
|
||||
|
||||
The *espin* property was previously called *spin*.
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ Syntax
|
||||
* one or more keyword/value pairs may be appended
|
||||
|
||||
* these keywords apply to various dump styles
|
||||
* keyword = *append* or *at* or *balance* or *buffer* or *delay* or *element* or *every* or *every/time* or *fileper* or *first* or *flush* or *format* or *header* or *image* or *label* or *maxfiles* or *nfile* or *pad* or *pbc* or *precision* or *region* or *refresh* or *scale* or *sfactor* or *sort* or *tfactor* or *thermo* or *thresh* or *time* or *units* or *unwrap*
|
||||
* keyword = *append* or *at* or *balance* or *buffer* or *colname* or *delay* or *element* or *every* or *every/time* or *fileper* or *first* or *flush* or *format* or *header* or *image* or *label* or *maxfiles* or *nfile* or *pad* or *pbc* or *precision* or *region* or *refresh* or *scale* or *sfactor* or *skip* or *sort* or *tfactor* or *thermo* or *thresh* or *time* or *units* or *unwrap*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -65,6 +65,8 @@ Syntax
|
||||
*refresh* arg = c_ID = compute ID that supports a refresh operation
|
||||
*scale* arg = *yes* or *no*
|
||||
*sfactor* arg = coordinate scaling factor (> 0.0)
|
||||
*skip* arg = v_name
|
||||
v_name = variable with name which evaluates to non-zero (skip) or 0
|
||||
*sort* arg = *off* or *id* or N or -N
|
||||
off = no sorting of per-atom lines within a snapshot
|
||||
id = sort per-atom lines by atom ID
|
||||
@ -179,8 +181,8 @@ extra buffering.
|
||||
.. versionadded:: 4May2022
|
||||
|
||||
The *colname* keyword can be used to change the default header keyword
|
||||
for dump styles: *atom*, *custom*, and *cfg* and their compressed, ADIOS,
|
||||
and MPIIO variants. The setting for *ID string* replaces the default
|
||||
for dump styles: *atom*, *custom*, *cfg*, and *local* and their compressed,
|
||||
ADIOS, and MPIIO variants. The setting for *ID string* replaces the default
|
||||
text with the provided string. *ID* can be a positive integer when it
|
||||
represents the column number counting from the left, a negative integer
|
||||
when it represents the column number from the right (i.e. -1 is the last
|
||||
@ -694,14 +696,33 @@ most effective when the typical magnitude of position data is between
|
||||
|
||||
----------
|
||||
|
||||
.. versionadded:: 15Sep2022
|
||||
|
||||
The *skip* keyword can be used with all dump styles. It allows a dump
|
||||
snapshot to be skipped (not written to the dump file), if a condition
|
||||
is met. The condition is computed by an :doc:`equal-style variable
|
||||
<variable>`, which should be specified as v_name, where name is the
|
||||
variable name. If the variable evaluation returns a non-zero value,
|
||||
then the dump snapshot is skipped. If it returns zero, the dump
|
||||
proceeds as usual. Note that :doc:`equal-style variable <variable>`
|
||||
can contain Boolean operators which effectively evaluate as a true
|
||||
(non-zero) or false (zero) result.
|
||||
|
||||
The *skip* keyword can be useful for debugging purposes, e.g. to dump
|
||||
only on a particular timestep. Or to limit output to conditions of
|
||||
interest, e.g. only when the force on some atom exceeds a threshold
|
||||
value.
|
||||
|
||||
----------
|
||||
|
||||
The *sort* keyword determines whether lines of per-atom output in a
|
||||
snapshot are sorted or not. A sort value of *off* means they will
|
||||
typically be written in indeterminate order, either in serial or
|
||||
parallel. This is the case even in serial if the
|
||||
:doc:`atom_modify sort <atom_modify>` option is turned on, which it is by
|
||||
default, to improve performance. A sort value of *id* means sort the output by
|
||||
atom ID. A sort value of :math:`N` or :math:`-N` means sort the output by the
|
||||
value in the :math:`N`\ th column of per-atom info in either ascending or
|
||||
parallel. This is the case even in serial if the :doc:`atom_modify sort
|
||||
<atom_modify>` option is turned on, which it is by default, to improve
|
||||
performance. A sort value of *id* means sort the output by atom ID. A
|
||||
sort value of :math:`N` or :math:`-N` means sort the output by the value
|
||||
in the :math:`N`\ th column of per-atom info in either ascending or
|
||||
descending order.
|
||||
|
||||
The dump *local* style cannot be sorted by atom ID, since there are
|
||||
@ -745,8 +766,8 @@ attributes that can be tested for are the same as those that can be
|
||||
specified in the :doc:`dump custom <dump>` command, with the exception
|
||||
of the *element* attribute, since it is not a numeric value. Note
|
||||
that a different attributes can be used than those output by the
|
||||
:doc:`dump custom <dump>` command. For example, you can output the coordinates
|
||||
and stress of atoms whose energy is above some threshold.
|
||||
:doc:`dump custom <dump>` command. For example, you can output the
|
||||
coordinates and stress of atoms whose energy is above some threshold.
|
||||
|
||||
If an atom-style variable is used as the attribute, then it can
|
||||
produce continuous numeric values or effective Boolean 0/1 values,
|
||||
|
||||
@ -312,6 +312,7 @@ accelerated styles exist.
|
||||
* :doc:`orient/fcc <fix_orient>` - add grain boundary migration force for FCC
|
||||
* :doc:`orient/eco <fix_orient_eco>` - add generalized grain boundary migration force
|
||||
* :doc:`pafi <fix_pafi>` - constrained force averages on hyper-planes to compute free energies (PAFI)
|
||||
* :doc:`pair <fix_pair>` - access per-atom info from pair styles
|
||||
* :doc:`phonon <fix_phonon>` - calculate dynamical matrix from MD simulations
|
||||
* :doc:`pimd <fix_pimd>` - Feynman path integral molecular dynamics
|
||||
* :doc:`planeforce <fix_planeforce>` - constrain atoms to move in a plane
|
||||
|
||||
@ -71,6 +71,15 @@ the polymer chains all become interconnected. For this use case, if
|
||||
angles are defined they should not include bonds between sticker
|
||||
sites.
|
||||
|
||||
.. note::
|
||||
|
||||
For the sticker site model, you should set the newton flag for
|
||||
bonds to "off", via the :doc:`newton on off<newton>` command ("on"
|
||||
is the default for the 2nd argument). This is to ensure
|
||||
appropriate randomness in bond selection because the I,J bond will
|
||||
be stored by both atom I and atom J. LAMMPS cannot check for this,
|
||||
because it is not aware that a sticker site model is being used.
|
||||
|
||||
----------
|
||||
|
||||
The bond swapping operation is invoked once every *Nevery* timesteps.
|
||||
@ -114,11 +123,11 @@ Boltzmann constant, and T is the current temperature of the system.
|
||||
|
||||
.. note::
|
||||
|
||||
IMPORTANT: Whether the swap is accepted or rejected, no other swaps
|
||||
are attempted by this processor on this timestep. No other
|
||||
eligible 4-tuples of atoms are considered. This means that each
|
||||
processor will perform either a single swap or none on timesteps
|
||||
this fix is invoked.
|
||||
Whether the swap is accepted or rejected, no other swaps are
|
||||
attempted by this processor on this timestep. No other eligible
|
||||
4-tuples of atoms are considered. This means that each processor
|
||||
will perform either a single swap or none on timesteps this fix is
|
||||
invoked.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
110
doc/src/fix_pair.rst
Normal file
110
doc/src/fix_pair.rst
Normal file
@ -0,0 +1,110 @@
|
||||
.. index:: fix pair
|
||||
|
||||
fix pair command
|
||||
=======================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fix ID group-ID pair N pstyle name flag ...
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* pair = style name of this fix command
|
||||
* N = invoke this fix once every N timesteps
|
||||
* pstyle = name of pair style to extract info from (e.g. eam)
|
||||
* one or more name/flag pairs can be listed
|
||||
* name = name of quantity the pair style allows extraction of
|
||||
* flag = 1 if pair style needs to be triggered to produce data for name, 0 if not
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix request all pair 100 eam rho 0
|
||||
fix request all pair 100 amoeba uind 0 uinp 0
|
||||
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: 15Sep2022
|
||||
|
||||
Extract per-atom quantities from a pair style and store them in this
|
||||
fix so they can be accessed by other LAMMPS commands, e.g. by a
|
||||
:doc:`dump <dump>` command or by another :doc:`fix <fix>`,
|
||||
:doc:`compute <compute>`, or :doc:`variable <variable>` command.
|
||||
|
||||
These are example use cases:
|
||||
|
||||
* extract per-atom density from :doc:`pair_style eam <pair_eam>` to a dump file
|
||||
* extract induced dipoles from :doc:`pair_style amoeba <pair_amoeba>` to a dump file
|
||||
* extract accuracy metrics from a machine-learned potential to trigger output when
|
||||
a condition is met (see the :doc:`dump_modify skip <dump_modify>` command)
|
||||
|
||||
The *N* argument determines how often the fix is invoked.
|
||||
|
||||
The *pstyle* argument is the name of the pair style. It can be a
|
||||
sub-style used in a :doc:`pair_style hybrid <pair_hybrid>` command.
|
||||
|
||||
One or more *name/flag* pairs of arguments follow. Each *name* is a
|
||||
per-atom quantity which the pair style must recognize as an extraction
|
||||
request. See the doc pages for individual :doc:`pair_styles
|
||||
<pair_style>` to see what fix pair requests (if any) they support.
|
||||
|
||||
The *flag* setting determines whether this fix will also trigger the
|
||||
pair style to compute the named quantity so it can be extracted. If the
|
||||
quantity is always computed by the pair style, no trigger is needed;
|
||||
specify *flag* = 0. If the quantity is not always computed
|
||||
(e.g. because it is expensive to calculate), then specify *flag* = 1.
|
||||
This will trigger the quantity to be calculated only on timesteps it is
|
||||
needed. Again, see the doc pages for individual :doc:`pair_styles
|
||||
<pair_style>` to determine which fix pair requests (if any) need to be
|
||||
triggered with a *flag* = 1 setting.
|
||||
|
||||
The per-atom data extracted from the pair style is stored by this fix
|
||||
as either a per-atom vector or array. If there is only one *name*
|
||||
argument specified and the pair style computes a single value for each
|
||||
atom, then this fix stores it as a per-atom vector. Otherwise a
|
||||
per-atom array is created, with its data in the order of the *name*
|
||||
arguments.
|
||||
|
||||
For example, :doc:`pair_style amoeba <pair_amoeba>` allows extraction of
|
||||
two named quantities: "uind" and "uinp", both of which are 3-vectors for
|
||||
each atom, i.e. dipole moments. In the example below a 6-column per-atom
|
||||
array will be created. Columns 1-3 will store the "uind" values;
|
||||
columns 4-6 will store the "uinp" values.
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style amoeba
|
||||
fix ex all pair amoeba 10 uind 0 uinp 0
|
||||
|
||||
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.
|
||||
|
||||
As explained above, this fix produces a per-atom vector or array which
|
||||
can be accessed by various :doc:`output commands <Howto_output>`. If
|
||||
an array is produced, the number of columns is the sum of the number
|
||||
of per-atom quantities produced by each *name* argument requested from
|
||||
the pair style.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
none
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`compute pair <compute_pair>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
@ -33,7 +33,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 15Sep2022
|
||||
|
||||
Define alphanumeric type labels to associate with one or more numeric
|
||||
atom, bond, angle, dihedral or improper types. A collection of type
|
||||
|
||||
@ -156,6 +156,20 @@ settings.
|
||||
|
||||
----------
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
The *amoeba* and *hippo* pair styles support extraction of two per-atom
|
||||
quantities by the :doc:`fix pair <fix_pair>` command. This allows the
|
||||
quantities to be output to files by the :doc:`dump <dump>` or otherwise
|
||||
processed by other LAMMPS commands.
|
||||
|
||||
The names of the two quantities are "uind" and "uinp" for the induced
|
||||
dipole moments for each atom. Neither quantity needs to be triggered by
|
||||
the :doc:`fix pair <fix_pair>` command in order for these pair styles to
|
||||
calculate it.
|
||||
|
||||
----------
|
||||
|
||||
Mixing, shift, table, tail correction, restart, rRESPA info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
|
||||
@ -59,7 +59,7 @@ include this pair interaction and overlay the pair force over the bond
|
||||
force or to exclude this pair interaction such that the two particles
|
||||
only interact via the bond force. See discussion of the *overlay/pair*
|
||||
option for BPM bond styles and the :doc:`special_bonds <special_bonds>`
|
||||
command in the `:doc: how to <Howto_BPM>` page on BPMs for more details.
|
||||
command in the :doc:`how to <Howto_bpm>` page on BPMs for more details.
|
||||
|
||||
The following coefficients must be defined for each pair of atom types
|
||||
via the :doc:`pair_coeff <pair_coeff>` command as in the examples
|
||||
|
||||
@ -56,8 +56,10 @@ field. This pairwise thermostat can be used in conjunction with any
|
||||
:doc:`pair style <pair_style>`, and in leiu of per-particle thermostats
|
||||
like :doc:`fix langevin <fix_langevin>` or ensemble thermostats like
|
||||
Nose Hoover as implemented by :doc:`fix nvt <fix_nh>`. To use
|
||||
*dpd/tstat* as a thermostat for another pair style, use the :doc:`pair_style hybrid/overlay <pair_hybrid>` command to compute both the desired
|
||||
pair interaction and the thermostat for each pair of particles.
|
||||
*dpd/tstat* as a thermostat for another pair style, use the
|
||||
:doc:`pair_style hybrid/overlay <pair_hybrid>` command to compute both
|
||||
the desired pair interaction and the thermostat for each pair of
|
||||
particles.
|
||||
|
||||
For style *dpd*, the force on atom I due to atom J is given as a sum
|
||||
of 3 terms
|
||||
@ -68,29 +70,30 @@ of 3 terms
|
||||
F^C = & A w(r) \\
|
||||
F^D = & - \gamma w^2(r) (\hat{r_{ij}} \bullet \vec{v_{ij}}) \\
|
||||
F^R = & \sigma w(r) \alpha (\Delta t)^{-1/2} \\
|
||||
w(r) = & 1 - r/r_c
|
||||
w(r) = & 1 - \frac{r}{r_c}
|
||||
|
||||
where :math:`F^C` is a conservative force, :math:`F^D` is a dissipative
|
||||
force, and :math:`F^R` is a random force. :math:`r_{ij}` is a unit
|
||||
vector in the direction :math:`r_i - r_j`, :math:`v_{ij}` is the vector
|
||||
difference in velocities of the two atoms :math:`= \vec{v}_i -
|
||||
\vec{v}_j`, :math:`\alpha` is a Gaussian random number with zero mean and
|
||||
unit variance, dt is the timestep size, and w(r) is a weighting factor
|
||||
that varies between 0 and 1. :math:`r_c` is the cutoff. :math:`\sigma`
|
||||
is set equal to :math:`\sqrt{2 k_B T \gamma}`, where :math:`k_B` is the
|
||||
Boltzmann constant and T is the temperature parameter in the pair_style
|
||||
command.
|
||||
force, and :math:`F^R` is a random force. :math:`\hat{r_{ij}}` is a
|
||||
unit vector in the direction :math:`r_i - r_j`, :math:`\vec{v_{ij}}` is
|
||||
the vector difference in velocities of the two atoms :math:`\vec{v}_i -
|
||||
\vec{v}_j`, :math:`\alpha` is a Gaussian random number with zero mean
|
||||
and unit variance, *dt* is the timestep size, and :math:`w(r)` is a
|
||||
weighting factor that varies between 0 and 1. :math:`r_c` is the
|
||||
pairwise cutoff. :math:`\sigma` is set equal to :math:`\sqrt{2 k_B T
|
||||
\gamma}`, where :math:`k_B` is the Boltzmann constant and *T* is the
|
||||
temperature parameter in the pair_style command.
|
||||
|
||||
For style *dpd/tstat*, the force on atom I due to atom J is the same
|
||||
as the above equation, except that the conservative Fc term is
|
||||
dropped. Also, during the run, T is set each timestep to a ramped
|
||||
value from Tstart to Tstop.
|
||||
For style *dpd/tstat*, the force on atom I due to atom J is the same as
|
||||
the above equation, except that the conservative :math:`F^C` term is
|
||||
dropped. Also, during the run, *T* is set each timestep to a ramped
|
||||
value from *Tstart* to *Tstop*.
|
||||
|
||||
For style *dpd*, the pairwise energy associated with style *dpd* is
|
||||
only due to the conservative force term Fc, and is shifted to be zero
|
||||
at the cutoff distance Rc. The pairwise virial is calculated using
|
||||
all 3 terms. For style *dpd/tstat* there is no pairwise energy, but
|
||||
the last two terms of the formula make a contribution to the virial.
|
||||
For style *dpd*, the pairwise energy associated with style *dpd* is only
|
||||
due to the conservative force term :math:`F^C`, and is shifted to be
|
||||
zero at the cutoff distance :math:`r_c`. The pairwise virial is
|
||||
calculated using all 3 terms. For style *dpd/tstat* there is no
|
||||
pairwise energy, but the last two terms of the formula make a
|
||||
contribution to the virial.
|
||||
|
||||
For style *dpd*, the following coefficients must be defined for each
|
||||
pair of atoms types via the :doc:`pair_coeff <pair_coeff>` command as in
|
||||
@ -146,8 +149,8 @@ I,J pairs must be specified explicitly.
|
||||
|
||||
These pair styles do not support the :doc:`pair_modify <pair_modify>`
|
||||
shift option for the energy of the pair interaction. Note that as
|
||||
discussed above, the energy due to the conservative Fc term is already
|
||||
shifted to be 0.0 at the cutoff distance Rc.
|
||||
discussed above, the energy due to the conservative :math:`F^C` term is already
|
||||
shifted to be 0.0 at the cutoff distance :math:`r_c`.
|
||||
|
||||
The :doc:`pair_modify <pair_modify>` table option is not relevant
|
||||
for these pair styles.
|
||||
|
||||
@ -58,32 +58,27 @@ given as a sum of 3 terms
|
||||
F^C = & A w(r) \\
|
||||
F^D = & - \gamma w^2(r) (\hat{r_{ij}} \bullet \vec{v_{ij}}) \\
|
||||
F^R = & \sigma w(r) \alpha (\Delta t)^{-1/2} \\
|
||||
w(r) = & 1 - r/r_c
|
||||
w(r) = & 1 - \frac{r}{r_c}
|
||||
|
||||
where :math:`F^C` is a conservative force, :math:`F^D` is a dissipative
|
||||
force, and :math:`F^R` is a random force. :math:`r_{ij}` is a unit
|
||||
vector in the direction :math:`r_i - r_j`, :math:`V_{ij} is the vector
|
||||
difference in velocities of the two atoms :math:`= \vec{v}_i -
|
||||
\vec{v}_j, :math:`\alpha` is a Gaussian random number with zero mean and
|
||||
unit variance, dt is the timestep size, and w(r) is a weighting factor
|
||||
that varies between 0 and 1. Rc is the cutoff. The weighting factor,
|
||||
:math:`\omega_{ij}`, varies between 0 and 1, and is chosen to have the
|
||||
following functional form:
|
||||
force, and :math:`F^R` is a random force. :math:`\hat{r_{ij}}` is a
|
||||
unit vector in the direction :math:`r_i - r_j`, :math:`\vec{v_{ij}}` is
|
||||
the vector difference in velocities of the two atoms, :math:`\vec{v}_i -
|
||||
\vec{v}_j`, :math:`\alpha` is a Gaussian random number with zero mean
|
||||
and unit variance, *dt* is the timestep size, and :math:`w(r)` is a
|
||||
weighting factor that varies between 0 and 1, :math:`r_c` is the
|
||||
pairwise cutoff. Note that alternative definitions of the weighting
|
||||
function exist, but would have to be implemented as a separate pair
|
||||
style command.
|
||||
|
||||
.. math::
|
||||
|
||||
\omega_{ij} = 1 - \frac{r_{ij}}{r_{c}}
|
||||
|
||||
Note that alternative definitions of the weighting function exist, but
|
||||
would have to be implemented as a separate pair style command.
|
||||
|
||||
For style *dpd/fdt*, the fluctuation-dissipation theorem defines :math:`\gamma`
|
||||
to be set equal to :math:`\sigma^2/(2 T)`, where T is the set point
|
||||
temperature specified as a pair style parameter in the above examples.
|
||||
The following coefficients must be defined for each pair of atoms types
|
||||
via the :doc:`pair_coeff <pair_coeff>` command as in the examples above,
|
||||
or in the data file or restart files read by the
|
||||
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>` commands:
|
||||
For style *dpd/fdt*, the fluctuation-dissipation theorem defines
|
||||
:math:`\gamma` to be set equal to :math:`\sigma^2/(2 T)`, where *T* is the
|
||||
set point temperature specified as a pair style parameter in the above
|
||||
examples. The following coefficients must be defined for each pair of
|
||||
atoms types via the :doc:`pair_coeff <pair_coeff>` command as in the
|
||||
examples above, or in the data file or restart files read by the
|
||||
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
|
||||
commands:
|
||||
|
||||
* A (force units)
|
||||
* :math:`\sigma` (force\*time\^(1/2) units)
|
||||
@ -94,9 +89,9 @@ cutoff is used.
|
||||
|
||||
Style *dpd/fdt/energy* is used to perform DPD simulations under
|
||||
isoenergetic and isoenthalpic conditions. The fluctuation-dissipation
|
||||
theorem defines :math:`\gamma` to be set equal to :math:`sigma^2/(2
|
||||
\theta)`, where :math:theta` is the average internal temperature for the
|
||||
pair. The particle internal temperature is related to the particle
|
||||
theorem defines :math:`\gamma` to be set equal to :math:`\sigma^2/(2
|
||||
\theta)`, where :math:`\theta` is the average internal temperature for
|
||||
the pair. The particle internal temperature is related to the particle
|
||||
internal energy through a mesoparticle equation of state (see :doc:`fix
|
||||
eos <fix>`). The differential internal conductive and mechanical
|
||||
energies are computed within style *dpd/fdt/energy* as:
|
||||
@ -116,15 +111,15 @@ where
|
||||
\sigma^{2}_{ij} = & 2\gamma_{ij}k_{B}\Theta_{ij} \\
|
||||
\Theta_{ij}^{-1} = & \frac{1}{2}(\frac{1}{\theta_{i}}+\frac{1}{\theta_{j}})
|
||||
|
||||
:math:`\zeta_ij^q` is a second Gaussian random number with zero mean and unit
|
||||
variance that is used to compute the internal conductive energy. The
|
||||
fluctuation-dissipation theorem defines :math:`alpha^2` to be set
|
||||
equal to :math:2k_B\kappa`, where :math:`\kappa` is the mesoparticle thermal
|
||||
conductivity parameter. The following coefficients must be defined for
|
||||
each pair of atoms types via the :doc:`pair_coeff <pair_coeff>`
|
||||
command as in the examples above, or in the data file or restart files
|
||||
read by the :doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
|
||||
commands:
|
||||
:math:`\zeta_ij^q` is a second Gaussian random number with zero mean and
|
||||
unit variance that is used to compute the internal conductive
|
||||
energy. The fluctuation-dissipation theorem defines :math:`alpha^2` to
|
||||
be set equal to :math:`2k_B\kappa`, where :math:`\kappa` is the
|
||||
mesoparticle thermal conductivity parameter. The following coefficients
|
||||
must be defined for each pair of atoms types via the :doc:`pair_coeff
|
||||
<pair_coeff>` command as in the examples above, or in the data file or
|
||||
restart files read by the :doc:`read_data <read_data>` or
|
||||
:doc:`read_restart <read_restart>` commands:
|
||||
|
||||
* A (force units)
|
||||
* :math:`\sigma` (force\*time\^(1/2) units)
|
||||
@ -135,23 +130,23 @@ The last coefficient is optional. If not specified, the global DPD
|
||||
cutoff is used.
|
||||
|
||||
The pairwise energy associated with styles *dpd/fdt* and
|
||||
*dpd/fdt/energy* is only due to the conservative force term Fc, and is
|
||||
shifted to be zero at the cutoff distance Rc. The pairwise virial is
|
||||
calculated using only the conservative term.
|
||||
*dpd/fdt/energy* is only due to the conservative force term :math:`F^C`,
|
||||
and is shifted to be zero at the cutoff distance :math:`r_c`. The
|
||||
pairwise virial is calculated using only the conservative term.
|
||||
|
||||
The forces computed through the *dpd/fdt* and *dpd/fdt/energy* styles
|
||||
can be integrated with the velocity-Verlet integration scheme or the
|
||||
Shardlow splitting integration scheme described by :ref:`(Lisal) <Lisal3>`.
|
||||
In the cases when these pair styles are combined with the
|
||||
Shardlow splitting integration scheme described by :ref:`(Lisal)
|
||||
<Lisal3>`. In the cases when these pair styles are combined with the
|
||||
:doc:`fix shardlow <fix_shardlow>`, these pair styles differ from the
|
||||
other dpd styles in that the dissipative and random forces are split
|
||||
from the force calculation and are not computed within the pair style.
|
||||
Thus, only the conservative force is computed by the pair style,
|
||||
while the stochastic integration of the dissipative and random forces
|
||||
are handled through the Shardlow splitting algorithm approach. The
|
||||
Shardlow splitting algorithm is advantageous, especially when
|
||||
performing DPD under isoenergetic conditions, as it allows
|
||||
significantly larger timesteps to be taken.
|
||||
Thus, only the conservative force is computed by the pair style, while
|
||||
the stochastic integration of the dissipative and random forces are
|
||||
handled through the Shardlow splitting algorithm approach. The Shardlow
|
||||
splitting algorithm is advantageous, especially when performing DPD
|
||||
under isoenergetic conditions, as it allows significantly larger
|
||||
timesteps to be taken.
|
||||
|
||||
----------
|
||||
|
||||
@ -162,8 +157,9 @@ significantly larger timesteps to be taken.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
These commands are part of the DPD-REACT package. They are only
|
||||
enabled if LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
These commands are part of the DPD-REACT package. They are only enabled
|
||||
if LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
Pair styles *dpd/fdt* and *dpd/fdt/energy* require use of the
|
||||
:doc:`comm_modify vel yes <comm_modify>` option so that velocities are
|
||||
|
||||
@ -444,6 +444,20 @@ identical to the FS EAM files (see above).
|
||||
|
||||
----------
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
The *eam*, *eam/alloy*, *eam/fs*, and *eam/he* pair styles support
|
||||
extraction of two per-atom quantities by the :doc:`fix pair <fix_pair>`
|
||||
command. This allows the quantities to be output to files by the
|
||||
:doc:`dump <dump>` or otherwise processed by other LAMMPS commands.
|
||||
|
||||
The names of the two quantities are "rho" and "fp" for the density and
|
||||
derivative of the embedding energy for each atom. Neither quantity
|
||||
needs to be triggered by the :doc:`fix pair <fix_pair>` command in order
|
||||
for these pair styles to calculate it.
|
||||
|
||||
----------
|
||||
|
||||
.. include:: accel_styles.rst
|
||||
|
||||
----------
|
||||
@ -459,21 +473,26 @@ a pair_coeff command with I != J arguments for the eam styles.
|
||||
This pair style does not support the :doc:`pair_modify <pair_modify>`
|
||||
shift, table, and tail options.
|
||||
|
||||
The eam pair styles do not write their information to :doc:`binary restart files <restart>`, since it is stored in tabulated potential files.
|
||||
Thus, you need to re-specify the pair_style and pair_coeff commands in
|
||||
an input script that reads a restart file.
|
||||
The eam pair styles do not write their information to :doc:`binary
|
||||
restart files <restart>`, since it is stored in tabulated potential
|
||||
files. Thus, you need to re-specify the pair_style and pair_coeff
|
||||
commands in an input script that reads a restart file.
|
||||
|
||||
The eam pair styles can only be used via the *pair* keyword of the
|
||||
:doc:`run_style respa <run_style>` command. They do not support the
|
||||
*inner*, *middle*, *outer* keywords.
|
||||
|
||||
|
||||
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
All of these styles are part of the MANYBODY package. They are only
|
||||
enabled if LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
enabled if LAMMPS was built with that package. See the :doc:`Build
|
||||
package <Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -48,7 +48,7 @@ in LAMMPS. For the exact functional form of the potential and
|
||||
implementation details, the reader is referred to the original papers
|
||||
:ref:`(Volkov1) <Volkov1>` and :ref:`(Volkov2) <Volkov2>`.
|
||||
|
||||
.. versionchanged:: TBD
|
||||
.. versionchanged:: 15Sep2022
|
||||
|
||||
The potential supports two modes, *segment* and *chain*. By default,
|
||||
*chain* mode is enabled. In *segment* mode, interactions are
|
||||
@ -84,7 +84,7 @@ is faster and is enabled by default.
|
||||
IDs. If this is not possible (e.g. in simulations of CNT rings),
|
||||
*topology* mode needs to be enabled in the pair_style command.
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 15Sep2022
|
||||
|
||||
In addition to the LJ interactions described above, style
|
||||
*mesocnt/viscous* explicitly models friction between neighboring
|
||||
|
||||
@ -282,25 +282,25 @@ the orientation of a particular atom is the same, regardless of how
|
||||
many processors are being used. This keyword does not allow use of an
|
||||
atom-style variable.
|
||||
|
||||
.. versionchanged:: TBD
|
||||
.. versionchanged:: 15Sep2022
|
||||
|
||||
Keyword *spin/atom* uses the specified g value to set the magnitude of the
|
||||
magnetic spin vectors, and the x,y,z values as components of a vector
|
||||
to set as the orientation of the magnetic spin vectors of the selected
|
||||
atoms. This keyword was previously called *spin*.
|
||||
|
||||
.. versionchanged:: TBD
|
||||
.. versionchanged:: 15Sep2022
|
||||
|
||||
Keyword *spin/atom/random* randomizes the orientation of the magnetic spin
|
||||
vectors for the selected atoms and sets the magnitude of each to the
|
||||
specified *Dlen* value. This keyword was previously called *spin/random*.
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 15Sep2022
|
||||
|
||||
Keyword *radius/electron* uses the specified value to set the radius of
|
||||
electrons or fixed cores.
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 15Sep2022
|
||||
|
||||
Keyword *spin/electron* sets the spin of an electron (+/- 1) or indicates
|
||||
nuclei (=0), fixed-cores (=2), or pseudo-cores (= 3).
|
||||
|
||||
Reference in New Issue
Block a user