fixing merge conflicts

This commit is contained in:
jtclemm
2022-09-15 14:49:21 -06:00
610 changed files with 59696 additions and 6185 deletions

View File

@ -3,9 +3,11 @@ name: "Native Windows Compilation and Unit Tests"
on: on:
push: push:
branches: [ develop ] branches:
- develop
pull_request: pull_request:
branches: [ $default-branch ] branches:
- develop
workflow_dispatch: workflow_dispatch:

View File

@ -3,9 +3,11 @@ name: "Unittest for MacOS"
on: on:
push: push:
branches: [ develop ] branches:
- develop
pull_request: pull_request:
branches: [ $default-branch ] branches:
- develop
workflow_dispatch: workflow_dispatch:

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

@ -110,14 +110,16 @@ function(FetchPotentials pkgfolder potfolder)
math(EXPR plusone "${blank}+1") math(EXPR plusone "${blank}+1")
string(SUBSTRING ${line} 0 ${blank} pot) string(SUBSTRING ${line} 0 ${blank} pot)
string(SUBSTRING ${line} ${plusone} -1 sum) string(SUBSTRING ${line} ${plusone} -1 sum)
if(EXISTS ${LAMMPS_POTENTIALS_DIR}/${pot}) if(EXISTS "${LAMMPS_POTENTIALS_DIR}/${pot}")
file(MD5 "${LAMMPS_POTENTIALS_DIR}/${pot}" oldsum) file(MD5 "${LAMMPS_POTENTIALS_DIR}/${pot}" oldsum)
endif() endif()
if(NOT sum STREQUAL oldsum) if(NOT sum STREQUAL oldsum)
message(STATUS "Checking external potential ${pot} from ${LAMMPS_POTENTIALS_URL}") message(STATUS "Downloading external potential ${pot} from ${LAMMPS_POTENTIALS_URL}")
file(DOWNLOAD "${LAMMPS_POTENTIALS_URL}/${pot}.${sum}" "${CMAKE_BINARY_DIR}/${pot}" string(MD5 TMP_EXT "${CMAKE_BINARY_DIR}")
file(DOWNLOAD "${LAMMPS_POTENTIALS_URL}/${pot}.${sum}" "${CMAKE_BINARY_DIR}/${pot}.${TMP_EXT}"
EXPECTED_HASH MD5=${sum} SHOW_PROGRESS) EXPECTED_HASH MD5=${sum} SHOW_PROGRESS)
file(COPY "${CMAKE_BINARY_DIR}/${pot}" DESTINATION ${LAMMPS_POTENTIALS_DIR}) file(COPY "${CMAKE_BINARY_DIR}/${pot}.${TMP_EXT}" DESTINATION "${LAMMPS_POTENTIALS_DIR}")
file(RENAME "${LAMMPS_POTENTIALS_DIR}/${pot}.${TMP_EXT}" "${LAMMPS_POTENTIALS_DIR}/${pot}")
endif() endif()
endforeach() endforeach()
endif() endif()

View File

@ -8,8 +8,8 @@ option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an al
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.1.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 "f9505fccd4c79301a619f6452dad4ad9" 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

@ -1,7 +1,7 @@
.TH LAMMPS "1" "3 August 2022" "2022-8-3" .TH LAMMPS "1" "15 September 2022" "2022-9-15"
.SH NAME .SH NAME
.B LAMMPS .B LAMMPS
\- Molecular Dynamics Simulator. Version 3 August 2022 \- Molecular Dynamics Simulator. Version 15 September 2022
.SH SYNOPSIS .SH SYNOPSIS
.B lmp .B lmp

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

@ -15,7 +15,9 @@
General commands General commands
================ ================
An alphabetic list of general LAMMPS commands. An alphabetic list of general LAMMPS commands. Note that style
commands with many variants, can be more easily accessed via the small
table above.
.. table_from_list:: .. table_from_list::
:columns: 5 :columns: 5
@ -61,6 +63,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

@ -165,6 +165,7 @@ OPT.
* :doc:`orient/fcc <fix_orient>` * :doc:`orient/fcc <fix_orient>`
* :doc:`orient/eco <fix_orient_eco>` * :doc:`orient/eco <fix_orient_eco>`
* :doc:`pafi <fix_pafi>` * :doc:`pafi <fix_pafi>`
* :doc:`pair <fix_pair>`
* :doc:`phonon <fix_phonon>` * :doc:`phonon <fix_phonon>`
* :doc:`pimd <fix_pimd>` * :doc:`pimd <fix_pimd>`
* :doc:`planeforce <fix_planeforce>` * :doc:`planeforce <fix_planeforce>`

View File

@ -328,7 +328,7 @@ removed so this update is **required** to avoid compilation failure.
Split of fix STORE into fix STORE/GLOBAL and fix STORE/PERATOM Split of fix STORE into fix STORE/GLOBAL and fix STORE/PERATOM
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. versionchanged:: TBD .. versionchanged:: 15Sep2022
This change splits the GLOBAL and PERATOM modes of fix STORE into two This change splits the GLOBAL and PERATOM modes of fix STORE into two
separate fixes STORE/GLOBAL and STORE/PERATOM. There was very little separate fixes STORE/GLOBAL and STORE/PERATOM. There was very little
@ -387,7 +387,7 @@ This change is **required** or else the code will not compile.
Use Output::get_dump_by_id() instead of Output::find_dump() Use Output::get_dump_by_id() instead of Output::find_dump()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. versionchanged:: TBD .. versionchanged:: 15Sep2022
The accessor function to individual dump style instances has been changed The accessor function to individual dump style instances has been changed
from ``Output::find_dump()`` returning the index of the dump instance in from ``Output::find_dump()`` returning the index of the dump instance in

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:: 15Sep2022
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)
@ -652,7 +652,7 @@ short-range or long-range interactions.
* :doc:`pair_style lj/cut/dipole/cut <pair_dipole>` * :doc:`pair_style lj/cut/dipole/cut <pair_dipole>`
* :doc:`pair_style lj/cut/dipole/long <pair_dipole>` * :doc:`pair_style lj/cut/dipole/long <pair_dipole>`
* :doc:`pair_style lj/long/dipole/long <pair_dipole>` * :doc:`pair_style lj/long/dipole/long <pair_dipole>`
* :doc: `angle_style dipole <angle_dipole>` * :doc:`angle_style dipole <angle_dipole>`
* examples/dipole * examples/dipole
---------- ----------
@ -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
@ -1404,7 +1408,7 @@ This package has :ref:`specific installation instructions <machdyn>` on the :doc
* src/MACHDYN: filenames -> commands * src/MACHDYN: filenames -> commands
* src/MACHDYN/README * src/MACHDYN/README
* doc/PDF/MACHDYN_LAMMPS_userguide.pdf * `doc/PDF/MACHDYN_LAMMPS_userguide.pdf <PDF/MACHDYN_LAMMPS_userguide.pdf>`_
* examples/PACKAGES/machdyn * examples/PACKAGES/machdyn
* https://www.lammps.org/movies.html#smd * https://www.lammps.org/movies.html#smd
@ -2703,7 +2707,7 @@ Dynamics, Ernst Mach Institute, Germany).
* src/SPH: filenames -> commands * src/SPH: filenames -> commands
* src/SPH/README * src/SPH/README
* doc/PDF/SPH_LAMMPS_userguide.pdf * `doc/PDF/SPH_LAMMPS_userguide.pdf <PDF/SPH_LAMMPS_userguide.pdf>`_
* examples/PACKAGES/sph * examples/PACKAGES/sph
* https://www.lammps.org/movies.html#sph * https://www.lammps.org/movies.html#sph

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

@ -6,7 +6,7 @@ page. The accelerated styles take the same arguments and should
produce the same results, except for round-off and precision issues. produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, INTEL, KOKKOS, These accelerated styles are part of the GPU, INTEL, KOKKOS,
OPENMP and OPT packages, respectively. They are only enabled if OPENMP, and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` page for more info. LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` page for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script

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

@ -24,7 +24,7 @@ Examples
Description Description
""""""""""" """""""""""
.. versionadded:: TBD .. versionadded:: 15Sep2022
The *mesocnt* angle style uses the potential The *mesocnt* angle style uses the potential

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

@ -22,7 +22,7 @@ Examples
Description Description
""""""""""" """""""""""
.. versionadded:: TBD .. versionadded:: 15Sep2022
The *mesocnt* bond style is a wrapper for the :doc:`harmonic The *mesocnt* bond style is a wrapper for the :doc:`harmonic
<bond_harmonic>` style, and uses the potential <bond_harmonic>` style, and uses the potential

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

@ -93,7 +93,9 @@ Restrictions
Related commands Related commands
"""""""""""""""" """"""""""""""""
:doc:`compute pe <compute_pe>`, :doc:`compute bond <compute_bond>` :doc:`compute pe <compute_pe>`, :doc:`compute bond <compute_bond>`,
:doc:`fix pair <fix_pair>`
Default Default
""""""" """""""

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

@ -167,7 +167,7 @@ triangular particles and define the corner points of each triangle.
In addition, the various per-atom quantities listed above for specific In addition, the various per-atom quantities listed above for specific
packages are only accessible by this command. packages are only accessible by this command.
.. versionchanged:: TBD .. versionchanged:: 15Sep2022
The *espin* property was previously called *spin*. The *espin* property was previously called *spin*.
@ -198,8 +198,8 @@ Related commands
"""""""""""""""" """"""""""""""""
:doc:`dump custom <dump>`, :doc:`compute reduce <compute_reduce>`, :doc:`dump custom <dump>`, :doc:`compute reduce <compute_reduce>`,
:doc::doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/chunk :doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/chunk <fix_ave_chunk>`,
:doc:<fix_ave_chunk>`, `fix property/atom <fix_property_atom>` :doc:`fix property/atom <fix_property_atom>`
Default Default
""""""" """""""

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

@ -222,6 +222,26 @@ result. I.e. the last 2 columns of thermo output will be the same:
<pair_modify>` command, since those are contributions to the global <pair_modify>` command, since those are contributions to the global
system pressure. system pressure.
The compute stress/atom can be used in a number of ways. Here is an
example to compute a 1-d pressure profile in z-direction across the
complete simulation box. You will need to adjust the number of bins and the
selections for time averaging to your specific simulation. This assumes
that the dimensions of the simulation cell does not change.
.. code-block:: LAMMPS
# set number of bins
variable nbins index 20
variable fraction equal 1.0/v_nbins
# define bins as chunks
compute cchunk all chunk/atom bin/1d x lower ${fraction} units reduced
compute stress all stress/atom NULL
# apply conversion to pressure early since we have no variable style for processing chunks
variable press atom -(c_stress[1]+c_stress[2]+c_stress[3])/(3.0*vol*${fraction})
compute binpress all reduce/chunk cchunk sum v_press
fix avg all ave/time 10 40 400 c_binpress mode vector file ave_stress.txt
Output info Output info
""""""""""" """""""""""

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

