Merge branch 'lammps:develop' into mliappy_unified

This commit is contained in:
Steven Anaya
2022-09-15 03:01:03 -06:00
committed by GitHub
483 changed files with 7320 additions and 4810 deletions

View File

@ -376,6 +376,7 @@ pkg_depends(DIELECTRIC EXTRA-PAIR)
pkg_depends(CG-DNA MOLECULE) pkg_depends(CG-DNA MOLECULE)
pkg_depends(CG-DNA ASPHERE) pkg_depends(CG-DNA ASPHERE)
pkg_depends(ELECTRODE KSPACE) pkg_depends(ELECTRODE KSPACE)
pkg_depends(EXTRA-MOLECULE MOLECULE)
# detect if we may enable OpenMP support by default # detect if we may enable OpenMP support by default
set(BUILD_OMP_DEFAULT OFF) set(BUILD_OMP_DEFAULT OFF)

View File

@ -6,13 +6,10 @@ else()
endif() endif()
option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an already installed one" ${DOWNLOAD_MDI_DEFAULT}) option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an already installed one" ${DOWNLOAD_MDI_DEFAULT})
if(DOWNLOAD_MDI) if(DOWNLOAD_MDI)
message(STATUS "MDI download requested - we will build our own") message(STATUS "MDI download requested - we will build our own")
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.10.tar.gz" CACHE STRING "URL for MDI tarball") set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.11.tar.gz" CACHE STRING "URL for MDI tarball")
set(MDI_MD5 "1c203b7fd462d9934834f643f09f3c06" CACHE STRING "MD5 checksum for MDI tarball") set(MDI_MD5 "3791fe5081405c14aac07d4687f1cc58" CACHE STRING "MD5 checksum for MDI tarball")
mark_as_advanced(MDI_URL) mark_as_advanced(MDI_URL)
mark_as_advanced(MDI_MD5) mark_as_advanced(MDI_MD5)
enable_language(C) enable_language(C)

View File

@ -3,6 +3,13 @@
# prefer flang over gfortran, if available # prefer flang over gfortran, if available
find_program(CLANG_FORTRAN NAMES flang gfortran f95) find_program(CLANG_FORTRAN NAMES flang gfortran f95)
set(ENV{OMPI_FC} ${CLANG_FORTRAN}) set(ENV{OMPI_FC} ${CLANG_FORTRAN})
get_filename_component(_tmp_fc ${CLANG_FORTRAN} NAME)
if (_tmp_fc STREQUAL "flang")
set(FC_STD_VERSION "-std=f2018")
set(BUILD_MPI OFF)
else()
set(FC_STD_VERSION "-std=f2003")
endif()
set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE) set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE) set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE)
@ -10,9 +17,9 @@ set(CMAKE_Fortran_COMPILER ${CLANG_FORTRAN} CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE) set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE) set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE) set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Wextra -g -std=f2003" CACHE STRING "" FORCE) set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Wextra -g ${FC_STD_VERSION}" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG -std=f2003" CACHE STRING "" FORCE) set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG ${FC_STD_VERSION}" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -std=f2003" CACHE STRING "" FORCE) set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG ${FC_STD_VERSION}" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE) set(CMAKE_C_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE) set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE) set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)

View File

@ -1373,7 +1373,7 @@ Bibliography
Zhu, Tajkhorshid, and Schulten, Biophys. J. 83, 154 (2002). Zhu, Tajkhorshid, and Schulten, Biophys. J. 83, 154 (2002).
**(Ziegler)** **(Ziegler)**
J.F. Ziegler, J. P. Biersack and U. Littmark, "The Stopping and Range of Ions in Matter," Volume 1, Pergamon, 1985. J.F. Ziegler, J. P. Biersack and U. Littmark, "The Stopping and Range of Ions in Matter", Volume 1, Pergamon, 1985.
**(Zimmerman2004)** **(Zimmerman2004)**
Zimmerman, JA; Webb, EB; Hoyt, JJ;. Jones, RE; Klein, PA; Bammann, DJ, "Calculation of stress in atomistic simulation." Special Issue of Modelling and Simulation in Materials Science and Engineering (2004),12:S319. Zimmerman, JA; Webb, EB; Hoyt, JJ;. Jones, RE; Klein, PA; Bammann, DJ, "Calculation of stress in atomistic simulation." Special Issue of Modelling and Simulation in Materials Science and Engineering (2004),12:S319.

View File

@ -61,6 +61,7 @@ An alphabetic list of general LAMMPS commands.
* :doc:`kspace_modify <kspace_modify>` * :doc:`kspace_modify <kspace_modify>`
* :doc:`kspace_style <kspace_style>` * :doc:`kspace_style <kspace_style>`
* :doc:`label <label>` * :doc:`label <label>`
* :doc:`labelmap <labelmap>`
* :doc:`lattice <lattice>` * :doc:`lattice <lattice>`
* :doc:`log <log>` * :doc:`log <log>`
* :doc:`mass <mass>` * :doc:`mass <mass>`

View File

@ -175,6 +175,12 @@ and parsing files or arguments.
.. doxygenfunction:: is_double .. doxygenfunction:: is_double
:project: progguide :project: progguide
.. doxygenfunction:: is_id
:project: progguide
.. doxygenfunction:: is_type
:project: progguide
Potential file functions Potential file functions
^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^
@ -205,6 +211,9 @@ Argument processing
.. doxygenfunction:: expand_args .. doxygenfunction:: expand_args
:project: progguide :project: progguide
.. doxygenfunction:: expand_type
:project: progguide
Convenience functions Convenience functions
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^

View File

@ -5453,6 +5453,11 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
Mass command must set a type from 1-N where N is the number of atom Mass command must set a type from 1-N where N is the number of atom
types. types.
*Invalid label2type() function syntax in variable formula*
The first argument must be a label map kind (atom, bond, angle,
dihedral, or improper) and the second argument must be a valid type
label that has been assigned to a numeric type.
*Invalid use of library file() function* *Invalid use of library file() function*
This function is called through the library interface. This This function is called through the library interface. This
error should not occur. Contact the developers if it does. error should not occur. Contact the developers if it does.
@ -5585,9 +5590,18 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
*LJ6 off not supported in pair_style buck/long/coul/long* *LJ6 off not supported in pair_style buck/long/coul/long*
Self-explanatory. Self-explanatory.
*Label map is incomplete: all types must be assigned a unique type label*
For a given type-kind (atom types, bond types, etc.) to be written to
the data file, all associated types must be assigned a type label, and
each type label can be assigned to only one numeric type.
*Label wasn't found in input script* *Label wasn't found in input script*
Self-explanatory. Self-explanatory.
*Labelmap command before simulation box is defined*
The labelmap command cannot be used before a read_data,
read_restart, or create_box command.
*Lattice orient vectors are not orthogonal* *Lattice orient vectors are not orthogonal*
The three specified lattice orientation vectors must be mutually The three specified lattice orientation vectors must be mutually
orthogonal. orthogonal.
@ -5863,6 +5877,12 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
*Must not have multiple fixes change box parameter ...* *Must not have multiple fixes change box parameter ...*
Self-explanatory. Self-explanatory.
*Must read Angle Type Labels before Angles*
An Angle Type Labels section of a data file must come before the Angles section.
*Must read Atom Type Labels before Atoms*
An Atom Type Labels section of a data file must come before the Atoms section.
*Must read Atoms before Angles* *Must read Atoms before Angles*
The Atoms section of a data file must come before an Angles section. The Atoms section of a data file must come before an Angles section.
@ -5893,6 +5913,15 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
The Atoms section of a data file must come before a Velocities The Atoms section of a data file must come before a Velocities
section. section.
*Must read Bond Type Labels before Bonds*
A Bond Type Labels section of a data file must come before the Bonds section.
*Must read Dihedral Type Labels before Dihedrals*
An Dihedral Type Labels section of a data file must come before the Dihedrals section.
*Must read Improper Type Labels before Impropers*
An Improper Type Labels section of a data file must come before the Impropers section.
*Must re-specify non-restarted pair style (xxx) after read_restart* *Must re-specify non-restarted pair style (xxx) after read_restart*
For pair styles, that do not store their settings in a restart file, For pair styles, that do not store their settings in a restart file,
it must be defined with a new 'pair_style' command after read_restart. it must be defined with a new 'pair_style' command after read_restart.
@ -7849,6 +7878,10 @@ keyword to allow for additional bonds to be formed
Number of local atoms times number of columns must fit in a 32-bit Number of local atoms times number of columns must fit in a 32-bit
integer for dump. integer for dump.
*Topology type exceeds system topology type*
The number of bond, angle, etc types exceeds the system setting. See
the create_box or read_data command for how to specify these values.
*Tree structure in joint connections* *Tree structure in joint connections*
Fix poems cannot (yet) work with coupled bodies whose joints connect Fix poems cannot (yet) work with coupled bodies whose joints connect
the bodies in a tree structure. the bodies in a tree structure.
@ -7873,6 +7906,13 @@ keyword to allow for additional bonds to be formed
*Two groups cannot be the same in fix spring couple* *Two groups cannot be the same in fix spring couple*
Self-explanatory. Self-explanatory.
*The %s type label %s is already in use for type %s*
For a given type-kind (atom types, bond types, etc.), a given type
label can be assigned to only one numeric type.
*Type label string %s for %s type %s is invalid*
See the labelmap command documentation for valid type labels.
*Unable to initialize accelerator for use* *Unable to initialize accelerator for use*
There was a problem initializing an accelerator for the gpu package There was a problem initializing an accelerator for the gpu package

View File

@ -34,6 +34,7 @@ Settings howto
:maxdepth: 1 :maxdepth: 1
Howto_2d Howto_2d
Howto_type_labels
Howto_triclinic Howto_triclinic
Howto_thermostat Howto_thermostat
Howto_barostat Howto_barostat

View File