@ -55,24 +55,24 @@ dump command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
dump ID group-ID style N file args dump ID group-ID style N file args
* ID = user-assigned name for the dump * ID = user-assigned name for the dump
* group-ID = ID of the group of atoms to be dumped * group-ID = ID of the group of atoms to be dumped
* style = *atom* or *atom/gz* or *atom/zstd* or *atom/mpiio* or *cfg* or *cfg/gz* or *cfg/zstd* or *cfg/mpiio* or *cfg/uef* or *custom* or *custom/gz* or *custom/zstd* or *custom/mpiio* or *dcd* or *h5md* or *image* or *local* or *local/gz* or *local/zstd* or *molfile* or *movie* or *netcdf* or *netcdf/mpiio* or *vtk* or *xtc* or *xyz* or *xyz/gz* or *xyz/zstd* or *xyz/mpiio* or *yaml* * style = *atom* or *atom/adios* or *atom/gz* or *atom/zstd* or *atom/mpiio* or *cfg* or *cfg/gz* or *cfg/zstd* or *cfg/mpiio* or *cfg/uef* or *custom* or *custom/gz* or *custom/zstd* or *custom/mpiio* or *custom/adios* or *dcd* or *h5md* or *image* or *local* or *local/gz* or *local/zstd* or *molfile* or *movie* or *netcdf* or *netcdf/mpiio* or *vtk* or *xtc* or *xyz* or *xyz/gz* or *xyz/zstd* or *xyz/mpiio* or *yaml*
* N = dump every this many timesteps * N = dump on timesteps which are multiples of N
* file = name of file to write dump info to * file = name of file to write dump info to
* args = list of arguments for a particular style * args = list of arguments for a particular style
.. parsed-literal:: .. parsed-literal::
*atom* args = none *atom* args = none
*atom/adios* args = none, discussed on :doc:`dump atom/adios <dump_adios>` page
*atom/gz* args = none *atom/gz* args = none
*atom/zstd* args = none *atom/zstd* args = none
*atom/mpiio* args = none *atom/mpiio* args = none
*atom/adios* args = none, discussed on :doc:`dump atom/adios <dump_adios>` page
*cfg* args = same as *custom* args, see below *cfg* args = same as *custom* args, see below
*cfg/gz* args = same as *custom* args, see below *cfg/gz* args = same as *custom* args, see below
*cfg/zstd* args = same as *custom* args, see below *cfg/zstd* args = same as *custom* args, see below
@ -176,14 +176,15 @@ Examples
Description Description
""""""""""" """""""""""
Dump a snapshot of atom quantities to one or more files every :math:`N` Dump a snapshot of atom quantities to one or more files once every
timesteps in one of several styles. The *image* and *movie* styles are :math:`N` timesteps in one of several styles. The *image* and *movie*
the exception: the *image* style renders a JPG, PNG, or PPM image file styles are the exception: the *image* style renders a JPG, PNG, or PPM
of the atom configuration every :math:`N` timesteps while the *movie* style image file of the atom configuration every :math:`N` timesteps while
combines and compresses them into a movie file; both are discussed in the *movie* style combines and compresses them into a movie file; both
detail on the :doc:`dump image <dump_image>` page. The timesteps on are discussed in detail on the :doc:`dump image <dump_image>` page.
which dump output is written can also be controlled by a variable. The timesteps on which dump output is written can also be controlled
See the :doc:`dump_modify every <dump_modify>` command. by a variable. See the :doc:`dump_modify every <dump_modify>`
command.
Only information for atoms in the specified group is dumped. The Only information for atoms in the specified group is dumped. The
:doc:`dump_modify thresh and region and refresh <dump_modify>` commands :doc:`dump_modify thresh and region and refresh <dump_modify>` commands
@ -225,28 +226,27 @@ 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::
@ -287,13 +287,13 @@ where xlo,xhi are the maximum extents of the simulation box in the
:math:`x`-dimension, and similarly for :math:`y` and :math:`z`. The :math:`x`-dimension, and similarly for :math:`y` and :math:`z`. The
"xx yy zz" terms are six characters that encode the style of boundary for each "xx yy zz" terms are six characters that encode the style of boundary for each
of the six simulation box boundaries (xlo,xhi; ylo,yhi; and zlo,zhi). Each of of the six simulation box boundaries (xlo,xhi; ylo,yhi; and zlo,zhi). Each of
the six characters is either p (periodic), f (fixed), s (shrink wrap), the six characters is one of *p* (periodic), *f* (fixed), *s* (shrink wrap),
or m (shrink wrapped with a minimum value). See the or *m* (shrink wrapped with a minimum value). See the
:doc:`boundary <boundary>` command for details. :doc:`boundary <boundary>` command for details.
For triclinic simulation boxes (non-orthogonal), an orthogonal For triclinic simulation boxes (non-orthogonal), an orthogonal
bounding box which encloses the triclinic simulation box is output, bounding box which encloses the triclinic simulation box is output,
along with the 3 tilt factors (*xy*, *xz*, *yz*) of the triclinic box, along with the three tilt factors (*xy*, *xz*, *yz*) of the triclinic box,
formatted as follows: formatted as follows:
.. parsed-literal:: .. parsed-literal::
@ -332,8 +332,8 @@ added for each atom via dump_modify.
Style *custom* allows you to specify a list of atom attributes to be Style *custom* allows you to specify a list of atom attributes to be
written to the dump file for each atom. Possible attributes are written to the dump file for each atom. Possible attributes are
listed above and will appear in the order specified. You cannot listed above and will appear in the order specified. You cannot
specify a quantity that is not defined for a particular simulation - specify a quantity that is not defined for a particular simulation---such as
such as *q* for atom style *bond*, since that atom style does not *q* for atom style *bond*, since that atom style does not
assign charges. Dumps occur at the very end of a timestep, so atom assign charges. Dumps occur at the very end of a timestep, so atom
attributes will include effects due to fixes that are applied during attributes will include effects due to fixes that are applied during
the timestep. An explanation of the possible dump custom attributes the timestep. An explanation of the possible dump custom attributes
@ -433,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`,
@ -485,21 +485,29 @@ popular molecular viewing program.
---------- ----------
Dumps are performed on timesteps that are a multiple of :math:`N` (including Dumps are performed on timesteps that are a multiple of :math:`N`
timestep 0) and on the last timestep of a minimization if the (including timestep 0) and on the last timestep of a minimization if
minimization converges. Note that this means a dump will not be the minimization converges. Note that this means a dump will not be
performed on the initial timestep after the dump command is invoked, performed on the initial timestep after the dump command is invoked,
if the current timestep is not a multiple of :math:`N`. This behavior can be if the current timestep is not a multiple of :math:`N`. This behavior
changed via the :doc:`dump_modify first <dump_modify>` command, which can be changed via the :doc:`dump_modify first <dump_modify>` command,
can also be useful if the dump command is invoked after a minimization which can also be useful if the dump command is invoked after a
ended on an arbitrary timestep. :math:`N` can be changed between runs by minimization ended on an arbitrary timestep.
using the :doc:`dump_modify every <dump_modify>` command (not allowed
for *dcd* style). The :doc:`dump_modify every <dump_modify>` command The value of :math:`N` can be changed between runs by using the
also allows a variable to be used to determine the sequence of :doc:`dump_modify every <dump_modify>` command (not allowed for *dcd*
timesteps on which dump files are written. In this mode a dump on the style). The :doc:`dump_modify every <dump_modify>` command also
first timestep of a run will also not be written unless the allows a variable to be used to determine the sequence of timesteps on
which dump files are written. In this mode a dump on the first
timestep of a run will also not be written unless the
:doc:`dump_modify first <dump_modify>` command is used. :doc:`dump_modify first <dump_modify>` command is used.
If you instead want to dump snapshots based on simulation time (in
time units of the :doc:`units` command), the :doc:`dump_modify
every/time <dump_modify>` command can be used. This can be useful
when the timestep size varies during a simulation run, e.g. by use of
the :doc:`fix dt/reset <fix_dt_reset>` command.
The specified filename determines how the dump file(s) is written. The specified filename determines how the dump file(s) is written.
The default is to write one large text file, which is opened when the The default is to write one large text file, which is opened when the
dump command is invoked and closed when an :doc:`undump <undump>` dump command is invoked and closed when an :doc:`undump <undump>`
@ -544,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::
@ -561,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
@ -670,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*, *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
@ -712,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
@ -727,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*, *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
@ -745,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 to the discussion above for how :math:`i` can be specified with a wildcard
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
@ -785,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

@ -10,10 +10,9 @@ dump custom/adios command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
dump ID group-ID atom/adios N file.bp dump ID group-ID atom/adios N file.bp
dump ID group-ID custom/adios N file.bp args dump ID group-ID custom/adios N file.bp args
* ID = user-assigned name for the dump * ID = user-assigned name for the dump
@ -21,7 +20,7 @@ Syntax
* adios = style of dump command (other styles *atom* or *cfg* or *dcd* or *xtc* or *xyz* or *local* or *custom* are discussed on the :doc:`dump <dump>` doc page) * adios = style of dump command (other styles *atom* or *cfg* or *dcd* or *xtc* or *xyz* or *local* or *custom* are discussed on the :doc:`dump <dump>` doc page)
* N = dump every this many timesteps * N = dump every this many timesteps
* file.bp = name of file/stream to write to * file.bp = name of file/stream to write to
* args = same options as in :doc:`\ *dump custom*\ <dump>` command * args = same options as in :doc:`dump custom <dump>` command
Examples Examples
"""""""" """"""""
@ -35,10 +34,10 @@ Examples
Description Description
""""""""""" """""""""""
Dump a snapshot of atom coordinates every N timesteps in the `ADIOS Dump a snapshot of atom coordinates every :math:`N` timesteps in the `ADIOS
<adios_>`_ based "BP" file format, or using different I/O solutions in <adios_>`_-based "BP" file format, or using different I/O solutions in
ADIOS, to a stream that can be read on-line by another program. ADIOS, to a stream that can be read on-line by another program.
ADIOS-BP files are binary, portable and self-describing. ADIOS-BP files are binary, portable, and self-describing.
.. _adios: https://github.com/ornladios/ADIOS2 .. _adios: https://github.com/ornladios/ADIOS2
@ -67,7 +66,7 @@ create a new file at each individual dump.
Restrictions Restrictions
"""""""""""" """"""""""""
The number of atoms per snapshot CAN change with the adios style. The number of atoms per snapshot **can** change with the adios style.
When using the ADIOS tool 'bpls' to list the content of a .bp file, When using the ADIOS tool 'bpls' to list the content of a .bp file,
bpls will print *__* for the size of the output table indicating that bpls will print *__* for the size of the output table indicating that
its size is changing every step. its size is changing every step.

View File

@ -6,7 +6,7 @@ dump cfg/uef command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
dump ID group-ID cfg/uef N file mass type xs ys zs args dump ID group-ID cfg/uef N file mass type xs ys zs args
@ -32,9 +32,8 @@ Description
This command is used to dump atomic coordinates in the This command is used to dump atomic coordinates in the
reference frame of the applied flow field when reference frame of the applied flow field when
:doc:`fix nvt/uef <fix_nh_uef>` or :doc:`fix nvt/uef <fix_nh_uef>` or :doc:`fix npt/uef <fix_nh_uef>` is used.
:doc:`fix npt/uef <fix_nh_uef>` or is used. Only the atomic Only the atomic coordinates and frame-invariant scalar quantities
coordinates and frame-invariant scalar quantities
will be in the flow frame. If velocities are selected will be in the flow frame. If velocities are selected
as output, for example, they will not be in the same as output, for example, they will not be in the same
reference frame as the atomic positions. reference frame as the atomic positions.
@ -43,7 +42,8 @@ Restrictions
"""""""""""" """"""""""""
This fix is part of the UEF package. It is only enabled if LAMMPS This fix is part of the UEF package. It is only enabled if LAMMPS
was built with that package. See the :doc:`Build package <Build_package>` page for more info. was built with that package. See the :doc:`Build package <Build_package>`
page for more info.
This command can only be used when :doc:`fix nvt/uef <fix_nh_uef>` This command can only be used when :doc:`fix nvt/uef <fix_nh_uef>`
or :doc:`fix npt/uef <fix_nh_uef>` is active. or :doc:`fix npt/uef <fix_nh_uef>` is active.

View File

@ -12,7 +12,7 @@ dump movie command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
dump ID group-ID style N file color diameter keyword value ... dump ID group-ID style N file color diameter keyword value ...
@ -28,7 +28,7 @@ Syntax
.. parsed-literal:: .. parsed-literal::
*atom* = yes/no = do or do not draw atoms *atom* = *yes* or *no* = do or do not draw atoms
*adiam* size = numeric value for atom diameter (distance units) *adiam* size = numeric value for atom diameter (distance units)
*bond* values = color width = color and width of bonds *bond* values = color width = color and width of bonds
color = *atom* or *type* or *none* color = *atom* or *type* or *none*
@ -68,21 +68,20 @@ Syntax
*box* values = yes/no diam = draw outline of simulation box *box* values = yes/no diam = draw outline of simulation box
yes/no = do or do not draw simulation box lines yes/no = do or do not draw simulation box lines
diam = diameter of box lines as fraction of shortest box length diam = diameter of box lines as fraction of shortest box length
*axes* values = yes/no length diam = draw xyz axes *axes* values = axes length diam = draw xyz axes
yes/no = do or do not draw xyz axes lines next to simulation box axes = *yes* or *no = do or do not draw xyz axes lines next to simulation box
length = length of axes lines as fraction of respective box lengths length = length of axes lines as fraction of respective box lengths
diam = diameter of axes lines as fraction of shortest box length diam = diameter of axes lines as fraction of shortest box length
*subbox* values = yes/no diam = draw outline of processor sub-domains *subbox* values = lines diam = draw outline of processor sub-domains
yes/no = do or do not draw sub-domain lines lines = *yes* or *no* = do or do not draw sub-domain lines
diam = diameter of sub-domain lines as fraction of shortest box length diam = diameter of sub-domain lines as fraction of shortest box length
*shiny* value = sfactor = shinyness of spheres and cylinders *shiny* value = sfactor = shinyness of spheres and cylinders
sfactor = shinyness of spheres and cylinders from 0.0 to 1.0 sfactor = shinyness of spheres and cylinders from 0.0 to 1.0
*ssao* value = yes/no seed dfactor = SSAO depth shading *ssao* value = shading seed dfactor = SSAO depth shading
yes/no = turn depth shading on/off shading = *yes* or *no* = turn depth shading on/off
seed = random # seed (positive integer) seed = random # seed (positive integer)
dfactor = strength of shading from 0.0 to 1.0 dfactor = strength of shading from 0.0 to 1.0
.. _dump_modify_image: .. _dump_modify_image:
dump_modify options for dump image/movie dump_modify options for dump image/movie
@ -162,7 +161,7 @@ Examples
Description Description
""""""""""" """""""""""
Dump a high-quality rendered image of the atom configuration every N Dump a high-quality rendered image of the atom configuration every :math:`N`
timesteps and save the images either as a sequence of JPEG or PNG or timesteps and save the images either as a sequence of JPEG or PNG or
PPM files, or as a single movie file. The options for this command as PPM files, or as a single movie file. The options for this command as
well as the :doc:`dump_modify <dump_modify>` command control what is well as the :doc:`dump_modify <dump_modify>` command control what is
@ -179,7 +178,7 @@ has been run, using the :doc:`rerun <rerun>` command to read snapshots
from an existing dump file, and using these dump commands in the rerun from an existing dump file, and using these dump commands in the rerun
script to generate the images/movie. script to generate the images/movie.
Here are two sample images, rendered as 1024x1024 JPEG files. Here are two sample images, rendered as :math:`1024\times 1024` JPEG files.
.. |dump1| image:: img/dump1.jpg .. |dump1| image:: img/dump1.jpg
:width: 48% :width: 48%
@ -232,22 +231,22 @@ details.
---------- ----------
Dumps are performed on timesteps that are a multiple of N (including Dumps are performed on timesteps that are a multiple of :math:`N` (including
timestep 0) and on the last timestep of a minimization if the timestep 0) and on the last timestep of a minimization if the
minimization converges. Note that this means a dump will not be minimization converges. Note that this means a dump will not be
performed on the initial timestep after the dump command is invoked, performed on the initial timestep after the dump command is invoked,
if the current timestep is not a multiple of N. This behavior can be if the current timestep is not a multiple of :math:`N`. This behavior can be
changed via the :doc:`dump_modify first <dump_modify>` command, which changed via the :doc:`dump_modify first <dump_modify>` command, which
can be useful if the dump command is invoked after a minimization can be useful if the dump command is invoked after a minimization
ended on an arbitrary timestep. N can be changed between runs by ended on an arbitrary timestep. :math:`N` can be changed between runs by
using the :doc:`dump_modify every <dump_modify>` command. using the :doc:`dump_modify every <dump_modify>` command.
Dump *image* filenames must contain a wildcard character "\*", so that Dump *image* filenames must contain a wildcard character "\*" so that
one image file per snapshot is written. The "\*" character is replaced one image file per snapshot is written. The "\*" character is replaced
with the timestep value. For example, tmp.dump.\*.jpg becomes with the timestep value. For example, tmp.dump.\*.jpg becomes
tmp.dump.0.jpg, tmp.dump.10000.jpg, tmp.dump.20000.jpg, etc. Note tmp.dump.0.jpg, tmp.dump.10000.jpg, tmp.dump.20000.jpg, etc. Note
that the :doc:`dump_modify pad <dump_modify>` command can be used to that the :doc:`dump_modify pad <dump_modify>` command can be used to
insure all timestep numbers are the same length (e.g. 00010), which insure all timestep numbers are the same length (e.g., 00010), which
can make it easier to convert a series of images into a movie in the can make it easier to convert a series of images into a movie in the
correct ordering. correct ordering.
@ -262,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.
@ -277,7 +276,7 @@ to colors is as follows:
* type 5 = aqua * type 5 = aqua
* type 6 = cyan * type 6 = cyan
and repeats itself for types > 6. This mapping can be changed by the and repeats itself for types :math:`> 6`. This mapping can be changed by the
"dump_modify acolor" command, as described below. "dump_modify acolor" command, as described below.
If *type* is specified for the *diameter* setting then the diameter of If *type* is specified for the *diameter* setting then the diameter of
@ -773,10 +772,11 @@ the number 5.0 would be used. But for a fractional map, the number
The *delta* setting must be specified for all styles, but is only used The *delta* setting must be specified for all styles, but is only used
for the sequential style; otherwise the value is ignored. It for the sequential style; otherwise the value is ignored. It
specifies the bin size to use within the range for assigning specifies the bin size to use within the range for assigning
consecutive colors to. For example, if the range is from -10.0 to consecutive colors to. For example, if the range is from :math:`-10.0` to
10.0 and a *delta* of 1.0 is used, then 20 colors will be assigned to :math:`10.0` and a *delta* of :math:`1.0` is used, then 20 colors will be
the range. The first will be from -10.0 <= color1 < -9.0, then second assigned to the range. The first will be from
from -9.0 <= color2 < -8.0, etc. :math:`-10.0 \le \text{color1} < -9.0`, then second from
:math:`-9.0 \le color2 < -8.0`, etc.
The *N* setting is how many entries follow. The format of the entries The *N* setting is how many entries follow. The format of the entries
depends on whether the color map style is continuous, discrete or depends on whether the color map style is continuous, discrete or
@ -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 X of its atom attribute. X will fall atom, given the value :math:`X` of its atom attribute. :math:`X` will
between 2 of the entry values. The color of the atom is linearly fall between 2 of the entry values. The color of the atom is 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 X = -5.0 and the 2 with those entries. For example, if :math:`X = -5.0` and the two
surrounding entries are "red" at -10.0 and "blue" at 0.0, then the surrounding entries are "red" at :math:`-10.0` and "blue" at
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,
@ -864,20 +863,20 @@ The *bcolor* keyword can be used with the dump image command, with its
*bond* keyword, when its color setting is *type*, to set the color *bond* keyword, when its color setting is *type*, to set the color
that bonds of each type will be drawn in the image. that bonds of each type will be drawn in the image.
The specified *type* should be an integer from 1 to Nbondtypes = the The specified *type* should be an integer from 1 to :math:`N`, where :math:`N`
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 "n\*" or "m\*n". If N = types. This takes the form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N`
the number of bond types, then an asterisk with no numeric values is the number of bond types, then an asterisk with no numerical values
means all types from 1 to 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 n to N 1 to n (inclusive). A trailing asterisk means all types from m to :math:`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).
The specified *color* can be a single color which is any of the 140 The specified *color* can be a single color which is any of the 140
pre-defined colors (see below) or a color name defined by the pre-defined colors (see below) or a color name defined by the
dump_modify color option. Or it can be two or more colors separated dump_modify color option. Or it can be two or more colors separated
by a "/" character, e.g. red/green/blue. In the former case, that by a "/" character (e.g., red/green/blue). In the former case, that
color is assigned to all the specified bond types. In the latter color is assigned to all the specified bond types. In the latter
case, the list of colors are assigned in a round-robin fashion to each case, the list of colors are assigned in a round-robin fashion to each
of the specified bond types. of the specified bond types.
@ -885,13 +884,13 @@ of the specified bond types.
---------- ----------
The *bdiam* keyword can be used with the dump image command, with its The *bdiam* keyword can be used with the dump image command, with its
*bond* keyword, when its diam setting is *type*, to set the diameter *bond* keyword, when its *diam* setting is *type*, to set the diameter
that bonds of each type will be drawn in the image. The specified that bonds of each type will be drawn in the image. The specified
*type* should be an integer from 1 to Nbondtypes. As with the *type* should be an integer from 1 to Nbondtypes. As with the
*bcolor* keyword, a wildcard asterisk can be used as part of the *bcolor* keyword, a wildcard asterisk can be used as part of the
*type* argument to specify a range of bond types. The specified *type* argument to specify a range of bond types. The specified
*diam* is the size in whatever distance :doc:`units <units>` you are *diam* is the size in whatever distance :doc:`units <units>` you are
using, e.g. Angstroms. using (e.g., Angstroms).
---------- ----------
@ -922,7 +921,7 @@ dump_modify color option.
---------- ----------
The *color* keyword allows definition of a new color name, in addition The *color* keyword allows definition of a new color name, in addition
to the 140-predefined colors (see below), and associates 3 to the 140-predefined colors (see below), and associates three
red/green/blue RGB values with that color name. The color name can red/green/blue RGB values with that color name. The color name can
then be used with any other dump_modify keyword that takes a color then be used with any other dump_modify keyword that takes a color
name as a value. The RGB values should each be floating point values name as a value. The RGB values should each be floating point values
@ -959,15 +958,15 @@ PNG library.
To write *movie* dumps, you must use the -DLAMMPS_FFMPEG switch when To write *movie* dumps, you must use the -DLAMMPS_FFMPEG switch when
building LAMMPS and have the FFmpeg executable available on the building LAMMPS and have the FFmpeg executable available on the
machine where LAMMPS is being run. Typically it's name is lowercase, machine where LAMMPS is being run. Typically its name is lowercase
i.e. ffmpeg. (i.e., "ffmpeg").
See the :doc:`Build settings <Build_settings>` page for details. See the :doc:`Build settings <Build_settings>` page for details.
Note that since FFmpeg is run as an external program via a pipe, Note that since FFmpeg is run as an external program via a pipe,
LAMMPS has limited control over its execution and no knowledge about LAMMPS has limited control over its execution and no knowledge about
errors and warnings printed by it. Those warnings and error messages errors and warnings printed by it. Those warnings and error messages
will be printed to the screen only. Due to the way image data is will be printed to the screen only. Due to the way image data are
communicated to FFmpeg, it will often print the message communicated to FFmpeg, it will often print the message
.. parsed-literal:: .. parsed-literal::
@ -976,7 +975,7 @@ communicated to FFmpeg, it will often print the message
which can be safely ignored. Other warnings which can be safely ignored. Other warnings
and errors have to be addressed according to the FFmpeg documentation. and errors have to be addressed according to the FFmpeg documentation.
One known issue is that certain movie file formats (e.g. MPEG level 1 One known issue is that certain movie file formats (e.g., MPEG level 1
and 2 format streams) have video bandwidth limits that can be crossed and 2 format streams) have video bandwidth limits that can be crossed
when rendering too large of image sizes. Typical warnings look like when rendering too large of image sizes. Typical warnings look like
this: this:
@ -987,10 +986,9 @@ this:
[mpeg @ 0x98b5e0] buffer underflow st=0 bufi=281407 size=285018 [mpeg @ 0x98b5e0] buffer underflow st=0 bufi=281407 size=285018
[mpeg @ 0x98b5e0] buffer underflow st=0 bufi=283448 size=285018 [mpeg @ 0x98b5e0] buffer underflow st=0 bufi=283448 size=285018
In this case it is recommended to either reduce the size of the image In this case it is recommended either to reduce the size of the image
or encode in a different format that is also supported by your copy of or to encode in a different format that is also supported by your copy of
FFmpeg, and which does not have this limitation (e.g. .avi, .mkv, FFmpeg and which does not have this limitation (e.g., .avi, .mkv, mp4).
mp4).
Related commands Related commands
"""""""""""""""" """"""""""""""""

View File

@ -17,7 +17,7 @@ Syntax
* one or more keyword/value pairs may be appended * one or more keyword/value pairs may be appended
* these keywords apply to various dump styles * these keywords apply to various dump styles
* keyword = *append* or *at* or *balance* or *buffer* or *colname* or *delay* or *element* or *every* or *every/time* or *fileper* or *first* or *flush* or *format* or *header* or *image* or *label* or *maxfiles* or *nfile* or *pad* or *pbc* or *precision* or *region* or *refresh* or *scale* or *sfactor* or *sort* or *tfactor* or *thermo* or *thresh* or *time* or *units* or *unwrap* * keyword = *append* or *at* or *balance* or *buffer* or *colname* or *delay* or *element* or *every* or *every/time* or *fileper* or *first* or *flush* or *format* or *header* or *image* or *label* or *maxfiles* or *nfile* or *pad* or *pbc* or *precision* or *region* or *refresh* or *scale* or *sfactor* or *skip* or *sort* or *tfactor* or *thermo* or *thresh* or *time* or *units* or *unwrap*
.. parsed-literal:: .. parsed-literal::
@ -35,10 +35,10 @@ Syntax
*element* args = E1 E2 ... EN, where N = # of atom types *element* args = E1 E2 ... EN, where N = # of atom types
E1,...,EN = element name (e.g., C or Fe or Ga) E1,...,EN = element name (e.g., C or Fe or Ga)
*every* arg = N *every* arg = N
N = dump every this many timesteps N = dump on timesteps which are a multiple of N
N can be a variable (see below) N can be a variable (see below)
*every/time* arg = Delta *every/time* arg = Delta
Delta = dump every this interval in simulation time (time units) Delta = dump once every Delta interval of simulation time (time units)
Delta can be a variable (see below) Delta can be a variable (see below)
*fileper* arg = Np *fileper* arg = Np
Np = write one file for every this many processors Np = write one file for every this many processors
@ -65,6 +65,8 @@ Syntax
*refresh* arg = c_ID = compute ID that supports a refresh operation *refresh* arg = c_ID = compute ID that supports a refresh operation
*scale* arg = *yes* or *no* *scale* arg = *yes* or *no*
*sfactor* arg = coordinate scaling factor (> 0.0) *sfactor* arg = coordinate scaling factor (> 0.0)
*skip* arg = v_name
v_name = variable with name which evaluates to non-zero (skip) or 0
*sort* arg = *off* or *id* or N or -N *sort* arg = *off* or *id* or N or -N
off = no sorting of per-atom lines within a snapshot off = no sorting of per-atom lines within a snapshot
id = sort per-atom lines by atom ID id = sort per-atom lines by atom ID
@ -176,6 +178,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
@ -207,13 +234,10 @@ will be accepted.
---------- ----------
The *every* keyword can be used with any dump style except the *dcd* The *every* keyword can be used with any dump style except the *dcd*
and *xtc* styles. It does two things. It specifies that the interval and *xtc* styles. It specifies that the output of dump snapshots will
between dump snapshots will be set in timesteps, which is the default now be performed on timesteps which are a multiple of a new :math:`N`
if the *every* or *every/time* keywords are not used. See the value, This overrides the dump frequency originally specified by the
*every/time* keyword for how to specify the interval in simulation :doc:`dump <dump>` command.
time, i.e. in time units of the :doc:`units <units>` command. The
*every* keyword also sets the interval value, which overrides the dump
frequency originally specified by the :doc:`dump <dump>` command.
The *every* keyword can be specified in one of two ways. It can be a The *every* keyword can be specified in one of two ways. It can be a
numeric value in which case it must be > 0. Or it can be an numeric value in which case it must be > 0. Or it can be an
@ -273,6 +297,17 @@ in file tmp.times:
---------- ----------
The *every/time* keyword can be used with any dump style except the
*dcd* and *xtc* styles. It changes the frequency of dump snapshots
from being based on the current timestep to being determined by
elapsed simulation time, i.e. in time units of the :doc:`units
<units>` command, and specifies *Delta* for the interval between
snapshots. This can be useful when the timestep size varies during a
simulation run, e.g. by use of the :doc:`fix dt/reset <fix_dt_reset>`
command. The default is to perform output on timesteps which a
multiples of specified timestep value :math:`N`; see the *every*
keyword.
The *every/time* keyword can be used with any dump style except the The *every/time* keyword can be used with any dump style except the
*dcd* and *xtc* styles. It does two things. It specifies that the *dcd* and *xtc* styles. It does two things. It specifies that the
interval between dump snapshots will be set in simulation time interval between dump snapshots will be set in simulation time
@ -357,7 +392,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
@ -365,7 +400,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.
@ -380,6 +415,7 @@ performed with dump style *xtc*\ .
---------- ----------
<<<<<<< HEAD
.. versionadded:: 4May2022 .. versionadded:: 4May2022
The *colname* keyword can be used to change the default header keyword The *colname* keyword can be used to change the default header keyword
@ -404,6 +440,8 @@ to their default names.
---------- ----------
=======
>>>>>>> develop
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*
@ -490,6 +528,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.
---------- ----------
@ -663,6 +703,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.
---------- ----------
@ -681,14 +723,33 @@ most effective when the typical magnitude of position data is between
---------- ----------
.. versionadded:: 15Sep2022
The *skip* keyword can be used with all dump styles. It allows a dump
snapshot to be skipped (not written to the dump file), if a condition
is met. The condition is computed by an :doc:`equal-style variable
<variable>`, which should be specified as v_name, where name is the
variable name. If the variable evaluation returns a non-zero value,
then the dump snapshot is skipped. If it returns zero, the dump
proceeds as usual. Note that :doc:`equal-style variable <variable>`
can contain Boolean operators which effectively evaluate as a true
(non-zero) or false (zero) result.
The *skip* keyword can be useful for debugging purposes, e.g. to dump
only on a particular timestep. Or to limit output to conditions of
interest, e.g. only when the force on some atom exceeds a threshold
value.
----------
The *sort* keyword determines whether lines of per-atom output in a The *sort* keyword determines whether lines of per-atom output in a
snapshot are sorted or not. A sort value of *off* means they will snapshot are sorted or not. A sort value of *off* means they will
typically be written in indeterminate order, either in serial or typically be written in indeterminate order, either in serial or
parallel. This is the case even in serial if the parallel. This is the case even in serial if the :doc:`atom_modify sort
:doc:`atom_modify sort <atom_modify>` option is turned on, which it is by <atom_modify>` option is turned on, which it is by default, to improve
default, to improve performance. A sort value of *id* means sort the output by performance. A sort value of *id* means sort the output by atom ID. A
atom ID. A sort value of :math:`N` or :math:`-N` means sort the output by the sort value of :math:`N` or :math:`-N` means sort the output by the value
value in the :math:`N`\ th column of per-atom info in either ascending or in the :math:`N`\ th column of per-atom info in either ascending or
descending order. descending order.
The dump *local* style cannot be sorted by atom ID, since there are The dump *local* style cannot be sorted by atom ID, since there are
@ -732,8 +793,8 @@ attributes that can be tested for are the same as those that can be
specified in the :doc:`dump custom <dump>` command, with the exception specified in the :doc:`dump custom <dump>` command, with the exception
of the *element* attribute, since it is not a numeric value. Note of the *element* attribute, since it is not a numeric value. Note
that a different attributes can be used than those output by the that a different attributes can be used than those output by the
:doc:`dump custom <dump>` command. For example, you can output the coordinates :doc:`dump custom <dump>` command. For example, you can output the
and stress of atoms whose energy is above some threshold. coordinates and stress of atoms whose energy is above some threshold.
If an atom-style variable is used as the attribute, then it can If an atom-style variable is used as the attribute, then it can
produce continuous numeric values or effective Boolean 0/1 values, produce continuous numeric values or effective Boolean 0/1 values,

View File

@ -6,13 +6,13 @@ dump vtk command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
dump ID group-ID vtk N file args dump ID group-ID vtk N file args
* ID = user-assigned name for the dump * ID = user-assigned name for the dump
* group-ID = ID of the group of atoms to be dumped * group-ID = ID of the group of atoms to be dumped
* vtk = style of dump command (other styles *atom* or *cfg* or *dcd* or *xtc* or *xyz* or *local* or *custom* are discussed on the :doc:`dump <dump>` doc page) * vtk = style of dump command (other styles such as *atom* or *cfg* or *dcd* or *xtc* or *xyz* or *local* or *custom* are discussed on the :doc:`dump <dump>` doc page)
* N = dump every this many timesteps * N = dump every this many timesteps
* file = name of file to write dump info to * file = name of file to write dump info to
* args = same as arguments for :doc:`dump_style custom <dump>` * args = same as arguments for :doc:`dump_style custom <dump>`
@ -28,17 +28,18 @@ Examples
Description Description
""""""""""" """""""""""
Dump a snapshot of atom quantities to one or more files every N Dump a snapshot of atom quantities to one or more files every :math:`N`
timesteps in a format readable by the `VTK visualization toolkit <http://www.vtk.org>`_ or other visualization tools that use it, timesteps in a format readable by the `VTK visualization toolkit <http://www.vtk.org>`_ or other visualization tools that use it,
e.g. `ParaView <http://www.paraview.org>`_. The timesteps on which dump such as `ParaView <http://www.paraview.org>`_. The time steps on which dump
output is written can also be controlled by a variable; see the output is written can also be controlled by a variable; see the
:doc:`dump_modify every <dump_modify>` command for details. :doc:`dump_modify every <dump_modify>` command for details.
This dump style is similar to :doc:`dump_style custom <dump>` but uses This dump style is similar to :doc:`dump_style custom <dump>` but uses
the VTK library to write data to VTK simple legacy or XML format the VTK library to write data to VTK simple legacy or XML format,
depending on the filename extension specified for the dump file. This depending on the filename extension specified for the dump file. This
can be either *\*.vtk* for the legacy format or *\*.vtp* and *\*.vtu*, can be either *\*.vtk* for the legacy format or *\*.vtp* and *\*.vtu*,
respectively, for XML format; see the `VTK homepage <http://www.vtk.org/VTK/img/file-formats.pdf>`_ for a detailed respectively, for XML format; see the
`VTK homepage <http://www.vtk.org/VTK/img/file-formats.pdf>`_ for a detailed
description of these formats. Since this naming convention conflicts description of these formats. Since this naming convention conflicts
with the way binary output is usually specified (see below), the with the way binary output is usually specified (see below), the
:doc:`dump_modify binary <dump_modify>` command allows setting of a :doc:`dump_modify binary <dump_modify>` command allows setting of a

View File

@ -312,6 +312,7 @@ accelerated styles exist.
* :doc:`orient/fcc <fix_orient>` - add grain boundary migration force for FCC * :doc:`orient/fcc <fix_orient>` - add grain boundary migration force for FCC
* :doc:`orient/eco <fix_orient_eco>` - add generalized grain boundary migration force * :doc:`orient/eco <fix_orient_eco>` - add generalized grain boundary migration force
* :doc:`pafi <fix_pafi>` - constrained force averages on hyper-planes to compute free energies (PAFI) * :doc:`pafi <fix_pafi>` - constrained force averages on hyper-planes to compute free energies (PAFI)
* :doc:`pair <fix_pair>` - access per-atom info from pair styles
* :doc:`phonon <fix_phonon>` - calculate dynamical matrix from MD simulations * :doc:`phonon <fix_phonon>` - calculate dynamical matrix from MD simulations
* :doc:`pimd <fix_pimd>` - Feynman path integral molecular dynamics * :doc:`pimd <fix_pimd>` - Feynman path integral molecular dynamics
* :doc:`planeforce <fix_planeforce>` - constrain atoms to move in a plane * :doc:`planeforce <fix_planeforce>` - constrain atoms to move in a plane

View File

@ -6,8 +6,7 @@ fix accelerate/cos command
Syntax Syntax
"""""" """"""
.. code-block:: LAMMPS
.. parsed-literal::
fix ID group-ID accelerate value fix ID group-ID accelerate value
@ -19,7 +18,6 @@ Syntax
Examples Examples
"""""""" """"""""
.. code-block:: LAMMPS .. code-block:: LAMMPS
fix 1 all accelerate/cos 0.02e-5 fix 1 all accelerate/cos 0.02e-5
@ -34,8 +32,8 @@ The acceleration is a periodic function along the z-direction:
a_{x}(z) = A \cos \left(\frac{2 \pi z}{l_{z}}\right) a_{x}(z) = A \cos \left(\frac{2 \pi z}{l_{z}}\right)
where :math:`A` is the acceleration amplitude, :math:`l_z` is the z-length where :math:`A` is the acceleration amplitude, :math:`l_z` is the
of the simulation box. :math:`z`-length of the simulation box.
At steady state, the acceleration generates a velocity profile: At steady state, the acceleration generates a velocity profile:
.. math:: .. math::
@ -49,17 +47,18 @@ shear viscosity :math:`\eta` by:
V = \frac{A \rho}{\eta}\left(\frac{l_{z}}{2 \pi}\right)^{2} V = \frac{A \rho}{\eta}\left(\frac{l_{z}}{2 \pi}\right)^{2}
and it can be obtained from ensemble average of the velocity profile: and it can be obtained from ensemble average of the velocity profile:
.. math:: .. math::
V = \frac{\sum_i 2 m_{i} v_{i, x} \cos \left(\frac{2 \pi z_i}{l_{z}}\right)}{\sum_i m_{i}} V = \frac{\sum\limits_i 2 m_{i} v_{i, x} \cos \left(\frac{2 \pi z_i}{l_{z}}\right)}{\sum\limits_i m_{i}},
where :math:`m_i`, :math:`v_{i,x}` and :math:`z_i` are the mass, where :math:`m_i`, :math:`v_{i,x}`, and :math:`z_i` are the mass,
x-component velocity and z coordinate of a particle. :math:`x`-component velocity, and :math:`z`-coordinate of a particle,
respectively.
The velocity amplitude :math:`V` can be calculated with :doc:`compute viscosity/cos <compute_viscosity_cos>`, The velocity amplitude :math:`V` can be calculated with
:doc:`compute viscosity/cos <compute_viscosity_cos>`,
which enables viscosity calculation with periodic perturbation method, which enables viscosity calculation with periodic perturbation method,
as described by :ref:`Hess<Hess2>`. as described by :ref:`Hess<Hess2>`.
Because the applied acceleration drives the system away from equilibration, Because the applied acceleration drives the system away from equilibration,
@ -79,15 +78,17 @@ Restart, fix_modify, output, run start/stop, minimize info
No information about this fix is written to binary restart files. No information about this fix is written to binary restart files.
None of the fix_modify options are relevant to this fix. None of the fix_modify options are relevant to this fix.
No global or per-atom quantities are stored by this fix for access by various output commands. No global or per-atom quantities are stored by this fix for access by various
No parameter of this fix can be used with the start/stop keywords of the run command. output commands. No parameter of this fix can be used with the start/stop
keywords of the run command.
This fix is not invoked during energy minimization. This fix is not invoked during energy minimization.
Restrictions Restrictions
"""""""""""" """"""""""""
This command is only available when LAMMPS was built with the MISC package. This command is only available when LAMMPS was built with the MISC package.
Since this fix depends on the z-coordinate of atoms, it cannot be used in 2d simulations. Since this fix depends on the :math:`z`-coordinate of atoms, it cannot be used
in 2d simulations.
Related commands Related commands
"""""""""""""""" """"""""""""""""
@ -96,10 +97,10 @@ Related commands
Default Default
""""""" """""""
none none
---------- ----------
.. _Hess2: .. _Hess2:
**(Hess)** Hess, B. The Journal of Chemical Physics 2002, 116 (1), 209-217. **(Hess)** Hess, B. Journal of Chemical Physics 2002, 116 (1), 209--217.