@ -0,0 +1,126 @@
Type labels
===========
.. versionadded:: TBD
Each atom in LAMMPS has an associated numeric atom type. Similarly,
each bond, angle, dihedral, and improper is assigned a bond type,
angle type, and so on. The primary use of these types is to map
potential (force field) parameters to the interactions of the atom,
bond, angle, dihedral, and improper.
By default, type values are entered as integers from 1 to Ntypes
wherever they appear in LAMMPS input or output files. The total number
Ntypes for each interaction is "locked in" when the simulation box
is created.
A recent addition to LAMMPS is the option to use strings - referred
to as type labels - as an alternative. Using type labels instead of
numeric types can be advantageous in various scenarios. For example,
type labels can make inputs more readable and generic (i.e. usable through
the :doc:`include command <include>` for different systems with different
numerical values assigned to types. This generality also applies to
other inputs like data files read by :doc:`read_data <read_data>` or
molecule template files read by the :doc:`molecule <molecule>`
command. See below for a list of other commands that can use
type labels in different ways.
LAMMPS will *internally* continue to use numeric types, which means
that many previous restrictions still apply. For example, the total
number of types is locked in when creating the simulation box, and
potential parameters for each type must be provided even if not used
by any interactions.
A collection of type labels for all type-kinds (atom types, bond types,
etc.) is stored as a "label map" which is simply a list of numeric types
and their associated type labels. Within a type-kind, each type label
must be unique. It can be assigned to only one numeric type. To read
and write type labels to data files for a given type-kind, *all*
associated numeric types need have a type label assigned. Partial
maps can be saved with the :doc:`labelmap write <labelmap>` command
and read back with the :doc:`include <include>` command.
Valid type labels can contain most ASCII characters, but cannot start
with a number, a '#', or a '*'. Also, labels must not contain whitespace
characters. When using the :doc:`labelmap command <labelmap>` in the
LAMMPS input, if certain characters appear in the type label, such as
the single (') or double (") quote or the '#' character, the label
must be put in either double, single, or triple (""") quotes. Triple
quotes allow for the most generic type label strings, but they require
to have a leading and trailing blank space. When defining type labels
the blanks will be ignored. Example:
.. code-block:: LAMMPS
labelmap angle 1 """ C1'-C2"-C3# """
This command will map the string ```C1'-C2"-C3#``` to the angle type 1.
There are two ways to define label maps. One is via the :doc:`labelmap
<labelmap>` command. The other is via the :doc:`read_data <read_data>`
command. A data file can have sections such as *Atom Type Labels*, *Bond
Type Labels*, etc., which assign type labels to numeric types. The
label map can be written out to data files by the :doc:`write_data
<write_data>` command. This map is also written to and read from
restart files, by the :doc:`write_restart <write_restart>` and
:doc:`read_restart <read_restart>` commands.
----------
Use of type labels in LAMMPS input or output
""""""""""""""""""""""""""""""""""""""""""""
Many LAMMPS input script commands that take a numeric type as an
argument can use the associated type label instead. If a type label
is not defined for a particular numeric type, only its numeric type
can be used.
This example assigns labels to the atom types, and then uses the type
labels to redefine the pair coefficients.
.. code-block:: LAMMPS
pair_coeff 1 2 1.0 1.0 # numeric types
labelmap atom 1 C 2 H
pair_coeff C H 1.0 1.0 # type labels
Adding support for type labels to various commands is an ongoing
project. If an input script command (or a section in a file read by a
command) allows substituting a type label for a numeric type argument,
it will be explicitly mentioned in that command's documentation page.
As a temporary measure, input script commands can take advantage of
variables and how they can be expanded during processing of the input.
The variables can use functions that will translate type label strings
to their respective number as defined in the current label map. See the
:doc:`variable <variable>` command for details.
For example, here is how the pair_coeff command could be used with
type labels if it did not yet support them, either with an explicit
variable command or an implicit variable used in the pair_coeff
command.
.. code-block:: LAMMPS
labelmap atom 1 C 2 H
variable atom1 equal label2type(atom,C)
variable atom2 equal label2type(atom,H)
pair_coeff ${atom1} ${atom2} 1.0 1.0
.. code-block:: LAMMPS
labelmap atom 1 C 2 H
pair_coeff $(label2type(atom,C)) $(label2type(atom,H)) 80.0 1.2
----------
Commands that can use label types
"""""""""""""""""""""""""""""""""
Any workflow that involves reading multiple data files, molecule
templates or a combination of the two can be streamlined by using type
labels instead of numeric types, because types are automatically synced
between the files. The creation of simulation-ready reaction templates
for :doc:`fix bond/react <fix_bond_react>` is much simpler when using
type labels, and results in templates that can be used without
modification in multiple simulations or different systems.

View File

@ -276,7 +276,7 @@ the barostat as outlined in:
N. J. H. Dunn and W. G. Noid, "Bottom-up coarse-grained models that N. J. H. Dunn and W. G. Noid, "Bottom-up coarse-grained models that
accurately describe the structure, pressure, and compressibility of accurately describe the structure, pressure, and compressibility of
molecular liquids," J. Chem. Phys. 143, 243148 (2015). molecular liquids", J. Chem. Phys. 143, 243148 (2015).
**Authors:** Nicholas J. H. Dunn and Michael R. DeLyser (The **Authors:** Nicholas J. H. Dunn and Michael R. DeLyser (The
Pennsylvania State University) Pennsylvania State University)
@ -932,6 +932,10 @@ EXTRA-MOLECULE package
Additional bond, angle, dihedral, and improper styles that are less commonly used. Additional bond, angle, dihedral, and improper styles that are less commonly used.
**Install:**
To use this package, also the :ref:`MOLECULE <PKG-MOLECULE>` package needs to be installed.
**Supporting info:** **Supporting info:**
* src/EXTRA-MOLECULE: filenames -> commands * src/EXTRA-MOLECULE: filenames -> commands

View File

@ -495,7 +495,7 @@ run:
write_dump group-ID dumpstyle dumpfile arg1 arg2 ... write_dump group-ID dumpstyle dumpfile arg1 arg2 ...
Note that the specified restartfile and dumpfile names may contain Note that the specified restartfile and dumpfile names may contain
wild-card characters ("\*","%") as explained on the wild-card characters ("\*" or "%") as explained on the
:doc:`read_restart <read_restart>` and :doc:`write_dump <write_dump>` doc :doc:`read_restart <read_restart>` and :doc:`write_dump <write_dump>` doc
pages. The use of "%" means that a parallel restart file and/or pages. The use of "%" means that a parallel restart file and/or
parallel dump file can be read and/or written. Note that a filename parallel dump file can be read and/or written. Note that a filename

View File

@ -536,6 +536,6 @@ supported.
References References
"""""""""" """"""""""
* Brown, W.M., Carrillo, J.-M.Y., Mishra, B., Gavhane, N., Thakkar, F.M., De Kraker, A.R., Yamada, M., Ang, J.A., Plimpton, S.J., "Optimizing Classical Molecular Dynamics in LAMMPS," in Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, J. Jeffers, J. Reinders, A. Sodani, Eds. Morgan Kaufmann. * Brown, W.M., Carrillo, J.-M.Y., Mishra, B., Gavhane, N., Thakkar, F.M., De Kraker, A.R., Yamada, M., Ang, J.A., Plimpton, S.J., "Optimizing Classical Molecular Dynamics in LAMMPS", in Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, J. Jeffers, J. Reinders, A. Sodani, Eds. Morgan Kaufmann.
* Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. `Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency. <http://dl.acm.org/citation.cfm?id=3014915>`_ 2016 High Performance Computing, Networking, Storage and Analysis, SC16: International Conference (pp. 82-95). * Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. `Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency. <http://dl.acm.org/citation.cfm?id=3014915>`_ 2016 High Performance Computing, Networking, Storage and Analysis, SC16: International Conference (pp. 82-95).
* Brown, W.M., Carrillo, J.-M.Y., Gavhane, N., Thakkar, F.M., Plimpton, S.J. Optimizing Legacy Molecular Dynamics Software with Directive-Based Offload. Computer Physics Communications. 2015. 195: p. 95-101. * Brown, W.M., Carrillo, J.-M.Y., Gavhane, N., Thakkar, F.M., Plimpton, S.J. Optimizing Legacy Molecular Dynamics Software with Directive-Based Offload. Computer Physics Communications. 2015. 195: p. 95-101.

View File

@ -10,7 +10,7 @@ Syntax
angle_coeff N args angle_coeff N args
* N = angle type (see asterisk form below) * N = numeric angle type (see asterisk form below), or type label
* args = coefficients for one or more angle types * args = coefficients for one or more angle types
Examples Examples
@ -22,6 +22,9 @@ Examples
angle_coeff * 5.0 angle_coeff * 5.0
angle_coeff 2*10 5.0 angle_coeff 2*10 5.0
labelmap angle 1 hydroxyl
angle_coeff hydroxyl 300.0 107.0
Description Description
""""""""""" """""""""""
@ -30,18 +33,24 @@ The number and meaning of the coefficients depends on the angle style.
Angle coefficients can also be set in the data file read by the Angle coefficients can also be set in the data file read by the
:doc:`read_data <read_data>` command or in a restart file. :doc:`read_data <read_data>` command or in a restart file.
N can be specified in one of two ways. An explicit numeric value can :math:`N` can be specified in one of two ways. An explicit numeric
be used, as in the first example above. Or a wild-card asterisk can be value can be used, as in the first example above. Or :math:`N` can be a
used to set the coefficients for multiple angle types. This takes the type label, which is an alphanumeric string defined by the
form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of angle types, :doc:`labelmap <labelmap>` command or in a section of a data file read
then an asterisk with no numeric values means all types from 1 to N. A by the :doc:`read_data <read_data>` command.
leading asterisk means all types from 1 to n (inclusive). A trailing
asterisk means all types from n to N (inclusive). A middle asterisk
means all types from m to n (inclusive).
Note that using an :doc:`angle_coeff <angle_coeff>` command can override a previous setting For numeric values only, a wild-card asterisk can be used to set the
for the same angle type. For example, these commands set the coeffs coefficients for multiple angle types. This takes the form "\*" or
for all angle types, then overwrite the coeffs for just angle type 2: "\*n" or "n\*" or "m\*n". If :math:`N` is the number of angle types,
then an asterisk with no numeric values means all types from 1 to
:math:`N`. A leading asterisk means all types from 1 to n (inclusive).
A trailing asterisk means all types from n to :math:`N` (inclusive). A
middle asterisk means all types from m to n (inclusive).
Note that using an :doc:`angle_coeff <angle_coeff>` command can
override a previous setting for the same angle type. For example,
these commands set the coeffs for all angle types, then overwrite the
coeffs for just angle type 2:
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -49,11 +58,11 @@ for all angle types, then overwrite the coeffs for just angle type 2:
angle_coeff 2 50.0 107.0 angle_coeff 2 50.0 107.0
A line in a data file that specifies angle coefficients uses the exact A line in a data file that specifies angle coefficients uses the exact
same format as the arguments of the :doc:`angle_coeff <angle_coeff>` command in an input same format as the arguments of the :doc:`angle_coeff <angle_coeff>`
script, except that wild-card asterisks should not be used since command in an input script, except that wild-card asterisks should not
coefficients for all N types must be listed in the file. For example, be used since coefficients for all :math:`N` types must be listed in the
under the "Angle Coeffs" section of a data file, the line that file. For example, under the "Angle Coeffs" section of a data file, the
corresponds to the first example above would be listed as line that corresponds to the first example above would be listed as
.. parsed-literal:: .. parsed-literal::
@ -61,15 +70,14 @@ corresponds to the first example above would be listed as
The :doc:`angle_style class2 <angle_class2>` is an exception to this The :doc:`angle_style class2 <angle_class2>` is an exception to this
rule, in that an additional argument is used in the input script to rule, in that an additional argument is used in the input script to
allow specification of the cross-term coefficients. See its allow specification of the cross-term coefficients. See its doc page
doc page for details. for details.
---------- ----------
The list of all angle styles defined in LAMMPS is given on the The list of all angle styles defined in LAMMPS is given on the
:doc:`angle_style <angle_style>` doc page. They are also listed in more :doc:`angle_style <angle_style>` doc page. They are also listed in more
compact form on the :ref:`Commands angle <angle>` doc compact form on the :ref:`Commands angle <angle>` doc page.
page.
On either of those pages, click on the style to display the formula it On either of those pages, click on the style to display the formula it
computes and its coefficients as specified by the associated computes and its coefficients as specified by the associated

View File

@ -10,7 +10,7 @@ Syntax
bond_coeff N args bond_coeff N args
* N = bond type (see asterisk form below) * N = numeric bond type (see asterisk form below), or type label
* args = coefficients for one or more bond types * args = coefficients for one or more bond types
Examples Examples
@ -21,7 +21,10 @@ Examples
bond_coeff 5 80.0 1.2 bond_coeff 5 80.0 1.2
bond_coeff * 30.0 1.5 1.0 1.0 bond_coeff * 30.0 1.5 1.0 1.0
bond_coeff 1*4 30.0 1.5 1.0 1.0 bond_coeff 1*4 30.0 1.5 1.0 1.0
bond_coeff 1 harmonic 200.0 1.0 bond_coeff 1 harmonic 200.0 1.0 (for bond_style hybrid)
labelmap bond 5 carbonyl
bond_coeff carbonyl 80.0 1.2
Description Description
""""""""""" """""""""""
@ -31,14 +34,19 @@ The number and meaning of the coefficients depends on the bond style.
Bond coefficients can also be set in the data file read by the Bond coefficients can also be set in the data file read by the
:doc:`read_data <read_data>` command or in a restart file. :doc:`read_data <read_data>` command or in a restart file.
N can be specified in one of two ways. An explicit numeric value can :math:`N` can be specified in one of several ways. An explicit numeric
be used, as in the first example above. Or a wild-card asterisk can be value can be used, as in the first example above. Or :math:`N` can be a
used to set the coefficients for multiple bond types. This takes the type label, which is an alphanumeric string defined by the
form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of bond types, :doc:`labelmap <labelmap>` command or in a section of a data file read
then an asterisk with no numeric values means all types from 1 to N. A by the :doc:`read_data <read_data>` command.
For numeric values only, a wild-card asterisk can be used to set the
coefficients for multiple bond types. This takes the form "\*" or "\*n"
or "n\*" or "m\*n". If :math:`N` is the number of bond types, then an
asterisk with no numeric values means all types from 1 to :math:`N`. A
leading asterisk means all types from 1 to n (inclusive). A trailing leading asterisk means all types from 1 to n (inclusive). A trailing
asterisk means all types from n to N (inclusive). A middle asterisk asterisk means all types from n to :math:`N` (inclusive). A middle
means all types from m to n (inclusive). asterisk means all types from m to n (inclusive).
Note that using a bond_coeff command can override a previous setting Note that using a bond_coeff command can override a previous setting
for the same bond type. For example, these commands set the coeffs for the same bond type. For example, these commands set the coeffs
@ -52,8 +60,8 @@ for all bond types, then overwrite the coeffs for just bond type 2:
A line in a data file that specifies bond coefficients uses the exact A line in a data file that specifies bond coefficients uses the exact
same format as the arguments of the bond_coeff command in an input same format as the arguments of the bond_coeff command in an input
script, except that wild-card asterisks should not be used since script, except that wild-card asterisks should not be used since
coefficients for all N types must be listed in the file. For example, coefficients for all :math:`N` types must be listed in the file. For
under the "Bond Coeffs" section of a data file, the line that example, under the "Bond Coeffs" section of a data file, the line that
corresponds to the first example above would be listed as corresponds to the first example above would be listed as
.. parsed-literal:: .. parsed-literal::

View File

@ -56,6 +56,7 @@ Commands
kspace_modify kspace_modify
kspace_style kspace_style
label label
labelmap
lattice lattice
log log
mass mass

View File

@ -78,7 +78,7 @@ These values can be accessed by any command that uses global array
values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The array values are "intensive." The array values will be in The array values are "intensive". The array values will be in
mass-velocity-distance :doc:`units <units>`. mass-velocity-distance :doc:`units <units>`.
Restrictions Restrictions

View File

@ -182,7 +182,7 @@ by any command that uses global values from a compute as input. See
the :doc:`Howto output <Howto_output>` doc page for an overview of the :doc:`Howto output <Howto_output>` doc page for an overview of
LAMMPS output options. LAMMPS output options.
The array values calculated by this compute are all "extensive." The array values calculated by this compute are all "extensive".
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -49,7 +49,7 @@ accessed by indices 1--3 by any command that uses global vector values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The vector values are "intensive." The vector values will be in The vector values are "intensive". The vector values will be in
distance :doc:`units <units>`. distance :doc:`units <units>`.
Restrictions Restrictions

View File

@ -77,7 +77,7 @@ values can be accessed by any command that uses global array values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The array values are "intensive." The array values will be in The array values are "intensive". The array values will be in
distance :doc:`units <units>`. distance :doc:`units <units>`.
Restrictions Restrictions

View File

@ -54,7 +54,7 @@ the computed dipole moment and a global vector of length 3 with the
dipole vector. See the :doc:`Howto output <Howto_output>` page for dipole vector. See the :doc:`Howto output <Howto_output>` page for
an overview of LAMMPS output options. an overview of LAMMPS output options.
The computed values are "intensive." The array values will be in The computed values are "intensive". The array values will be in
dipole units (i.e., charge :doc:`units <units>` times distance dipole units (i.e., charge :doc:`units <units>` times distance
:doc:`units <units>`). :doc:`units <units>`).

View File

@ -86,7 +86,7 @@ chunk. These values can be accessed by any command that uses global
array values from a compute as input. See the :doc:`Howto output array values from a compute as input. See the :doc:`Howto output
<Howto_output>` page for an overview of LAMMPS output options. <Howto_output>` page for an overview of LAMMPS output options.
The array values are "intensive." The array values will be in The array values are "intensive". The array values will be in
dipole units (i.e., charge :doc:`units <units>` times distance dipole units (i.e., charge :doc:`units <units>` times distance
:doc:`units <units>`). :doc:`units <units>`).

View File

@ -48,7 +48,7 @@ used by any command that uses a global scalar value from a compute as
input. See the :doc:`Howto output <Howto_output>` page for an input. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options. overview of LAMMPS output options.
The scalar value calculated by this compute is "extensive." The The scalar value calculated by this compute is "extensive". The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions

View File

@ -48,7 +48,7 @@ of all the rigid bodies). This value can be used by any command that
uses a global scalar value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output uses a global scalar value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "extensive." The The scalar value calculated by this compute is "extensive". The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions

View File

@ -44,7 +44,7 @@ used by any command that uses a global scalar value from a compute as
input. See the :doc:`Howto output <Howto_output>` page for an input. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options. overview of LAMMPS output options.
The scalar value calculated by this compute is "extensive." The The scalar value calculated by this compute is "extensive". The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions

View File

@ -40,7 +40,7 @@ further than the threshold distance.
If the system is undergoing significant center-of-mass motion, If the system is undergoing significant center-of-mass motion,
due to thermal motion, an external force, or an initial net momentum, due to thermal motion, an external force, or an initial net momentum,
then this compute will not be able to distinguish that motion from then this compute will not be able to distinguish that motion from
local atom displacements and may generate "false positives." local atom displacements and may generate "false positives".
Output info Output info
""""""""""" """""""""""
@ -50,7 +50,7 @@ used by any command that uses a global scalar value from a compute as
input. See the :doc:`Howto output <Howto_output>` page for an input. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options. overview of LAMMPS output options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
scalar value will be a 0 or 1 as explained above. scalar value will be a 0 or 1 as explained above.
Restrictions Restrictions

View File

@ -299,7 +299,7 @@ These output results can be used by any command that uses a global
scalar or vector from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output scalar or vector from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. For example, the computed values can be averaged using :doc:`fix ave/time <fix_ave_time>`. options. For example, the computed values can be averaged using :doc:`fix ave/time <fix_ave_time>`.
The values calculated by this compute are "extensive." The values calculated by this compute are "extensive".
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -140,7 +140,7 @@ vector values from a compute as input. See the
options. options.
Both the scalar and vector values calculated by this compute are Both the scalar and vector values calculated by this compute are
"extensive." The scalar value will be in energy :doc:`units <units>`. "extensive". The scalar value will be in energy :doc:`units <units>`.
The vector values will be in force :doc:`units <units>`. The vector values will be in force :doc:`units <units>`.
Restrictions Restrictions

View File

@ -69,7 +69,7 @@ vector values from a compute as input. See the :doc:`Howto output <Howto_output
options. options.
The scalar and vector values calculated by this compute are The scalar and vector values calculated by this compute are
"intensive." The scalar and vector values will be in distance and "intensive". The scalar and vector values will be in distance and
distance\ :math:`^2` :doc:`units <units>`, respectively. distance\ :math:`^2` :doc:`units <units>`, respectively.
Restrictions Restrictions

View File

@ -78,7 +78,7 @@ vector values from a compute as input. See the
options. options.
The vector values calculated by this compute are The vector values calculated by this compute are
"intensive." The first five vector values will be in "intensive". The first five vector values will be in
distance\ :math:`2` :doc:`units <units>` while the sixth one is dimensionless. distance\ :math:`2` :doc:`units <units>` while the sixth one is dimensionless.
Restrictions Restrictions

View File

@ -80,7 +80,7 @@ See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS
output options. output options.
The array calculated by this compute is The array calculated by this compute is
"intensive." The first five columns will be in "intensive". The first five columns will be in
distance\ :math:`^2` :doc:`units <units>` while the sixth one is dimensionless. distance\ :math:`^2` :doc:`units <units>` while the sixth one is dimensionless.
Restrictions Restrictions

View File

@ -142,14 +142,14 @@ command that uses global vector values from a compute as input.
See the :doc:`Howto output <Howto_output>` documentation for an overview of See the :doc:`Howto output <Howto_output>` documentation for an overview of
LAMMPS output options. LAMMPS output options.
The vector values calculated by this compute are "extensive," meaning The vector values calculated by this compute are "extensive", meaning
they scale with the number of atoms in the simulation. They can be they scale with the number of atoms in the simulation. They can be
divided by the appropriate volume to get a flux, which would then be divided by the appropriate volume to get a flux, which would then be an
an "intensive" value, meaning independent of the number of atoms in "intensive" value, meaning independent of the number of atoms in the
the simulation. Note that if the compute is "all," then the simulation. Note that if the compute group is "all", then the
appropriate volume to divide by is the simulation box volume. appropriate volume to divide by is the simulation box volume. However,
However, if a sub-group is used, it should be the volume containing if a group with a subset of atoms is used, it should be the volume
those atoms. containing those atoms.
The vector values will be in energy\*velocity :doc:`units <units>`. Once The vector values will be in energy\*velocity :doc:`units <units>`. Once
divided by a volume the units will be that of flux, namely divided by a volume the units will be that of flux, namely

View File

@ -172,7 +172,7 @@ requested as arguments to the command (the potential energy, pressure and/or hea
capacity). The elements of the vector can be accessed by indices 1--n by any capacity). The elements of the vector can be accessed by indices 1--n by any
command that uses global vector values as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output options. command that uses global vector values as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output options.
The vector values calculated by this compute are "extensive." The The vector values calculated by this compute are "extensive". The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions

View File

@ -84,7 +84,7 @@ by any command that uses global array values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The array values are "intensive." The array values will be in The array values are "intensive". The array values will be in
mass\*distance\ :math:`^2` :doc:`units <units>`. mass\*distance\ :math:`^2` :doc:`units <units>`.
Restrictions Restrictions

View File

@ -52,7 +52,7 @@ can be used by any command that uses a global scalar value from a
compute as input. See the :doc:`Howto output <Howto_output>` doc page compute as input. See the :doc:`Howto output <Howto_output>` doc page
for an overview of LAMMPS output options. for an overview of LAMMPS output options.
The scalar value calculated by this compute is "extensive." The The scalar value calculated by this compute is "extensive". The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions

View File

@ -48,7 +48,7 @@ global scalar value from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "extensive." The The scalar value calculated by this compute is "extensive". The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions

View File

@ -37,7 +37,7 @@ length 3. This value can be used by any command that uses a global
vector value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output vector value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The vector value calculated by this compute is "extensive." The vector The vector value calculated by this compute is "extensive". The vector
value will be in mass\*velocity :doc:`units <units>`. value will be in mass\*velocity :doc:`units <units>`.
Restrictions Restrictions

View File

@ -105,7 +105,7 @@ accessed by indices 1--4 by any command that uses global vector values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The vector values are "intensive." The vector values will be in The vector values are "intensive". The vector values will be in
distance\ :math:`^2` :doc:`units <units>`. distance\ :math:`^2` :doc:`units <units>`.
Restrictions Restrictions

View File

@ -121,7 +121,7 @@ These values can be accessed by any command that uses global array values from
a compute as input. See the :doc:`Howto output <Howto_output>` page for an a compute as input. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options. overview of LAMMPS output options.
The array values are "intensive." The array values will be in The array values are "intensive". The array values will be in
distance\ :math:`^2` :doc:`units <units>`. distance\ :math:`^2` :doc:`units <units>`.
Restrictions Restrictions

View File

@ -67,7 +67,7 @@ accessed by indices 1--3 by any command that uses global vector values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The vector values are "intensive." The first vector value will be in The vector values are "intensive". The first vector value will be in
distance\ :math:`^2` :doc:`units <units>`, the second is in distance\ :math:`^2` :doc:`units <units>`, the second is in
distance\ :math:`^4` units, and the third is dimensionless. distance\ :math:`^4` units, and the third is dimensionless.

View File

@ -84,7 +84,7 @@ These values can be accessed by any command that uses global array
values from a compute as input. See the :doc:`Howto output <Howto_output>` values from a compute as input. See the :doc:`Howto output <Howto_output>`
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The array values are "intensive." The array values will be in The array values are "intensive". The array values will be in
velocity/distance :doc:`units <units>`. velocity/distance :doc:`units <units>`.
Restrictions Restrictions

View File

@ -27,7 +27,7 @@ Description
""""""""""" """""""""""
Define a computation that calculates the potential energy of the Define a computation that calculates the potential energy of the
entire system of atoms. The specified group must be "all." See the entire system of atoms. The specified group must be "all". See the
:doc:`compute pe/atom <compute_pe_atom>` command if you want per-atom :doc:`compute pe/atom <compute_pe_atom>` command if you want per-atom
energies. These per-atom values could be summed for a group of atoms energies. These per-atom values could be summed for a group of atoms
via the :doc:`compute reduce <compute_reduce>` command. via the :doc:`compute reduce <compute_reduce>` command.
@ -73,7 +73,7 @@ value can be used by any command that uses a global scalar value from
a compute as input. See the :doc:`Howto output <Howto_output>` doc page a compute as input. See the :doc:`Howto output <Howto_output>` doc page
for an overview of LAMMPS output options. for an overview of LAMMPS output options.
The scalar value calculated by this compute is "extensive." The The scalar value calculated by this compute is "extensive". The
scalar value will be in energy :doc:`units <units>`. scalar value will be in energy :doc:`units <units>`.
Restrictions Restrictions

View File

@ -73,5 +73,5 @@ none
.. _Mitchell: .. _Mitchell:
**(Mitchell)** Mitchell, "A non-local, ordinary-state-based **(Mitchell)** Mitchell, "A non-local, ordinary-state-based
viscoelasticity model for peridynamics," Sandia National Lab Report, viscoelasticity model for peridynamics", Sandia National Lab Report,
8064:1-28 (2011). 8064:1-28 (2011).

View File

@ -29,7 +29,7 @@ Description
""""""""""" """""""""""
Define a computation that calculates the pressure of the entire system Define a computation that calculates the pressure of the entire system
of atoms. The specified group must be "all." See the of atoms. The specified group must be "all". See the
:doc:`compute stress/atom <compute_stress_atom>` command if you want per-atom :doc:`compute stress/atom <compute_stress_atom>` command if you want per-atom
pressure (stress). These per-atom values could be summed for a group pressure (stress). These per-atom values could be summed for a group
of atoms via the :doc:`compute reduce <compute_reduce>` command. of atoms via the :doc:`compute reduce <compute_reduce>` command.
@ -115,7 +115,7 @@ LAMMPS starts up, as if this command were in the input script:
compute thermo_press all pressure thermo_temp compute thermo_press all pressure thermo_temp
where thermo_temp is the ID of a similarly defined compute of style where thermo_temp is the ID of a similarly defined compute of style
"temp." See the :doc:`thermo_style <thermo_style>` command for more details. "temp". See the :doc:`thermo_style <thermo_style>` command for more details.
---------- ----------
@ -137,7 +137,7 @@ The ordering of values in the symmetric pressure tensor is as follows:
:math:`p_{xz},` :math:`p_{yz}.` :math:`p_{xz},` :math:`p_{yz}.`
The scalar and vector values calculated by this compute are The scalar and vector values calculated by this compute are
"intensive." The scalar and vector values will be in pressure "intensive". The scalar and vector values will be in pressure
:doc:`units <units>`. :doc:`units <units>`.
Restrictions Restrictions

View File

@ -110,7 +110,7 @@ accessed by any command that uses global values from a compute as
input. See the :doc:`Howto output <Howto_output>` page for an input. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options. overview of LAMMPS output options.
The vector or array values are "intensive." The values will be The vector or array values are "intensive". The values will be
unitless or in the units discussed above. unitless or in the units discussed above.
Restrictions Restrictions

View File

@ -164,7 +164,7 @@ the type of the bond, from 1 to Nbtypes = # of bond types. The number
of bond types is defined in the data file read by the of bond types is defined in the data file read by the
:doc:`read_data <read_data>` command. :doc:`read_data <read_data>` command.
The attributes that start with "a," "d," and "i" refer to similar values The attributes that start with "a", "d", and "i" refer to similar values
for :doc:`angles <angle_style>`, :doc:`dihedrals <dihedral_style>`, and for :doc:`angles <angle_style>`, :doc:`dihedrals <dihedral_style>`, and
:doc:`impropers <improper_style>`. :doc:`impropers <improper_style>`.

View File

@ -166,7 +166,7 @@ by any command that uses a global values from a compute as input. See
the :doc:`Howto output <Howto_output>` page for an overview of the :doc:`Howto output <Howto_output>` page for an overview of
LAMMPS output options. LAMMPS output options.
The array values calculated by this compute are all "intensive." The array values calculated by this compute are all "intensive".
The first column of array values will be in distance The first column of array values will be in distance
:doc:`units <units>`. The :math:`g(r)` columns of array values are normalized :doc:`units <units>`. The :math:`g(r)` columns of array values are normalized

View File

@ -128,7 +128,7 @@ inputs to this fix by using the
:doc:`compute property/atom <compute_property_atom>` command and then specifying :doc:`compute property/atom <compute_property_atom>` command and then specifying
an input value from that compute. an input value from that compute.
If a value begins with "c\_," a compute ID must follow which has been If a value begins with "c\_", a compute ID must follow which has been
previously defined in the input script. Computes can generate previously defined in the input script. Computes can generate
per-atom or local quantities. See the individual per-atom or local quantities. See the individual
:doc:`compute <compute>` page for details. If no bracketed integer :doc:`compute <compute>` page for details. If no bracketed integer
@ -139,7 +139,7 @@ compute styles and :doc:`add them to LAMMPS <Modify>`. See the
discussion above for how :math:`I` can be specified with a wildcard asterisk discussion above for how :math:`I` can be specified with a wildcard asterisk
to effectively specify multiple values. to effectively specify multiple values.
If a value begins with "f\_," a fix ID must follow which has been If a value begins with "f\_", a fix ID must follow which has been
previously defined in the input script. Fixes can generate per-atom previously defined in the input script. Fixes can generate per-atom
or local quantities. See the individual :doc:`fix <fix>` page for or local quantities. See the individual :doc:`fix <fix>` page for
details. Note that some fixes only produce their values on certain details. Note that some fixes only produce their values on certain
@ -152,7 +152,7 @@ is used. Users can also write code for their own fix style and
:math:`I` can be specified with a wildcard asterisk to effectively specify :math:`I` can be specified with a wildcard asterisk to effectively specify
multiple values. multiple values.
If a value begins with "v\_," a variable name must follow which has If a value begins with "v\_", a variable name must follow which has
been previously defined in the input script. It must be an been previously defined in the input script. It must be an
:doc:`atom-style variable <variable>`. Atom-style variables can :doc:`atom-style variable <variable>`. Atom-style variables can
reference thermodynamic keywords and various per-atom attributes, or reference thermodynamic keywords and various per-atom attributes, or
@ -197,7 +197,7 @@ global vector of values, the length of which is equal to the number of
inputs specified. inputs specified.
As discussed below, for the *sum*, *sumabs*, and *sumsq* modes, the value(s) As discussed below, for the *sum*, *sumabs*, and *sumsq* modes, the value(s)
produced by this compute are all "extensive," meaning their value produced by this compute are all "extensive", meaning their value
scales linearly with the number of atoms involved. If normalized scales linearly with the number of atoms involved. If normalized
values are desired, this compute can be accessed by the values are desired, this compute can be accessed by the
:doc:`thermo_style custom <thermo_style>` command with :doc:`thermo_style custom <thermo_style>` command with
@ -218,9 +218,9 @@ compute as input. See the :doc:`Howto output <Howto_output>` doc page
for an overview of LAMMPS output options. for an overview of LAMMPS output options.
All the scalar or vector values calculated by this compute are All the scalar or vector values calculated by this compute are
"intensive," except when the *sum*, *sumabs*, or *sumsq* modes are used on "intensive", except when the *sum*, *sumabs*, or *sumsq* modes are used on
per-atom or local vectors, in which case the calculated values are per-atom or local vectors, in which case the calculated values are
"extensive." "extensive".
The scalar or vector values will be in whatever :doc:`units <units>` the The scalar or vector values will be in whatever :doc:`units <units>` the
quantities being reduced are in. quantities being reduced are in.

View File

@ -102,7 +102,7 @@ The commands below can be added to the examples/in.micelle script.
Imagine a collection of polymer chains or small molecules with Imagine a collection of polymer chains or small molecules with
hydrophobic end groups. All the hydrophobic (HP) atoms are assigned hydrophobic end groups. All the hydrophobic (HP) atoms are assigned
to a group called "phobic." to a group called "phobic".
These commands will assign a unique cluster ID to all HP atoms within These commands will assign a unique cluster ID to all HP atoms within
a specified distance of each other. A cluster will contain all HP a specified distance of each other. A cluster will contain all HP

View File

@ -114,7 +114,7 @@ This array can be output with :doc:`fix ave/time <fix_ave_time>`,
compute p all stress/cartesian x 0.1 compute p all stress/cartesian x 0.1
fix 2 all ave/time 100 1 100 c_p[*] file dump_p.out mode vector fix 2 all ave/time 100 1 100 c_p[*] file dump_p.out mode vector
The values calculated by this compute are "intensive." The stress The values calculated by this compute are "intensive". The stress
values will be in pressure :doc:`units <units>`. The number density values will be in pressure :doc:`units <units>`. The number density
values are in inverse volume :doc:`units <units>`. values are in inverse volume :doc:`units <units>`.

View File

@ -182,7 +182,7 @@ Output info
from individual atoms in both groups). from individual atoms in both groups).
Both the scalar and vector values calculated by this compute are Both the scalar and vector values calculated by this compute are
"extensive." "extensive".
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -91,7 +91,7 @@ vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive". vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The The scalar value will be in temperature :doc:`units <units>`. The

View File

@ -134,8 +134,8 @@ vector values from a compute as input.
See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS
output options. output options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The The scalar value will be in temperature :doc:`units <units>`. The
vector values will be in energy :doc:`units <units>`. vector values will be in energy :doc:`units <units>`.

View File

@ -117,8 +117,8 @@ vector values from a compute as input.
See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS
output options. output options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The scalar value will be in temperature :doc:`units <units>`.
The vector values will be in energy :doc:`units <units>`. The vector values will be in energy :doc:`units <units>`.

View File

@ -242,8 +242,8 @@ can be accessed by any command that uses global array values from a
compute as input. Again, see the :doc:`Howto output <Howto_output>` doc compute as input. Again, see the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." The array values are "intensive." vector values are "extensive". The array values are "intensive".
The scalar value will be in temperature :doc:`units <units>`. The The scalar value will be in temperature :doc:`units <units>`. The
vector values will be in energy :doc:`units <units>`. The array values vector values will be in energy :doc:`units <units>`. The array values

View File

@ -87,8 +87,8 @@ vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The scalar value will be in temperature :doc:`units <units>`.
The vector values will be in energy :doc:`units <units>`. The vector values will be in energy :doc:`units <units>`.

View File

@ -101,8 +101,8 @@ vector of length 6 (KE tensor), which can be accessed by indices 1--6.
These values can be used by any command that uses global scalar or These values can be used by any command that uses global scalar or
vector values from a compute as input. vector values from a compute as input.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The The scalar value will be in temperature :doc:`units <units>`. The
vector values will be in energy :doc:`units <units>`. vector values will be in energy :doc:`units <units>`.

View File

@ -134,7 +134,7 @@ vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive". vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The scalar value will be in temperature :doc:`units <units>`.

View File

@ -53,8 +53,8 @@ vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The The scalar value will be in temperature :doc:`units <units>`. The
vector values will be in energy :doc:`units <units>`. vector values will be in energy :doc:`units <units>`.

View File

@ -67,8 +67,8 @@ vector values from a compute as input. See the
options. options.
Both the scalar value and the first two values of the vector Both the scalar value and the first two values of the vector
calculated by this compute are "intensive." The other four vector values calculated by this compute are "intensive". The other four vector values
are "extensive." are "extensive".
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -88,9 +88,9 @@ thermostatting.
Output info Output info
""""""""""" """""""""""
The scalar value calculated by this compute is "intensive," meaning it The scalar value calculated by this compute is "intensive", meaning it
is independent of the number of atoms in the simulation. The vector is independent of the number of atoms in the simulation. The vector
values are "extensive," meaning they scale with the number of atoms in values are "extensive", meaning they scale with the number of atoms in
the simulation. the simulation.
Restrictions Restrictions

View File

@ -94,8 +94,8 @@ vector values from a compute as input.
See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS
output options. output options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The The scalar value will be in temperature :doc:`units <units>`. The
vector values will be in energy :doc:`units <units>`. vector values will be in energy :doc:`units <units>`.

View File

@ -183,8 +183,8 @@ vector or array values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." The array values are "intensive." vector values are "extensive". The array values are "intensive".
The scalar value will be in temperature :doc:`units <units>`. The The scalar value will be in temperature :doc:`units <units>`. The
vector values will be in energy :doc:`units <units>`. The first column vector values will be in energy :doc:`units <units>`. The first column

View File

@ -106,8 +106,8 @@ vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The The scalar value will be in temperature :doc:`units <units>`. The
vector values will be in energy :doc:`units <units>`. vector values will be in energy :doc:`units <units>`.

View File

@ -99,8 +99,8 @@ vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The scalar value will be in temperature :doc:`units <units>`.
The vector values will be in energy :doc:`units <units>`. The vector values will be in energy :doc:`units <units>`.

View File

@ -46,8 +46,8 @@ vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The The scalar value will be in temperature :doc:`units <units>`. The
vector values will be in energy :doc:`units <units>`. vector values will be in energy :doc:`units <units>`.

View File

@ -86,8 +86,8 @@ vector values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The The scalar value will be in temperature :doc:`units <units>`. The
vector values will be in energy :doc:`units <units>`. vector values will be in energy :doc:`units <units>`.

View File

@ -122,8 +122,8 @@ vector values from a compute as input.
See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS
output options. output options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
vector values are "extensive." vector values are "extensive".
The scalar value will be in temperature :doc:`units <units>`. The The scalar value will be in temperature :doc:`units <units>`. The
vector values will be in energy :doc:`units <units>`. vector values will be in energy :doc:`units <units>`.

View File

@ -125,7 +125,7 @@ value can be used by any command that uses a global scalar value from
a compute as input. See the :doc:`Howto output <Howto_output>` doc page a compute as input. See the :doc:`Howto output <Howto_output>` doc page
for an overview of LAMMPS output options. for an overview of LAMMPS output options.
The scalar value calculated by this compute is "extensive." The scalar value calculated by this compute is "extensive".
The scalar value will be in energy :doc:`units <units>`. The scalar value will be in energy :doc:`units <units>`.

View File

@ -83,7 +83,7 @@ array values from a compute as input.
See the :doc:`Howto output <Howto_output>` doc page See the :doc:`Howto output <Howto_output>` doc page
for an overview of LAMMPS output options. for an overview of LAMMPS output options.
The array values are "intensive." The array values will be in The array values are "intensive". The array values will be in
force-distance :doc:`units <units>`. force-distance :doc:`units <units>`.
Restrictions Restrictions

View File

@ -66,7 +66,7 @@ accessed by indices 1--4 by any command that uses global vector values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The vector values are "intensive." The vector values will be in The vector values are "intensive". The vector values will be in
velocity\ :math:`^2` :doc:`units <units>`. velocity\ :math:`^2` :doc:`units <units>`.
Restrictions Restrictions

View File

@ -69,7 +69,7 @@ each chunk. These values can be accessed by any command that uses global array
values from a compute as input. See the :doc:`Howto output <Howto_output>` values from a compute as input. See the :doc:`Howto output <Howto_output>`
page for an overview of LAMMPS output options. page for an overview of LAMMPS output options.
The array values are "intensive." The array values will be in The array values are "intensive". The array values will be in
velocity :doc:`units <units>`. velocity :doc:`units <units>`.
Restrictions Restrictions

View File

@ -134,9 +134,9 @@ These values can be used by any command that uses global scalar or
vector values from a compute as input. vector values from a compute as input.
See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output options. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output options.
The scalar value calculated by this compute is "intensive." The The scalar value calculated by this compute is "intensive". The
first six elements of vector values are "extensive," first six elements of vector values are "extensive",
and the seventh element of vector values is "intensive." and the seventh element of vector values is "intensive".
The scalar value will be in temperature :doc:`units <units>`. The scalar value will be in temperature :doc:`units <units>`.
The first six elements of vector values will be in energy :doc:`units <units>`. The first six elements of vector values will be in energy :doc:`units <units>`.

View File

@ -198,7 +198,7 @@ Voronoi volume, the second is the neighbor count, as described above
(read above for the output data in case the *occupation* keyword is (read above for the output data in case the *occupation* keyword is
specified). These values can be accessed by any command that uses specified). These values can be accessed by any command that uses
per-atom values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output per-atom values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
options. If the *peratom* keyword is set to "no," the per-atom array options. If the *peratom* keyword is set to "no", the per-atom array
is still created, but it is not accessible. is still created, but it is not accessible.
If the *edge_histo* keyword is used, then this compute generates a If the *edge_histo* keyword is used, then this compute generates a

View File

@ -219,7 +219,7 @@ The array can be accessed by any command that uses global values from
a compute as input. See the :doc:`Howto output <Howto_output>` doc page a compute as input. See the :doc:`Howto output <Howto_output>` doc page
for an overview of LAMMPS output options. for an overview of LAMMPS output options.
All array values calculated by this compute are "intensive." All array values calculated by this compute are "intensive".
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -95,7 +95,7 @@ typically created via the :doc:`create_box <create_box>` command.
Before using this command, a lattice must also be defined using the Before using this command, a lattice must also be defined using the
:doc:`lattice <lattice>` command, unless you specify the *single* style :doc:`lattice <lattice>` command, unless you specify the *single* style
with units = box or the *random* style. For the remainder of this doc with units = box or the *random* style. For the remainder of this doc
page, a created atom or molecule is referred to as a "particle." page, a created atom or molecule is referred to as a "particle".
If created particles are individual atoms, they are assigned the If created particles are individual atoms, they are assigned the
specified atom *type*, though this can be altered via the *basis* specified atom *type*, though this can be altered via the *basis*
@ -352,7 +352,7 @@ As an example, these commands can be used in a 2d simulation, to
create a sinusoidal surface. Note that the surface is "rough" due to create a sinusoidal surface. Note that the surface is "rough" due to
individual lattice points being "above" or "below" the mathematical individual lattice points being "above" or "below" the mathematical
expression for the sinusoidal curve. If a finer lattice were used, expression for the sinusoidal curve. If a finer lattice were used,
the sinusoid would appear to be "smoother." Also note the use of the the sinusoid would appear to be "smoother". Also note the use of the
"xlat" and "ylat" :doc:`thermo_style <thermo_style>` keywords, which "xlat" and "ylat" :doc:`thermo_style <thermo_style>` keywords, which
converts lattice spacings to distance. converts lattice spacings to distance.

View File

@ -10,7 +10,7 @@ Syntax
dihedral_coeff N args dihedral_coeff N args
* N = dihedral type (see asterisk form below) * N = numeric dihedral type (see asterisk form below) or alphanumeric type label
* args = coefficients for one or more dihedral types * args = coefficients for one or more dihedral types
Examples Examples
@ -22,26 +22,35 @@ Examples
dihedral_coeff * 80.0 1 3 0.5 dihedral_coeff * 80.0 1 3 0.5
dihedral_coeff 2* 80.0 1 3 0.5 dihedral_coeff 2* 80.0 1 3 0.5
labelmap dihedral 1 backbone
dihedral_coeff backbone 80.0 1 3
Description Description
""""""""""" """""""""""
Specify the dihedral force field coefficients for one or more dihedral types. Specify the dihedral force field coefficients for one or more dihedral
The number and meaning of the coefficients depends on the dihedral style. types. The number and meaning of the coefficients depends on the
Dihedral coefficients can also be set in the data file read by the dihedral style. Dihedral coefficients can also be set in the data file
:doc:`read_data <read_data>` command or in a restart file. read by the :doc:`read_data <read_data>` command or in a restart file.
N can be specified in one of two ways. An explicit numeric value can :math:`N` can be specified in one of two ways. An explicit numeric
be used, as in the first example above. Or a wild-card asterisk can be value can be used, as in the first example above. Or :math:`N` can be
used to set the coefficients for multiple dihedral types. This takes the an alphanumeric type label, which is a string defined by the
form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N` is the number of dihedral :doc:`labelmap <labelmap>` command or in a corresponding section of a
types, then an asterisk with no numeric values means all types from 1 to data file read by the :doc:`read_data <read_data>` command.
:math:`N`. A leading asterisk means all types from 1 to n (inclusive). A
trailing asterisk means all types from m to N (inclusive). A middle asterisk For numeric values only, a wild-card asterisk can be used to set the
means all types from m to n (inclusive). coefficients for multiple dihedral types. This takes the form "\*" or
"\*n" or "n\*" or "m\*n". If :math:`N` is the number of dihedral types,
then an asterisk with no numeric values means all types from 1 to
:math:`N`. A leading asterisk means all types from 1 to n (inclusive).
A trailing asterisk means all types from n to :math:`N` (inclusive). A
middle asterisk means all types from m to n (inclusive).
Note that using a dihedral_coeff command can override a previous setting Note that using a dihedral_coeff command can override a previous setting
for the same dihedral type. For example, these commands set the coeffs for the same dihedral type. For example, these commands set the coeffs
for all dihedral types, then overwrite the coeffs for just dihedral type 2: for all dihedral types, then overwrite the coeffs for just dihedral type
2:
.. code-block:: LAMMPS .. code-block:: LAMMPS

View File

@ -224,30 +224,29 @@ page for details.
The *atom/gz*, *cfg/gz*, *custom/gz*, *local/gz*, and *xyz/gz* styles The *atom/gz*, *cfg/gz*, *custom/gz*, *local/gz*, and *xyz/gz* styles
are identical in command syntax to the corresponding styles without are identical in command syntax to the corresponding styles without
"gz," however, they generate compressed files using the zlib "gz", however, they generate compressed files using the zlib
library. Thus the filename suffix ".gz" is mandatory. This is an library. Thus the filename suffix ".gz" is mandatory. This is an
alternative approach to writing compressed files via a pipe, as done alternative approach to writing compressed files via a pipe, as done by
by the regular dump styles, which may be required on clusters where the regular dump styles, which may be required on clusters where the
the interface to the high-speed network disallows using the fork() interface to the high-speed network disallows using the fork() library
library call (which is needed for a pipe). For the remainder of this call (which is needed for a pipe). For the remainder of this page, you
page, you should thus consider the *atom* and *atom/gz* styles should thus consider the *atom* and *atom/gz* styles (etc.) to be
(etc.) to be inter-changeable, with the exception of the required inter-changeable, with the exception of the required filename suffix.
filename suffix.
Similarly, the *atom/zstd*, *cfg/zstd*, *custom/zstd*, *local/zstd*, Similarly, the *atom/zstd*, *cfg/zstd*, *custom/zstd*, *local/zstd*, and
and *xyz/zstd* styles are identical to the gz styles, but use the Zstd *xyz/zstd* styles are identical to the gz styles, but use the Zstd
compression library instead and require the ".zst" suffix. See the compression library instead and require the ".zst" suffix. See the
:doc:`dump_modify <dump_modify>` page for details on how to control :doc:`dump_modify <dump_modify>` page for details on how to control the
the compression level in both variants. compression level in both variants.
As explained below, the *atom/mpiio*, *cfg/mpiio*, *custom/mpiio*, and As explained below, the *atom/mpiio*, *cfg/mpiio*, *custom/mpiio*, and
*xyz/mpiio* styles are identical in command syntax and in the format *xyz/mpiio* styles are identical in command syntax and in the format of
of the dump files they create, to the corresponding styles without the dump files they create, to the corresponding styles without "mpiio",
"mpiio," except the single dump file they produce is written in except the single dump file they produce is written in parallel via the
parallel via the MPI-IO library. For the remainder of this page, MPI-IO library. For the remainder of this page, you should thus
you should thus consider the *atom* and *atom/mpiio* styles (etc.) to consider the *atom* and *atom/mpiio* styles (etc.) to be
be inter-changeable. The one exception is how the filename is inter-changeable. The one exception is how the filename is specified
specified for the MPI-IO styles, as explained below. for the MPI-IO styles, as explained below.
.. warning:: .. warning::
@ -434,7 +433,7 @@ Below is an example for a YAML format dump created by the following commands.
dump out all yaml 100 dump.yaml id type x y z vx vy vz ix iy iz dump out all yaml 100 dump.yaml id type x y z vx vy vz ix iy iz
dump_modify out time yes units yes thermo yes format 1 %5d format "% 10.6e" dump_modify out time yes units yes thermo yes format 1 %5d format "% 10.6e"
The tags "time," "units," and "thermo" are optional and enabled by the The tags "time", "units", and "thermo" are optional and enabled by the
dump_modify command. The list under the "box" tag has three lines for dump_modify command. The list under the "box" tag has three lines for
orthogonal boxes and four lines for triclinic boxes, where the first three are orthogonal boxes and four lines for triclinic boxes, where the first three are
the box boundaries and the fourth the three tilt factors (:math:`xy`, the box boundaries and the fourth the three tilt factors (:math:`xy`,
@ -553,15 +552,14 @@ package installed, viz.,
make yes-mpiio # installs the MPIIO package make yes-mpiio # installs the MPIIO package
make mpi # build LAMMPS for your platform make mpi # build LAMMPS for your platform
Second, use a dump filename which contains ".mpiio." Note that it Second, use a dump filename which contains ".mpiio". Note that it does
does not have to end in ".mpiio," just contain those characters. not have to end in ".mpiio", just contain those characters. Unlike
Unlike MPI-IO restart files, which must be both written and read using MPI-IO restart files, which must be both written and read using MPI-IO,
MPI-IO, the dump files produced by these MPI-IO styles are identical the dump files produced by these MPI-IO styles are identical in format
in format to the files produced by their non-MPI-IO style to the files produced by their non-MPI-IO style counterparts. This
counterparts. This means you can write a dump file using MPI-IO and means you can write a dump file using MPI-IO and use the :doc:`read_dump
use the :doc:`read_dump <read_dump>` command or perform other <read_dump>` command or perform other post-processing, just as if the
post-processing, just as if the dump file was not written using dump file was not written using MPI-IO.
MPI-IO.
.. warning:: .. warning::
@ -570,37 +568,40 @@ MPI-IO.
Note that MPI-IO dump files are one large file which all processors Note that MPI-IO dump files are one large file which all processors
write to. You thus cannot use the "%" wildcard character described write to. You thus cannot use the "%" wildcard character described
above in the filename since that specifies generation of multiple above in the filename since that specifies generation of multiple files.
files. You can use the ".bin" or ".lammpsbin" suffix described below in an You can use the ".bin" or ".lammpsbin" suffix described below in an
MPI-IO dump file; again this file will be written in parallel and have the MPI-IO dump file; again this file will be written in parallel and have
same binary format as if it were written without MPI-IO. the same binary format as if it were written without MPI-IO.
If the filename ends with ".bin" or ".lammpsbin," the dump file (or files, if If the filename ends with ".bin" or ".lammpsbin", the dump file (or
"\*" or "%" is also used) is written in binary format. A binary dump file files, if "\*" or "%" is also used) is written in binary format. A
will be about the same size as a text version, but will typically binary dump file will be about the same size as a text version, but will
write out much faster. Of course, when post-processing, you will need typically write out much faster. Of course, when post-processing, you
to convert it back to text format (see the :ref:`binary2txt tool <binary>`) or will need to convert it back to text format (see the :ref:`binary2txt
write your own code to read the binary file. The format of the binary file can tool <binary>`) or write your own code to read the binary file. The
be understood by looking at the :file:`tools/binary2txt.cpp` file. This option format of the binary file can be understood by looking at the
is only available for the *atom* and *custom* styles. :file:`tools/binary2txt.cpp` file. This option is only available for
the *atom* and *custom* styles.
If the filename ends with ".gz," the dump file (or files, if "\*" or "%" If the filename ends with ".gz", the dump file (or files, if "\*" or "%"
is also used) is written in gzipped format. A gzipped dump file will be about is also used) is written in gzipped format. A gzipped dump file will be
:math:`3\times` smaller than the text version, but will also take longer about :math:`3\times` smaller than the text version, but will also take
to write. This option is not available for the *dcd* and *xtc* styles. longer to write. This option is not available for the *dcd* and *xtc*
styles.
---------- ----------
Note that in the discussion which follows, for styles which can Note that in the discussion which follows, for styles which can
reference values from a compute or fix or custom atom property, like reference values from a compute or fix or custom atom property, like the
the *custom*\ , *cfg*\ , or *local* styles, the bracketed index :math:`i` can *custom*\ , *cfg*\ , or *local* styles, the bracketed index :math:`i`
be specified using a wildcard asterisk with the index to effectively can be specified using a wildcard asterisk with the index to effectively
specify multiple values. This takes the form "\*" or "\*n" or "m\*" specify multiple values. This takes the form "\*" or "\*n" or "m\*" or
or "m\*n." If :math:`N` is the number of columns in the array, then an "m\*n". If :math:`N` is the number of columns in the array, then an
asterisk with no numeric values means all column indices from 1 to :math:`N`. asterisk with no numeric values means all column indices from 1 to
A leading asterisk means all indices from 1 to n (inclusive). A :math:`N`. A leading asterisk means all indices from 1 to n
trailing asterisk means all indices from m to :math:`N` (inclusive). A middle (inclusive). A trailing asterisk means all indices from m to :math:`N`
asterisk means all indices from m to n (inclusive). (inclusive). A middle asterisk means all indices from m to n
(inclusive).
Using a wildcard is the same as if the individual columns of the array Using a wildcard is the same as if the individual columns of the array
had been listed one by one. For example, these two dump commands are had been listed one by one. For example, these two dump commands are
@ -679,37 +680,38 @@ The *id*, *mol*, *proc*, *procp1*, *type*, *element*, *mass*, *vx*,
*Id* is the atom ID. *Mol* is the molecule ID, included in the data *Id* is the atom ID. *Mol* is the molecule ID, included in the data
file for molecular systems. *Proc* is the ID of the processor (0 to file for molecular systems. *Proc* is the ID of the processor (0 to
:math:`N_\text{procs}-1`) that currently owns the atom. :math:`N_\text{procs}-1`) that currently owns the atom. *Procp1* is the
*Procp1* is the proc ID+1, which can be convenient in place of a *type* proc ID+1, which can be convenient in place of a *type* attribute (1 to
attribute (1 to :math:`N_\text{types}`) for coloring atoms in a visualization :math:`N_\text{types}`) for coloring atoms in a visualization program.
program. *Type* is the atom type (1 to :math:`N_\text{types}`). *Element* is *Type* is the atom type (1 to :math:`N_\text{types}`). *Element* is
typically the chemical name of an element, which you must assign to each type typically the chemical name of an element, which you must assign to each
via the :doc:`dump_modify element <dump_modify>` command. More generally, it type via the :doc:`dump_modify element <dump_modify>` command. More
can be any string you wish to associated with an atom type. *Mass* is the atom generally, it can be any string you wish to associated with an atom
mass. The quantities *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, and *q* are components type. *Mass* is the atom mass. The quantities *vx*, *vy*, *vz*, *fx*,
of atom velocity and force and atomic charge. *fy*, *fz*, and *q* are components of atom velocity and force and atomic
charge.
There are several options for outputting atom coordinates. The *x*, There are several options for outputting atom coordinates. The *x*,
*y*, and *z* attributes write atom coordinates "unscaled," in the *y*, and *z* attributes write atom coordinates "unscaled", in the
appropriate distance :doc:`units <units>` (:math:`\mathrm{\mathring A}`, appropriate distance :doc:`units <units>` (:math:`\mathrm{\mathring A}`,
:math:`\sigma`, etc.). Use *xs*, *ys*, and *zs* if you want the coordinates :math:`\sigma`, etc.). Use *xs*, *ys*, and *zs* if you want the
"scaled" to the box size so that each value is 0.0 to 1.0. If the simulation coordinates "scaled" to the box size so that each value is 0.0 to 1.0.
box is triclinic (tilted), then all atom coords will still be between 0.0 and If the simulation box is triclinic (tilted), then all atom coords will
1.0. The actual unscaled :math:`(x,y,z)` coordinate is still be between 0.0 and 1.0. The actual unscaled :math:`(x,y,z)`
:math:`x_s a + y_s b + z_s c`, where :math:`(a,b,c)` are the non-orthogonal coordinate is :math:`x_s a + y_s b + z_s c`, where :math:`(a,b,c)` are
vectors of the simulation box edges, as discussed on the the non-orthogonal vectors of the simulation box edges, as discussed on
:doc:`Howto triclinic <Howto_triclinic>` page. the :doc:`Howto triclinic <Howto_triclinic>` page.
Use *xu*, *yu*, and *zu* if you want the coordinates "unwrapped" by the Use *xu*, *yu*, and *zu* if you want the coordinates "unwrapped" by the
image flags for each atom. Unwrapped means that if the atom has image flags for each atom. Unwrapped means that if the atom has passed
passed through a periodic boundary one or more times, the value is through a periodic boundary one or more times, the value is printed for
printed for what the coordinate would be if it had not been wrapped what the coordinate would be if it had not been wrapped back into the
back into the periodic box. Note that using *xu*, *yu*, and *zu* means periodic box. Note that using *xu*, *yu*, and *zu* means that the
that the coordinate values may be far outside the box bounds printed coordinate values may be far outside the box bounds printed with the
with the snapshot. Using *xsu*, *ysu*, and *zsu* is similar to using snapshot. Using *xsu*, *ysu*, and *zsu* is similar to using *xu*, *yu*,
*xu*, *yu*, and *zu*, except that the unwrapped coordinates are scaled by and *zu*, except that the unwrapped coordinates are scaled by the box
the box size. Atoms that have passed through a periodic boundary will size. Atoms that have passed through a periodic boundary will have the
have the corresponding coordinate increased or decreased by 1.0. corresponding coordinate increased or decreased by 1.0.
The image flags can be printed directly using the *ix*, *iy*, and *iz* The image flags can be printed directly using the *ix*, *iy*, and *iz*
attributes. For periodic dimensions, they specify which image of the attributes. For periodic dimensions, they specify which image of the
@ -721,8 +723,8 @@ periodic boundaries during the simulation.
The *mux*, *muy*, and *muz* attributes are specific to dipolar systems The *mux*, *muy*, and *muz* attributes are specific to dipolar systems
defined with an atom style of *dipole*\ . They give the orientation of defined with an atom style of *dipole*\ . They give the orientation of
the atom's point dipole moment. The *mu* attribute gives the the atom's point dipole moment. The *mu* attribute gives the magnitude
magnitude of the atom's dipole moment. of the atom's dipole moment.
The *radius* and *diameter* attributes are specific to spherical The *radius* and *diameter* attributes are specific to spherical
particles that have a finite size, such as those defined with an atom particles that have a finite size, such as those defined with an atom
@ -736,17 +738,17 @@ The *angmomx*, *angmomy*, and *angmomz* attributes are specific to
finite-size aspherical particles that have an angular momentum. Only finite-size aspherical particles that have an angular momentum. Only
the *ellipsoid* atom style defines this quantity. the *ellipsoid* atom style defines this quantity.
The *tqx*, *tqy*, and *tqz* attributes are for finite-size particles that The *tqx*, *tqy*, and *tqz* attributes are for finite-size particles
can sustain a rotational torque due to interactions with other that can sustain a rotational torque due to interactions with other
particles. particles.
The *c_ID* and *c_ID[I]* attributes allow per-atom vectors or arrays The *c_ID* and *c_ID[I]* attributes allow per-atom vectors or arrays
calculated by a :doc:`compute <compute>` to be output. The ID in the calculated by a :doc:`compute <compute>` to be output. The ID in the
attribute should be replaced by the actual ID of the compute that has attribute should be replaced by the actual ID of the compute that has
been defined previously in the input script. See the been defined previously in the input script. See the :doc:`compute
:doc:`compute <compute>` command for details. There are computes for <compute>` command for details. There are computes for calculating the
calculating the per-atom energy, stress, centro-symmetry parameter, per-atom energy, stress, centro-symmetry parameter, and coordination
and coordination number of individual atoms. number of individual atoms.
Note that computes which calculate global or local quantities, as Note that computes which calculate global or local quantities, as
opposed to per-atom quantities, cannot be output in a dump custom opposed to per-atom quantities, cannot be output in a dump custom
@ -754,39 +756,39 @@ command. Instead, global quantities can be output by the
:doc:`thermo_style custom <thermo_style>` command, and local quantities :doc:`thermo_style custom <thermo_style>` command, and local quantities
can be output by the dump local command. can be output by the dump local command.
If *c_ID* is used as a attribute, then the per-atom vector calculated If *c_ID* is used as a attribute, then the per-atom vector calculated by
by the compute is printed. If *c_ID[i]* is used, then :math:`i` must be in the compute is printed. If *c_ID[i]* is used, then :math:`i` must be in
the range from 1 to :math:`M`, which will print the :math:`i`\ th column of the the range from 1 to :math:`M`, which will print the :math:`i`\ th column
per-atom array with :math:`M` columns calculated by the compute. See the of the per-atom array with :math:`M` columns calculated by the compute.
discussion above for how :math:`i` can be specified with a wildcard asterisk to See the discussion above for how :math:`i` can be specified with a
effectively specify multiple values. wildcard asterisk to effectively specify multiple values.
The *f_ID* and *f_ID[I]* attributes allow vector or array per-atom The *f_ID* and *f_ID[I]* attributes allow vector or array per-atom
quantities calculated by a :doc:`fix <fix>` to be output. The ID in quantities calculated by a :doc:`fix <fix>` to be output. The ID in the
the attribute should be replaced by the actual ID of the fix that has attribute should be replaced by the actual ID of the fix that has been
been defined previously in the input script. The :doc:`fix ave/atom defined previously in the input script. The :doc:`fix ave/atom
<fix_ave_atom>` command is one that calculates per-atom quantities. <fix_ave_atom>` command is one that calculates per-atom quantities.
Since it can time-average per-atom quantities produced by any Since it can time-average per-atom quantities produced by any
:doc:`compute <compute>`, :doc:`fix <fix>`, or atom-style :doc:`compute <compute>`, :doc:`fix <fix>`, or atom-style :doc:`variable
:doc:`variable <variable>`, this allows those time-averaged results to <variable>`, this allows those time-averaged results to be written to a
be written to a dump file. dump file.
If *f_ID* is used as a attribute, then the per-atom vector calculated If *f_ID* is used as a attribute, then the per-atom vector calculated by
by the fix is printed. If *f_ID[i]* is used, then :math:`i` must be in the the fix is printed. If *f_ID[i]* is used, then :math:`i` must be in the
range from 1 to :math:`M`, which will print the :math:`i`\ th column of the range from 1 to :math:`M`, which will print the :math:`i`\ th column of
per-atom array with :math:`M` columns calculated by the fix. See the the per-atom array with :math:`M` columns calculated by the fix. See
discussion above for how :math:`i` can be specified with a wildcard asterisk the discussion above for how :math:`i` can be specified with a wildcard
to effectively specify multiple values. asterisk to effectively specify multiple values.
The *v_name* attribute allows per-atom vectors calculated by a The *v_name* attribute allows per-atom vectors calculated by a
:doc:`variable <variable>` to be output. The name in the attribute :doc:`variable <variable>` to be output. The name in the attribute
should be replaced by the actual name of the variable that has been should be replaced by the actual name of the variable that has been
defined previously in the input script. Only an atom-style variable defined previously in the input script. Only an atom-style variable can
can be referenced, since it is the only style that generates per-atom be referenced, since it is the only style that generates per-atom
values. Variables of style *atom* can reference individual atom values. Variables of style *atom* can reference individual atom
attributes, per-atom attributes, thermodynamic keywords, or invoke attributes, per-atom attributes, thermodynamic keywords, or invoke other
other computes, fixes, or variables when they are evaluated, so this computes, fixes, or variables when they are evaluated, so this is a very
is a very general means of creating quantities to output to a dump file. general means of creating quantities to output to a dump file.
The *i_name*, *d_name*, *i2_name*, *d2_name* attributes refer to The *i_name*, *d_name*, *i2_name*, *d2_name* attributes refer to
per-atom integer and floating-point vectors or arrays that have been per-atom integer and floating-point vectors or arrays that have been
@ -794,10 +796,11 @@ added via the :doc:`fix property/atom <fix_property_atom>` command.
When that command is used specific names are given to each attribute When that command is used specific names are given to each attribute
which are the "name" portion of these keywords. For arrays *i2_name* which are the "name" portion of these keywords. For arrays *i2_name*
and *d2_name*, the column of the array must also be included following and *d2_name*, the column of the array must also be included following
the name in brackets (e.g., d2_xyz[i], i2_mySpin[i], where :math:`i` is in the the name in brackets (e.g., d2_xyz[i], i2_mySpin[i], where :math:`i` is
range from 1 to :math:`M`, where :math:`M` is the number of columns in the in the range from 1 to :math:`M`, where :math:`M` is the number of
custom array). See the discussion above for how :math:`i` can be specified with columns in the custom array). See the discussion above for how :math:`i`
a wildcard asterisk to effectively specify multiple values. can be specified with a wildcard asterisk to effectively specify
multiple values.
See the :doc:`Modify <Modify>` page for information on how to add See the :doc:`Modify <Modify>` page for information on how to add
new compute and fix styles to LAMMPS to calculate per-atom quantities new compute and fix styles to LAMMPS to calculate per-atom quantities

View File

@ -196,8 +196,8 @@ Only atoms in the specified group are rendered in the image. The
alter what atoms are included in the image. alter what atoms are included in the image.
The filename suffix determines whether a JPEG, PNG, or PPM file is The filename suffix determines whether a JPEG, PNG, or PPM file is
created with the *image* dump style. If the suffix is ".jpg" or created with the *image* dump style. If the suffix is ".jpg" or
".jpeg," then a `JPEG format <jpeg_format_>`_ file is created, if the ".jpeg", then a `JPEG format <jpeg_format_>`_ file is created, if the
suffix is ".png," then a `PNG format <png_format_>`_ is created, else suffix is ".png", then a `PNG format <png_format_>`_ is created, else
a `PPM (aka NETPBM) format <ppm_format_>`_ file is created. a `PPM (aka NETPBM) format <ppm_format_>`_ file is created.
The JPEG and PNG files are binary; PPM has a text mode header followed The JPEG and PNG files are binary; PPM has a text mode header followed
by binary data. JPEG images have lossy compression, PNG has lossless by binary data. JPEG images have lossy compression, PNG has lossless
@ -261,7 +261,7 @@ atoms rendered in the image. They can be any atom attribute defined
for the :doc:`dump custom <dump>` command, including *type* and for the :doc:`dump custom <dump>` command, including *type* and
*element*\ . This includes per-atom quantities calculated by a *element*\ . This includes per-atom quantities calculated by a
:doc:`compute <compute>`, :doc:`fix <fix>`, or :doc:`variable <variable>`, :doc:`compute <compute>`, :doc:`fix <fix>`, or :doc:`variable <variable>`,
which are prefixed by "c\_," "f\_," or "v\_," respectively. Note that the which are prefixed by "c\_", "f\_", or "v\_", respectively. Note that the
*diameter* setting can be overridden with a numeric value applied to *diameter* setting can be overridden with a numeric value applied to
all atoms by the optional *adiam* keyword. all atoms by the optional *adiam* keyword.
@ -297,18 +297,18 @@ and sizes used by the `AtomEye <atomeye_>`_ visualization package.
If other atom attributes are used for the *color* or *diameter* If other atom attributes are used for the *color* or *diameter*
settings, they are interpreted in the following way. settings, they are interpreted in the following way.
If "vx," for example, is used as the *color* setting, then the color If "vx", for example, is used as the *color* setting, then the color
of the atom will depend on the x-component of its velocity. The of the atom will depend on the x-component of its velocity. The
association of a per-atom value with a specific color is determined by association of a per-atom value with a specific color is determined by
a "color map," which can be specified via the dump_modify command, as a "color map", which can be specified via the dump_modify command, as
described below. The basic idea is that the atom-attribute will be described below. The basic idea is that the atom-attribute will be
within a range of values, and every value within the range is mapped within a range of values, and every value within the range is mapped
to a specific color. Depending on how the color map is defined, that to a specific color. Depending on how the color map is defined, that
mapping can take place via interpolation so that a value of -3.2 is mapping can take place via interpolation so that a value of -3.2 is
halfway between "red" and "blue," or discretely so that the value of halfway between "red" and "blue", or discretely so that the value of
-3.2 is "orange". -3.2 is "orange".
If "vx," for example, is used as the *diameter* setting, then the atom If "vx", for example, is used as the *diameter* setting, then the atom
will be rendered using the x-component of its velocity as the will be rendered using the x-component of its velocity as the
diameter. If the per-atom value <= 0.0, them the atom will not be diameter. If the per-atom value <= 0.0, them the atom will not be
drawn. Note that finite-size spherical particles, as defined by drawn. Note that finite-size spherical particles, as defined by
@ -792,14 +792,14 @@ increasing values. Note that numeric values can be specified either
as absolute numbers or as fractions (0.0 to 1.0) of the range, as absolute numbers or as fractions (0.0 to 1.0) of the range,
depending on the "a" or "f" in the style setting for the color map. depending on the "a" or "f" in the style setting for the color map.
Here is how the entries are used to determine the color of an Here is how the entries are used to determine the color of an individual
individual atom, given the value :math:`X` of its atom attribute. atom, given the value :math:`X` of its atom attribute. :math:`X` will
:math:`X` will fall between 2 of the entry values. The color of the atom is fall between 2 of the entry values. The color of the atom is linearly
linearly interpolated (in each of the RGB values) between the 2 colors interpolated (in each of the RGB values) between the 2 colors associated
associated with those entries. For example, if :math:`X = -5.0` and the two with those entries. For example, if :math:`X = -5.0` and the two
surrounding entries are "red" at :math:`-10.0` and "blue" at :math:`0.0`, surrounding entries are "red" at :math:`-10.0` and "blue" at
then the atom's color will be halfway between "red" and "blue," which happens :math:`0.0`, then the atom's color will be halfway between "red" and
to be "purple." "blue", which happens to be "purple".
For discrete color maps, each entry has a *lo* and *hi* value and a For discrete color maps, each entry has a *lo* and *hi* value and a
*color*\ . The *lo* and *hi* settings are either numbers within the *color*\ . The *lo* and *hi* settings are either numbers within the
@ -807,19 +807,18 @@ range of values or *lo* can be *min* or *hi* can be *max*\ . The *lo*
and *hi* settings of the last entry must be *min* and *max*\ . Other and *hi* settings of the last entry must be *min* and *max*\ . Other
entries can have any *lo* and *hi* values and the sub-ranges of entries can have any *lo* and *hi* values and the sub-ranges of
different values can overlap. Note that numeric *lo* and *hi* values different values can overlap. Note that numeric *lo* and *hi* values
can be specified either as absolute numbers or as fractions (0.0 to can be specified either as absolute numbers or as fractions (0.0 to 1.0)
1.0) of the range, depending on the "a" or "f" in the style setting of the range, depending on the "a" or "f" in the style setting for the
for the color map. color map.
Here is how the entries are used to determine the color of an Here is how the entries are used to determine the color of an individual
individual atom, given the value X of its atom attribute. The entries atom, given the value X of its atom attribute. The entries are scanned
are scanned from first to last. The first time that *lo* <= X <= from first to last. The first time that *lo* <= X <= *hi*, X is
*hi*, X is assigned the color associated with that entry. You can assigned the color associated with that entry. You can think of the
think of the last entry as assigning a default color (since it will last entry as assigning a default color (since it will always be matched
always be matched by X), and the earlier entries as colors that by X), and the earlier entries as colors that override the default.
override the default. Also note that no interpolation of a color RGB Also note that no interpolation of a color RGB is done. All atoms will
is done. All atoms will be drawn with one of the colors in the list be drawn with one of the colors in the list of entries.
of entries.
For sequential color maps, each entry has only a *color*\ . Here is how For sequential color maps, each entry has only a *color*\ . Here is how
the entries are used to determine the color of an individual atom, the entries are used to determine the color of an individual atom,
@ -867,7 +866,7 @@ that bonds of each type will be drawn in the image.
The specified *type* should be an integer from 1 to :math:`N`, where :math:`N` The specified *type* should be an integer from 1 to :math:`N`, where :math:`N`
is the number of bond types. A wildcard asterisk can be used in place of or is the number of bond types. A wildcard asterisk can be used in place of or
in conjunction with the *type* argument to specify a range of bond in conjunction with the *type* argument to specify a range of bond
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N` types. This takes the form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N`
is the number of bond types, then an asterisk with no numerical values is the number of bond types, then an asterisk with no numerical values
means all types from 1 to :math:`N`. A leading asterisk means all types from means all types from 1 to :math:`N`. A leading asterisk means all types from
1 to n (inclusive). A trailing asterisk means all types from m to :math:`N` 1 to n (inclusive). A trailing asterisk means all types from m to :math:`N`

View File

@ -176,6 +176,31 @@ 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
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
column/keyword), or a custom dump keyword (or compute, fix, property, or
variable reference) and then it replaces the string for that specific
keyword. For *atom* dump styles only the keywords "id", "type", "x",
"y", "z", "ix", "iy", "iz" can be accessed via string regardless of
whether scaled or unwrapped coordinates were enabled or disabled, and
it always assumes 8 columns for indexing regardless of whether image
flags are enabled or not. For dump style *cfg* only changes to the
"auxiliary" keywords (6th or later keyword) will become visible.
The *colname* keyword can be used multiple times. If multiple *colname*
settings refer to the same keyword, the last setting has precedence. A
setting of *default* clears all previous settings, reverting all values
to their default names. Using the *scale* or *image* keyword will also
reset all header keywords to their default values.
----------
The *delay* keyword applies to all dump styles. No snapshots will be The *delay* keyword applies to all dump styles. No snapshots will be
output until the specified *Dstep* timestep or later. Specifying output until the specified *Dstep* timestep or later. Specifying
*Dstep* < 0 is the same as turning off the delay setting. This is a *Dstep* < 0 is the same as turning off the delay setting. This is a
@ -365,7 +390,7 @@ always occur if the current timestep is a multiple of $N$, the
frequency specified in the :doc:`dump <dump>` command or frequency specified in the :doc:`dump <dump>` command or
:doc:`dump_modify every <dump_modify>` command, including timestep 0. :doc:`dump_modify every <dump_modify>` command, including timestep 0.
It will also always occur if the current simulation time is a multiple It will also always occur if the current simulation time is a multiple
of *Delta*, the time interval specified in the doc:`dump_modify of *Delta*, the time interval specified in the :doc:`dump_modify
every/time <dump_modify>` command. every/time <dump_modify>` command.
But if this is not the case, a dump snapshot will only be written if But if this is not the case, a dump snapshot will only be written if
@ -373,7 +398,7 @@ the setting of this keyword is *yes*\ . If it is *no*, which is the
default, then it will not be written. default, then it will not be written.
Note that if the argument to the :doc:`dump_modify every Note that if the argument to the :doc:`dump_modify every
<dump_modify>` doc:`dump_modify every/time <dump_modify>` commands is <dump_modify>` :doc:`dump_modify every/time <dump_modify>` commands is
a variable and not a numeric value, then specifying *first yes* is the a variable and not a numeric value, then specifying *first yes* is the
only way to write a dump snapshot on the first timestep after the dump only way to write a dump snapshot on the first timestep after the dump
command is invoked. command is invoked.
@ -388,30 +413,6 @@ performed with dump style *xtc*\ .
---------- ----------
.. 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
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
column/keyword), or a custom dump keyword (or compute, fix, property, or
variable reference) and then it replaces the string for that specific
keyword. For *atom* dump styles only the keywords "id", "type", "x",
"y", "z", "ix", "iy", "iz" can be accessed via string regardless of
whether scaled or unwrapped coordinates were enabled or disabled, and
it always assumes 8 columns for indexing regardless of whether image
flags are enabled or not. For dump style *cfg* only changes to the
"auxiliary" keywords (6th or later keyword) will become visible.
The *colname* keyword can be used multiple times. If multiple *colname*
settings refer to the same keyword, the last setting has precedence. A
setting of *default* clears all previous settings, reverting all values
to their default names.
----------
The *format* keyword can be used to change the default numeric format output The *format* keyword can be used to change the default numeric format output
by the text-based dump styles: *atom*, *local*, *custom*, *cfg*, and by the text-based dump styles: *atom*, *local*, *custom*, *cfg*, and
*xyz* styles, and their MPIIO variants. Only the *line* or *none* *xyz* styles, and their MPIIO variants. Only the *line* or *none*
@ -498,6 +499,8 @@ boundary twice and is really two box lengths to the left of its
current coordinate. Note that for dump style *custom* these various current coordinate. Note that for dump style *custom* these various
values can be printed in the dump file by using the appropriate atom values can be printed in the dump file by using the appropriate atom
attributes in the dump command itself. attributes in the dump command itself.
Using this keyword will reset all custom header names set with
*dump_modify colname* to their respective default values.
---------- ----------
@ -671,6 +674,8 @@ value of *yes* means atom coords are written in normalized units from
(tilted), then all atom coords will still be between 0.0 and 1.0. A (tilted), then all atom coords will still be between 0.0 and 1.0. A
value of *no* means they are written in absolute distance units value of *no* means they are written in absolute distance units
(e.g., :math:`\mathrm{\mathring A}` or :math:`\sigma`). (e.g., :math:`\mathrm{\mathring A}` or :math:`\sigma`).
Using this keyword will reset all custom header names set with
*dump_modify colname* to their respective default values.
---------- ----------

View File

@ -122,7 +122,7 @@ The *pstyle* argument is the name of the pair style. If
sub-styles using the same pair style, then *pstyle* should be specified sub-styles using the same pair style, then *pstyle* should be specified
as "style:N", where :math:`N` is which instance of the pair style you wish to as "style:N", where :math:`N` is which instance of the pair style you wish to
adapt (e.g., the first or second). For example, *pstyle* could be adapt (e.g., the first or second). For example, *pstyle* could be
specified as "soft" or "lubricate" or "lj/cut:1" or "lj/cut:2." The specified as "soft" or "lubricate" or "lj/cut:1" or "lj/cut:2". The
*pparam* argument is the name of the parameter to change. This is the *pparam* argument is the name of the parameter to change. This is the
current list of pair styles and parameters that can be varied by this current list of pair styles and parameters that can be varied by this
fix. See the doc pages for individual pair styles and their energy fix. See the doc pages for individual pair styles and their energy
@ -245,7 +245,7 @@ the coefficients for the symmetric :math:`J,I` interaction to the same values.
A wild-card asterisk can be used in place of or in conjunction with A wild-card asterisk can be used in place of or in conjunction with
the :math:`I,J` arguments to set the coefficients for multiple pairs of atom the :math:`I,J` arguments to set the coefficients for multiple pairs of atom
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N` types. This takes the form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N`
is the number of atom types, then an asterisk with no numeric values is the number of atom types, then an asterisk with no numeric values
means all types from 1 to :math:`N`. A leading asterisk means all types from means all types from 1 to :math:`N`. A leading asterisk means all types from
1 to n (inclusive). A trailing asterisk means all types from m to :math:`N` 1 to n (inclusive). A trailing asterisk means all types from m to :math:`N`
@ -260,17 +260,17 @@ values defined (via the :doc:`pair_coeff <pair_coeff>` command) for
that sub-style. that sub-style.
The *v_name* argument for keyword *pair* is the name of an The *v_name* argument for keyword *pair* is the name of an
:doc:`equal-style variable <variable>` which will be evaluated each :doc:`equal-style variable <variable>` which will be evaluated each time
time this fix is invoked to set the parameter to a new value. It this fix is invoked to set the parameter to a new value. It should be
should be specified as v_name, where name is the variable name. specified as v_name, where name is the variable name. Equal-style
Equal-style variables can specify formulas with various mathematical variables can specify formulas with various mathematical functions, and
functions, and include :doc:`thermo_style <thermo_style>` command include :doc:`thermo_style <thermo_style>` command keywords for the
keywords for the simulation box parameters and timestep and elapsed simulation box parameters and timestep and elapsed time. Thus it is
time. Thus it is easy to specify parameters that change as a function easy to specify parameters that change as a function of time or span
of time or span consecutive runs in a continuous fashion. For the consecutive runs in a continuous fashion. For the latter, see the
latter, see the *start* and *stop* keywords of the :doc:`run <run>` *start* and *stop* keywords of the :doc:`run <run>` command and the
command and the *elaplong* keyword of :doc:`thermo_style custom *elaplong* keyword of :doc:`thermo_style custom <thermo_style>` for
<thermo_style>` for details. details.
For example, these commands would change the prefactor coefficient of For example, these commands would change the prefactor coefficient of
the :doc:`pair_style soft <pair_soft>` potential from 10.0 to 30.0 in a the :doc:`pair_style soft <pair_soft>` potential from 10.0 to 30.0 in a
@ -288,13 +288,14 @@ a bond coefficient over time, very similar to how the *pair* keyword
operates. The only difference is that now a bond coefficient for a operates. The only difference is that now a bond coefficient for a
given bond type is adapted. given bond type is adapted.
A wild-card asterisk can be used in place of or in conjunction with A wild-card asterisk can be used in place of or in conjunction with the
the bond type argument to set the coefficients for multiple bond bond type argument to set the coefficients for multiple bond types.
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N` This takes the form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N` is
is the number of bond types, then an asterisk with no numeric values the number of bond types, then an asterisk with no numeric values means
means all types from 1 to :math:`N`. A leading asterisk means all types from all types from 1 to :math:`N`. A leading asterisk means all types from
1 to n (inclusive). A trailing asterisk means all types from m to :math:`N` 1 to n (inclusive). A trailing asterisk means all types from m to
(inclusive). A middle asterisk means all types from m to n (inclusive). :math:`N` (inclusive). A middle asterisk means all types from m to n
(inclusive).
Currently *bond* does not support bond_style hybrid nor bond_style Currently *bond* does not support bond_style hybrid nor bond_style
hybrid/overlay as bond styles. The bond styles that currently work hybrid/overlay as bond styles. The bond styles that currently work
@ -323,13 +324,14 @@ an angle coefficient over time, very similar to how the *pair* keyword
operates. The only difference is that now an angle coefficient for a operates. The only difference is that now an angle coefficient for a
given angle type is adapted. given angle type is adapted.
A wild-card asterisk can be used in place of or in conjunction with A wild-card asterisk can be used in place of or in conjunction with the
the angle type argument to set the coefficients for multiple angle angle type argument to set the coefficients for multiple angle types.
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N` This takes the form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N` is
is the number of angle types, then an asterisk with no numeric values the number of angle types, then an asterisk with no numeric values means
means all types from 1 to :math:`N`. A leading asterisk means all types from all types from 1 to :math:`N`. A leading asterisk means all types from
1 to n (inclusive). A trailing asterisk means all types from m to :math:`N` 1 to n (inclusive). A trailing asterisk means all types from m to
(inclusive). A middle asterisk means all types from m to n (inclusive). :math:`N` (inclusive). A middle asterisk means all types from m to n
(inclusive).
Currently *angle* does not support angle_style hybrid nor angle_style Currently *angle* does not support angle_style hybrid nor angle_style
hybrid/overlay as angle styles. The angle styles that currently work hybrid/overlay as angle styles. The angle styles that currently work

View File

@ -115,7 +115,7 @@ overrides the parameters.
The *pstyle* argument is the name of the pair style. If :doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is used, *pstyle* should be The *pstyle* argument is the name of the pair style. If :doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is used, *pstyle* should be
a sub-style name. For example, *pstyle* could be specified as "soft" a sub-style name. For example, *pstyle* could be specified as "soft"
or "lubricate." The *pparam* argument is the name of the parameter to or "lubricate". The *pparam* argument is the name of the parameter to
change. This is the current list of pair styles and parameters that change. This is the current list of pair styles and parameters that
can be varied by this fix. See the doc pages for individual pair can be varied by this fix. See the doc pages for individual pair
styles and their energy formulas for the meaning of these parameters: styles and their energy formulas for the meaning of these parameters:
@ -209,7 +209,7 @@ the coefficients for the symmetric J,I interaction to the same values.
A wild-card asterisk can be used in place of or in conjunction with A wild-card asterisk can be used in place of or in conjunction with
the :math:`I,J` arguments to set the coefficients for multiple pairs of atom the :math:`I,J` arguments to set the coefficients for multiple pairs of atom
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N` is types. This takes the form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N` is
the number of atom types, then an asterisk with no numeric values means the number of atom types, then an asterisk with no numeric values means
all types from 1 to :math:`N`. A leading asterisk means all types from 1 to n all types from 1 to :math:`N`. A leading asterisk means all types from 1 to n
(inclusive). A trailing asterisk means all types from m to :math:`N` (inclusive). A trailing asterisk means all types from m to :math:`N`

View File

@ -153,7 +153,7 @@ which can be accessed by various :doc:`output commands
<Howto_output>`. The scalar is the potential energy discussed above. <Howto_output>`. The scalar is the potential energy discussed above.
The vector is the total force on the group of atoms before the forces The vector is the total force on the group of atoms before the forces
on individual atoms are changed by the fix. The scalar and vector on individual atoms are changed by the fix. The scalar and vector
values calculated by this fix are "extensive." values calculated by this fix are "extensive".
No parameter of this fix can be used with the *start/stop* keywords of No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. the :doc:`run <run>` command.

View File

@ -75,7 +75,7 @@ accessed by various :doc:`output commands <Howto_output>`. The scalar
is the potential energy discussed above. The vector is the total is the potential energy discussed above. The vector is the total
torque on the group of atoms before the forces on individual atoms are torque on the group of atoms before the forces on individual atoms are
changed by the fix. The scalar and vector values calculated by this changed by the fix. The scalar and vector values calculated by this
fix are "extensive." fix are "extensive".
No parameter of this fix can be used with the *start/stop* keywords of No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. the :doc:`run <run>` command.

View File

@ -124,7 +124,7 @@ setting for this fix is :doc:`fix_modify virial yes <fix_modify>`.
This fix computes a global scalar which can be accessed by various This fix computes a global scalar which can be accessed by various
:doc:`output commands <Howto_output>`. The scalar is the potential :doc:`output commands <Howto_output>`. The scalar is the potential
energy discussed above. The scalar value calculated by this fix is energy discussed above. The scalar value calculated by this fix is
"extensive." "extensive".
No parameter of this fix can be used with the *start/stop* keywords of No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. the :doc:`run <run>` command.

View File

@ -138,7 +138,7 @@ setting for this fix is :doc:`fix_modify virial yes <fix_modify>`.
This fix computes a global scalar which can be accessed by various This fix computes a global scalar which can be accessed by various
:doc:`output commands <Howto_output>`. The scalar is the potential :doc:`output commands <Howto_output>`. The scalar is the potential
energy discussed above. The scalar value calculated by this fix is energy discussed above. The scalar value calculated by this fix is
"extensive." "extensive".
No parameter of this fix can be used with the *start/stop* keywords of No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. the :doc:`run <run>` command.

View File

@ -135,7 +135,7 @@ fix are listed below.
This fix computes a global scalar which can be accessed by various This fix computes a global scalar which can be accessed by various
:doc:`output commands <Howto_output>`. The scalar is the energy :doc:`output commands <Howto_output>`. The scalar is the energy
discussed in the previous paragraph. The scalar value is "extensive." discussed in the previous paragraph. The scalar value is "extensive".
No parameter of this fix can be used with the No parameter of this fix can be used with the
*start/stop* keywords of the :doc:`run <run>` command. This fix is not *start/stop* keywords of the :doc:`run <run>` command. This fix is not

View File

@ -167,7 +167,7 @@ the following global cumulative quantities:
* 1 = swap attempts * 1 = swap attempts
* 2 = swap accepts * 2 = swap accepts
The vector values calculated by this fix are "extensive." The vector values calculated by this fix are "extensive".
No parameter of this fix can be used with the *start/stop* keywords of 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 the :doc:`run <run>` command. This fix is not invoked during

View File

@ -70,7 +70,7 @@ per-atom vectors.
Note that for values from a compute or fix, the bracketed index I can Note that for values from a compute or fix, the bracketed index I can
be specified using a wildcard asterisk with the index to effectively be specified using a wildcard asterisk with the index to effectively
specify multiple values. This takes the form "\*" or "\*n" or "m\*" or specify multiple values. This takes the form "\*" or "\*n" or "m\*" or
"m\*n." If :math:`N` is the size of the vector (for *mode* = scalar) or the "m\*n". If :math:`N` is the size of the vector (for *mode* = scalar) or the
number of columns in the array (for *mode* = vector), then an asterisk number of columns in the array (for *mode* = vector), then an asterisk
with no numeric values means all indices from 1 to :math:`N`. A leading with no numeric values means all indices from 1 to :math:`N`. A leading
asterisk means all indices from 1 to n (inclusive). A trailing asterisk means all indices from 1 to n (inclusive). A trailing
@ -127,7 +127,7 @@ specifying an input value from that compute.
:doc:`compute property/atom <compute_property_atom>` :doc:`compute property/atom <compute_property_atom>`
command via its *xu*, *yu*, and *zu* attributes. command via its *xu*, *yu*, and *zu* attributes.
If a value begins with "c\_," a compute ID must follow which has been If a value begins with "c\_", a compute ID must follow which has been
previously defined in the input script. If no bracketed term is previously defined in the input script. If no bracketed term is
appended, the per-atom vector calculated by the compute is used. If a appended, the per-atom vector calculated by the compute is used. If a
bracketed term containing an index :math:`I` is appended, the bracketed term containing an index :math:`I` is appended, the
@ -137,7 +137,7 @@ used. Users can also write code for their own compute styles and
:math:`I` can be specified with a wildcard asterisk to effectively specify :math:`I` can be specified with a wildcard asterisk to effectively specify
multiple values. multiple values.
If a value begins with "f\_," a fix ID must follow which has been previously If a value begins with "f\_", a fix ID must follow which has been previously
defined in the input script. If no bracketed term is appended, the per-atom defined in the input script. If no bracketed term is appended, the per-atom
vector calculated by the fix is used. If a bracketed term containing an index vector calculated by the fix is used. If a bracketed term containing an index
:math:`I` is appended, the :math:`I^\text{th}` column of the per-atom array :math:`I` is appended, the :math:`I^\text{th}` column of the per-atom array
@ -148,7 +148,7 @@ and :doc:`add them to LAMMPS <Modify>`. See the discussion above for how
:math:`I` can be specified with a wildcard asterisk to effectively specify :math:`I` can be specified with a wildcard asterisk to effectively specify
multiple values. multiple values.
If a value begins with "v\_," a variable name must follow which has If a value begins with "v\_", a variable name must follow which has
been previously defined in the input script as an been previously defined in the input script as an
:doc:`atom-style variable <variable>`. Variables of style *atom* can reference :doc:`atom-style variable <variable>`. Variables of style *atom* can reference
thermodynamic keywords or invoke other computes, fixes, or variables thermodynamic keywords or invoke other computes, fixes, or variables

View File

@ -288,7 +288,7 @@ together as one set of atoms to calculate their temperature. The
compute allows the center-of-mass velocity of each chunk to be compute allows the center-of-mass velocity of each chunk to be
subtracted before calculating the temperature; this fix does not. subtracted before calculating the temperature; this fix does not.
If a value begins with "c\_," a compute ID must follow which has been If a value begins with "c\_", a compute ID must follow which has been
previously defined in the input script. If no bracketed integer is previously defined in the input script. If no bracketed integer is
appended, the per-atom vector calculated by the compute is used. If a appended, the per-atom vector calculated by the compute is used. If a
bracketed integer is appended, the Ith column of the per-atom array bracketed integer is appended, the Ith column of the per-atom array
@ -297,7 +297,7 @@ their own compute styles and :doc:`add them to LAMMPS <Modify>`.
See the discussion above for how I can be specified with a wildcard See the discussion above for how I can be specified with a wildcard
asterisk to effectively specify multiple values. asterisk to effectively specify multiple values.
If a value begins with "f\_," a fix ID must follow which has been If a value begins with "f\_", a fix ID must follow which has been
previously defined in the input script. If no bracketed integer is previously defined in the input script. If no bracketed integer is
appended, the per-atom vector calculated by the fix is used. If a appended, the per-atom vector calculated by the fix is used. If a
bracketed integer is appended, the Ith column of the per-atom array bracketed integer is appended, the Ith column of the per-atom array
@ -308,7 +308,7 @@ their own fix styles and :doc:`add them to LAMMPS <Modify>`. See the
discussion above for how I can be specified with a wildcard asterisk discussion above for how I can be specified with a wildcard asterisk
to effectively specify multiple values. to effectively specify multiple values.
If a value begins with "v\_," a variable name must follow which has If a value begins with "v\_", a variable name must follow which has
been previously defined in the input script. Variables of style been previously defined in the input script. Variables of style
*atom* can reference thermodynamic keywords and various per-atom *atom* can reference thermodynamic keywords and various per-atom
attributes, or invoke other computes, fixes, or variables when they attributes, or invoke other computes, fixes, or variables when they
@ -348,7 +348,7 @@ at each sampling step.
If the *norm* setting is *none*, a similar computation as for the If the *norm* setting is *none*, a similar computation as for the
*sample* setting is done, except the individual "average sample *sample* setting is done, except the individual "average sample
values" are "summed sample values." A summed sample value is simply values" are "summed sample values". A summed sample value is simply
the chunk value summed over atoms in the sample, without dividing by the chunk value summed over atoms in the sample, without dividing by
the number of atoms in the sample. The output value for the chunk on the number of atoms in the sample. The output value for the chunk on
the :math:`N_\text{freq}` timesteps is the average of the the :math:`N_\text{freq}` timesteps is the average of the
@ -494,21 +494,21 @@ relevant to this fix.
This fix computes a global array of values which can be accessed by This fix computes a global array of values which can be accessed by
various :doc:`output commands <Howto_output>`. The values can only be various :doc:`output commands <Howto_output>`. The values can only be
accessed on timesteps that are multiples of :math:`N_\text{freq}`, since that accessed on timesteps that are multiples of :math:`N_\text{freq}`, since
is when averaging is performed. The global array has # of rows = the number that is when averaging is performed. The global array has # of rows =
of chunks :math:`N_\text{chunk}`, as calculated by the specified the number of chunks :math:`N_\text{chunk}`, as calculated by the
:doc:`compute chunk/atom <compute_chunk_atom>` command. The # of columns is specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The #
:math:`M+1+N_\text{values}`, where :math:`M \in \{1,\dotsc,4\}`, of columns is :math:`M+1+N_\text{values}`, where :math:`M \in
depending on whether the optional \{1,\dotsc,4\}`, depending on whether the optional columns for OrigID
columns for OrigID and CoordN are used, as explained above. Following and CoordN are used, as explained above. Following the optional
the optional columns, the next column contains the count of atoms in columns, the next column contains the count of atoms in the chunk, and
the chunk, and the remaining columns are the Nvalue quantities. When the remaining columns are the Nvalue quantities. When the array is
the array is accessed with a row :math:`I` that exceeds the current number of accessed with a row :math:`I` that exceeds the current number of chunks,
chunks, than a 0.0 is returned by the fix instead of an error, since than a 0.0 is returned by the fix instead of an error, since the number
the number of chunks can vary as a simulation runs depending on how of chunks can vary as a simulation runs depending on how that value is
that value is computed by the compute chunk/atom command. computed by the compute chunk/atom command.
The array values calculated by this fix are treated as "intensive," The array values calculated by this fix are treated as "intensive",
since they are typically already normalized by the count of atoms in since they are typically already normalized by the count of atoms in
each chunk. each chunk.

View File

@ -189,7 +189,7 @@ Also, if the *ave* keyword is set to *one* which is the default, then
---------- ----------
If a value begins with "c\_," a compute ID must follow which has been If a value begins with "c\_", a compute ID must follow which has been
previously defined in the input script. If no bracketed term is previously defined in the input script. If no bracketed term is
appended, the global scalar calculated by the compute is used. If a appended, the global scalar calculated by the compute is used. If a
bracketed term is appended, the :math:`I^\text{th}` element of the global bracketed term is appended, the :math:`I^\text{th}` element of the global
@ -206,7 +206,7 @@ or :doc:`fix temp/rescale <fix_temp_rescale>`. See the doc pages for
these commands which give the IDs of these computes. Users can also these commands which give the IDs of these computes. Users can also
write code for their own compute styles and :doc:`add them to LAMMPS <Modify>`. write code for their own compute styles and :doc:`add them to LAMMPS <Modify>`.
If a value begins with "f\_," a fix ID must follow which has been If a value begins with "f\_", a fix ID must follow which has been
previously defined in the input script. If no bracketed term is previously defined in the input script. If no bracketed term is
appended, the global scalar calculated by the fix is used. If a appended, the global scalar calculated by the fix is used. If a
bracketed term is appended, the :math:`I^\text{th}` element of the global bracketed term is appended, the :math:`I^\text{th}` element of the global
@ -219,7 +219,7 @@ which must be compatible with :math:`N_\text{every}`, else an error will
result. Users can also write code for their own fix styles and result. Users can also write code for their own fix styles and
:doc:`add them to LAMMPS <Modify>`. :doc:`add them to LAMMPS <Modify>`.
If a value begins with "v\_," a variable name must follow which has been If a value begins with "v\_", a variable name must follow which has been
previously defined in the input script. Only equal-style or vector-style previously defined in the input script. Only equal-style or vector-style
variables can be referenced; the latter requires a bracketed term to specify variables can be referenced; the latter requires a bracketed term to specify
the :math:`I^\text{th}` element of the vector calculated by the variable. the :math:`I^\text{th}` element of the vector calculated by the variable.

View File

@ -193,7 +193,7 @@ inputs to this fix by using the
:doc:`compute property/atom <compute_property_atom>` command and then :doc:`compute property/atom <compute_property_atom>` command and then
specifying an input value from that compute. specifying an input value from that compute.
If a value begins with "c\_," a compute ID must follow which has been If a value begins with "c\_", a compute ID must follow which has been
previously defined in the input script. If *mode* = scalar, then if previously defined in the input script. If *mode* = scalar, then if
no bracketed term is appended, the global scalar calculated by the no bracketed term is appended, the global scalar calculated by the
compute is used. If a bracketed term is appended, the Ith element of compute is used. If a bracketed term is appended, the Ith element of
@ -215,7 +215,7 @@ these commands which give the IDs of these computes. Users can also
write code for their own compute styles and write code for their own compute styles and
:doc:`add them to LAMMPS <Modify>`. :doc:`add them to LAMMPS <Modify>`.
If a value begins with "f\_," a fix ID must follow which has been If a value begins with "f\_", a fix ID must follow which has been
previously defined in the input script. If *mode* = scalar, then if previously defined in the input script. If *mode* = scalar, then if
no bracketed term is appended, the global scalar calculated by the fix no bracketed term is appended, the global scalar calculated by the fix
is used. If a bracketed term is appended, the Ith element of the is used. If a bracketed term is appended, the Ith element of the
@ -232,7 +232,7 @@ which must be compatible with :math:`N_\text{every}`, else an error will
result. Users can also write code for their own fix styles and result. Users can also write code for their own fix styles and
:doc:`add them to LAMMPS <Modify>`. :doc:`add them to LAMMPS <Modify>`.
If a value begins with "v\_," a variable name must follow which has If a value begins with "v\_", a variable name must follow which has
been previously defined in the input script. If *mode* = scalar, then been previously defined in the input script. If *mode* = scalar, then
only equal-style or vector-style variables can be used, which both only equal-style or vector-style variables can be used, which both
produce global values. In this mode, a vector-style variable requires produce global values. In this mode, a vector-style variable requires

View File

@ -358,11 +358,11 @@ of rows = length of the input vectors and # of columns = number of
inputs. inputs.
If the fix produces a scalar or vector, then the scalar and each If the fix produces a scalar or vector, then the scalar and each
element of the vector can be either "intensive" or "extensive," element of the vector can be either "intensive" or "extensive",
depending on whether the values contributing to the scalar or vector depending on whether the values contributing to the scalar or vector
element are "intensive" or "extensive." If the fix produces an array, element are "intensive" or "extensive". If the fix produces an array,
then all elements in the array must be the same, either "intensive" or then all elements in the array must be the same, either "intensive" or
"extensive." If a compute or fix provides the value being time "extensive". If a compute or fix provides the value being time
averaged, then the compute or fix determines whether the value is averaged, then the compute or fix determines whether the value is
intensive or extensive; see the page for that compute or fix for intensive or extensive; see the page for that compute or fix for
further info. Values produced by a variable are treated as intensive. further info. Values produced by a variable are treated as intensive.

View File

@ -361,7 +361,7 @@ The "SQUARES" section lists the node IDs of the four vertices in a
rectangle for each processor (1 to 4). rectangle for each processor (1 to 4).
For a 3d problem, the syntax is similar but with eight vertices listed for For a 3d problem, the syntax is similar but with eight vertices listed for
each processor instead of four, and "SQUARES" replaced by "CUBES." each processor instead of four, and "SQUARES" replaced by "CUBES".
---------- ----------
@ -387,7 +387,7 @@ number of particles (or total weight) per processor.
These quantities can be accessed by various These quantities can be accessed by various
:doc:`output commands <Howto_output>`. The scalar and vector values calculated :doc:`output commands <Howto_output>`. The scalar and vector values calculated
by this fix are "intensive." by this fix are "intensive".
No parameter of this fix can be used with the *start/stop* keywords of 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 the :doc:`run <run>` command. This fix is not invoked during

View File

@ -8,18 +8,27 @@ Syntax
.. parsed-literal:: .. parsed-literal::
fix ID group-ID latte peID fix ID group-ID latte keyword value ...
* ID, group-ID are documented in :doc:`fix <fix>` command * ID, group-ID are documented in :doc:`fix <fix>` command
* latte = style name of this fix command * latte = style name of this fix command
* peID = NULL or ID of compute used to calculate per-atom energy * zero or more keyword/value pairs may be appended
.. parsed-literal::
keyword = *coulomb* or *exclude*
*coulomb* value = peID
peID = ID of compute used to calculate per-atom energy
*exclude* value = fixID
fixID = ID of fix which potentially excludes atoms before calling LATTE
Examples Examples
"""""""" """"""""
.. code-block:: LAMMPS .. code-block:: LAMMPS
fix dftb all latte NULL fix dftb all latte
fix dftb all exclude GCMC
Description Description
""""""""""" """""""""""
@ -48,10 +57,41 @@ found in examples/latte.
A step-by-step tutorial can be followed at: `LAMMPS-LATTE tutorial <https://github.com/lanl/LATTE/wiki/Using-LATTE-through-LAMMPS>`_ A step-by-step tutorial can be followed at: `LAMMPS-LATTE tutorial <https://github.com/lanl/LATTE/wiki/Using-LATTE-through-LAMMPS>`_
The *peID* argument is not yet supported by fix latte, so it must be Currently, LAMMPS must be run in serial or as a single MPI task, to
specified as NULL. Eventually it will be used to enable LAMMPS to use this fix. This is because the version of the LATTE library LAMMPS
calculate a Coulomb potential as an alternative to LATTE performing uses does not support MPI. On the LAMMPS size, this is typically not
the calculation. a bottleneck, since LATTE will be doing 99% or more of the work to
compute quantum-accurate forces. On the LATTE side, the LATTE library
does support threaded parallelism via OpenMP. You must build the
LATTE library with OpenMP support, then set the OMP_NUM_THREADS
environment variable before performing a LAMMPS + LATTE simulation to
tell LATTE how many threads to invoke.
.. note::
NEB calculations can be done using this fix using multiple
replicas and running LAMMPS in parallel. However, each replica must
be run on a single MPI task. For details, see the :doc:`neb <neb>`
command page and the :doc:`-partition command-line switch <Run_options>`
----------
The *coulomb* argument is not yet supported by fix latte (as of Sept
2022). Eventually it will be used to enable LAMMPS to calculate a
Coulomb potential as an alternative to LATTE performing the
calculation.
The *exclude* argument allows this fix to work in tandem with another
fix which may decide to delete one or more atoms of molecules. The
specified fixID is the ID of the other fix.
The one current example of such a fix is the :doc:`fix gcmc
<fix_gcmc>` command which performs Monte Carlo insertions and
deletions. If a trial deletion is performed, then LAMMPS needs to
only pass LATTE the atoms which remain. Fix gcmc does not actually
remove any atoms until after the new energy is computed (in this case
by LATTE), and a Monte Carlo accept/reject decision is made for the
trial deletion.
---------- ----------
@ -153,18 +193,8 @@ use this fix.
LATTE does not currently compute per-atom energy or per-atom virial LATTE does not currently compute per-atom energy or per-atom virial
contributions. So they will not show up as part of the calculations contributions. So they will not show up as part of the calculations
performed by the :doc:`compute pe/atom <compute_pe_atom>` or :doc:`compute stress/atom <compute_stress_atom>` commands. performed by the :doc:`compute pe/atom <compute_pe_atom>` or
:doc:`compute stress/atom <compute_stress_atom>` commands.
Currently, LAMMPS must be run in serial or as a single MPI task, to
use this fix. This is typically not a bottleneck, since LATTE will be
doing 99% or more of the work to compute quantum-accurate forces.
.. note::
NEB calculations can be done using this fix using multiple
replicas and running LAMMPS in parallel. However, each replica must
be run on a single MPI task. For details, see the :doc:`neb <neb>`
command page and the :doc:`-partition command-line switch <Run_options>`
Related commands Related commands
"""""""""""""""" """"""""""""""""

View File

@ -318,7 +318,7 @@ Restrictions
"""""""""""" """"""""""""
There can be no more than 32 groups defined at one time, including There can be no more than 32 groups defined at one time, including
"all." "all".
The parent group of a dynamic group cannot itself be a dynamic group. The parent group of a dynamic group cannot itself be a dynamic group.

View File

@ -10,7 +10,7 @@ Syntax
improper_coeff N args improper_coeff N args
* N = improper type (see asterisk form below) * N = numeric improper type (see asterisk form below), or type label
* args = coefficients for one or more improper types * args = coefficients for one or more improper types
Examples Examples
@ -22,27 +22,34 @@ Examples
improper_coeff * 80.2 -1 2 improper_coeff * 80.2 -1 2
improper_coeff *4 80.2 -1 2 improper_coeff *4 80.2 -1 2
labelmap improper 1 benzene
improper_coeff benzene 300.0 0.0
Description Description
""""""""""" """""""""""
Specify the improper force field coefficients for one or more improper Specify the improper force field coefficients for one or more improper
types. The number and meaning of the coefficients depends on the types. The number and meaning of the coefficients depends on the
improper style. Improper coefficients can also be set in the data improper style. Improper coefficients can also be set in the data file
file read by the :doc:`read_data <read_data>` command or in a restart read by the :doc:`read_data <read_data>` command or in a restart file.
file.
N can be specified in one of two ways. An explicit numeric value can :math:`N` can be specified in one of two ways. An explicit numeric
be used, as in the first example above. Or a wild-card asterisk can be value can be used, as in the first example above. Or :math:`N` can be a
used to set the coefficients for multiple improper types. This takes type label, which is an alphanumeric string defined by the
the form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of improper :doc:`labelmap <labelmap>` command or in a section of a data file read
types, then an asterisk with no numeric values means all types from 1 by the :doc:`read_data <read_data>` command.
to N. A leading asterisk means all types from 1 to n (inclusive). A
trailing asterisk means all types from n to N (inclusive). A middle For numeric values only, a wild-card asterisk can be used to set the
asterisk means all types from m to n (inclusive). coefficients for multiple improper types. This takes the form "\*" or
"\*n" or "n\*" or "m\*n". If :math:`N` = the number of improper types,
then an asterisk with no numeric values means all types from 1 to
:math:`N`. A leading asterisk means all types from 1 to n (inclusive).
A trailing asterisk means all types from n to :math:`N` (inclusive). A
middle asterisk means all types from m to n (inclusive).
Note that using an improper_coeff command can override a previous Note that using an improper_coeff command can override a previous
setting for the same improper type. For example, these commands set setting for the same improper type. For example, these commands set the
the coeffs for all improper types, then overwrite the coeffs for just coeffs for all improper types, then overwrite the coeffs for just
improper type 2: improper type 2:
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -53,9 +60,9 @@ improper type 2:
A line in a data file that specifies improper coefficients uses the A line in a data file that specifies improper coefficients uses the
exact same format as the arguments of the improper_coeff command in an exact same format as the arguments of the improper_coeff command in an
input script, except that wild-card asterisks should not be used since input script, except that wild-card asterisks should not be used since
coefficients for all N types must be listed in the file. For example, coefficients for all :math:`N` types must be listed in the file. For
under the "Improper Coeffs" section of a data file, the line that example, under the "Improper Coeffs" section of a data file, the line
corresponds to the first example above would be listed as that corresponds to the first example above would be listed as
.. parsed-literal:: .. parsed-literal::

View File

@ -981,7 +981,7 @@ In the last example, "new-property.edn" and
"/home/mary/marys-kim-properties/dissociation-energy.edn" are the names of files "/home/mary/marys-kim-properties/dissociation-energy.edn" are the names of files
that contain user-defined (local) property definitions. that contain user-defined (local) property definitions.
A KIM property instance takes the form of a "map," i.e. a set of key-value A KIM property instance takes the form of a "map", i.e. a set of key-value
pairs akin to Perl's hash, Python's dictionary, or Java's Hashtable. It pairs akin to Perl's hash, Python's dictionary, or Java's Hashtable. It
consists of a set of property key names, each of which is referred to here by consists of a set of property key names, each of which is referred to here by
the *key_name* argument, that are defined as part of the relevant KIM Property the *key_name* argument, that are defined as part of the relevant KIM Property

100
doc/src/labelmap.rst Normal file
View File

@ -0,0 +1,100 @@
.. index:: labelmap
labelmap command
==================
Syntax
""""""
.. code-block:: LAMMPS
labelmap option args
* *option* = *atom* or *bond* or *angle* or *dihedral* or *improper* or *clear* or *write*
.. parsed-literal::
*clear* = no args
*write* arg = filename
*atom* or *bond* or *angle* or *dihedral* or *improper*
args = list of one or more numeric-type/type-label pairs
Examples
""""""""
.. code-block:: LAMMPS
labelmap atom 3 carbon 4 'c3"' 5 "c1'" 6 "c#"
labelmap bond 1 carbonyl 2 nitrile 3 """ c1'-c2" """
labelmap atom $(label2type(atom,carbon)) C # change type label from 'carbon' to 'C'
labelmap clear
labelmap write mymap.include
Description
"""""""""""
.. versionadded:: TBD
Define alphanumeric type labels to associate with one or more numeric
atom, bond, angle, dihedral or improper types. A collection of type
labels for all atom types, bond types, etc. is stored as a label map.
The label map can also be defined by the :doc:`read_data <read_data>`
command when it reads these sections in a data file: Atom Type Labels,
Bond Type Labels, etc. See the :doc:`Howto type labels
<Howto_type_labels>` doc page for a general discussion of how type
labels can be used.
Valid type labels can contain any alphanumeric character, but must not
start with a number, a '#', or a '*' character. They can contain other
standard ASCII characters such as angular or square brackets '<' and '>'
or '[' and ']', parenthesis '(' and ')', dash '-', underscore '_', plus
'+' and equals '=' signs and more. They must not contain blanks or any
other whitespace. Note that type labels must be put in single or double
quotation marks if they contain the '#' character or if they contain a
double (") or single quotation mark ('). If the label contains both
a single and a double quotation mark, then triple quotation (""") must
be used. When enclosing a type label with quotation marks, the
LAMMPS input parser may require adding leading or trailing blanks
around the type label so it can identify the enclosing quotation
marks. Those blanks will be removed when defining the label.
A *labelmap* command can only modify the label map for one type-kind
(atom types, bond types, etc). Any number of numeric-type/type-label
pairs may follow. If a type label already exists for the same numeric
type, it will be overwritten. Type labels must be unique; assigning the
same type label to multiple numeric types within the same type-kind is
not allowed. When reading and writing data files, it is required that
there is a label defined for *every* numeric type within a given
type-kind in order to write out the type label section for that
type-kind.
The *clear* option resets the label map and thus discards all previous
settings.
The *write* option takes a filename as argument and writes the current
label mappings to a file as a sequence of *labelmap* commands, so the
file can be copied into a new LAMMPS input file or read in using the
:doc:`include <include>` command.
----------
Restrictions
""""""""""""
This command must come after the simulation box is defined by a
:doc:`read_data <read_data>`, :doc:`read_restart <read_restart>`, or
:doc:`create_box <create_box>` command.
Label maps are currently not supported when using the KOKKOS package.
Related commands
""""""""""""""""
:doc:`read_data <read_data>`, :doc:`write_data <write_data>`,
:doc:`molecule <molecule>`, :doc:`fix bond/react <fix_bond_react>`
Default
"""""""
none

View File

@ -10,7 +10,7 @@ Syntax
mass I value mass I value
* I = atom type (see asterisk form below) * I = atom type (see asterisk form below), or type label
* value = mass * value = mass
Examples Examples
@ -22,6 +22,9 @@ Examples
mass * 62.5 mass * 62.5
mass 2* 62.5 mass 2* 62.5
labelmap atom 1 C
mass C 12.01
Description Description
""""""""""" """""""""""
@ -30,12 +33,16 @@ values can also be set in the :doc:`read_data <read_data>` data file
using the "Masses" keyword. See the :doc:`units <units>` command for using the "Masses" keyword. See the :doc:`units <units>` command for
what mass units to use. what mass units to use.
The I index can be specified in one of two ways. An explicit numeric The I index can be specified in one of several ways. An explicit
value can be used, as in the first example above. Or a wild-card numeric value can be used, as in the first example above. Or I can be
asterisk can be used to set the mass for multiple atom types. This a type label, which is an alphanumeric string defined by the
takes the form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of :doc:`labelmap <labelmap>` command or in a section of a data file read
atom types, then an asterisk with no numeric values means all types by the :doc:`read_data <read_data>` command, and which converts
from 1 to N. A leading asterisk means all types from 1 to n internally to a numeric type. Or a wild-card asterisk can be used to
set the mass for multiple atom types. This takes the form "\*" or
"\*n" or "n\*" or "m\*n", where m and n are numbers. If N = the
number of atom types, then an asterisk with no numeric values means
all types from 1 to N. A leading asterisk means all types from 1 to n
(inclusive). A trailing asterisk means all types from n to N (inclusive). A trailing asterisk means all types from n to N
(inclusive). A middle asterisk means all types from m to n (inclusive). A middle asterisk means all types from m to n
(inclusive). (inclusive).

View File

@ -70,8 +70,9 @@ and underscores.
A single template can contain multiple molecules, listed one per file. A single template can contain multiple molecules, listed one per file.
Some of the commands listed above currently use only the first Some of the commands listed above currently use only the first
molecule in the template, and will issue a warning if the template molecule in the template, and will issue a warning if the template
contains multiple molecules. The :doc:`atom_style template <atom_style>` command allows multiple-molecule templates contains multiple molecules. The :doc:`atom_style template
to define a system with more than one templated molecule. <atom_style>` command allows multiple-molecule templates to define a
system with more than one templated molecule.
Each filename can be followed by optional keywords which are applied Each filename can be followed by optional keywords which are applied
only to the molecule in the file as used in this template. This is to only to the molecule in the file as used in this template. This is to
@ -88,6 +89,12 @@ molecule file. E.g. if *toff* = 2, and the file uses atom types
individual values will be ignored if the molecule template does not individual values will be ignored if the molecule template does not
use that attribute (e.g. no bonds). use that attribute (e.g. no bonds).
.. note::
Offsets are **ignored** on lines using type labels, as the type
labels will determine the actual types directly depending on the
current :doc:`labelmap <labelmap>` settings.
The *scale* keyword scales the size of the molecule. This can be The *scale* keyword scales the size of the molecule. This can be
useful for modeling polydisperse granular rigid bodies. The scale useful for modeling polydisperse granular rigid bodies. The scale
factor is applied to each of these properties in the molecule file, if factor is applied to each of these properties in the molecule file, if
@ -118,14 +125,18 @@ The format of an individual molecule file is similar but
(not identical) to the data file read by the :doc:`read_data <read_data>` (not identical) to the data file read by the :doc:`read_data <read_data>`
commands, and is as follows. commands, and is as follows.
A molecule file has a header and a body. The header appears first. A molecule file has a header and a body. The header appears first. The
The first line of the header is always skipped; it typically contains first line of the header and thus of the molecule file is *always* skipped;
a description of the file. Then lines are read one at a time. Lines it typically contains a description of the file or a comment from the software
can have a trailing comment starting with '#' that is ignored. If the that created the file.
line is blank (only white-space after comment is deleted), it is
Then lines are read one line at a time. Lines can have a trailing
comment starting with '#' that is ignored. There *must* be at least one
blank between any valid content and the comment. If the line is blank
(i.e. contains only white-space after comments are deleted), it is
skipped. If the line contains a header keyword, the corresponding skipped. If the line contains a header keyword, the corresponding
value(s) is read from the line. If it does not contain a header value(s) is/are read from the line. A line that is *not* blank and does
keyword, the line begins the body of the file. *not* contains a header keyword begins the body of the file.
The body of the file contains zero or more sections. The first line The body of the file contains zero or more sections. The first line
of a section has only a keyword. The next line is skipped. The of a section has only a keyword. The next line is skipped. The
@ -173,31 +184,43 @@ These are the allowed section keywords for the body of the file.
* *Special Bond Counts, Special Bonds* = special neighbor info * *Special Bond Counts, Special Bonds* = special neighbor info
* *Shake Flags, Shake Atoms, Shake Bond Types* = SHAKE info * *Shake Flags, Shake Atoms, Shake Bond Types* = SHAKE info
For the Types, Bonds, Angles, Dihedrals, and Impropers sections, each
atom/bond/angle/etc type can be specified either as a number (numeric
type) or as an alphanumeric type label. The latter is only allowed if
type labels have been defined, either by the :doc:`labelmap
<labelmap>` command or in data files read by the :doc:`read_data
<read_data>` command which have sections for Atom Type Labels, Bond
Type Labels, Angle Type Labels, etc. See the :doc:`Howto type labels
<Howto_type_labels>` doc page for the allowed syntax of type labels
and a general discussion of how type labels can be used.
When using type labels, any values specified as *offset* are ignored.
If a Bonds section is specified then the Special Bond Counts and If a Bonds section is specified then the Special Bond Counts and
Special Bonds sections can also be used, if desired, to explicitly Special Bonds sections can also be used, if desired, to explicitly
list the 1-2, 1-3, 1-4 neighbors within the molecule topology (see list the 1-2, 1-3, 1-4 neighbors within the molecule topology (see
details below). This is optional since if these sections are not details below). This is optional since if these sections are not
included, LAMMPS will auto-generate this information. Note that included, LAMMPS will auto-generate this information. Note that
LAMMPS uses this info to properly exclude or weight bonded pairwise LAMMPS uses this info to properly exclude or weight bonded pairwise
interactions between bonded atoms. See the interactions between bonded atoms. See the :doc:`special_bonds
:doc:`special_bonds <special_bonds>` command for more details. One <special_bonds>` command for more details. One reason to list the
reason to list the special bond info explicitly is for the special bond info explicitly is for the :doc:`thermalized Drude
:doc:`thermalized Drude oscillator model <Howto_drude>` which treats the oscillator model <Howto_drude>` which treats the bonds between nuclear
bonds between nuclear cores and Drude electrons in a different manner. cores and Drude electrons in a different manner.
.. note:: .. note::
Whether a section is required depends on how the molecule Whether a section is required depends on how the molecule template
template is used by other LAMMPS commands. For example, to add a is used by other LAMMPS commands. For example, to add a molecule
molecule via the :doc:`fix deposit <fix_deposit>` command, the Coords via the :doc:`fix deposit <fix_deposit>` command, the Coords and
and Types sections are required. To add a rigid body via the :doc:`fix pour <fix_pour>` command, the Bonds (Angles, etc) sections are not Types sections are required. To add a rigid body via the :doc:`fix
pour <fix_pour>` command, the Bonds (Angles, etc) sections are not
required, since the molecule will be treated as a rigid body. Some required, since the molecule will be treated as a rigid body. Some
sections are optional. For example, the :doc:`fix pour <fix_pour>` sections are optional. For example, the :doc:`fix pour <fix_pour>`
command can be used to add "molecules" which are clusters of command can be used to add "molecules" which are clusters of
finite-size granular particles. If the Diameters section is not finite-size granular particles. If the Diameters section is not
specified, each particle in the molecule will have a default diameter specified, each particle in the molecule will have a default
of 1.0. See the doc pages for LAMMPS commands that use molecule diameter of 1.0. See the doc pages for LAMMPS commands that use
templates for more details. molecule templates for more details.
Each section is listed below in alphabetic order. The format of each Each section is listed below in alphabetic order. The format of each
section is described including the number of lines it must contain and section is described including the number of lines it must contain and
@ -222,7 +245,7 @@ order.
* one line per atom * one line per atom
* line syntax: ID type * line syntax: ID type
* type = atom type of atom * type = atom type of atom (1-Natomtype, or type label)
---------- ----------
@ -289,7 +312,7 @@ included, the default mass for each atom is derived from its volume
* one line per bond * one line per bond
* line syntax: ID type atom1 atom2 * line syntax: ID type atom1 atom2
* type = bond type (1-Nbondtype) * type = bond type (1-Nbondtype, or type label)
* atom1,atom2 = IDs of atoms in bond * atom1,atom2 = IDs of atoms in bond
The IDs for the two atoms in each bond should be values The IDs for the two atoms in each bond should be values
@ -301,7 +324,7 @@ from 1 to Natoms, where Natoms = # of atoms in the molecule.
* one line per angle * one line per angle
* line syntax: ID type atom1 atom2 atom3 * line syntax: ID type atom1 atom2 atom3
* type = angle type (1-Nangletype) * type = angle type (1-Nangletype, or type label)
* atom1,atom2,atom3 = IDs of atoms in angle * atom1,atom2,atom3 = IDs of atoms in angle
The IDs for the three atoms in each angle should be values from 1 to The IDs for the three atoms in each angle should be values from 1 to
@ -315,7 +338,7 @@ which the angle is computed) is the atom2 in the list.
* one line per dihedral * one line per dihedral
* line syntax: ID type atom1 atom2 atom3 atom4 * line syntax: ID type atom1 atom2 atom3 atom4
* type = dihedral type (1-Ndihedraltype) * type = dihedral type (1-Ndihedraltype, or type label)
* atom1,atom2,atom3,atom4 = IDs of atoms in dihedral * atom1,atom2,atom3,atom4 = IDs of atoms in dihedral
The IDs for the four atoms in each dihedral should be values from 1 to The IDs for the four atoms in each dihedral should be values from 1 to
@ -328,7 +351,7 @@ ordered linearly within the dihedral.
* one line per improper * one line per improper
* line syntax: ID type atom1 atom2 atom3 atom4 * line syntax: ID type atom1 atom2 atom3 atom4
* type = improper type (1-Nimpropertype) * type = improper type (1-Nimpropertype, or type label)
* atom1,atom2,atom3,atom4 = IDs of atoms in improper * atom1,atom2,atom3,atom4 = IDs of atoms in improper
The IDs for the four atoms in each improper should be values from 1 to The IDs for the four atoms in each improper should be values from 1 to
@ -447,11 +470,15 @@ This section is only needed when molecules created using the template
will be constrained by SHAKE via the "fix shake" command. The other will be constrained by SHAKE via the "fix shake" command. The other
two Shake sections must also appear in the file. two Shake sections must also appear in the file.
The a,b,c values are bond types (from 1 to Nbondtypes) for all bonds The a,b,c values are bond types for all bonds in the SHAKE cluster that
in the SHAKE cluster that this atom belongs to. The number of values this atom belongs to. Bond types may be either numbers (from 1 to Nbondtypes)
that must appear is determined by the shake flag for the atom (see the or bond type labels as defined by the :doc:`labelmap <labelmap>` command
Shake Flags section above). All atoms in a particular cluster should or a "Bond Type Labels" section of a data file.
list their a,b,c values identically.
The number of values that must appear is determined by the shake flag
for the atom (see the Shake Flags section above). All atoms in a
particular cluster should list their a,b,c values identically.
If flag = 0, no a,b,c values are listed on the line, just the If flag = 0, no a,b,c values are listed on the line, just the
(ignored) ID. (ignored) ID.
@ -459,8 +486,9 @@ If flag = 0, no a,b,c values are listed on the line, just the
If flag = 1, a,b,c are listed, where a = bondtype of the bond between If flag = 1, a,b,c are listed, where a = bondtype of the bond between
the central atom and the first non-central atom (value b in the Shake the central atom and the first non-central atom (value b in the Shake
Atoms section), b = bondtype of the bond between the central atom and Atoms section), b = bondtype of the bond between the central atom and
the second non-central atom (value c in the Shake Atoms section), and c = the second non-central atom (value c in the Shake Atoms section), and c
the angle type (1 to Nangletypes) of the angle between the 3 atoms. = the angle type (1 to Nangletypes, or angle type label) of the angle
between the 3 atoms.
If flag = 2, only a is listed, where a = bondtype of the bond between If flag = 2, only a is listed, where a = bondtype of the bond between
the 2 atoms in the cluster. the 2 atoms in the cluster.
@ -473,9 +501,9 @@ and the second non-central atom (value c in the Shake Atoms section).
If flag = 4, a,b,c are listed, where a = bondtype of the bond between If flag = 4, a,b,c are listed, where a = bondtype of the bond between
the central atom and the first non-central atom (value b in the Shake the central atom and the first non-central atom (value b in the Shake
Atoms section), b = bondtype of the bond between the central atom and Atoms section), b = bondtype of the bond between the central atom and
the second non-central atom (value c in the Shake Atoms section), and c = the second non-central atom (value c in the Shake Atoms section), and c
bondtype of the bond between the central atom and the third non-central = bondtype of the bond between the central atom and the third
atom (value d in the Shake Atoms section). non-central atom (value d in the Shake Atoms section).
See the :doc:`fix shake <fix_shake>` page for a further description See the :doc:`fix shake <fix_shake>` page for a further description
of SHAKE clusters. of SHAKE clusters.

Some files were not shown because too many files have changed in this diff Show More