View File

@ -9,7 +9,7 @@ Accelerator Variants: *acks2/reaxff/kk*
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
fix ID group-ID acks2/reaxff Nevery cutlo cuthi tolerance params args fix ID group-ID acks2/reaxff Nevery cutlo cuthi tolerance params args
@ -37,10 +37,10 @@ Examples
Description Description
""""""""""" """""""""""
Perform the atom-condensed Kohn-Sham DFT to second order (ACKS2) charge Perform the atom-condensed Kohn--Sham DFT to second order (ACKS2) charge
equilibration method as described in :ref:`(Verstraelen) <Verstraelen>`. equilibration method as described in :ref:`(Verstraelen) <Verstraelen>`.
ACKS2 impedes unphysical long-range charge transfer sometimes seen with ACKS2 impedes unphysical long-range charge transfer sometimes seen with
QEq (e.g. for dissociation of molecules), at increased computational QEq (e.g., for dissociation of molecules), at increased computational
cost. It is typically used in conjunction with the ReaxFF force field cost. It is typically used in conjunction with the ReaxFF force field
model as implemented in the :doc:`pair_style reaxff <pair_reaxff>` model as implemented in the :doc:`pair_style reaxff <pair_reaxff>`
command, but it can be used with any potential in LAMMPS, so long as it command, but it can be used with any potential in LAMMPS, so long as it
@ -71,7 +71,8 @@ potential in eV, *gamma*, the valence orbital exponent, and *bcut*, the
bond cutoff distance. Note that these 4 quantities are also in the bond cutoff distance. Note that these 4 quantities are also in the
ReaxFF potential file, except that eta is defined here as twice the eta ReaxFF potential file, except that eta is defined here as twice the eta
value in the ReaxFF file. Note that unlike the rest of LAMMPS, the units value in the ReaxFF file. Note that unlike the rest of LAMMPS, the units
of this fix are hard-coded to be A, eV, and electronic charge. of this fix are hard-coded to be :math:`\mathrm{\mathring{A}}`, eV, and
electronic charge.
The optional *maxiter* keyword allows changing the max number The optional *maxiter* keyword allows changing the max number
of iterations in the linear solver. The default value is 200. of iterations in the linear solver. The default value is 200.
@ -110,7 +111,7 @@ LAMMPS was built with that package. See the :doc:`Build package
This fix does not correctly handle interactions involving multiple This fix does not correctly handle interactions involving multiple
periodic images of the same atom. Hence, it should not be used for periodic images of the same atom. Hence, it should not be used for
periodic cell dimensions less than 10 angstroms. periodic cell dimensions less than :math:`10~\mathrm{\mathring{A}}`.
This fix may be used in combination with :doc:`fix efield <fix_efield>` This fix may be used in combination with :doc:`fix efield <fix_efield>`
and will apply the external electric field during charge equilibration, and will apply the external electric field during charge equilibration,
@ -132,7 +133,7 @@ maxiter 200
.. _O'Hearn: .. _O'Hearn:
**(O'Hearn)** O'Hearn, Alperen, Aktulga, SIAM J. Sci. Comput., 42(1), C1-C22 (2020). **(O'Hearn)** O'Hearn, Alperen, Aktulga, SIAM J. Sci. Comput., 42(1), C1--C22 (2020).
.. _Verstraelen: .. _Verstraelen:

View File

@ -6,7 +6,7 @@ fix adapt command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
fix ID group-ID adapt N attribute args ... keyword value ... fix ID group-ID adapt N attribute args ... keyword value ...
@ -19,24 +19,24 @@ Syntax
.. parsed-literal:: .. parsed-literal::
*pair* args = pstyle pparam I J v_name *pair* args = pstyle pparam I J v_name
pstyle = pair style name, e.g. lj/cut pstyle = pair style name (e.g., lj/cut)
pparam = parameter to adapt over time pparam = parameter to adapt over time
I,J = type pair(s) to set parameter for I,J = type pair(s) to set parameter for
v_name = variable with name that calculates value of pparam v_name = variable with name that calculates value of pparam
*bond* args = bstyle bparam I v_name *bond* args = bstyle bparam I v_name
bstyle = bond style name, e.g. harmonic bstyle = bond style name (e.g., harmonic)
bparam = parameter to adapt over time bparam = parameter to adapt over time
I = type bond to set parameter for I = type bond to set parameter for
v_name = variable with name that calculates value of bparam v_name = variable with name that calculates value of bparam
*angle* args = astyle aparam I v_name *angle* args = astyle aparam I v_name
astyle = angle style name, e.g. harmonic astyle = angle style name (e.g., harmonic)
aparam = parameter to adapt over time aparam = parameter to adapt over time
I = type angle to set parameter for I = type angle to set parameter for
v_name = variable with name that calculates value of aparam v_name = variable with name that calculates value of aparam
*kspace* arg = v_name *kspace* arg = v_name
v_name = variable with name that calculates scale factor on K-space terms v_name = variable with name that calculates scale factor on :math:`k`-space terms
*atom* args = atomparam v_name *atom* args = atomparam v_name
atomparam = parameter to adapt over time atomparam = *charge* or *diameter* or *diameter/disc* = parameter to adapt over time
v_name = variable with name that calculates value of atomparam v_name = variable with name that calculates value of atomparam
* zero or more keyword/value pairs may be appended * zero or more keyword/value pairs may be appended
@ -44,15 +44,15 @@ Syntax
.. parsed-literal:: .. parsed-literal::
*scale* value = *no* or *yes* *scale* value = *no* or *yes*
*no* = the variable value is the new setting *no* = the variable value is the new setting
*yes* = the variable value multiplies the original setting *yes* = the variable value multiplies the original setting
*reset* value = *no* or *yes* *reset* value = *no* or *yes*
*no* = values will remain altered at the end of a run *no* = values will remain altered at the end of a run
*yes* = reset altered values to their original values at the end of a run *yes* = reset altered values to their original values at the end of a run
*mass* value = *no* or *yes* *mass* value = *no* or *yes*
*no* = mass is not altered by changes in diameter *no* = mass is not altered by changes in diameter
*yes* = mass is altered by changes in diameter *yes* = mass is altered by changes in diameter
Examples Examples
"""""""" """"""""
@ -70,22 +70,22 @@ Examples
Description Description
""""""""""" """""""""""
Change or adapt one or more specific simulation attributes or settings Change or adapt one or more specific simulation attributes or settings over
over time as a simulation runs. Pair potential and K-space and atom time as a simulation runs. Pair potential and :math:`k`-space and atom
attributes which can be varied by this fix are discussed below. Many attributes which can be varied by this fix are discussed below. Many other
other fixes can also be used to time-vary simulation parameters, fixes can also be used to time-vary simulation parameters (e.g., the
e.g. the "fix deform" command will change the simulation box :doc:`fix deform <fix_deform>` command will change the simulation box
size/shape and the "fix move" command will change atom positions and size/shape and the :doc:`fix move <fix_move>` command will change atom
velocities in a prescribed manner. Also note that many commands allow positions and velocities in a prescribed manner). Also note that many commands
variables as arguments for specific parameters, if described in that allow variables as arguments for specific parameters, if described in that
manner on their doc pages. An equal-style variable can calculate a manner on their doc pages. An equal-style variable can calculate a
time-dependent quantity, so this is another way to vary a simulation time-dependent quantity, so this is another way to vary a simulation parameter
parameter over time. over time.
If *N* is specified as 0, the specified attributes are only changed If :math:`N` is specified as 0, the specified attributes are only changed
once, before the simulation begins. This is all that is needed if the once, before the simulation begins. This is all that is needed if the
associated variables are not time-dependent. If *N* > 0, then changes associated variables are not time-dependent. If :math:`N > 0`, then changes
are made every *N* steps during the simulation, presumably with a are made every :math:`N` steps during the simulation, presumably with a
variable that is time-dependent. variable that is time-dependent.
Depending on the value of the *reset* keyword, attributes changed by Depending on the value of the *reset* keyword, attributes changed by
@ -98,9 +98,9 @@ If the *scale* keyword is set to *no*, which is the default, then
the value of the altered parameter will be whatever the variable the value of the altered parameter will be whatever the variable
generates. If the *scale* keyword is set to *yes*, then the value generates. If the *scale* keyword is set to *yes*, then the value
of the altered parameter will be the initial value of that parameter of the altered parameter will be the initial value of that parameter
multiplied by whatever the variable generates. I.e. the variable is multiplied by whatever the variable generates (i.e., the variable is
now a "scale factor" applied in (presumably) a time-varying fashion to now a "scale factor" applied in (presumably) a time-varying fashion to
the parameter. the parameter).
Note that whether scale is *no* or *yes*, internally, the parameters Note that whether scale is *no* or *yes*, internally, the parameters
themselves are actually altered by this fix. Make sure you use the themselves are actually altered by this fix. Make sure you use the
@ -120,8 +120,8 @@ The *pstyle* argument is the name of the pair style. If
:doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is used, :doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is used,
*pstyle* should be a sub-style name. If there are multiple *pstyle* should be a sub-style name. If there are multiple
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 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, second, etc. 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
@ -216,60 +216,61 @@ formulas for the meaning of these parameters:
to this list. All it typically takes is adding an extract() method to to this list. All it typically takes is adding an extract() method to
the pair\_\*.cpp file associated with the potential. the pair\_\*.cpp file associated with the potential.
Some parameters are global settings for the pair style, e.g. the Some parameters are global settings for the pair style (e.g., the
viscosity setting "mu" for :doc:`pair_style lubricate <pair_lubricate>`. viscosity setting "mu" for :doc:`pair_style lubricate <pair_lubricate>`).
Other parameters apply to atom type pairs within the pair style, Other parameters apply to atom type pairs within the pair style (e.g., the
e.g. the prefactor "a" for :doc:`pair_style soft <pair_soft>`. prefactor :math:`a` for :doc:`pair_style soft <pair_soft>`).
Note that for many of the potentials, the parameter that can be varied Note that for many of the potentials, the parameter that can be varied
is effectively a prefactor on the entire energy expression for the is effectively a prefactor on the entire energy expression for the
potential, e.g. the lj/cut epsilon. The parameters listed as "scale" potential (e.g., the lj/cut epsilon). The parameters listed as "scale"
are exactly that, since the energy expression for the are exactly that, since the energy expression for the
:doc:`coul/cut <pair_coul>` potential (for example) has no labeled :doc:`coul/cut <pair_coul>` potential (for example) has no labeled
prefactor in its formula. To apply an effective prefactor to some prefactor in its formula. To apply an effective prefactor to some
potentials, multiple parameters need to be altered. For example, the potentials, multiple parameters need to be altered. For example, the
:doc:`Buckingham potential <pair_buck>` needs both the A and C terms :doc:`Buckingham potential <pair_buck>` needs both the :math:`A` and
altered together. To scale the Buckingham potential, you should thus :math:`C` terms altered together. To scale the Buckingham potential, you
list the pair style twice, once for A and once for C. should thus list the pair style twice, once for :math:`A` and once for
:math:`C`.
If a type pair parameter is specified, the *I* and *J* settings should If a type pair parameter is specified, the :math:`I` and :math:`J` settings
be specified to indicate which type pairs to apply it to. If a global should be specified to indicate which type pairs to apply it to. If a global
parameter is specified, the *I* and *J* settings still need to be parameter is specified, the :math:`I` and :math:`J` settings still need to be
specified, but are ignored. specified, but are ignored.
Similar to the :doc:`pair_coeff command <pair_coeff>`, I and J can be Similar to the :doc:`pair_coeff command <pair_coeff>`, :math:`I` and :math:`J`
specified in one of two ways. Explicit numeric values can be used for can be specified in one of two ways. Explicit numeric values can be used for
each, as in the first example above. I <= J is required. LAMMPS sets each, as in the first example above. :math:`I \le J` is required. LAMMPS sets
the coefficients for the symmetric J,I interaction to the same values. 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 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 "n\*" or "m\*n". If N = types. This takes the form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N`
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 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 n to N 1 to n (inclusive). A trailing asterisk means all types from m to :math:`N`
(inclusive). A middle asterisk means all types from m to n (inclusive). A middle asterisk means all types from m to n
(inclusive). Note that only type pairs with I <= J are considered; if (inclusive). Note that only type pairs with :math:`I \le J` are considered; if
asterisks imply type pairs where J < I, they are ignored. asterisks imply type pairs where :math:`J < I`, they are ignored.
IMPROTANT NOTE: If :doc:`pair_style hybrid or hybrid/overlay IMPORTANT NOTE: If :doc:`pair_style hybrid or hybrid/overlay
<pair_hybrid>` is being used, then the *pstyle* will be a sub-style <pair_hybrid>` is being used, then the *pstyle* will be a sub-style
name. You must specify I,J arguments that correspond to type pair name. You must specify :math:`I,J` arguments that correspond to type pair
values defined (via the :doc:`pair_coeff <pair_coeff>` command) for 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
@ -287,13 +288,13 @@ 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 "n\*" or "m\*n". If N = 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 numeric values the number of bond types, then an asterisk with no numeric values means
means all types from 1 to 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 n to 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 :math:`N` (inclusive). A middle asterisk means all types from m to n
(inclusive). (inclusive).
Currently *bond* does not support bond_style hybrid nor bond_style Currently *bond* does not support bond_style hybrid nor bond_style
@ -323,13 +324,13 @@ 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 "n\*" or "m\*n". If N = This takes the form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N` 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 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 n to 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 :math:`N` (inclusive). A middle asterisk means all types from m to n
(inclusive). (inclusive).
Currently *angle* does not support angle_style hybrid nor angle_style Currently *angle* does not support angle_style hybrid nor angle_style
@ -348,7 +349,7 @@ this fix uses to reset theta0 needs to generate values in radians.
---------- ----------
The *kspace* keyword used the specified variable as a scale factor on The *kspace* keyword used the specified variable as a scale factor on
the energy, forces, virial calculated by whatever K-Space solver is the energy, forces, virial calculated by whatever :math:`k`-space solver is
defined by the :doc:`kspace_style <kspace_style>` command. If the defined by the :doc:`kspace_style <kspace_style>` command. If the
variable has a value of 1.0, then the solver is unaltered. variable has a value of 1.0, then the solver is unaltered.
@ -373,17 +374,17 @@ with equal-style variables. The new value is assigned to the
corresponding attribute for all atoms in the fix group. corresponding attribute for all atoms in the fix group.
If the atom parameter is *diameter* and per-atom density and per-atom If the atom parameter is *diameter* and per-atom density and per-atom
mass are defined for particles (e.g. :doc:`atom_style granular mass are defined for particles (e.g., :doc:`atom_style granular
<atom_style>`), then the mass of each particle is, by default, also <atom_style>`), then the mass of each particle is, by default, also
changed when the diameter changes. The mass is set from the particle changed when the diameter changes. The mass is set from the particle
volume for 3d systems (density is assumed to stay constant). For 2d, volume for 3d systems (density is assumed to stay constant). For 2d,
the default is for LAMMPS to model particles with a radius attribute the default is for LAMMPS to model particles with a radius attribute
as spheres. However, if the atom parameter is *diameter/disc*, then the as spheres. However, if the atom parameter is *diameter/disc*, then the
mass is set from the particle area (the density is assumed to be in mass is set from the particle area (the density is assumed to be in
mass/distance^2 units). The mass of the particle may also be kept constant mass/distance\ :math:`^2` units). The mass of the particle may also be kept
if the *mass* keyword is set to *no*. This can be useful to account for constant if the *mass* keyword is set to *no*. This can be useful to account
diameter changes that do not involve mass changes, e.g., thermal expansion. for diameter changes that do not involve mass changes (e.g., thermal
expansion).
For example, these commands would shrink the diameter of all granular For example, these commands would shrink the diameter of all granular
particles in the "center" group from 1.0 to 0.1 in a linear fashion particles in the "center" group from 1.0 to 0.1 in a linear fashion
@ -405,11 +406,11 @@ their original values at the end of the last restarted run.
Note that all the parameters changed by this fix are written into a Note that all the parameters changed by this fix are written into a
restart file in their current changed state. A new restarted restart file in their current changed state. A new restarted
simulation does not know their original time=0 values, unless the simulation does not know the original time=0 values, unless the
input script explicitly resets the parameters (after the restart file input script explicitly resets the parameters (after the restart file
is read), to their original values. is read) to the original values.
Also note, that the time-dependent variable(s) used in the restart Also note that the time-dependent variable(s) used in the restart
script should typically be written as a function of time elapsed since script should typically be written as a function of time elapsed since
the original simulation began. the original simulation began.
@ -430,8 +431,8 @@ the one used in the original script.
In a restarted run, if the *reset* keyword is set to *yes*, and the In a restarted run, if the *reset* keyword is set to *yes*, and the
run ends in this script (as opposed to just writing more restart run ends in this script (as opposed to just writing more restart
files, parameters will be restored to the values they were at the files), parameters will be restored to the values they were at the
beginning of the run command in the restart script. Which as beginning of the run command in the restart script, which as
explained above, may or may not be the original values of the explained above, may or may not be the original values of the
parameters. Again, an exception is if the *atom* keyword is being parameters. Again, an exception is if the *atom* keyword is being
used with *reset yes* (in all the runs). In that case, the original used with *reset yes* (in all the runs). In that case, the original

View File

@ -6,7 +6,7 @@ fix adapt/fep command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
fix ID group-ID adapt/fep N attribute args ... keyword value ... fix ID group-ID adapt/fep N attribute args ... keyword value ...
@ -19,7 +19,7 @@ Syntax
.. parsed-literal:: .. parsed-literal::
*pair* args = pstyle pparam I J v_name *pair* args = pstyle pparam I J v_name
pstyle = pair style name, e.g. lj/cut pstyle = pair style name (e.g., lj/cut)
pparam = parameter to adapt over time pparam = parameter to adapt over time
I,J = type pair(s) to set parameter for I,J = type pair(s) to set parameter for
v_name = variable with name that calculates value of pparam v_name = variable with name that calculates value of pparam
@ -66,12 +66,12 @@ Change or adapt one or more specific simulation attributes or settings
over time as a simulation runs. over time as a simulation runs.
This is an enhanced version of the :doc:`fix adapt <fix_adapt>` command This is an enhanced version of the :doc:`fix adapt <fix_adapt>` command
with two differences, with two differences:
* It is possible to modify the charges of chosen atom types only, * It is possible to modify the charges of chosen atom types only,
instead of scaling all the charges in the system. instead of scaling all the charges in the system.
* There is a new option *after* for better compatibility with "fix * There is a new option *after* for better compatibility with
ave/time". :doc:`fix ave/time <fix_ave_time>`.
This version is suited for free energy calculations using This version is suited for free energy calculations using
:doc:`compute ti <compute_ti>` or :doc:`compute fep <compute_fep>`. :doc:`compute ti <compute_ti>` or :doc:`compute fep <compute_fep>`.
@ -92,8 +92,8 @@ If the *scale* keyword is set to *no*, then the value the parameter is
set to will be whatever the variable generates. If the *scale* set to will be whatever the variable generates. If the *scale*
keyword is set to *yes*, then the value of the altered parameter will keyword is set to *yes*, then the value of the altered parameter will
be the initial value of that parameter multiplied by whatever the be the initial value of that parameter multiplied by whatever the
variable generates. I.e. the variable is now a "scale factor" applied variable generates (i.e., the variable is now a "scale factor" applied
in (presumably) a time-varying fashion to the parameter. Internally, in (presumably) a time-varying fashion to the parameter). Internally,
the parameters themselves are actually altered; make sure you use the the parameters themselves are actually altered; make sure you use the
*reset yes* option if you want the parameters to be restored to their *reset yes* option if you want the parameters to be restored to their
initial values after the run. initial values after the run.
@ -188,7 +188,7 @@ styles and their energy formulas for the meaning of these parameters:
Note that for many of the potentials, the parameter that can be varied Note that for many of the potentials, the parameter that can be varied
is effectively a prefactor on the entire energy expression for the is effectively a prefactor on the entire energy expression for the
potential, e.g. the lj/cut epsilon. The parameters listed as "scale" potential (e.g., the lj/cut epsilon). The parameters listed as "scale"
are exactly that, since the energy expression for the are exactly that, since the energy expression for the
:doc:`coul/cut <pair_coul>` potential (for example) has no labeled :doc:`coul/cut <pair_coul>` potential (for example) has no labeled
prefactor in its formula. To apply an effective prefactor to some prefactor in its formula. To apply an effective prefactor to some
@ -204,23 +204,23 @@ specified, but are ignored.
Similar to the :doc:`pair_coeff command <pair_coeff>`, I and J can be Similar to the :doc:`pair_coeff command <pair_coeff>`, I and J can be
specified in one of two ways. Explicit numeric values can be used for specified in one of two ways. Explicit numeric values can be used for
each, as in the first example above. I <= J is required. LAMMPS sets each, as in the first example above. :math:`I \le J` is required. LAMMPS sets
the coefficients for the symmetric J,I interaction to the same values. 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 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 "n\*" or "m\*n". If N = the types. This takes the form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N` is
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 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 n to N (inclusive). A trailing asterisk means all types from m to :math:`N`
(inclusive). A middle asterisk means all types from m to n (inclusive). A middle asterisk means all types from m to n
(inclusive). Note that only type pairs with I <= J are considered; if (inclusive). Note that only type pairs with :math:`I \le J` are considered; if
asterisks imply type pairs where J < I, they are ignored. asterisks imply type pairs where :math:`J < I`, they are ignored.
IMPROTANT NOTE: If :doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is being used, then the *pstyle* will IMPROTANT NOTE: If :doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is
be a sub-style name. You must specify I,J arguments that correspond being used, then the *pstyle* will be a sub-style name. You must specify
to type pair values defined (via the :doc:`pair_coeff <pair_coeff>` :math:`I,J` arguments that correspond to type pair values defined (via the
command) for that sub-style. :doc:`pair_coeff <pair_coeff>` command) for 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 time :doc:`equal-style variable <variable>` which will be evaluated each time
@ -232,8 +232,7 @@ simulation box parameters and timestep and elapsed time. Thus it is
easy to specify parameters that change as a function of time or span easy to specify parameters that change as a function of time or span
consecutive runs in a continuous fashion. For the latter, see the consecutive runs in a continuous fashion. For the latter, see the
*start* and *stop* keywords of the :doc:`run <run>` command and the *start* and *stop* keywords of the :doc:`run <run>` command and the
*elaplong* keyword of :doc:`thermo_style custom <thermo_style>` for *elaplong* keyword of :doc:`thermo_style custom <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
@ -247,7 +246,7 @@ linear fashion over the course of a simulation:
---------- ----------
The *kspace* keyword used the specified variable as a scale factor on The *kspace* keyword used the specified variable as a scale factor on
the energy, forces, virial calculated by whatever K-Space solver is the energy, forces, virial calculated by whatever :math:`k`-space solver is
defined by the :doc:`kspace_style <kspace_style>` command. If the defined by the :doc:`kspace_style <kspace_style>` command. If the
variable has a value of 1.0, then the solver is unaltered. variable has a value of 1.0, then the solver is unaltered.
@ -263,8 +262,8 @@ current list of atom parameters that can be varied by this fix:
* charge = charge on particle * charge = charge on particle
* diameter = diameter of particle * diameter = diameter of particle
The *I* argument indicates which atom types are affected. A wild-card The :math:`I` argument indicates which atom types are affected. A wild-card
asterisk can be used in place of or in conjunction with the I argument asterisk can be used in place of or in conjunction with the :math:`I` argument
to set the coefficients for multiple atom types. to set the coefficients for multiple atom types.
The *v_name* argument of the *atom* keyword is the name of an The *v_name* argument of the *atom* keyword is the name of an
@ -276,9 +275,9 @@ variables. The new value is assigned to the corresponding attribute
for all atoms in the fix group. for all atoms in the fix group.
If the atom parameter is *diameter* and per-atom density and per-atom If the atom parameter is *diameter* and per-atom density and per-atom
mass are defined for particles (e.g. :doc:`atom_style granular <atom_style>`), then the mass of each particle is also mass are defined for particles (e.g., :doc:`atom_style granular <atom_style>`),
changed when the diameter changes (density is assumed to stay then the mass of each particle is also changed when the diameter changes
constant). (density is assumed to stay constant).
For example, these commands would shrink the diameter of all granular For example, these commands would shrink the diameter of all granular
particles in the "center" group from 1.0 to 0.1 in a linear fashion particles in the "center" group from 1.0 to 0.1 in a linear fashion
@ -297,11 +296,14 @@ parameters on the outermost rRESPA level.
Restart, fix_modify, output, run start/stop, minimize info Restart, fix_modify, output, run start/stop, minimize info
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options No information about this fix is written to
:doc:`binary restart files <restart>`.
None of the :doc:`fix_modify <fix_modify>` options
are relevant to this fix. No global or per-atom quantities are stored are relevant to this fix. No global or per-atom quantities are stored
by this fix for access by various :doc:`output commands <Howto_output>`. by this fix for access by various :doc:`output commands <Howto_output>`.
No parameter of this fix can be used with the *start/stop* keywords of No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`. the :doc:`run <run>` command. This fix is not invoked during
:doc:`energy minimization <minimize>`.
Restrictions Restrictions
"""""""""""" """"""""""""
@ -310,7 +312,8 @@ Restrictions
Related commands Related commands
"""""""""""""""" """"""""""""""""
:doc:`compute fep <compute_fep>`, :doc:`fix adapt <fix_adapt>`, :doc:`compute ti <compute_ti>`, :doc:`pair_style \*/soft <pair_fep_soft>` :doc:`compute fep <compute_fep>`, :doc:`fix adapt <fix_adapt>`,
:doc:`compute ti <compute_ti>`, :doc:`pair_style \*/soft <pair_fep_soft>`
Default Default
""""""" """""""

View File

@ -6,7 +6,7 @@ fix addforce command
Syntax Syntax
"""""" """"""
.. parsed-literal:: .. code-block:: LAMMPS
fix ID group-ID addforce fx fy fz keyword value ... fix ID group-ID addforce fx fy fz keyword value ...
@ -24,7 +24,7 @@ Syntax
.. parsed-literal:: .. parsed-literal::
*every* value = Nevery *every* value = Nevery
Nevery = add force every this many timesteps Nevery = add force every this many time steps
*region* value = region-ID *region* value = region-ID
region-ID = ID of region atoms must be in to have added force region-ID = ID of region atoms must be in to have added force
*energy* value = v_name *energy* value = v_name
@ -42,31 +42,31 @@ Examples
Description Description
""""""""""" """""""""""
Add fx,fy,fz to the corresponding component of force for each atom in Add :math:`(f_x,f_y,f_z)` to the corresponding component of the force for each
the group. This command can be used to give an additional push to atom in the group. This command can be used to give an additional push to
atoms in a simulation, such as for a simulation of Poiseuille flow in atoms in a simulation, such as for a simulation of Poiseuille flow in
a channel. a channel.
Any of the 3 quantities defining the force components can be specified Any of the three quantities defining the force components, namely :math:`f_x`,
as an equal-style or atom-style :doc:`variable <variable>`, namely *fx*, :math:`f_y`, and :math:`f_z`, can be specified as an equal-style or atom-style
*fy*, *fz*\ . If the value is a variable, it should be specified as :doc:`variable <variable>`. If the value is a variable, it should be specified
v_name, where name is the variable name. In this case, the variable as v_name, where name is the variable name. In this case, the variable
will be evaluated each timestep, and its value(s) used to determine will be evaluated each time step, and its value(s) will be used to determine
the force component. the force component(s).
Equal-style variables can specify formulas with various mathematical Equal-style variables can specify formulas with various mathematical
functions, and include :doc:`thermo_style <thermo_style>` command functions and include :doc:`thermo_style <thermo_style>` command
keywords for the simulation box parameters and timestep and elapsed keywords for the simulation box parameters, time step, and elapsed time.
time. Thus it is easy to specify a time-dependent force field. Thus, it is easy to specify a time-dependent force field.
Atom-style variables can specify the same formulas as equal-style Atom-style variables can specify the same formulas as equal-style
variables but can also include per-atom values, such as atom variables but can also include per-atom values, such as atom
coordinates. Thus it is easy to specify a spatially-dependent force coordinates. Thus, it is easy to specify a spatially-dependent force
field with optional time-dependence as well. field with optional time-dependence as well.
If the *every* keyword is used, the *Nevery* setting determines how If the *every* keyword is used, the *Nevery* setting determines how
often the forces are applied. The default value is 1, for every often the forces are applied. The default value is 1, for every
timestep. time step.
If the *region* keyword is used, the atom must also be in the If the *region* keyword is used, the atom must also be in the
specified geometric :doc:`region <region>` in order to have force added specified geometric :doc:`region <region>` in order to have force added
@ -83,10 +83,14 @@ potential energy to formulate a self-consistent minimization problem
(see below). (see below).
The *energy* keyword is not allowed if the added force is a constant The *energy* keyword is not allowed if the added force is a constant
vector F = (fx,fy,fz), with all components defined as numeric vector :math:`\vec F = (f_x,f_y,f_z)`, with all components defined as numeric
constants and not as variables. This is because LAMMPS can compute constants and not as variables. This is because LAMMPS can compute
the energy for each atom directly as E = -x dot F = -(x\*fx + y\*fy + the energy for each atom directly as
z\*fz), so that -Grad(E) = F.
.. math::
E = -\vec x \cdot \vec F = -(x f_x + y f_y + z f_z),
so that :math:`-\vec\nabla E = \vec F`.
The *energy* keyword is optional if the added force is defined with The *energy* keyword is optional if the added force is defined with
one or more variables, and if you are performing dynamics via the one or more variables, and if you are performing dynamics via the
@ -98,16 +102,16 @@ one or more variables, and you are performing energy minimization via
the "minimize" command. The keyword specifies the name of an the "minimize" command. The keyword specifies the name of an
atom-style :doc:`variable <variable>` which is used to compute the atom-style :doc:`variable <variable>` which is used to compute the
energy of each atom as function of its position. Like variables used energy of each atom as function of its position. Like variables used
for *fx*, *fy*, *fz*, the energy variable is specified as v_name, for :math:`f_x`, :math:`f_y`, :math:`f_z`, the energy variable is specified as
where name is the variable name. v_name, where name is the variable name.
Note that when the *energy* keyword is used during an energy Note that when the *energy* keyword is used during an energy
minimization, you must insure that the formula defined for the minimization, you must insure that the formula defined for the
atom-style :doc:`variable <variable>` is consistent with the force atom-style :doc:`variable <variable>` is consistent with the force
variable formulas, i.e. that -Grad(E) = F. For example, if the force variable formulas (i.e., that :math:`-\vec\nabla E = \vec F`).
were a spring-like F = kx, then the energy formula should be E = For example, if the force were a spring-like, :math:`\vec F = -k\vec x`, then
-0.5kx\^2. If you don't do this correctly, the minimization will not the energy formula should be :math:`E = \frac12 kx^2`. If you do not do this
converge properly. correctly, the minimization will not converge properly.
---------- ----------
@ -128,8 +132,8 @@ the global potential energy of the system as part of
this fix is :doc:`fix_modify energy no <fix_modify>`. Note that this this fix is :doc:`fix_modify energy no <fix_modify>`. Note that this
energy is a fictitious quantity but is needed so that the energy is a fictitious quantity but is needed so that the
:doc:`minimize <minimize>` command can include the forces added by :doc:`minimize <minimize>` command can include the forces added by
this fix in a consistent manner. I.e. there is a decrease in this fix in a consistent manner (i.e., there is a decrease in
potential energy when atoms move in the direction of the added force. potential energy when atoms move in the direction of the added force).
The :doc:`fix_modify <fix_modify>` *virial* option is supported by The :doc:`fix_modify <fix_modify>` *virial* option is supported by
this fix to add the contribution due to the added forces on atoms to this fix to add the contribution due to the added forces on atoms to
@ -144,7 +148,7 @@ fix. This allows to set at which level of the :doc:`r-RESPA
<run_style>` integrator the fix is adding its forces. Default is the <run_style>` integrator the fix is adding its forces. Default is the
outermost level. outermost level.
This fix computes a global scalar and a global 3-vector of forces, This fix computes a global scalar and a global three-vector of forces,
which can be accessed by various :doc:`output commands 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
@ -157,7 +161,7 @@ the :doc:`run <run>` command.
The forces due to this fix are imposed during an energy minimization, The forces due to this fix are imposed during an energy minimization,
invoked by the :doc:`minimize <minimize>` command. You should not invoked by the :doc:`minimize <minimize>` command. You should not
specify force components with a variable that has time-dependence for specify force components with a variable that has time-dependence for
use with a minimizer, since the minimizer increments the timestep as use with a minimizer, since the minimizer increments the time step as
the iteration count during the minimization. the iteration count during the minimization.
.. note:: .. note::

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