Merge branch 'master' into dielectric-updates

# Conflicts:
#	src/DIELECTRIC/Install.sh
#	src/DIELECTRIC/pppm_disp_dielectric.cpp
#	src/DIELECTRIC/pppm_disp_dielectric.h
This commit is contained in:
Axel Kohlmeyer
2021-07-03 15:27:57 -04:00
3160 changed files with 4660 additions and 22782 deletions

View File

@ -90,7 +90,7 @@ standard. A more detailed discussion of that is below.
directory, or ``make`` from the ``src/STUBS`` dir. If the build
fails, you may need to edit the ``STUBS/Makefile`` for your
platform. The stubs library does not provide MPI/IO functions
required by some LAMMPS packages, e.g. ``MPIIO`` or ``USER-LB``,
required by some LAMMPS packages, e.g. ``MPIIO`` or ``LATBOLTZ``,
and thus is not compatible with those packages.
.. note::
@ -120,19 +120,19 @@ self-installed MPICH or OpenMPI, so you should study the provided
documentation to find out how to build and link with it.
The majority of OpenMP (threading) support in LAMMPS is provided by the
``USER-OMP`` package; see the :doc:`Speed_omp`
page for details. The ``USER-INTEL`` package also includes OpenMP
threading (it is compatible with ``USER-OMP`` and will usually fall
back on styles from that package, if a ``USER-INTEL`` does not exist)
``OPENMP`` package; see the :doc:`Speed_omp`
page for details. The ``INTEL`` package also includes OpenMP
threading (it is compatible with ``OPENMP`` and will usually fall
back on styles from that package, if a ``INTEL`` does not exist)
and adds vectorization support when compiled with compatible compilers,
in particular the Intel compilers on top of OpenMP. Also, the ``KOKKOS``
package can be compiled to include OpenMP threading.
In addition, there are a few commands in LAMMPS that have native OpenMP
support included as well. These are commands in the ``MPIIO``,
``SNAP``, ``USER-DIFFRACTION``, and ``USER-DPD`` packages. In addition
``ML-SNAP``, ``DIFFRACTION``, and ``DPD-REACT`` packages. In addition
some packages support OpenMP threading indirectly through the libraries
they interface to: e.g. ``LATTE``, ``KSPACE``, and ``USER-COLVARS``.
they interface to: e.g. ``LATTE``, ``KSPACE``, and ``COLVARS``.
See the :doc:`Packages details <Packages_details>` page for more
info on these packages and the pages for their respective commands
for OpenMP threading info.
@ -176,7 +176,7 @@ performance. Vendor provided compilers for a specific hardware can
produce faster code than open-source compilers like the GNU compilers.
On the most common x86 hardware most popular C++ compilers are quite
similar in performance of C/C++ code at high optimization levels. When
using the ``USER-INTEL`` package, there is a distinct advantage in using
using the ``INTEL`` package, there is a distinct advantage in using
the `Intel C++ compiler <intel_>`_ due to much improved vectorization
through SSE and AVX instructions on compatible hardware as the source
code includes changes and Intel compiler specific directives to enable
@ -325,9 +325,9 @@ LAMMPS.
.. code-block:: bash
Makefile.opt # OPT package
Makefile.omp # USER-OMP package
Makefile.intel_cpu # USER-INTEL package for CPUs
Makefile.intel_coprocessor # USER-INTEL package for KNLs
Makefile.omp # OPENMP package
Makefile.intel_cpu # INTEL package for CPUs
Makefile.intel_coprocessor # INTEL package for KNLs
Makefile.gpu # GPU package
Makefile.kokkos_cuda_mpi # KOKKOS package for GPUs
Makefile.kokkos_omp # KOKKOS package for CPUs (OpenMP)

View File

@ -140,7 +140,7 @@ can be used several times in one command.
For your convenience we provide :ref:`CMake presets <cmake_presets>`
that combine multiple settings to enable optional LAMMPS packages or use
a different compiler tool chain. Those are loaded with the *-C* flag
(``-C ../cmake/presets/minimal.cmake``). This step would only be needed
(``-C ../cmake/presets/basic.cmake``). This step would only be needed
once, as the settings from the preset files are stored in the
``CMakeCache.txt`` file. It is also possible to customize the build
by adding one or more *-D* flags to the CMake command line.

View File

@ -310,7 +310,7 @@ and working.
parameter needs to be adjusted. Typically a value around 1.0e-13
can be used, but it may need to be as large as 1.0e-8 in some
cases.
- The tests for pair styles from OPT, USER-OMP and USER-INTEL are
- The tests for pair styles from OPT, OPENMP and INTEL are
performed with automatically rescaled epsilon to account for
additional loss of precision from code optimizations and different
summation orders.
@ -345,7 +345,7 @@ and compared. If the fix is a thermostat and thus the internal property
``t_target`` can be extracted, then this is compared to the reference
data. The tests are repeated with the respa run style.
If the fix has a multi-threaded version in the USER-OMP package, then
If the fix has a multi-threaded version in the OPENMP package, then
the entire set of tests is repeated for that version as well.
For this to work, some additional conditions have to be met by the

View File

@ -37,31 +37,31 @@ This is the list of packages that may require additional steps.
* :ref:`KOKKOS <kokkos>`
* :ref:`LATTE <latte>`
* :ref:`MESSAGE <message>`
* :ref:`MLIAP <mliap>`
* :ref:`ML-IAP <mliap>`
* :ref:`MSCG <mscg>`
* :ref:`OPT <opt>`
* :ref:`POEMS <poems>`
* :ref:`PYTHON <python>`
* :ref:`VORONOI <voronoi>`
* :ref:`USER-ADIOS <user-adios>`
* :ref:`USER-ATC <user-atc>`
* :ref:`USER-AWPMD <user-awpmd>`
* :ref:`USER-COLVARS <user-colvars>`
* :ref:`USER-H5MD <user-h5md>`
* :ref:`USER-HDNNP <user-hdnnp>`
* :ref:`USER-INTEL <user-intel>`
* :ref:`USER-MDI <user-mdi>`
* :ref:`USER-MESONT <user-mesont>`
* :ref:`USER-MOLFILE <user-molfile>`
* :ref:`USER-NETCDF <user-netcdf>`
* :ref:`USER-PACE <user-pace>`
* :ref:`USER-PLUMED <user-plumed>`
* :ref:`USER-OMP <user-omp>`
* :ref:`USER-QMMM <user-qmmm>`
* :ref:`USER-QUIP <user-quip>`
* :ref:`USER-SCAFACOS <user-scafacos>`
* :ref:`USER-SMD <user-smd>`
* :ref:`USER-VTK <user-vtk>`
* :ref:`ADIOS <adios>`
* :ref:`ATC <atc>`
* :ref:`AWPMD <awpmd>`
* :ref:`COLVARS <colvars>`
* :ref:`H5MD <h5md>`
* :ref:`ML-HDNNP <ml-hdnnp>`
* :ref:`INTEL <intel>`
* :ref:`MDI <mdi>`
* :ref:`MESONT <mesont>`
* :ref:`MOLFILE <molfile>`
* :ref:`NETCDF <netcdf>`
* :ref:`ML-PACE <ml-pace>`
* :ref:`PLUMED <plumed>`
* :ref:`OPENMP <openmp>`
* :ref:`QMMM <qmmm>`
* :ref:`ML-QUIP <ml-quip>`
* :ref:`SCAFACOS <scafacos>`
* :ref:`MACHDYN <machdyn>`
* :ref:`VTK <vtk>`
----------
@ -622,7 +622,7 @@ This list was last updated for version 3.4.1 of the Kokkos library.
mkdir build-kokkos-cuda
cd build-kokkos-cuda
cmake -C ../cmake/presets/minimal.cmake -C ../cmake/presets/kokkos-cuda.cmake ../cmake
cmake -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake ../cmake
cmake --build .
.. tab:: Basic traditional make settings:
@ -811,16 +811,17 @@ be installed on your system.
.. _mliap:
MLIAP package
ML-IAP package
---------------------------
Building the MLIAP package requires including the :ref:`SNAP <PKG-SNAP>`
package. There will be an error message if this requirement is not satisfied.
Using the *mliappy* model also requires enabling Python support, which
in turn requires the :ref:`PYTHON <PKG-PYTHON>`
package **and** requires you have the `cython <https://cython.org>`_ software
installed and with it a working ``cythonize`` command. This feature requires
compiling LAMMPS with Python version 3.6 or later.
Building the ML-IAP package requires including the :ref:`ML-SNAP
<PKG-ML-SNAP>` package. There will be an error message if this requirement
is not satisfied. Using the *mliappy* model also requires enabling
Python support, which in turn requires to include the :ref:`PYTHON
<PKG-PYTHON>` package **and** requires to have the `cython
<https://cython.org>`_ software installed and with it a working
``cythonize`` command. This feature requires compiling LAMMPS with
Python version 3.6 or later.
.. tabs::
@ -834,9 +835,9 @@ compiling LAMMPS with Python version 3.6 or later.
suitable Python version and the ``cythonize`` command and choose
the default accordingly. During the build procedure the provided
.pyx file(s) will be automatically translated to C++ code and compiled.
Please do **not** run ``cythonize`` manually in the ``src/MLIAP`` folder,
Please do **not** run ``cythonize`` manually in the ``src/ML-IAP`` folder,
as that can lead to compilation errors if Python support is not enabled.
If you did by accident, please remove the generated .cpp and .h files.
If you did it by accident, please remove the generated .cpp and .h files.
.. tab:: Traditional make
@ -845,15 +846,16 @@ compiling LAMMPS with Python version 3.6 or later.
the ``cythonize`` command in case the corresponding .pyx file(s) were
modified. You may need to modify ``lib/python/Makefile.lammps``
if the LAMMPS build fails.
To manually enforce building MLIAP with Python support enabled,
you can add
``-DMLIAP_PYTHON`` to the ``LMP_INC`` variable in your machine makefile.
You may have to manually run the ``cythonize`` command on .pyx file(s)
in the ``src`` folder, if this is not automatically done during
installing the MLIAP package. Please do **not** run ``cythonize``
in the ``src/MLIAP`` folder, as that can lead to compilation errors
if Python support is not enabled.
If you did by accident, please remove the generated .cpp and .h files.
To enable building the ML-IAP package with Python support enabled,
you need to add ``-DMLIAP_PYTHON`` to the ``LMP_INC`` variable in
your machine makefile. You may have to manually run the
``cythonize`` command on .pyx file(s) in the ``src`` folder, if
this is not automatically done during installing the ML-IAP
package. Please do **not** run ``cythonize`` in the ``src/ML-IAP``
folder, as that can lead to compilation errors if Python support
is not enabled. If you did this by accident, please remove the
generated .cpp and .h files.
----------
@ -1054,12 +1056,12 @@ binary package provided by your operating system.
----------
.. _user-adios:
.. _adios:
USER-ADIOS package
ADIOS package
-----------------------------------
The USER-ADIOS package requires the `ADIOS I/O library
The ADIOS package requires the `ADIOS I/O library
<https://github.com/ornladios/ADIOS2>`_, version 2.3.1 or newer. Make
sure that you have ADIOS built either with or without MPI to match if
you build LAMMPS with or without MPI. ADIOS compilation settings for
@ -1075,38 +1077,38 @@ systems.
.. code-block:: bash
-D ADIOS2_DIR=path # path is where ADIOS 2.x is installed
-D PKG_USER-ADIOS=yes
-D PKG_ADIOS=yes
.. tab:: Traditional make
Turn on the USER-ADIOS package before building LAMMPS. If the
Turn on the ADIOS package before building LAMMPS. If the
ADIOS 2.x software is installed in PATH, there is nothing else to
do:
.. code-block:: bash
$ make yes-user-adios
$ make yes-adios
otherwise, set ADIOS2_DIR environment variable when turning on the package:
.. code-block:: bash
$ ADIOS2_DIR=path make yes-user-adios # path is where ADIOS 2.x is installed
$ ADIOS2_DIR=path make yes-adios # path is where ADIOS 2.x is installed
----------
.. _user-atc:
.. _atc:
USER-ATC package
ATC package
-------------------------------
The USER-ATC package requires the MANYBODY package also be installed.
The ATC package requires the MANYBODY package also be installed.
.. tabs::
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-ATC=yes``
No additional settings are needed besides ``-D PKG_ATC=yes``
and ``-D PKG_MANYBODY=yes``.
.. tab:: Traditional make
@ -1149,16 +1151,16 @@ The USER-ATC package requires the MANYBODY package also be installed.
----------
.. _user-awpmd:
.. _awpmd:
USER-AWPMD package
AWPMD package
------------------
.. tabs::
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-AQPMD=yes``.
No additional settings are needed besides ``-D PKG_AQPMD=yes``.
.. tab:: Traditional make
@ -1200,9 +1202,9 @@ USER-AWPMD package
----------
.. _user-colvars:
.. _colvars:
USER-COLVARS package
COLVARS package
---------------------------------------
This package includes the `Colvars library
@ -1216,7 +1218,7 @@ be built for the most part with all major versions of the C++ language.
This is the recommended build procedure for using Colvars in
LAMMPS. No additional settings are normally needed besides
``-D PKG_USER-COLVARS=yes``.
``-D PKG_COLVARS=yes``.
.. tab:: Traditional make
@ -1259,9 +1261,9 @@ be built for the most part with all major versions of the C++ language.
----------
.. _user-pace:
.. _ml-pace:
USER-PACE package
ML-PACE package
-----------------------------
This package requires a library that can be downloaded and built
@ -1274,8 +1276,8 @@ at: `https://github.com/ICAMS/lammps-user-pace/ <https://github.com/ICAMS/lammps
.. tab:: CMake build
By default the library will be downloaded from the git repository
and built automatically when the USER-PACE package is enabled with
``-D PKG_USER-PACE=yes``. The location for the sources may be
and built automatically when the ML-PACE package is enabled with
``-D PKG_ML-PACE=yes``. The location for the sources may be
customized by setting the variable ``PACELIB_URL`` when
configuring with CMake (e.g. to use a local archive on machines
without internet access). Since CMake checks the validity of the
@ -1286,7 +1288,7 @@ at: `https://github.com/ICAMS/lammps-user-pace/ <https://github.com/ICAMS/lammps
.. tab:: Traditional make
You can download and build the USER-PACE library
You can download and build the ML-PACE library
in one step from the ``lammps/src`` dir, using these commands,
which invoke the ``lib/pace/Install.py`` script.
@ -1299,9 +1301,9 @@ at: `https://github.com/ICAMS/lammps-user-pace/ <https://github.com/ICAMS/lammps
----------
.. _user-plumed:
.. _plumed:
USER-PLUMED package
PLUMED package
-------------------------------------
.. _plumedinstall: https://plumed.github.io/doc-master/user-doc/html/_installation.html
@ -1309,7 +1311,7 @@ USER-PLUMED package
Before building LAMMPS with this package, you must first build PLUMED.
PLUMED can be built as part of the LAMMPS build or installed separately
from LAMMPS using the generic `PLUMED installation instructions <plumedinstall_>`_.
The USER-PLUMED package has been tested to work with Plumed versions
The PLUMED package has been tested to work with Plumed versions
2.4.x, 2.5.x, and 2.6.x and will error out, when trying to run calculations
with a different version of the Plumed kernel.
@ -1345,7 +1347,7 @@ LAMMPS build.
.. tab:: CMake build
When the ``-D PKG_USER-PLUMED=yes`` flag is included in the cmake
When the ``-D PKG_PLUMED=yes`` flag is included in the cmake
command you must ensure that GSL is installed in locations that
are specified in your environment. There are then two additional
variables that control the manner in which PLUMED is obtained and
@ -1378,7 +1380,7 @@ LAMMPS build.
.. tab:: Traditional make
PLUMED needs to be installed before the USER-PLUMED package is
PLUMED needs to be installed before the PLUMED package is
installed so that LAMMPS can find the right settings when
compiling and linking the LAMMPS executable. You can either
download and build PLUMED inside the LAMMPS plumed library folder
@ -1403,12 +1405,12 @@ LAMMPS build.
build to use. A new file ``lib/plumed/Makefile.lammps`` is also
created with settings suitable for LAMMPS to compile and link
PLUMED using the desired linkage mode. After this step is
completed, you can install the USER-PLUMED package and compile
completed, you can install the PLUMED package and compile
LAMMPS in the usual manner:
.. code-block:: bash
$ make yes-user-plumed
$ make yes-plumed
$ make machine
Once this compilation completes you should be able to run LAMMPS
@ -1423,15 +1425,15 @@ LAMMPS build.
If you want to change the linkage mode, you have to re-run "make
lib-plumed" with the desired settings **and** do a re-install if
the USER-PLUMED package with "make yes-user-plumed" to update the
the PLUMED package with "make yes-plumed" to update the
required makefile settings with the changes in the lib/plumed
folder.
----------
.. _user-h5md:
.. _h5md:
USER-H5MD package
H5MD package
---------------------------------
To build with this package you must have the HDF5 software package
@ -1442,7 +1444,7 @@ the HDF5 library.
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-H5MD=yes``.
No additional settings are needed besides ``-D PKG_H5MD=yes``.
This should auto-detect the H5MD library on your system. Several
advanced CMake H5MD options exist if you need to specify where it
@ -1474,13 +1476,13 @@ the HDF5 library.
----------
.. _user-hdnnp:
.. _ml-hdnnp:
USER-HDNNP package
---------------------------------
ML-HDNNP package
----------------
To build with the USER-HDNNP package it is required to download and build the
external `n2p2 <https://github.com/CompPhysVienna/n2p2>`__ library ``v2.1.4``
To build with the ML-HDNNP package it is required to download and build the
external `n2p2 <https://github.com/CompPhysVienna/n2p2>`_ library ``v2.1.4``
(or higher). The LAMMPS build process offers an automatic download and
compilation of *n2p2* or allows you to choose the installation directory of
*n2p2* manually. Please see the boxes below for the CMake and traditional build
@ -1490,7 +1492,7 @@ In case of a manual installation of *n2p2* you only need to build the *n2p2* cor
library ``libnnp`` and interface library ``libnnpif``. When using GCC it should
suffice to execute ``make libnnpif`` in the *n2p2* ``src`` directory. For more
details please see ``lib/hdnnp/README`` and the `n2p2 build documentation
<https://compphysvienna.github.io/n2p2/topics/build.html>`__.
<https://compphysvienna.github.io/n2p2/topics/build.html>`_.
.. tabs::
@ -1528,24 +1530,24 @@ details please see ``lib/hdnnp/README`` and the `n2p2 build documentation
----------
.. _user-intel:
.. _intel:
USER-INTEL package
INTEL package
-----------------------------------
To build with this package, you must choose which hardware you want to
build for, either x86 CPUs or Intel KNLs in offload mode. You should
also typically :ref:`install the USER-OMP package <user-omp>`, as it can be
used in tandem with the USER-INTEL package to good effect, as explained
also typically :ref:`install the OPENMP package <openmp>`, as it can be
used in tandem with the INTEL package to good effect, as explained
on the :doc:`Speed_intel` page.
When using Intel compilers version 16.0 or later is required. You can
also use the GNU or Clang compilers and they will provide performance
improvements over regular styles and USER-OMP styles, but less so than
improvements over regular styles and OPENMP styles, but less so than
with the Intel compilers. Please also note, that some compilers have
been found to apply memory alignment constraints incompletely or
incorrectly and thus can cause segmentation faults in otherwise correct
code when using features from the USER-INTEL package.
code when using features from the INTEL package.
.. tabs::
@ -1562,7 +1564,7 @@ code when using features from the USER-INTEL package.
Choose which hardware to compile for in Makefile.machine via the
following settings. See ``src/MAKE/OPTIONS/Makefile.intel_cpu*``
and ``Makefile.knl`` files for examples. and
``src/USER-INTEL/README`` for additional information.
``src/INTEL/README`` for additional information.
For CPUs:
@ -1598,9 +1600,9 @@ TBB and MKL.
----------
.. _user-mdi:
.. _mdi:
USER-MDI package
MDI package
-----------------------------
.. tabs::
@ -1627,9 +1629,9 @@ USER-MDI package
----------
.. _user-mesont:
.. _mesont:
USER-MESONT package
MESONT package
-------------------------
This package includes a library written in Fortran 90 in the
@ -1642,7 +1644,7 @@ they will be downloaded the first time this package is installed.
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-MESONT=yes``
No additional settings are needed besides ``-D PKG_MESONT=yes``
.. tab:: Traditional make
@ -1669,9 +1671,9 @@ they will be downloaded the first time this package is installed.
----------
.. _user-molfile:
.. _molfile:
USER-MOLFILE package
MOLFILE package
---------------------------------------
.. tabs::
@ -1681,9 +1683,9 @@ USER-MOLFILE package
.. code-block:: bash
-D MOLFILE_INCLUDE_DIR=path # (optional) path where VMD molfile plugin headers are installed
-D PKG_USER-MOLFILE=yes
-D PKG_MOLFILE=yes
Using ``-D PKG_USER-MOLFILE=yes`` enables the package, and setting
Using ``-D PKG_MOLFILE=yes`` enables the package, and setting
``-D MOLFILE_INCLUDE_DIR`` allows to provide a custom location for
the molfile plugin header files. These should match the ABI of the
plugin files used, and thus one typically sets them to include
@ -1707,9 +1709,9 @@ USER-MOLFILE package
----------
.. _user-netcdf:
.. _netcdf:
USER-NETCDF package
NETCDF package
-------------------------------------
To build with this package you must have the NetCDF library installed
@ -1719,7 +1721,7 @@ on your system.
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-NETCDF=yes``.
No additional settings are needed besides ``-D PKG_NETCDF=yes``.
This should auto-detect the NETCDF library if it is installed on
your system at standard locations. Several advanced CMake NETCDF
@ -1738,9 +1740,9 @@ on your system.
----------
.. _user-omp:
.. _openmp:
USER-OMP package
OPENMP package
-------------------------------
.. tabs::
@ -1748,13 +1750,13 @@ USER-OMP package
.. tab:: CMake build
No additional settings are required besides ``-D
PKG_USER-OMP=yes``. If CMake detects OpenMP compiler support, the
USER-OMP code will be compiled with multi-threading support
PKG_OPENMP=yes``. If CMake detects OpenMP compiler support, the
OPENMP code will be compiled with multi-threading support
enabled, otherwise as optimized serial code.
.. tab:: Traditional make
To enable multi-threading support in the USER-OMP package (and
To enable multi-threading support in the OPENMP package (and
other styles supporting OpenMP) the following compile and link
flags must be added to your Makefile.machine file. See
``src/MAKE/OPTIONS/Makefile.omp`` for an example.
@ -1771,12 +1773,12 @@ USER-OMP package
----------
.. _user-qmmm:
.. _qmmm:
USER-QMMM package
QMMM package
---------------------------------
For using LAMMPS to do QM/MM simulations via the USER-QMMM package you
For using LAMMPS to do QM/MM simulations via the QMMM package you
need to build LAMMPS as a library. A LAMMPS executable with :doc:`fix
qmmm <fix_qmmm>` included can be built, but will not be able to do a
QM/MM simulation on as such. You must also build a QM code - currently
@ -1799,11 +1801,11 @@ verified to work in February 2020 with Quantum Espresso versions 6.3 to
libqmmm.a) are not included in the static LAMMPS library and
(currently) not installed, while their code is included in the
shared LAMMPS library. Thus a typical command line to configure
building LAMMPS for USER-QMMM would be:
building LAMMPS for QMMM would be:
.. code-block:: bash
cmake -C ../cmake/presets/minimal.cmake -D PKG_USER-QMMM=yes \
cmake -C ../cmake/presets/basic.cmake -D PKG_QMMM=yes \
-D BUILD_LIB=yes -DBUILD_SHARED_LIBS=yes ../cmake
After completing the LAMMPS build and also configuring and
@ -1846,9 +1848,9 @@ verified to work in February 2020 with Quantum Espresso versions 6.3 to
----------
.. _user-quip:
.. _ml-quip:
USER-QUIP package
ML-QUIP package
---------------------------------
To build with this package, you must download and build the QUIP
@ -1866,7 +1868,7 @@ to be downloaded and configured. See step 1 and step 1.1 in the
-D QUIP_LIBRARY=path # path to libquip.a (only needed if a custom location)
CMake will **not** download and build the QUIP library. But once you have
done that, a CMake build of LAMMPS with ``-D PKG_USER-QUIP=yes`` should
done that, a CMake build of LAMMPS with ``-D PKG_ML-QUIP=yes`` should
work. Set the ``QUIP_LIBRARY`` variable if CMake cannot find the QUIP library.
.. tab:: Traditional make
@ -1881,9 +1883,9 @@ to be downloaded and configured. See step 1 and step 1.1 in the
----------
.. _user-scafacos:
.. _scafacos:
USER-SCAFACOS package
SCAFACOS package
-----------------------------------------
To build with this package, you must download and build the
@ -1928,9 +1930,9 @@ To build with this package, you must download and build the
----------
.. _user-smd:
.. _machdyn:
USER-SMD package
MACHDYN package
-------------------------------
To build with this package, you must download the Eigen3 library.
@ -1972,9 +1974,9 @@ Eigen3 is a template library, so you do not need to build it.
----------
.. _user-vtk:
.. _vtk:
USER-VTK package
VTK package
-------------------------------
To build with this package you must have the VTK library installed on
@ -1984,7 +1986,7 @@ your system.
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-VTK=yes``.
No additional settings are needed besides ``-D PKG_VTK=yes``.
This should auto-detect the VTK library if it is installed on your
system at standard locations. Several advanced VTK options exist

View File

@ -117,10 +117,10 @@ settings may become outdated:
make mac # build serial LAMMPS on a Mac
make mac_mpi # build parallel LAMMPS on a Mac
make intel_cpu # build with the USER-INTEL package optimized for CPUs
make knl # build with the USER-INTEL package optimized for KNLs
make intel_cpu # build with the INTEL package optimized for CPUs
make knl # build with the INTEL package optimized for KNLs
make opt # build with the OPT package optimized for CPUs
make omp # build with the USER-OMP package optimized for OpenMP
make omp # build with the OPENMP package optimized for OpenMP
make kokkos_omp # build with the KOKKOS package for OpenMP
make kokkos_cuda_mpi # build with the KOKKOS package for GPUs
make kokkos_phi # build with the KOKKOS package for KNLs

View File

@ -204,7 +204,7 @@ be multiple tests run automatically:
.. parsed-literal::
Found 33 standard and 41 user packages
Found 74 packages
Standard package NEWPACKAGE missing in Packages_standard.rst
Standard package NEWPACKAGE missing in Packages_details.rst

View File

@ -30,17 +30,37 @@ steps, as explained on the :doc:`Build extras <Build_extras>` page.
These links take you to the extra instructions for those select
packages:
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`COMPRESS <compress>` | :ref:`GPU <gpu>` | :ref:`KIM <kim>` | :ref:`KOKKOS <kokkos>` | :ref:`LATTE <latte>` | :ref:`MESSAGE <message>` |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`MSCG <mscg>` | :ref:`OPT <opt>` | :ref:`POEMS <poems>` | :ref:`PYTHON <python>` | :ref:`VORONOI <voronoi>` | :ref:`USER-ADIOS <user-adios>` |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`USER-ATC <user-atc>` | :ref:`USER-AWPMD <user-awpmd>` | :ref:`USER-COLVARS <user-colvars>` | :ref:`USER-H5MD <user-h5md>` | :ref:`USER-HDNNP <user-hdnnp>` | :ref:`USER-INTEL <user-intel>` |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`USER-MOLFILE <user-molfile>` | :ref:`USER-NETCDF <user-netcdf>` | :ref:`USER-PACE <user-pace>` | :ref:`USER-PLUMED <user-plumed>` | :ref:`USER-OMP <user-omp>` | :ref:`USER-QMMM <user-qmmm>` |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`USER-QUIP <user-quip>` | :ref:`USER-SCAFACOS <user-scafacos>` | :ref:`USER-SMD <user-smd>` | :ref:`USER-VTK <user-vtk>` | | |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
.. table_from_list::
:columns: 6
* :ref:`ADIOS <adios>`
* :ref:`ATC <atc>`
* :ref:`AWPMD <awpmd>`
* :ref:`COLVARS <colvars>`
* :ref:`COMPRESS <compress>`
* :ref:`GPU <gpu>`
* :ref:`H5MD <h5md>`
* :ref:`INTEL <intel>`
* :ref:`KIM <kim>`
* :ref:`KOKKOS <kokkos>`
* :ref:`LATTE <latte>`
* :ref:`MACHDYN <machdyn>`
* :ref:`MESSAGE <message>`
* :ref:`ML-HDNNP <ml-hdnnp>`
* :ref:`ML-PACE <ml-pace>`
* :ref:`ML-QUIP <ml-quip>`
* :ref:`MOLFILE <molfile>`
* :ref:`MSCG <mscg>`
* :ref:`NETCDF <netcdf>`
* :ref:`OPENMP <openmp>`
* :ref:`OPT <opt>`
* :ref:`PLUMED <plumed>`
* :ref:`POEMS <poems>`
* :ref:`PYTHON <python>`
* :ref:`QMMM <qmmm>`
* :ref:`SCAFACOS <scafacos>`
* :ref:`VORONOI <voronoi>`
* :ref:`VTK <vtk>`
The mechanism for including packages is simple but different for CMake
versus make.
@ -58,14 +78,10 @@ versus make.
.. code-block:: csh
-D PKG_MANYBODY=yes
-D PKG_USER-INTEL=yes
-D PKG_INTEL=yes
All standard and user packages are included the same way. Note
that USER packages have a hyphen between USER and the rest of the
package name, not an underscore.
See the shortcut section below for how to install many packages at
once with CMake.
All packages are included the same way. See the shortcut section
below for how to install many packages at once with CMake.
.. note::
@ -89,12 +105,10 @@ versus make.
.. code-block:: bash
make no-rigid
make yes-user-intel
make yes-intel
All standard and user packages are included the same way.
See the shortcut section below for how to install many packages at
once with make.
All packages are included the same way. See the shortcut section
below for how to install many packages at once with make.
.. note::
@ -126,7 +140,7 @@ other files dependent on that package are also excluded.
.. note::
By default no package is installed. Prior to August 2018, however,
By default no packages are installed. Prior to August 2018, however,
if you downloaded a tarball, 3 packages (KSPACE, MANYBODY, MOLECULE)
were pre-installed via the traditional make procedure in the ``src``
directory. That is no longer the case, so that CMake will build
@ -153,7 +167,7 @@ one of them as a starting point and customize it to your needs.
.. code-block:: bash
cmake -C ../cmake/presets/minimal.cmake [OPTIONS] ../cmake # enable just a few core packages
cmake -C ../cmake/presets/basic.cmake [OPTIONS] ../cmake # enable just a few core packages
cmake -C ../cmake/presets/most.cmake [OPTIONS] ../cmake # enable most packages
cmake -C ../cmake/presets/download.cmake [OPTIONS] ../cmake # enable packages which download sources or potential files
cmake -C ../cmake/presets/nolib.cmake [OPTIONS] ../cmake # disable packages that do require extra libraries or tools
@ -208,10 +222,10 @@ These commands install/un-install sets of packages:
make yes-all # install all packages
make no-all # uninstall all packages
make yes-standard or make yes-std # install standard packages
make no-standard or make no-std # uninstall standard packages
make yes-user # install user packages
make no-user # uninstall user packages
make yes-basic # install a few commonly used packages'
make no-basic # remove a few commonly used packages'
make yes-most # install most packages w/o libs'
make no-most # remove most packages w/o libs'
make yes-lib # install packages that require extra libraries
make no-lib # uninstall packages that require extra libraries
make yes-ext # install packages that require external libraries
@ -225,15 +239,14 @@ package`` will list all the these commands.
Installing or un-installing a package for the make based build process
works by simply copying files back and forth between the main source
directory src and the sub-directories with the package name (e.g.
src/KSPACE, src/USER-ATC), so that the files are included or excluded
src/KSPACE, src/ATC), so that the files are included or excluded
when LAMMPS is built. Only source files in the src folder will be
compiled.
The following make commands help manage files that exist in both the
src directory and in package sub-directories. You do not normally
need to use these commands unless you are editing LAMMPS files or are
:doc:`installing a patch <Install_patch>` downloaded from the LAMMPS web
site.
updating LAMMPS via git.
Type ``make package-status`` or ``make ps`` to show which packages are
currently installed. For those that are installed, it will list any
@ -245,10 +258,10 @@ currently installed, without listing the status of packages that are
not installed.
Type ``make package-update`` or ``make pu`` to overwrite src files with
files from the package sub-directories if the package is installed.
It should be used after a :doc:`patch has been applied <Install_patch>`,
since patches only update the files in the package sub-directory, but
not the src files.
files from the package sub-directories if the package is installed. It
should be used after the checkout has been :doc:`updated or changed
withy git <Install_git>`, this will only update the files in the package
sub-directories, but not the copies in the src folder.
Type ``make package-overwrite`` to overwrite files in the package
sub-directories with src files.

View File

@ -64,7 +64,7 @@ LAMMPS can use them if they are available on your system.
selected, then CMake will try to detect, if threaded FFTW
libraries are available and enable them by default. This setting
is independent of whether OpenMP threads are enabled and a
packages like KOKKOS or USER-OMP is used. If CMake cannot detect
packages like KOKKOS or OPENMP is used. If CMake cannot detect
the FFT library, you can set these variables to assist:
.. code-block:: bash
@ -242,8 +242,8 @@ does not support 64-bit integers or incurs performance penalties when
using them.
These are limits for the core of the LAMMPS code, specific features or
some styles may impose additional limits. The :ref:`USER-ATC
<PKG-USER-ATC>` package cannot be compiled with the "bigbig" setting.
some styles may impose additional limits. The :ref:`ATC
<PKG-ATC>` package cannot be compiled with the "bigbig" setting.
Also, there are limitations when using the library interface where some
functions with known issues have been replaced by dummy calls printing a
corresponding error message rather than crashing randomly or corrupting

View File

@ -18,7 +18,7 @@ Bond_style potentials
All LAMMPS :doc:`bond_style <bond_style>` commands. Some styles have
accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::
@ -57,7 +57,7 @@ Angle_style potentials
All LAMMPS :doc:`angle_style <angle_style>` commands. Some styles have
accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::
@ -99,7 +99,7 @@ Dihedral_style potentials
All LAMMPS :doc:`dihedral_style <dihedral_style>` commands. Some styles
have accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::
@ -135,7 +135,7 @@ Improper_style potentials
All LAMMPS :doc:`improper_style <improper_style>` commands. Some styles
have accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::

View File

@ -16,8 +16,8 @@ Compute commands
An alphabetic list of all LAMMPS :doc:`compute <compute>` commands.
Some styles have accelerated versions. This is indicated by
additional letters in parenthesis: g = GPU, i = USER-INTEL, k =
KOKKOS, o = USER-OMP, t = OPT.
additional letters in parenthesis: g = GPU, i = INTEL, k =
KOKKOS, o = OPENMP, t = OPT.
.. table_from_list::
:columns: 5

View File

@ -16,7 +16,7 @@ Fix commands
An alphabetic list of all LAMMPS :doc:`fix <fix>` commands. Some styles
have accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::

View File

@ -16,7 +16,7 @@ KSpace solvers
All LAMMPS :doc:`kspace_style <kspace_style>` solvers. Some styles have
accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::

View File

@ -16,7 +16,7 @@ Pair_style potentials
All LAMMPS :doc:`pair_style <pair_style>` commands. Some styles have
accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::
@ -190,7 +190,7 @@ OPT.
* :doc:`lubricateU/poly <pair_lubricateU>`
* :doc:`mdpd <pair_mesodpd>`
* :doc:`mdpd/rhosum <pair_mesodpd>`
* :doc:`meam/c <pair_meamc>`
* :doc:`meam <pair_meam>`
* :doc:`meam/spline (o) <pair_meam_spline>`
* :doc:`meam/sw/spline <pair_meam_sw_spline>`
* :doc:`mesocnt <pair_mesocnt>`

View File

@ -25,23 +25,20 @@ The reset_ids command has been renamed to :doc:`reset_atom_ids <reset_atom_ids>`
MEAM package
------------
The MEAM package has been removed since it was superseded by the
:ref:`USER-MEAMC package <PKG-USER-MEAMC>`. The code in
the USER-MEAMC package is a translation of the Fortran code of MEAM into C++,
which removes several restrictions (e.g. there can be multiple instances
in hybrid pair styles) and allows for some optimizations leading
to better performance. The new pair style :doc:`meam/c <pair_meamc>` has
the exact same syntax as the old "meam" pair style and thus pair style
meam is an alias to the new style and backward
compatibility of old inputs is preserved.
The MEAM package in Fortran has been replaced by a C++ implementation.
The code in the :ref:`MEAM package <PKG-MEAM>` is a translation of the
Fortran code of MEAM into C++, which removes several restrictions
(e.g. there can be multiple instances in hybrid pair styles) and allows
for some optimizations leading to better performance. The pair style
:doc:`meam <pair_meam>` has the exact same syntax.
REAX package
------------
The REAX package has been removed since it was superseded by the
:ref:`USER-REAXC package <PKG-USER-REAXC>`. The USER-REAXC
:ref:`REAXFF package <PKG-REAXFF>`. The REAXFF
package has been tested to yield equivalent results to the REAX package,
offers better performance, supports OpenMP multi-threading via USER-OMP,
offers better performance, supports OpenMP multi-threading via OPENMP,
and GPU and threading parallelization through KOKKOS. The new pair styles
are not syntax compatible with the removed reax pair style, so input
files will have to be adapted.

View File

@ -404,8 +404,8 @@ noise). Then it will restart from the previously generated restart and
compare with the reference and also start from the data file. A final
check will use multi-cutoff r-RESPA (if supported by the pair style) at
a 1:1 split and compare to the Verlet results. These sets of tests are
run with multiple test fixtures for accelerated styles (OPT, USER-OMP,
USER-INTEL) and for the latter two with 4 OpenMP threads enabled. For
run with multiple test fixtures for accelerated styles (OPT, OPENMP,
INTEL) and for the latter two with 4 OpenMP threads enabled. For
these tests the relative error (epsilon) is lowered by a common factor
due to the additional numerical noise, but the tests are still comparing
to the same reference data.

View File

@ -1,11 +1,11 @@
Errors
******
These doc pages describe the errors you can encounter when using
LAMMPS. The common problems include conceptual issues. The messages
and warnings doc pages give complete lists of all the messages the
code may generate (except those generated by USER packages), with
additional details for many of them.
These doc pages describe many of the error and warning message you can
encounter when using LAMMPS. The common problems include conceptual
issues. The messages and warnings doc pages give complete lists of all
the messages the code may generate, with additional details for many of
them.
.. toctree::
:maxdepth: 1

View File

@ -14,10 +14,6 @@ For example, a message like this:
means that line #78 in the file src/velocity.cpp generated the error.
Looking in the source code may help you figure out what went wrong.
Note that error messages from :doc:`user-contributed packages <Packages_user>` are not listed here. If such an error
occurs and is not self-explanatory, you will need to look in the source
code or contact the author of the package.
Doc page with :doc:`WARNING messages <Errors_warnings>`
----------
@ -5899,7 +5895,7 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
other.
*Must set number of threads via package omp command*
Because you are using the USER-OMP package, set the number of threads
Because you are using the OPENMP package, set the number of threads
via its settings, not by the pair_style snap nthreads setting.
*Must shrink-wrap piston boundary*
@ -6344,16 +6340,16 @@ keyword to allow for additional bonds to be formed
The GPU package must be installed via "make yes-gpu" before LAMMPS is
built.
*Package intel command without USER-INTEL package installed*
The USER-INTEL package must be installed via "make yes-user-intel"
*Package intel command without INTEL package installed*
The INTEL package must be installed via "make yes-intel"
before LAMMPS is built.
*Package kokkos command without KOKKOS package enabled*
The KOKKOS package must be installed via "make yes-kokkos" before
LAMMPS is built, and the "-k on" must be used to enable the package.
*Package omp command without USER-OMP package installed*
The USER-OMP package must be installed via "make yes-user-omp" before
*Package omp command without OPENMP package installed*
The OPENMP package must be installed via "make yes-openmp" before
LAMMPS is built.
*Pair body requires atom style body*
@ -8064,13 +8060,13 @@ keyword to allow for additional bonds to be formed
*Using suffix gpu without GPU package installed*
Self-explanatory.
*Using suffix intel without USER-INTEL package installed*
*Using suffix intel without INTEL package installed*
Self-explanatory.
*Using suffix kk without KOKKOS package enabled*
Self-explanatory.
*Using suffix omp without USER-OMP package installed*
*Using suffix omp without OPENMP package installed*
Self-explanatory.
*Using update dipole flag requires atom attribute mu*

View File

@ -14,10 +14,6 @@ generated. For example, a message like this:
means that line #187 in the file src/domain.cpp generated the error.
Looking in the source code may help you figure out what went wrong.
Note that warning messages from :doc:`user-contributed packages <Packages_user>` are not listed here. If such a warning
occurs and is not self-explanatory, you will need to look in the source
code or contact the author of the package.
Doc page with :doc:`ERROR messages <Errors_messages>`
----------
@ -529,7 +525,7 @@ This will most likely cause errors in kinetic fluctuations.
*OMP_NUM_THREADS environment is not set.*
This environment variable must be set appropriately to use the
USER-OMP package.
OPENMP package.
*One or more atoms are time integrated more than once*
This is probably an error since you typically do not want to

View File

@ -205,11 +205,13 @@ Uppercase directories
+------------+--------------------------------------------------------------------------------------------------+
| MC | using LAMMPS in a Monte Carlo mode to relax the energy of a system |
+------------+--------------------------------------------------------------------------------------------------+
| PACKAGES | examples for specific packages and contributed commands in USER-MISC |
+------------+--------------------------------------------------------------------------------------------------+
| SPIN | examples for features of the SPIN package |
+------------+--------------------------------------------------------------------------------------------------+
| UNITS | examples that run the same simulation in lj, real, metal units |
+------------+--------------------------------------------------------------------------------------------------+
| USER | examples for USER packages and USER-contributed commands |
| USER-MISC | examples for commands in the USER-MISC packages |
+------------+--------------------------------------------------------------------------------------------------+
| VISCOSITY | compute viscosity via several methods |
+------------+--------------------------------------------------------------------------------------------------+
@ -217,11 +219,14 @@ Uppercase directories
Nearly all of these directories have README files which give more
details on how to understand and use their contents.
The USER directory has a large number of sub-directories which
correspond by name to a USER package. They contain scripts that
illustrate how to use the command(s) provided in that package. Many
The PACKAGES directory has a large number of sub-directories which
correspond by name to specific packages. They contain scripts that
illustrate how to use the command(s) provided in those packages. Many
of the sub-directories have their own README files which give further
instructions. See the :doc:`Packages_details <Packages_details>` doc
page for more info on specific USER packages.
page for more info on specific packages.
Similarly the USER-MISC directory has sub-directories for examples
corresponding to individual commands or styles in the USER-MISC package.
.. _openkim: https://openkim.org

View File

@ -382,9 +382,9 @@ change some variables later with additional *-D* flags. A few examples:
.. code-block:: bash
cmake -C ../cmake/presets/minimal.cmake -D PKG_MISC=on ../cmake
cmake -C ../cmake/presets/basic.cmake -D PKG_MISC=on ../cmake
cmake -C ../cmake/presets/clang.cmake -C ../cmake/presets/most.cmake ../cmake
cmake -C ../cmake/presets/minimal.cmake -D BUILD_MPI=off ../cmake
cmake -C ../cmake/presets/basic.cmake -D BUILD_MPI=off ../cmake
The first command will install the packages ``KSPACE``, ``MANYBODY``,
``MOLECULE``, ``RIGID`` and ``MISC``; the first four from the preset
@ -400,7 +400,7 @@ It is also possible to do this incrementally.
.. code-block:: bash
cmake -C ../cmake/presets/minimal.cmake ../cmake
cmake -C ../cmake/presets/basic.cmake ../cmake
cmake -D PKG_MISC=on .
will achieve the same final configuration as in the first example above.

View File

@ -2,14 +2,14 @@ Tutorial for Thermalized Drude oscillators in LAMMPS
====================================================
This tutorial explains how to use Drude oscillators in LAMMPS to
simulate polarizable systems using the USER-DRUDE package. As an
simulate polarizable systems using the DRUDE package. As an
illustration, the input files for a simulation of 250 phenol molecules
are documented. First of all, LAMMPS has to be compiled with the
USER-DRUDE package activated. Then, the data file and input scripts
DRUDE package activated. Then, the data file and input scripts
have to be modified to include the Drude dipoles and how to handle
them.
Example input scripts available: examples/USER/drude
Example input scripts available: examples/PACKAGES/drude
----------
@ -82,7 +82,7 @@ The data file is similar to a standard LAMMPS data file for
to their DC should appear in the data file as normal atoms and bonds.
You can use the *polarizer* tool (Python script distributed with the
USER-DRUDE package) to convert a non-polarizable data file (here
DRUDE package) to convert a non-polarizable data file (here
*data.102494.lmp*\ ) to a polarizable data file (\ *data-p.lmp*\ )
.. code-block:: bash

View File

@ -5,11 +5,11 @@ Manifolds (surfaces)
This doc page is not about a LAMMPS input script command, but about
manifolds, which are generalized surfaces, as defined and used by the
USER-MANIFOLD package, to track particle motion on the manifolds. See
the src/USER-MANIFOLD/README file for more details about the package
MANIFOLD package, to track particle motion on the manifolds. See
the src/MANIFOLD/README file for more details about the package
and its commands.
Below is a list of currently supported manifolds by the USER-MANIFOLD
Below is a list of currently supported manifolds by the MANIFOLD
package, their parameters and a short description of them. The
parameters listed here are in the same order as they should be passed
to the relevant fixes.

View File

@ -10,7 +10,7 @@ systems can be simulated in LAMMPS using three methods:
* the adiabatic core-shell method, implemented in the
:doc:`CORESHELL <Howto_coreshell>` package,
* the thermalized Drude dipole method, implemented in the
:doc:`USER-DRUDE <Howto_drude>` package.
:doc:`DRUDE <Howto_drude>` package.
The fluctuating charge method calculates instantaneous charges on
interacting atoms based on the electronegativity equalization

View File

@ -208,7 +208,7 @@ Presets are a way to specify a collection of CMake options using a file.
.. code-block:: bash
cmake ../cmake/presets/minimal.cmake ../cmake
cmake ../cmake/presets/basic.cmake ../cmake
This command configures the build and generates the necessary Makefiles. To compile the binary, run the make command.

View File

@ -18,7 +18,6 @@ need the source code.
Install_tarball
Install_git
Install_patch
These are the files and sub-directories in the LAMMPS distribution:
@ -27,6 +26,8 @@ These are the files and sub-directories in the LAMMPS distribution:
+------------+-------------------------------------------+
| LICENSE | GNU General Public License (GPL) |
+------------+-------------------------------------------+
| SECURITY.md| Security Policy for the LAMMPS package |
+------------+-------------------------------------------+
| bench | benchmark problems |
+------------+-------------------------------------------+
| cmake | CMake build files |

View File

@ -120,8 +120,11 @@ changed. How to do this depends on the build system you are using.
$ make package-update # sync package files with src files
$ make foo # re-build for your machine (mpi, serial, etc)
Just as described on the :doc:`Apply patch <Install_patch>` page,
after a patch has been installed.
to enforce consistency of the source between the src folder
and package directories. This is OK to do even if you don't
use any packages. The "make purge" command removes any deprecated
src files if they were removed by the patch from a package
sub-directory.
.. warning::

View File

@ -1,96 +0,0 @@
Applying patches
----------------
It is easy to stay current with the most recent LAMMPS patch releases
if you use git to track the LAMMPS development. Instructions for
how to stay current are on the
:doc:`Download the LAMMPS source with git <Install_git>` page.
If you prefer to download a tarball, as described on the
:doc:`tarball download <Install_tarball>` page, you can stay current by
downloading "patch files" when new patch releases are made. A link to
a patch file is posted on the
`bug fixes and new feature page <https://www.lammps.org/bug.html>`_
of the LAMMPS website, along
with a list of changed files and details about what is in the new patch
release. This page explains how to apply the patch file to your local
LAMMPS directory.
.. note::
You should not apply patch files to a local git checkout of
LAMMPS, only to an unpacked tarball. Use git commands to
update such a version of the LAMMPS source code.
Here are the steps to apply a patch file. Note that if your version
of LAMMPS is several patch releases behind, you need to apply all the
intervening patch files in succession to bring your version of LAMMPS
up to date.
* Download the patch file. You may have to shift-click in your browser
to download the file instead of display it. Patch files have names
like patch.12Dec16.
* Put the patch file in your top-level LAMMPS directory, where the
LICENSE and README files are.
* Apply the patch by typing the following command from your top-level
LAMMPS directory, where the redirected file is the name of the patch
file.
.. code-block:: bash
$ patch -bp1 < patch.12Dec16
* A list of updated files print out to the screen. The -b switch
creates backup files of your originals (e.g. src/force.cpp.orig), so
you can manually undo the patch if something goes wrong.
* Once you have updated your local files you need to re-build LAMMPS.
If you are applying several patches successively, you only need to
do the rebuild once at the end. How to do it depends on the build
system you are using.
.. tabs::
.. tab:: CMake build
Change to your build folder and type:
.. code-block:: bash
cmake . --build
CMake should auto-detect whether it needs to re-run the CMake
configuration step and otherwise redo the build for all files
that have been changed or files that depend on changed files.
In case some build options have been changed or renamed, you
may have to update those by running:
.. code-block:: bash
cmake .
and then rebuild.
.. tab:: Traditional make
Switch to the src directory and type:
.. code-block:: bash
$ make purge # remove any deprecated src files
$ make package-update # sync package files with src files
$ make foo # re-build for your machine (mpi, serial, etc)
to enforce consistency of the source between the src folder
and package directories. This is OK to do even if you don't
use any packages. The "make purge" command removes any deprecated
src files if they were removed by the patch from a package
sub-directory.
.. warning::
If you wish to edit/change a src file that is from a package,
you should edit the version of the file inside the package
sub-directory with src, then re-install the package. The
version in the source directory is merely a copy and will be
wiped out if you type "make package-update".

View File

@ -47,15 +47,3 @@ release.
.. _git: https://github.com/lammps/lammps/releases
----------
If you download a current LAMMPS tarball, one way to stay current as
new patch tarballs are released, is to download a patch file which you
can apply to your local directory to update it for each new patch
release. (Or of course you could just download the newest tarball
periodically.)
The patch files are posted on the `bug and feature page <bug_>`_ of the
website, along with a list of changed files and details about what is
in the new patch release. Instructions for applying a patch file are
on the :doc:`Install patch <Install_patch>` page.

View File

@ -18,9 +18,9 @@ needed to run in parallel with MPI.
The LAMMPS binaries contain *all* :doc:`optional packages <Packages>`
included in the source distribution except: KIM, KOKKOS, MSCG, PYTHON,
USER-ADIOS, USER-H5MD, USER-NETCDF, USER-QMMM, USER-QUIP, and USER-VTK.
ADIOS, H5MD, NETCDF, QMMM, ML-QUIP, and VTK.
The serial version also does not include the MPIIO and
USER-LB packages. The GPU package is compiled for OpenCL with
LATBOLTZ packages. The GPU package is compiled for OpenCL with
mixed precision kernels.
The LAMMPS library is compiled as a shared library and the

View File

@ -29,19 +29,19 @@ The following folks deserve special recognition. Many of the packages
they have written are unique for an MD code and LAMMPS would not be as
general-purpose as it is without their expertise and efforts.
* Metin Aktulga (MSU), USER-REAXC package for C version of ReaxFF
* Mike Brown (Intel), GPU and USER-INTEL packages
* Colin Denniston (U Western Ontario), USER-LB package
* Georg Ganzenmuller (EMI), USER-SMD and USER-SPH packages
* Andres Jaramillo-Botero (Caltech), USER-EFF package for electron force field
* Reese Jones (Sandia) and colleagues, USER-ATC package for atom/continuum coupling
* Metin Aktulga (MSU), REAXFF package for C version of ReaxFF
* Mike Brown (Intel), GPU and INTEL packages
* Colin Denniston (U Western Ontario), LATBOLTZ package
* Georg Ganzenmuller (EMI), MACHDYN and SPH packages
* Andres Jaramillo-Botero (Caltech), EFF package for electron force field
* Reese Jones (Sandia) and colleagues, ATC package for atom/continuum coupling
* Christoph Kloss (DCS Computing), LIGGGHTS code for granular materials, built on top of LAMMPS
* Rudra Mukherjee (JPL), POEMS package for articulated rigid body motion
* Trung Ngyuen (Northwestern U), GPU and RIGID and BODY packages
* Mike Parks (Sandia), PERI package for Peridynamics
* Roy Pollock (LLNL), Ewald and PPPM solvers
* Christian Trott (Sandia), USER-CUDA and KOKKOS packages
* Ilya Valuev (JIHT), USER-AWPMD package for wave packet MD
* Christian Trott (Sandia), CUDA and KOKKOS packages
* Ilya Valuev (JIHT), AWPMD package for wave packet MD
* Greg Wagner (Northwestern U), MEAM package for MEAM potential
----------

View File

@ -31,7 +31,7 @@ that are not possible with existing input script commands.
applies to the core LAMMPS code and less so on add-on packages,
especially when those packages require additional code in the *lib*
folder, interface LAMMPS to Fortran libraries, or the code uses
static variables (like the USER-COLVARS package).
static variables (like the COLVARS package).
Another major issue to deal with is to correctly handle MPI.
Creating a LAMMPS instance requires passing an MPI communicator, or

View File

@ -53,5 +53,5 @@ in two stages: the callback function is registered with the pair style
and then called from the Pair::ev_tally() function, which is called for
each pair after force and energy has been computed for this pair. Then
the tallied values are retrieved with the standard compute_scalar or
compute_vector or compute_peratom methods. The :doc:`compute styles in the USER-TALLY package <compute_tally>`
compute_vector or compute_peratom methods. The :doc:`compute styles in the TALLY package <compute_tally>`
provide *examples* for utilizing this mechanism.

View File

@ -49,13 +49,11 @@ with gzip. Please only use gzip compression, as this works well and is
available on all platforms.
If the new features/files are broadly useful we may add them as core
files to LAMMPS or as part of a :doc:`standard package <Packages_standard>`. Else we will add them as a
user-contributed file or :doc:`user package <Packages_user>`. Examples
of user packages are in src sub-directories that start with USER. The
files to LAMMPS or as part of a :doc:`package <Packages_list>`. The
USER-MISC package is simply a collection of (mostly) unrelated single
files, which is the simplest way to have your contribution quickly
added to the LAMMPS distribution. All the standard and user packages
are listed and described on the :doc:`Packages details <Packages_details>` doc page.
files, which is the simplest way to have your contribution quickly added
to the LAMMPS distribution. All packages are listed and described
on the :doc:`Packages details <Packages_details>` doc page.
Note that by providing us files to release, you are agreeing to make
them open-source, i.e. we can release them under the terms of the GPL
@ -65,27 +63,19 @@ on request only and with files that are authorized for that kind of
distribution removed (e.g. interface to FFTW). See the
:doc:`LAMMPS license <Intro_opensource>` doc page for details.
With user packages and files, all we are really providing (aside from
the fame and fortune that accompanies having your name in the source
code and on the `Authors page <https://www.lammps.org/authors.html>`_
of the `LAMMPS WWW site <lws_>`_), is a means for you to distribute your
work to the LAMMPS user community, and a mechanism for others to
easily try out your new feature. This may help you find bugs or make
contact with new collaborators. Note that you're also implicitly
agreeing to support your code which means answer questions, fix bugs,
and maintain it if LAMMPS changes in some way that breaks it (an
unusual event).
.. note::
If you prefer to actively develop and support your add-on
feature yourself, then you may wish to make it available for download
from your own website, as a user package that LAMMPS users can add to
their copy of LAMMPS. See the `Offsite LAMMPS packages and tools <https://www.lammps.org/offsite.html>`_ page of the LAMMPS web
site for examples of groups that do this. We are happy to advertise
your package and web site from that page. Simply email the
`developers <https://www.lammps.org/authors.html>`_ with info about
your package and we will post it there.
If you prefer to actively develop and support your add-on feature
yourself, then you may wish to make it available for download from
your own website, as a user package that LAMMPS users can add to
their copy of LAMMPS. See the `Offsite LAMMPS packages and tools
<https://www.lammps.org/offsite.html>`_ page of the LAMMPS web site
for examples of groups that do this. We are happy to advertise your
package and web site from that page. Simply email the `developers
<https://www.lammps.org/authors.html>`_ with info about your package
and we will post it there. We recommend to name external packages
USER-\<name\> so they can be easily distinguished from bundled packages
that do not have the USER- prefix.
.. _lws: https://www.lammps.org
@ -167,17 +157,20 @@ packages in the src directory for examples. If you are uncertain, please ask.
2 source files. You can do this multiple times if you wish to
contribute several individual features.
* If you want your contribution to be added as a user-contribution and
it is several related features, it is probably best to make it a user
package directory with a name like USER-FOO. In addition to your new
files, the directory should contain a README text file. The README
should contain your name and contact information and a brief
* If you want your contribution to be added and it has several related
features or is dependent on an external or bundled library, it is best
to make it a package directory with a name like FOO. In addition to
your new files, the directory should contain a README text file. The
README should contain your name and contact information and a brief
description of what your new package does. If your files depend on
other LAMMPS style files also being installed (e.g. because your file
is a derived class from the other LAMMPS class), then an Install.sh
file is also needed to check for those dependencies. See other README
and Install.sh files in other USER directories as examples. Send us a
tarball of this USER-FOO directory.
and Install.sh files in other directories as examples. Submit a pull
request on GitHub or send us a tarball of this FOO directory. Pull
requests are strongly encouraged since the greatly reduce the effort
to integrate a contribution and simplify the process of adjusting the
contributed code to cleanly integrate into the LAMMPS distribution.
* Your new source files need to have the LAMMPS copyright, GPL notice,
and your name and email address at the top, like other
@ -190,21 +183,21 @@ packages in the src directory for examples. If you are uncertain, please ask.
code.
* You **must** also create a **documentation** file for each new command
or style you are adding to LAMMPS. For simplicity and convenience, the
documentation of groups of closely related commands or styles may be
combined into a single file. This will be one file for a single-file
feature. For a package, it might be several files. These are text
files with a .rst extension using the `reStructuredText <rst_>`_
markup language, that are then converted to HTML and PDF using the
`Sphinx <sphinx_>`_ documentation generator tool. Running Sphinx with
the included configuration requires Python 3.x. Configuration
settings and custom extensions for this conversion are included in the
source distribution, and missing python packages will be transparently
downloaded into a virtual environment via pip. Thus, if your local
system is missing required packages, you need access to the
internet. The translation can be as simple as doing "make html pdf" in
the doc folder. As appropriate, the text files can include inline
mathematical expression or figures (see doc/JPG for examples).
or style you are adding to LAMMPS. For simplicity and convenience,
the documentation of groups of closely related commands or styles may
be combined into a single file. This will be one file for a
single-file feature. For a package, it might be several files. These
are text files with a .rst extension using the `reStructuredText
<rst_>`_ markup language, that are then converted to HTML and PDF
using the `Sphinx <sphinx_>`_ documentation generator tool. Running
Sphinx with the included configuration requires Python 3.x.
Configuration settings and custom extensions for this conversion are
included in the source distribution, and missing python packages will
be transparently downloaded into a virtual environment via pip. Thus,
if your local system is missing required packages, you need access to
the internet. The translation can be as simple as doing "make html
pdf" in the doc folder. As appropriate, the text files can include
inline mathematical expression or figures (see doc/JPG for examples).
Additional PDF files with further details (see doc/PDF for examples)
may also be included. The doc page should also include literature
citations as appropriate; see the bottom of doc/fix_nh.rst for
@ -212,21 +205,21 @@ packages in the src directory for examples. If you are uncertain, please ask.
cite itself. Citation labels must be unique across all .rst files.
The "Restrictions" section of the doc page should indicate if your
command is only available if LAMMPS is built with the appropriate
USER-MISC or USER-FOO package. See other user package doc files for
examples of how to do this. Please run at least "make html" and "make
spelling" and carefully inspect and proofread the resulting HTML
format doc page before submitting your code. Upon submission of a
pull request, checks for error free completion of the HTML and PDF
build will be performed and also a spell check, a check for correct
anchors and labels, and a check for completeness of references all
styles in their corresponding tables and lists is run. In case the
spell check reports false positives they can be added to the file
USER-MISC or FOO package. See other package doc files for examples of
how to do this. Please run at least "make html" and "make spelling"
and carefully inspect and proofread the resulting HTML format doc page
before submitting your code. Upon submission of a pull request,
checks for error free completion of the HTML and PDF build will be
performed and also a spell check, a check for correct anchors and
labels, and a check for completeness of references all styles in their
corresponding tables and lists is run. In case the spell check
reports false positives they can be added to the file
doc/utils/sphinx-config/false_positives.txt
* For a new package (or even a single command) you should include one or
more example scripts demonstrating its use. These should run in no
more than a couple minutes, even on a single processor, and not require
large data files as input. See directories under examples/USER for
large data files as input. See directories under examples/PACKAGES for
examples of input scripts other users provided for their packages.
These example inputs are also required for validating memory accesses
and testing for memory leaks with valgrind
@ -234,7 +227,7 @@ packages in the src directory for examples. If you are uncertain, please ask.
* If there is a paper of yours describing your feature (either the
algorithm/science behind the feature itself, or its initial usage, or
its implementation in LAMMPS), you can add the citation to the \*.cpp
source file. See src/USER-EFF/atom_vec_electron.cpp for an example.
source file. See src/EFF/atom_vec_electron.cpp for an example.
A LaTeX citation is stored in a variable at the top of the file and
a single line of code registering this variable is added to the
constructor of the class. If there is additional functionality (which

View File

@ -14,6 +14,5 @@ LAMMPS build process.
.. toctree::
:maxdepth: 1
Packages_standard
Packages_user
Packages_list
Packages_details

File diff suppressed because it is too large Load Diff

449
doc/src/Packages_list.rst Normal file
View File

@ -0,0 +1,449 @@
Available Packages
==================
This is the list of packages included in LAMMPS. The link for each
package name gives more details.
Packages are supported by either the LAMMPS developers or the
contributing authors and written in a syntax and style consistent with
the rest of LAMMPS.
The "Example" column is a sub-directory in the examples directory of the
distribution which has an input script that uses the package.
E.g. "peptide" refers to the examples/peptide directory; PACKAGES/atc refers
to the examples/PACKAGES/atc directory. The "Library" column indicates
whether an extra library is needed to build and use the package:
* no = no library
* sys = system library: you likely have it on your machine
* int = internal library: provided with LAMMPS, but you may need to build it
* ext = external library: you will need to download and install it on your machine
.. list-table::
:header-rows: 1
:widths: auto
* - Package
- Description
- Doc page
- Example
- Library
* - :ref:`ADIOS <PKG-ADIOS>`
- dump output via ADIOS
- :doc:`dump adios <dump_adios>`
- PACKAGES/adios
- ext
* - :ref:`ASPHERE <PKG-ASPHERE>`
- aspherical particle models
- :doc:`Howto spherical <Howto_spherical>`
- ellipse
- no
* - :ref:`ATC <PKG-ATC>`
- Atom-to-Continuum coupling
- :doc:`fix atc <fix_atc>`
- PACKAGES/atc
- int
* - :ref:`AWPMD <PKG-AWPMD>`
- wave packet MD
- :doc:`pair_style awpmd/cut <pair_awpmd>`
- PACKAGES/awpmd
- int
* - :ref:`BOCS <PKG-BOCS>`
- BOCS bottom up coarse graining
- :doc:`fix bocs <fix_bocs>`
- PACKAGES/bocs
- no
* - :ref:`BODY <PKG-BODY>`
- body-style particles
- :doc:`Howto body <Howto_body>`
- body
- no
* - :ref:`BROWNIAN <PKG-BROWNIAN>`
- Brownian dynamics, self-propelled particles
- :doc:`fix brownian <fix_brownian>`, :doc:`fix propel/self <fix_propel_self>`
- PACKAGES/brownian
- no
* - :ref:`CG-DNA <PKG-CG-DNA>`
- coarse-grained DNA force fields
- src/CG-DNA/README
- PACKAGES/cgdna
- no
* - :ref:`CG-SDK <PKG-CG-SDK>`
- SDK coarse-graining model
- :doc:`pair_style lj/sdk <pair_sdk>`
- PACKAGES/cgsdk
- no
* - :ref:`CLASS2 <PKG-CLASS2>`
- class 2 force fields
- :doc:`pair_style lj/class2 <pair_class2>`
- n/a
- no
* - :ref:`COLLOID <PKG-COLLOID>`
- colloidal particles
- :doc:`atom_style colloid <atom_style>`
- colloid
- no
* - :ref:`COLVARS <PKG-COLVARS>`
- collective variables library
- :doc:`fix colvars <fix_colvars>`
- PACKAGES/colvars
- int
* - :ref:`COMPRESS <PKG-COMPRESS>`
- I/O compression
- :doc:`dump \*/gz <dump>`
- n/a
- sys
* - :ref:`CORESHELL <PKG-CORESHELL>`
- adiabatic core/shell model
- :doc:`Howto coreshell <Howto_coreshell>`
- coreshell
- no
* - :ref:`DIELECTRIC <PKG-DIELECTRIC>`
- dielectric boundary solvers and force styles
- :doc:`compute efield/atom <compute_efield_atom>`
- PACKAGES/dielectric
- no
* - :ref:`DIFFRACTION <PKG-DIFFRACTION>`
- virtual x-ray and electron diffraction
- :doc:`compute xrd <compute_xrd>`
- PACKAGES/diffraction
- no
* - :ref:`DIPOLE <PKG-DIPOLE>`
- point dipole particles
- :doc:`pair_style lj/.../dipole <pair_dipole>`
- dipole
- no
* - :ref:`DPD-BASIC <PKG-DPD-BASIC>`
- basic DPD models
- :doc:`pair_styles dpd dpd/tstat <pair_dpd>` :doc:`dpd/ext dpd/ext/tstat <pair_dpd_ext>`
- PACKAGES/dpd-basic
- no
* - :ref:`DPD-MESO <PKG-DPD-MESO>`
- mesoscale DPD models
- :doc:`pair_style edpd <pair_mesodpd>`
- PACKAGES/dpd-meso
- no
* - :ref:`DPD-REACT <PKG-DPD-REACT>`
- reactive dissipative particle dynamics
- src/DPD-REACT/README
- PACKAGES/dpd-react
- no
* - :ref:`DPD-SMOOTH <PKG-DPD-SMOOTH>`
- smoothed dissipative particle dynamics
- src/DPD-SMOOTH/README
- PACKAGES/dpd-smooth
- no
* - :ref:`DRUDE <PKG-DRUDE>`
- Drude oscillators
- :doc:`Howto drude <Howto_drude>`
- PACKAGES/drude
- no
* - :ref:`EFF <PKG-EFF>`
- electron force field
- :doc:`pair_style eff/cut <pair_eff>`
- PACKAGES/eff
- no
* - :ref:`FEP <PKG-FEP>`
- free energy perturbation
- :doc:`compute fep <compute_fep>`
- PACKAGES/fep
- no
* - :ref:`GPU <PKG-GPU>`
- GPU-enabled styles
- :doc:`Section gpu <Speed_gpu>`
- `Benchmarks <https://www.lammps.org/bench.html>`_
- int
* - :ref:`GRANULAR <PKG-GRANULAR>`
- granular systems
- :doc:`Howto granular <Howto_granular>`
- pour
- no
* - :ref:`H5MD <PKG-H5MD>`
- dump output via HDF5
- :doc:`dump h5md <dump_h5md>`
- n/a
- ext
* - :ref:`INTEL <PKG-INTEL>`
- optimized Intel CPU and KNL styles
- :doc:`Speed intel <Speed_intel>`
- `Benchmarks <https://www.lammps.org/bench.html>`_
- no
* - :ref:`KIM <PKG-KIM>`
- OpenKIM wrapper
- :doc:`pair_style kim <pair_kim>`
- kim
- ext
* - :ref:`KOKKOS <PKG-KOKKOS>`
- Kokkos-enabled styles
- :doc:`Speed kokkos <Speed_kokkos>`
- `Benchmarks <https://www.lammps.org/bench.html>`_
- no
* - :ref:`KSPACE <PKG-KSPACE>`
- long-range Coulombic solvers
- :doc:`kspace_style <kspace_style>`
- peptide
- no
* - :ref:`LATBOLTZ <PKG-LATBOLTZ>`
- Lattice Boltzmann fluid
- :doc:`fix lb/fluid <fix_lb_fluid>`
- PACKAGES/latboltz
- no
* - :ref:`LATTE <PKG-LATTE>`
- quantum DFTB forces via LATTE
- :doc:`fix latte <fix_latte>`
- latte
- ext
* - :ref:`MACHDYN <PKG-MACHDYN>`
- smoothed Mach dynamics
- `SMD User Guide <PDF/MACHDYN_LAMMPS_userguide.pdf>`_
- PACKAGES/machdyn
- ext
* - :ref:`MANIFOLD <PKG-MANIFOLD>`
- motion on 2d surfaces
- :doc:`fix manifoldforce <fix_manifoldforce>`
- PACKAGES/manifold
- no
* - :ref:`MANYBODY <PKG-MANYBODY>`
- many-body potentials
- :doc:`pair_style tersoff <pair_tersoff>`
- shear
- no
* - :ref:`MC <PKG-MC>`
- Monte Carlo options
- :doc:`fix gcmc <fix_gcmc>`
- n/a
- no
* - :ref:`MDI <PKG-MDI>`
- client-server coupling
- :doc:`MDI Howto <Howto_mdi>`
- PACKAGES/mdi
- ext
* - :ref:`MEAM <PKG-MEAM>`
- modified EAM potential (C++)
- :doc:`pair_style meam <pair_meam>`
- meam
- no
* - :ref:`MESONT <PKG-MESONT>`
- mesoscopic tubular potential model
- pair styles :doc:`mesont/tpm <pair_mesont_tpm>`, :doc:`mesocnt <pair_mesocnt>`
- PACKAGES/mesont
- int
* - :ref:`MESSAGE <PKG-MESSAGE>`
- client/server messaging
- :doc:`message <message>`
- message
- int
* - :ref:`MGPT <PKG-MGPT>`
- fast MGPT multi-ion potentials
- :doc:`pair_style mgpt <pair_mgpt>`
- PACKAGES/mgpt
- no
* - :ref:`MISC <PKG-MISC>`
- miscellaneous single-file commands
- n/a
- no
- no
* - :ref:`ML-HDNNP <PKG-ML-HDNNP>`
- High-dimensional neural network potentials
- :doc:`pair_style hdnnp <pair_hdnnp>`
- PACKAGES/hdnnp
- ext
* - :ref:`ML-IAP <PKG-ML-IAP>`
- multiple machine learning potentials
- :doc:`pair_style mliap <pair_mliap>`
- mliap
- no
* - :ref:`ML-PACE <PKG-ML-PACE>`
- Atomic Cluster Expansion potential
- :doc:`pair pace <pair_pace>`
- PACKAGES/pace
- ext
* - :ref:`ML-QUIP <PKG-ML-QUIP>`
- QUIP/libatoms interface
- :doc:`pair_style quip <pair_quip>`
- PACKAGES/quip
- ext
* - :ref:`ML-RANN <PKG-ML-RANN>`
- Pair style for RANN potentials
- :doc:`pair rann <pair_rann>`
- PACKAGES/rann
- no
* - :ref:`ML-SNAP <PKG-ML-SNAP>`
- quantum-fitted potential
- :doc:`pair_style snap <pair_snap>`
- snap
- no
* - :ref:`MOFFF <PKG-MOFFF>`
- styles for `MOF-FF <MOFplus_>`_ force field
- :doc:`pair_style buck6d/coul/gauss <pair_buck6d_coul_gauss>`
- PACKAGES/mofff
- no
* - :ref:`MOLECULE <PKG-MOLECULE>`
- molecular system force fields
- :doc:`Howto bioFF <Howto_bioFF>`
- peptide
- no
* - :ref:`MOLFILE <PKG-MOLFILE>`
- `VMD <VMD_>`_ molfile plug-ins
- :doc:`dump molfile <dump_molfile>`
- n/a
- ext
* - :ref:`MPIIO <PKG-MPIIO>`
- MPI parallel I/O dump and restart
- :doc:`dump <dump>`
- n/a
- no
* - :ref:`MSCG <PKG-MSCG>`
- multi-scale coarse-graining wrapper
- :doc:`fix mscg <fix_mscg>`
- mscg
- ext
* - :ref:`NETCDF <PKG-NETCDF>`
- dump output via NetCDF
- :doc:`dump netcdf <dump_netcdf>`
- n/a
- ext
* - :ref:`OPENMP <PKG-OPENMP>`
- OpenMP-enabled styles
- :doc:`Speed omp <Speed_omp>`
- `Benchmarks <https://www.lammps.org/bench.html>`_
- no
* - :ref:`OPT <PKG-OPT>`
- optimized pair styles
- :doc:`Speed opt <Speed_opt>`
- `Benchmarks <https://www.lammps.org/bench.html>`_
- no
* - :ref:`PERI <PKG-PERI>`
- Peridynamics models
- :doc:`pair_style peri <pair_peri>`
- peri
- no
* - :ref:`PHONON <PKG-PHONON>`
- phonon dynamical matrix
- :doc:`fix phonon <fix_phonon>`
- PACKAGES/phonon
- no
* - :ref:`PLUGIN <PKG-PLUGIN>`
- Plugin loader command
- :doc:`plugin <plugin>`
- plugins
- no
* - :ref:`PLUMED <PKG-PLUMED>`
- :ref:`PLUMED <PLUMED>` free energy library
- :doc:`fix plumed <fix_plumed>`
- PACKAGES/plumed
- ext
* - :ref:`POEMS <PKG-POEMS>`
- coupled rigid body motion
- :doc:`fix poems <fix_poems>`
- rigid
- int
* - :ref:`PTM <PKG-PTM>`
- Polyhedral Template Matching
- :doc:`compute ptm/atom <compute_ptm_atom>`
- n/a
- no
* - :ref:`PYTHON <PKG-PYTHON>`
- embed Python code in an input script
- :doc:`python <python>`
- python
- sys
* - :ref:`QEQ <PKG-QEQ>`
- QEq charge equilibration
- :doc:`fix qeq <fix_qeq>`
- qeq
- no
* - :ref:`QMMM <PKG-QMMM>`
- QM/MM coupling
- :doc:`fix qmmm <fix_qmmm>`
- PACKAGES/qmmm
- ext
* - :ref:`QTB <PKG-QTB>`
- quantum nuclear effects
- :doc:`fix qtb <fix_qtb>` :doc:`fix qbmsst <fix_qbmsst>`
- qtb
- no
* - :ref:`REACTION <PKG-REACTION>`
- chemical reactions in classical MD
- :doc:`fix bond/react <fix_bond_react>`
- PACKAGES/reaction
- no
* - :ref:`REAXFF <PKG-REAXFF>`
- ReaxFF potential (C/C++)
- :doc:`pair_style reaxc <pair_reaxc>`
- reax
- no
* - :ref:`REPLICA <PKG-REPLICA>`
- multi-replica methods
- :doc:`Howto replica <Howto_replica>`
- tad
- no
* - :ref:`RIGID <PKG-RIGID>`
- rigid bodies and constraints
- :doc:`fix rigid <fix_rigid>`
- rigid
- no
* - :ref:`SCAFACOS <PKG-SCAFACOS>`
- wrapper for ScaFaCoS Kspace solver
- :doc:`kspace_style scafacos <kspace_style>`
- PACKAGES/scafacos
- ext
* - :ref:`SHOCK <PKG-SHOCK>`
- shock loading methods
- :doc:`fix msst <fix_msst>`
- n/a
- no
* - :ref:`SMTBQ <PKG-SMTBQ>`
- second moment tight binding potential
- :doc:`pair_style smtbq <pair_smtbq>`
- PACKAGES/smtbq
- no
* - :ref:`SPH <PKG-SPH>`
- smoothed particle hydrodynamics
- `SPH User Guide <PDF/SPH_LAMMPS_userguide.pdf>`_
- PACKAGES/sph
- no
* - :ref:`SPIN <PKG-SPIN>`
- magnetic atomic spin dynamics
- :doc:`Howto spins <Howto_spins>`
- SPIN
- no
* - :ref:`SRD <PKG-SRD>`
- stochastic rotation dynamics
- :doc:`fix srd <fix_srd>`
- srd
- no
* - :ref:`TALLY <PKG-TALLY>`
- pairwise tally computes
- :doc:`compute XXX/tally <compute_tally>`
- PACKAGES/tally
- no
* - :ref:`UEF <PKG-UEF>`
- extensional flow
- :doc:`fix nvt/uef <fix_nh_uef>`
- PACKAGES/uef
- no
* - :ref:`USER-MISC <PKG-USER-MISC>`
- single-file contributions
- USER-MISC/README
- USER-MISC
- no
* - :ref:`VORONOI <PKG-VORONOI>`
- Voronoi tesselation
- :doc:`compute voronoi/atom <compute_voronoi_atom>`
- n/a
- ext
* - :ref:`VTK <PKG-VTK>`
- dump output via VTK
- :doc:`compute vtk <dump_vtk>`
- n/a
- ext
* - :ref:`YAFF <PKG-YAFF>`
- additional styles implemented in YAFF
- :doc:`angle_style cross <angle_cross>`
- PACKAGES/yaff
- no
.. _MOFplus: https://www.mofplus.org/content/show/MOF-FF
.. _PLUMED: https://www.plumed.org
.. _VMD: https://www.ks.uiuc.edu/Research/vmd/

View File

@ -1,95 +0,0 @@
Standard packages
=================
This is the list of standard packages in LAMMPS. The link for each
package name gives more details.
Standard packages are supported by the LAMMPS developers and are
written in a syntax and style consistent with the rest of LAMMPS.
This means the developers will answer questions about them, debug and
fix them if necessary, and keep them compatible with future changes to
LAMMPS.
The "Example" column is a sub-directory in the examples directory of
the distribution which has an input script that uses the package.
E.g. "peptide" refers to the examples/peptide directory; USER/atc
refers to the examples/USER/atc directory. The "Library" column
indicates whether an extra library is needed to build and use the
package:
* no = no library
* sys = system library: you likely have it on your machine
* int = internal library: provided with LAMMPS, but you may need to build it
* ext = external library: you will need to download and install it on your machine
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| Package | Description | Doc page | Example | Library |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`ASPHERE <PKG-ASPHERE>` | aspherical particle models | :doc:`Howto spherical <Howto_spherical>` | ellipse | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`BODY <PKG-BODY>` | body-style particles | :doc:`Howto body <Howto_body>` | body | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`CLASS2 <PKG-CLASS2>` | class 2 force fields | :doc:`pair_style lj/class2 <pair_class2>` | n/a | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`COLLOID <PKG-COLLOID>` | colloidal particles | :doc:`atom_style colloid <atom_style>` | colloid | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`COMPRESS <PKG-COMPRESS>` | I/O compression | :doc:`dump \*/gz <dump>` | n/a | sys |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`CORESHELL <PKG-CORESHELL>` | adiabatic core/shell model | :doc:`Howto coreshell <Howto_coreshell>` | coreshell | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`DIPOLE <PKG-DIPOLE>` | point dipole particles | :doc:`pair_style lj/.../dipole <pair_dipole>` | dipole | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`GPU <PKG-GPU>` | GPU-enabled styles | :doc:`Section gpu <Speed_gpu>` | `Benchmarks <https://www.lammps.org/bench.html>`_ | int |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`GRANULAR <PKG-GRANULAR>` | granular systems | :doc:`Howto granular <Howto_granular>` | pour | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`KIM <PKG-KIM>` | OpenKIM wrapper | :doc:`pair_style kim <pair_kim>` | kim | ext |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`KOKKOS <PKG-KOKKOS>` | Kokkos-enabled styles | :doc:`Speed kokkos <Speed_kokkos>` | `Benchmarks <https://www.lammps.org/bench.html>`_ | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`KSPACE <PKG-KSPACE>` | long-range Coulombic solvers | :doc:`kspace_style <kspace_style>` | peptide | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`LATTE <PKG-LATTE>` | quantum DFTB forces via LATTE | :doc:`fix latte <fix_latte>` | latte | ext |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MANYBODY <PKG-MANYBODY>` | many-body potentials | :doc:`pair_style tersoff <pair_tersoff>` | shear | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MC <PKG-MC>` | Monte Carlo options | :doc:`fix gcmc <fix_gcmc>` | n/a | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MESSAGE <PKG-MESSAGE>` | client/server messaging | :doc:`message <message>` | message | int |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MISC <PKG-MISC>` | miscellaneous single-file commands | n/a | no | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MLIAP <PKG-MLIAP>` | multiple machine learning potentials | :doc:`pair_style mliap <pair_mliap>` | mliap | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MOLECULE <PKG-MOLECULE>` | molecular system force fields | :doc:`Howto bioFF <Howto_bioFF>` | peptide | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MPIIO <PKG-MPIIO>` | MPI parallel I/O dump and restart | :doc:`dump <dump>` | n/a | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MSCG <PKG-MSCG>` | multi-scale coarse-graining wrapper | :doc:`fix mscg <fix_mscg>` | mscg | ext |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`OPT <PKG-OPT>` | optimized pair styles | :doc:`Speed opt <Speed_opt>` | `Benchmarks <https://www.lammps.org/bench.html>`_ | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`PERI <PKG-PERI>` | Peridynamics models | :doc:`pair_style peri <pair_peri>` | peri | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`PLUGIN <PKG-PLUGIN>` | Plugin loader command | :doc:`plugin <plugin>` | plugins | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`POEMS <PKG-POEMS>` | coupled rigid body motion | :doc:`fix poems <fix_poems>` | rigid | int |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`PYTHON <PKG-PYTHON>` | embed Python code in an input script | :doc:`python <python>` | python | sys |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`QEQ <PKG-QEQ>` | QEq charge equilibration | :doc:`fix qeq <fix_qeq>` | qeq | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`REPLICA <PKG-REPLICA>` | multi-replica methods | :doc:`Howto replica <Howto_replica>` | tad | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`RIGID <PKG-RIGID>` | rigid bodies and constraints | :doc:`fix rigid <fix_rigid>` | rigid | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`SHOCK <PKG-SHOCK>` | shock loading methods | :doc:`fix msst <fix_msst>` | n/a | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`SNAP <PKG-SNAP>` | quantum-fitted potential | :doc:`pair_style snap <pair_snap>` | snap | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`SPIN <PKG-SPIN>` | magnetic atomic spin dynamics | :doc:`Howto spins <Howto_spins>` | SPIN | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`SRD <PKG-SRD>` | stochastic rotation dynamics | :doc:`fix srd <fix_srd>` | srd | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`VORONOI <PKG-VORONOI>` | Voronoi tesselation | :doc:`compute voronoi/atom <compute_voronoi_atom>` | n/a | ext |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+

View File

@ -1,132 +0,0 @@
User packages
=============
This is a list of user packages in LAMMPS. The link for each package
name gives more details.
User packages have been contributed by users, and begin with the
"user" prefix. If a contribution is a single command (single file),
it is typically in the USER-MISC package. User packages don't
necessarily meet the requirements of the :doc:`standard packages <Packages_standard>`. This means the developers will try
to keep things working and usually can answer technical questions
about compiling the package. If you have problems using a specific
feature provided in a user package, you may need to contact the
contributor directly to get help. Information on how to submit
additions you make to LAMMPS as single files or as a standard or user
package is explained on the :doc:`Modify contribute <Modify_contribute>`
doc page.
The "Example" column is a sub-directory in the examples directory of
the distribution which has an input script that uses the package.
E.g. "peptide" refers to the examples/peptide directory; USER/atc
refers to the examples/USER/atc directory. The "Library" column
indicates whether an extra library is needed to build and use the
package:
* no = no library
* sys = system library: you likely have it on your machine
* int = internal library: provided with LAMMPS, but you may need to build it
* ext = external library: you will need to download and install it on your machine
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| Package | Description | Doc page | Example | Library |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-ADIOS <PKG-USER-ADIOS>` | dump output via ADIOS | :doc:`dump adios <dump_adios>` | USER/adios | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-ATC <PKG-USER-ATC>` | Atom-to-Continuum coupling | :doc:`fix atc <fix_atc>` | USER/atc | int |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-AWPMD <PKG-USER-AWPMD>` | wave packet MD | :doc:`pair_style awpmd/cut <pair_awpmd>` | USER/awpmd | int |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-BOCS <PKG-USER-BOCS>` | BOCS bottom up coarse graining | :doc:`fix bocs <fix_bocs>` | USER/bocs | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-BROWNIAN <PKG-USER-BROWNIAN>` | Brownian dynamics and self-propelled particles | :doc:`fix brownian <fix_brownian>`, :doc:`fix propel/self <fix_propel_self>` | USER/brownian | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-CGDNA <PKG-USER-CGDNA>` | coarse-grained DNA force fields | src/USER-CGDNA/README | USER/cgdna | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-CGSDK <PKG-USER-CGSDK>` | SDK coarse-graining model | :doc:`pair_style lj/sdk <pair_sdk>` | USER/cgsdk | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-COLVARS <PKG-USER-COLVARS>` | collective variables library | :doc:`fix colvars <fix_colvars>` | USER/colvars | int |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-DIELECTRIC <PKG-USER-DIELECTRIC>` | dielectric boundary solvers and force styles | :doc:`compute efield/atom <compute_efield_atom>` | USER/dielectric | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-DIFFRACTION <PKG-USER-DIFFRACTION>` | virtual x-ray and electron diffraction | :doc:`compute xrd <compute_xrd>` | USER/diffraction | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-DPD <PKG-USER-DPD>` | reactive dissipative particle dynamics | src/USER-DPD/README | USER/dpd | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-DRUDE <PKG-USER-DRUDE>` | Drude oscillators | :doc:`Howto drude <Howto_drude>` | USER/drude | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-EFF <PKG-USER-EFF>` | electron force field | :doc:`pair_style eff/cut <pair_eff>` | USER/eff | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-FEP <PKG-USER-FEP>` | free energy perturbation | :doc:`compute fep <compute_fep>` | USER/fep | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-H5MD <PKG-USER-H5MD>` | dump output via HDF5 | :doc:`dump h5md <dump_h5md>` | n/a | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-HDNNP <PKG-USER-HDNNP>` | High-dimensional neural network potentials | :doc:`pair_style hdnnp <pair_hdnnp>` | USER/hdnnp | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-INTEL <PKG-USER-INTEL>` | optimized Intel CPU and KNL styles | :doc:`Speed intel <Speed_intel>` | `Benchmarks <https://www.lammps.org/bench.html>`_ | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-LB <PKG-USER-LB>` | Lattice Boltzmann fluid | :doc:`fix lb/fluid <fix_lb_fluid>` | USER/lb | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MANIFOLD <PKG-USER-MANIFOLD>` | motion on 2d surfaces | :doc:`fix manifoldforce <fix_manifoldforce>` | USER/manifold | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MDI <PKG-USER-MDI>` | client-server coupling | :doc:`MDI Howto <Howto_mdi>` | USER/mdi | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MEAMC <PKG-USER-MEAMC>` | modified EAM potential (C++) | :doc:`pair_style meam/c <pair_meamc>` | meamc | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MESODPD <PKG-USER-MESODPD>` | mesoscale DPD models | :doc:`pair_style edpd <pair_mesodpd>` | USER/mesodpd | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MESONT <PKG-USER-MESONT>` | mesoscopic tubular potential model for nanotubes | pair style :doc:`mesont/tpm <pair_mesont_tpm>`, :doc:`mesocnt <pair_mesocnt>` | USER/mesont | int |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MGPT <PKG-USER-MGPT>` | fast MGPT multi-ion potentials | :doc:`pair_style mgpt <pair_mgpt>` | USER/mgpt | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MISC <PKG-USER-MISC>` | single-file contributions | USER-MISC/README | USER/misc | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MOFFF <PKG-USER-MOFFF>` | styles for `MOF-FF <MOFplus_>`_ force field | :doc:`pair_style buck6d/coul/gauss <pair_buck6d_coul_gauss>` | USER/mofff | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MOLFILE <PKG-USER-MOLFILE>` | `VMD <https://www.ks.uiuc.edu/Research/vmd/>`_ molfile plug-ins | :doc:`dump molfile <dump_molfile>` | n/a | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-NETCDF <PKG-USER-NETCDF>` | dump output via NetCDF | :doc:`dump netcdf <dump_netcdf>` | n/a | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-OMP <PKG-USER-OMP>` | OpenMP-enabled styles | :doc:`Speed omp <Speed_omp>` | `Benchmarks <https://www.lammps.org/bench.html>`_ | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-PACE <PKG-USER-PACE>` | Fast implementation of Atomic Cluster Expansion (ACE) potential | :doc:`pair pace <pair_pace>` | USER/pace | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-PHONON <PKG-USER-PHONON>` | phonon dynamical matrix | :doc:`fix phonon <fix_phonon>` | USER/phonon | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-PLUMED <PKG-USER-PLUMED>` | :ref:`PLUMED <PLUMED>` free energy library | :doc:`fix plumed <fix_plumed>` | USER/plumed | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-PTM <PKG-USER-PTM>` | Polyhedral Template Matching | :doc:`compute ptm/atom <compute_ptm_atom>` | n/a | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-QMMM <PKG-USER-QMMM>` | QM/MM coupling | :doc:`fix qmmm <fix_qmmm>` | USER/qmmm | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-QTB <PKG-USER-QTB>` | quantum nuclear effects | :doc:`fix qtb <fix_qtb>` :doc:`fix qbmsst <fix_qbmsst>` | qtb | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-QUIP <PKG-USER-QUIP>` | QUIP/libatoms interface | :doc:`pair_style quip <pair_quip>` | USER/quip | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-RANN <PKG-USER-RANN>` | rapid atomistic neural network (RANN) potentials | :doc:`pair rann <pair_rann>` | USER/rann | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-REACTION <PKG-USER-REACTION>` | chemical reactions in classical MD | :doc:`fix bond/react <fix_bond_react>` | USER/reaction | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-REAXC <PKG-USER-REAXC>` | ReaxFF potential (C/C++) | :doc:`pair_style reaxc <pair_reaxc>` | reax | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-SCAFACOS <PKG-USER-SCAFACOS>` | wrapper on ScaFaCoS solver | :doc:`kspace_style scafacos <kspace_style>` | USER/scafacos | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-SDPD <PKG-USER-SDPD>` | smoothed dissipative particle dynamics | :doc:`pair_style sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>` | USER/sdpd | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-SMD <PKG-USER-SMD>` | smoothed Mach dynamics | `SMD User Guide <PDF/SMD_LAMMPS_userguide.pdf>`_ | USER/smd | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-SMTBQ <PKG-USER-SMTBQ>` | second moment tight binding QEq potential | :doc:`pair_style smtbq <pair_smtbq>` | USER/smtbq | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-SPH <PKG-USER-SPH>` | smoothed particle hydrodynamics | `SPH User Guide <PDF/SPH_LAMMPS_userguide.pdf>`_ | USER/sph | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-TALLY <PKG-USER-TALLY>` | pairwise tally computes | :doc:`compute XXX/tally <compute_tally>` | USER/tally | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-UEF <PKG-USER-UEF>` | extensional flow | :doc:`fix nvt/uef <fix_nh_uef>` | USER/uef | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-VTK <PKG-USER-VTK>` | dump output via VTK | :doc:`compute vtk <dump_vtk>` | n/a | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-YAFF <PKG-USER-YAFF>` | additional styles implemented in YAFF | :doc:`angle_style cross <angle_cross>` | USER/yaff | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
.. _MOFplus: https://www.mofplus.org/content/show/MOF-FF
.. _PLUMED: https://www.plumed.org

View File

@ -69,7 +69,7 @@ this.
cd build
# configure LAMMPS compilation
cmake -C ../cmake/presets/minimal.cmake -D BUILD_SHARED_LIBS=on \
cmake -C ../cmake/presets/basic.cmake -D BUILD_SHARED_LIBS=on \
-D LAMMPS_EXCEPTIONS=on -D PKG_PYTHON=on ../cmake
# compile LAMMPS

View File

@ -10,7 +10,7 @@ letter abbreviation can be used:
* :ref:`-i or -in <file>`
* :ref:`-k or -kokkos <run-kokkos>`
* :ref:`-l or -log <log>`
* :ref:`-mdi <mdi>`
* :ref:`-mdi <mdi_flags>`
* :ref:`-m or -mpicolor <mpicolor>`
* :ref:`-c or -cite <cite>`
* :ref:`-nc or -nocite <nocite>`
@ -89,7 +89,7 @@ in the :doc:`the KOKKOS package page <Speed_kokkos>`, this switch must be set to
running with KOKKOS-enabled styles the package provides. If the
switch is not set (the default), LAMMPS will operate as if the KOKKOS
package were not installed; i.e. you can run standard LAMMPS or with
the GPU or USER-OMP packages, for testing or benchmarking purposes.
the GPU or OPENMP packages, for testing or benchmarking purposes.
Additional optional keyword/value pairs can be specified which
determine how Kokkos will use the underlying hardware on your
@ -197,12 +197,12 @@ Option -plog will override the name of the partition log files file.N.
----------
.. _mdi:
.. _mdi_flags:
**-mdi 'multiple flags'**
This flag is only recognized and used when LAMMPS has support for the MolSSI
Driver Interface (MDI) included as part of the :ref:`USER-MDI <PKG-USER-MDI>`
Driver Interface (MDI) included as part of the :ref:`MDI <PKG-MDI>`
package. This flag is specific to the MDI library and controls how LAMMPS
interacts with MDI. There are usually multiple flags that have to follow it
and those have to be placed in quotation marks. For more information about
@ -274,7 +274,7 @@ script. For example "-package gpu 2" or "-pk gpu 2" is the same as
:doc:`package gpu 2 <package>` in the input script. The possible styles
and args are documented on the :doc:`package <package>` doc page. This
switch can be used multiple times, e.g. to set options for the
USER-INTEL and USER-OMP packages which can be used together.
INTEL and OPENMP packages which can be used together.
Along with the "-suffix" command-line switch, this is a convenient
mechanism for invoking accelerator packages and their options without
@ -540,16 +540,16 @@ Use variants of various styles if they exist. The specified style can
be *gpu*\ , *intel*\ , *kk*\ , *omp*\ , *opt*\ , or *hybrid*\ . These
refer to optional packages that LAMMPS can be built with, as described
in :doc:`Accelerate performance <Speed>`. The "gpu" style corresponds to the
GPU package, the "intel" style to the USER-INTEL package, the "kk"
GPU package, the "intel" style to the INTEL package, the "kk"
style to the KOKKOS package, the "opt" style to the OPT package, and
the "omp" style to the USER-OMP package. The hybrid style is the only
the "omp" style to the OPENMP package. The hybrid style is the only
style that accepts arguments. It allows for two packages to be
specified. The first package specified is the default and will be used
if it is available. If no style is available for the first package,
the style for the second package will be used if available. For
example, "-suffix hybrid intel omp" will use styles from the
USER-INTEL package if they are installed and available, but styles for
the USER-OMP package otherwise.
INTEL package if they are installed and available, but styles for
the OPENMP package otherwise.
Along with the "-package" command-line switch, this is a convenient
mechanism for invoking accelerator packages and their options without
@ -570,15 +570,15 @@ default GPU settings, as if the command "package gpu 1" were used at
the top of your input script. These settings can be changed by using
the "-package gpu" command-line switch or the :doc:`package gpu <package>` command in your script.
For the USER-INTEL package, using this command-line switch also
invokes the default USER-INTEL settings, as if the command "package
For the INTEL package, using this command-line switch also
invokes the default INTEL settings, as if the command "package
intel 1" were used at the top of your input script. These settings
can be changed by using the "-package intel" command-line switch or
the :doc:`package intel <package>` command in your script. If the
USER-OMP package is also installed, the hybrid style with "intel omp"
OPENMP package is also installed, the hybrid style with "intel omp"
arguments can be used to make the omp suffix a second choice, if a
requested style is not available in the USER-INTEL package. It will
also invoke the default USER-OMP settings, as if the command "package
requested style is not available in the INTEL package. It will
also invoke the default OPENMP settings, as if the command "package
omp 0" were used at the top of your input script. These settings can
be changed by using the "-package omp" command-line switch or the
:doc:`package omp <package>` command in your script.

View File

@ -11,7 +11,7 @@ To run a serial (non-MPI) executable, follow these steps:
in.file is the name of your LAMMPS input script.
Note that the serial executable includes support for multi-threading
parallelization from the styles in the USER-OMP packages. To run with
parallelization from the styles in the OPENMP packages. To run with
4 threads, you can type this:
.. code-block:: bash

View File

@ -67,12 +67,12 @@ section below for examples where this has been done.
pair style - on the CPU. This can often be easily achieved with placing
a *suffix off* command before and a *suffix on* command after the
*kspace_style pppm* command.
* The KOKKOS/OpenMP and USER-OMP package have different thread management
strategies, which should result in USER-OMP being more efficient for a
* The KOKKOS/OpenMP and OPENMP package have different thread management
strategies, which should result in OPENMP being more efficient for a
small number of threads with increasing overhead as the number of threads
per MPI rank grows. The KOKKOS/OpenMP kernels have less overhead in that
case, but have lower performance with few threads.
* The USER-INTEL package contains many options and settings for achieving
* The INTEL package contains many options and settings for achieving
additional performance on Intel hardware (CPU and accelerator cards), but
to unlock this potential, an Intel compiler is required. The package code
will compile with GNU gcc, but it will not be as efficient.
@ -90,5 +90,5 @@ section below for examples where this has been done.
both, NVIDIA and AMD GPUs well. On NVIDIA hardware, using CUDA is typically
resulting in equal or better performance over OpenCL.
* OpenCL in the GPU package does theoretically also support Intel CPUs or
Intel Xeon Phi, but the native support for those in KOKKOS (or USER-INTEL)
Intel Xeon Phi, but the native support for those in KOKKOS (or INTEL)
is superior.

View File

@ -150,7 +150,7 @@ hardware, which pair style is used, the number of atoms/GPU, and the
precision used on the GPU (double, single, mixed). Using the GPU package
in OpenCL mode on CPUs (which uses vectorization and multithreading) is
usually resulting in inferior performance compared to using LAMMPS' native
threading and vectorization support in the USER-OMP and USER-INTEL packages.
threading and vectorization support in the OPENMP and INTEL packages.
See the `Benchmark page <https://www.lammps.org/bench.html>`_ of the
LAMMPS web site for performance of the GPU package on various

View File

@ -1,7 +1,7 @@
USER-INTEL package
INTEL package
==================
The USER-INTEL package is maintained by Mike Brown at Intel
The INTEL package is maintained by Mike Brown at Intel
Corporation. It provides two methods for accelerating simulations,
depending on the hardware you have. The first is acceleration on
Intel CPUs by running in single, mixed, or double precision with
@ -12,7 +12,7 @@ When offloading to a co-processor from a CPU, the same routine is run
twice, once on the CPU and once with an offload flag. This allows
LAMMPS to run on the CPU cores and co-processor cores simultaneously.
Currently Available USER-INTEL Styles
Currently Available INTEL Styles
"""""""""""""""""""""""""""""""""""""
* Angle Styles: charmm, harmonic
@ -28,7 +28,7 @@ Currently Available USER-INTEL Styles
.. warning::
None of the styles in the USER-INTEL package currently
None of the styles in the INTEL package currently
support computing per-atom stress. If any compute or fix in your
input requires it, LAMMPS will abort with an error message.
@ -41,7 +41,7 @@ precision mode. Performance improvements are shown compared to
LAMMPS *without using other acceleration packages* as these are
under active development (and subject to performance changes). The
measurements were performed using the input files available in
the src/USER-INTEL/TEST directory with the provided run script.
the src/INTEL/TEST directory with the provided run script.
These are scalable in size; the results given are with 512K
particles (524K for Liquid Crystal). Most of the simulations are
standard LAMMPS benchmarks (indicated by the filename extension in
@ -56,7 +56,7 @@ Results are speedups obtained on Intel Xeon E5-2697v4 processors
Knights Landing), and Intel Xeon Gold 6148 processors (code-named
Skylake) with "June 2017" LAMMPS built with Intel Parallel Studio
2017 update 2. Results are with 1 MPI task per physical core. See
*src/USER-INTEL/TEST/README* for the raw simulation rates and
*src/INTEL/TEST/README* for the raw simulation rates and
instructions to reproduce.
----------
@ -67,11 +67,11 @@ Accuracy and order of operations
In most molecular dynamics software, parallelization parameters
(# of MPI, OpenMP, and vectorization) can change the results due
to changing the order of operations with finite-precision
calculations. The USER-INTEL package is deterministic. This means
calculations. The INTEL package is deterministic. This means
that the results should be reproducible from run to run with the
*same* parallel configurations and when using deterministic
libraries or library settings (MPI, OpenMP, FFT). However, there
are differences in the USER-INTEL package that can change the
are differences in the INTEL package that can change the
order of operations compared to LAMMPS without acceleration:
* Neighbor lists can be created in a different order
@ -88,7 +88,7 @@ order of operations compared to LAMMPS without acceleration:
Twister generator included in the Intel MKL library (that should be
more robust than the default Masaglia random number generator)
The precision mode (described below) used with the USER-INTEL
The precision mode (described below) used with the INTEL
package can change the *accuracy* of the calculations. For the
default *mixed* precision option, calculations between pairs or
triplets of atoms are performed in single precision, intended to
@ -102,7 +102,7 @@ mode should not be used without appropriate validation.
Quick Start for Experienced Users
"""""""""""""""""""""""""""""""""
LAMMPS should be built with the USER-INTEL package installed.
LAMMPS should be built with the INTEL package installed.
Simulations should be run with 1 MPI task per physical *core*\ ,
not *hardware thread*\ .
@ -148,7 +148,7 @@ When using Intel compilers version 16.0 or later is required.
In order to use offload to co-processors, an Intel Xeon Phi
co-processor and an Intel compiler are required.
Although any compiler can be used with the USER-INTEL package,
Although any compiler can be used with the INTEL package,
currently, vectorization directives are disabled by default when
not using Intel compilers due to lack of standard support and
observations of decreased performance. The OpenMP standard now
@ -185,7 +185,7 @@ can start running so that the CPU pipeline is still being used
efficiently. Although benefits can be seen by launching a MPI task
for every hardware thread, for multinode simulations, we recommend
that OpenMP threads are used for SMT instead, either with the
USER-INTEL package, :doc:`USER-OMP package <Speed_omp>`, or
INTEL package, :doc:`OPENMP package <Speed_omp>`, or
:doc:`KOKKOS package <Speed_kokkos>`. In the example above, up
to 36X speedups can be observed by using all 36 physical cores with
LAMMPS. By using all 72 hardware threads, an additional 10-30%
@ -202,10 +202,10 @@ this information can normally be obtained with:
cat /proc/cpuinfo
Building LAMMPS with the USER-INTEL package
Building LAMMPS with the INTEL package
"""""""""""""""""""""""""""""""""""""""""""
See the :ref:`Build extras <user-intel>` doc page for
See the :ref:`Build extras <intel>` doc page for
instructions. Some additional details are covered here.
For building with make, several example Makefiles for building with
@ -228,7 +228,7 @@ simple as:
.. code-block:: bash
make yes-user-intel
make yes-intel
source /opt/intel/parallel_studio_xe_2016.3.067/psxevars.sh
# or psxevars.csh for C-shell
make intel_cpu_intelmpi
@ -238,7 +238,7 @@ binary can be used on nodes with or without co-processors installed.
However, if you do not have co-processors on your system, building
without offload support will produce a smaller binary.
The general requirements for Makefiles with the USER-INTEL package
The general requirements for Makefiles with the INTEL package
are as follows. When using Intel compilers, "-restrict" is required
and "-qopenmp" is highly recommended for CCFLAGS and LINKFLAGS.
CCFLAGS should include "-DLMP_INTEL_USELRT" (unless POSIX Threads
@ -253,7 +253,7 @@ recommended CCFLAG options for best performance are "-O2 -fno-alias
.. note::
See the src/USER-INTEL/README file for additional flags that
See the src/INTEL/README file for additional flags that
might be needed for best performance on Intel server processors
code-named "Skylake".
@ -270,14 +270,14 @@ recommended CCFLAG options for best performance are "-O2 -fno-alias
in most of the example Makefiles is to use "-xHost", however this
should not be used when cross-compiling.
Running LAMMPS with the USER-INTEL package
Running LAMMPS with the INTEL package
""""""""""""""""""""""""""""""""""""""""""
Running LAMMPS with the USER-INTEL package is similar to normal use
Running LAMMPS with the INTEL package is similar to normal use
with the exceptions that one should 1) specify that LAMMPS should use
the USER-INTEL package, 2) specify the number of OpenMP threads, and
the INTEL package, 2) specify the number of OpenMP threads, and
3) optionally specify the specific LAMMPS styles that should use the
USER-INTEL package. 1) and 2) can be performed from the command-line
INTEL package. 1) and 2) can be performed from the command-line
or by editing the input script. 3) requires editing the input script.
Advanced performance tuning options are also described below to get
the best performance.
@ -312,27 +312,27 @@ almost all cases.
recommended, especially when running on a machine with Intel
Hyper-Threading technology disabled.
Run with the USER-INTEL package from the command line
Run with the INTEL package from the command line
"""""""""""""""""""""""""""""""""""""""""""""""""""""
To enable USER-INTEL optimizations for all available styles used in
To enable INTEL optimizations for all available styles used in
the input script, the "-sf intel" :doc:`command-line switch <Run_options>` can be used without any requirement for
editing the input script. This switch will automatically append
"intel" to styles that support it. It also invokes a default command:
:doc:`package intel 1 <package>`. This package command is used to set
options for the USER-INTEL package. The default package command will
specify that USER-INTEL calculations are performed in mixed precision,
options for the INTEL package. The default package command will
specify that INTEL calculations are performed in mixed precision,
that the number of OpenMP threads is specified by the OMP_NUM_THREADS
environment variable, and that if co-processors are present and the
binary was built with offload support, that 1 co-processor per node
will be used with automatic balancing of work between the CPU and the
co-processor.
You can specify different options for the USER-INTEL package by using
You can specify different options for the INTEL package by using
the "-pk intel Nphi" :doc:`command-line switch <Run_options>` with
keyword/value pairs as specified in the documentation. Here, Nphi = #
of Xeon Phi co-processors/node (ignored without offload
support). Common options to the USER-INTEL package include *omp* to
support). Common options to the INTEL package include *omp* to
override any OMP_NUM_THREADS setting and specify the number of OpenMP
threads, *mode* to set the floating-point precision mode, and *lrt* to
enable Long-Range Thread mode as described below. See the :doc:`package intel <package>` command for details, including the default values
@ -348,11 +348,11 @@ launching MPI applications):
mpirun -np 72 -ppn 36 lmp_machine -sf intel -in in.script # 2 nodes, 36 MPI tasks/node, $OMP_NUM_THREADS OpenMP Threads
mpirun -np 72 -ppn 36 lmp_machine -sf intel -in in.script -pk intel 0 omp 2 mode double # Don't use any co-processors that might be available, use 2 OpenMP threads for each task, use double precision
Or run with the USER-INTEL package by editing an input script
Or run with the INTEL package by editing an input script
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
As an alternative to adding command-line arguments, the input script
can be edited to enable the USER-INTEL package. This requires adding
can be edited to enable the INTEL package. This requires adding
the :doc:`package intel <package>` command to the top of the input
script. For the second example above, this would be:
@ -360,7 +360,7 @@ script. For the second example above, this would be:
package intel 0 omp 2 mode double
To enable the USER-INTEL package only for individual styles, you can
To enable the INTEL package only for individual styles, you can
add an "intel" suffix to the individual style, e.g.:
.. code-block:: LAMMPS
@ -368,7 +368,7 @@ add an "intel" suffix to the individual style, e.g.:
pair_style lj/cut/intel 2.5
Alternatively, the :doc:`suffix intel <suffix>` command can be added to
the input script to enable USER-INTEL styles for the commands that
the input script to enable INTEL styles for the commands that
follow in the input script.
Tuning for Performance
@ -376,7 +376,7 @@ Tuning for Performance
.. note::
The USER-INTEL package will perform better with modifications
The INTEL package will perform better with modifications
to the input script when :doc:`PPPM <kspace_style>` is used:
:doc:`kspace_modify diff ad <kspace_modify>` should be added to the
input script.
@ -388,7 +388,7 @@ is dedicated to performing some of the PPPM calculations and MPI
communications. This feature requires setting the pre-processor flag
-DLMP_INTEL_USELRT in the makefile when compiling LAMMPS. It is unset
in the default makefiles (\ *Makefile.mpi* and *Makefile.serial*\ ) but
it is set in all makefiles tuned for the USER-INTEL package. On Intel
it is set in all makefiles tuned for the INTEL package. On Intel
Xeon Phi x200 series CPUs, the LRT feature will likely improve
performance, even on a single node. On Intel Xeon processors, using
this mode might result in better performance when using multiple nodes,
@ -407,9 +407,9 @@ when using offload.
performance and/or scalability for simple 2-body potentials such as
lj/cut or when using LRT mode on processors supporting AVX-512.
Not all styles are supported in the USER-INTEL package. You can mix
the USER-INTEL package with styles from the :doc:`OPT <Speed_opt>`
package or the :doc:`USER-OMP package <Speed_omp>`. Of course, this
Not all styles are supported in the INTEL package. You can mix
the INTEL package with styles from the :doc:`OPT <Speed_opt>`
package or the :doc:`OPENMP package <Speed_omp>`. Of course, this
requires that these packages were installed at build time. This can
performed automatically by using "-sf hybrid intel opt" or "-sf hybrid
intel omp" command-line options. Alternatively, the "opt" and "omp"
@ -420,7 +420,7 @@ where Nt is the number of OpenMP threads. The number of OpenMP threads
should not be set differently for the different packages. Note that
the :doc:`suffix hybrid intel omp <suffix>` command can also be used
within the input script to automatically append the "omp" suffix to
styles when USER-INTEL styles are not available.
styles when INTEL styles are not available.
.. note::
@ -492,7 +492,7 @@ tuning of the number of threads to use per MPI task or the number of
threads to use per core can be accomplished with keyword settings of
the :doc:`package intel <package>` command.
The USER-INTEL package has two modes for deciding which atoms will be
The INTEL package has two modes for deciding which atoms will be
handled by the co-processor. This choice is controlled with the *ghost*
keyword of the :doc:`package intel <package>` command. When set to 0,
ghost atoms (atoms at the borders between MPI tasks) are not offloaded
@ -528,7 +528,7 @@ accelerated style may be used with hybrid styles when offloading.
:doc:`Special_bonds <special_bonds>` exclusion lists are not currently
supported with offload, however, the same effect can often be
accomplished by setting cutoffs for excluded atom types to 0. None of
the pair styles in the USER-INTEL package currently support the
the pair styles in the INTEL package currently support the
"inner", "middle", "outer" options for rRESPA integration via the
:doc:`run_style respa <run_style>` command; only the "pair" option is
supported.

View File

@ -235,7 +235,7 @@ threads/task as Nt. The product of these two values should be N, i.e.
To build with Kokkos support for Intel Xeon Phi co-processors
such as Knight's Corner (KNC), your system must be configured to use
them in "native" mode, not "offload" mode like the USER-INTEL package
them in "native" mode, not "offload" mode like the INTEL package
supports.
Running on GPUs
@ -390,10 +390,10 @@ Generally speaking, the following rules of thumb apply:
* When running on CPUs only, with a single thread per MPI task,
performance of a KOKKOS style is somewhere between the standard
(un-accelerated) styles (MPI-only mode), and those provided by the
USER-OMP package. However the difference between all 3 is small (less
OPENMP package. However the difference between all 3 is small (less
than 20%).
* When running on CPUs only, with multiple threads per MPI task,
performance of a KOKKOS style is a bit slower than the USER-OMP
performance of a KOKKOS style is a bit slower than the OPENMP
package.
* When running large number of atoms per GPU, KOKKOS is typically faster
than the GPU package when compiled for double precision. The benefit
@ -401,8 +401,8 @@ Generally speaking, the following rules of thumb apply:
significantly on the hardware in use and the simulated system and pair
style.
* When running on Intel hardware, KOKKOS is not as fast as
the USER-INTEL package, which is optimized for x86 hardware (not just
from Intel) and compilation with the Intel compilers. The USER-INTEL
the INTEL package, which is optimized for x86 hardware (not just
from Intel) and compilation with the Intel compilers. The INTEL
package also can increase the vector length of vector instructions
by switching to single or mixed precision mode.

View File

@ -1,7 +1,7 @@
USER-OMP package
OPENMP package
================
The USER-OMP package was developed by Axel Kohlmeyer at Temple
The OPENMP package was developed by Axel Kohlmeyer at Temple
University. It provides optimized and multi-threaded versions
of many pair styles, nearly all bonded styles (bond, angle, dihedral,
improper), several Kspace styles, and a few fix styles. It uses
@ -15,13 +15,13 @@ To enable multi-threading, your compiler must support the OpenMP interface.
You should have one or more multi-core CPUs, as multiple threads can only be
launched by each MPI task on the local node (using shared memory).
Building LAMMPS with the USER-OMP package
Building LAMMPS with the OPENMP package
"""""""""""""""""""""""""""""""""""""""""
See the :ref:`Build extras <user-omp>` doc page for
See the :ref:`Build extras <openmp>` doc page for
instructions.
Run with the USER-OMP package from the command line
Run with the OPENMP package from the command line
"""""""""""""""""""""""""""""""""""""""""""""""""""
These examples assume one or more 16-core nodes.
@ -39,7 +39,7 @@ tasks used per node. E.g. the mpirun command in MPICH does this via
its -np and -ppn switches. Ditto for OpenMPI via -np and -npernode.
You need to choose how many OpenMP threads per MPI task will be used
by the USER-OMP package. Note that the product of MPI tasks \*
by the OPENMP package. Note that the product of MPI tasks \*
threads/task should not exceed the physical number of cores (on a
node), otherwise performance will suffer.
@ -55,7 +55,7 @@ details, including the default values used if it is not specified. It
also gives more details on how to set the number of threads via the
OMP_NUM_THREADS environment variable.
Or run with the USER-OMP package by editing an input script
Or run with the OPENMP package by editing an input script
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
The discussion above for the mpirun/mpiexec command, MPI tasks/node,
@ -69,7 +69,7 @@ Use the :doc:`suffix omp <suffix>` command, or you can explicitly add an
pair_style lj/cut/omp 2.5
You must also use the :doc:`package omp <package>` command to enable the
USER-OMP package. When you do this you also specify how many threads
OPENMP package. When you do this you also specify how many threads
per MPI task to use. The command doc page explains other options and
how to set the number of threads via the OMP_NUM_THREADS environment
variable.
@ -82,10 +82,10 @@ reduction in the "Pair time", "Bond time", "KSpace time", and "Loop
time" values printed at the end of a run.
You may see a small performance advantage (5 to 20%) when running a
USER-OMP style (in serial or parallel) with a single thread per MPI
OPENMP style (in serial or parallel) with a single thread per MPI
task, versus running standard LAMMPS with its standard un-accelerated
styles (in serial or all-MPI parallelization with 1 task/core). This
is because many of the USER-OMP styles contain similar optimizations
is because many of the OPENMP styles contain similar optimizations
to those used in the OPT package, described in
:doc:`the OPT package <Speed_opt>` doc page.
@ -95,19 +95,19 @@ tested via benchmark runs for a specific simulation running on a
specific machine, paying attention to guidelines discussed in the next
sub-section.
A description of the multi-threading strategy used in the USER-OMP
A description of the multi-threading strategy used in the OPENMP
package and some performance examples are
`presented here <http://sites.google.com/site/akohlmey/software/lammps-icms/lammps-icms-tms2011-talk.pdf?attredirects=0&d=1>`_.
Guidelines for best performance
"""""""""""""""""""""""""""""""
For many problems on current generation CPUs, running the USER-OMP
For many problems on current generation CPUs, running the OPENMP
package with a single thread/task is faster than running with multiple
threads/task. This is because the MPI parallelization in LAMMPS is
often more efficient than multi-threading as implemented in the
USER-OMP package. The parallel efficiency (in a threaded sense) also
varies for different USER-OMP styles.
OPENMP package. The parallel efficiency (in a threaded sense) also
varies for different OPENMP styles.
Using multiple threads/task can be more effective under the following
circumstances:
@ -143,7 +143,7 @@ circumstances:
sometimes be achieved by increasing the length of the Coulombic cutoff
and thus reducing the work done by the long-range solver. Using the
:doc:`run_style verlet/split <run_style>` command, which is compatible
with the USER-OMP package, is an alternative way to reduce the number
with the OPENMP package, is an alternative way to reduce the number
of MPI tasks assigned to the KSpace calculation.
Additional performance tips are as follows:

View File

@ -12,17 +12,16 @@ All of these commands are in packages provided with LAMMPS. An
overview of packages is give on the :doc:`Packages <Packages>` doc
pages.
These are the accelerator packages currently in LAMMPS, either as
standard or user packages:
These are the accelerator packages currently in LAMMPS:
+-----------------------------------------+-------------------------------------------------------+
| :doc:`GPU Package <Speed_gpu>` | for GPUs via CUDA, OpenCL, or ROCm HIP |
+-----------------------------------------+-------------------------------------------------------+
| :doc:`USER-INTEL Package <Speed_intel>` | for Intel CPUs and Intel Xeon Phi |
| :doc:`INTEL Package <Speed_intel>` | for Intel CPUs and Intel Xeon Phi |
+-----------------------------------------+-------------------------------------------------------+
| :doc:`KOKKOS Package <Speed_kokkos>` | for NVIDIA GPUs, Intel Xeon Phi, and OpenMP threading |
+-----------------------------------------+-------------------------------------------------------+
| :doc:`USER-OMP Package <Speed_omp>` | for OpenMP threading and generic CPU optimizations |
| :doc:`OPENMP Package <Speed_omp>` | for OpenMP threading and generic CPU optimizations |
+-----------------------------------------+-------------------------------------------------------+
| :doc:`OPT Package <Speed_opt>` | generic CPU optimizations |
+-----------------------------------------+-------------------------------------------------------+
@ -41,11 +40,11 @@ Inverting this list, LAMMPS currently has acceleration support for
three kinds of hardware, via the listed packages:
+-----------------+-----------------------------------------------------------------------------------------------------------------------------+
| Many-core CPUs | :doc:`USER-INTEL <Speed_intel>`, :doc:`KOKKOS <Speed_kokkos>`, :doc:`USER-OMP <Speed_omp>`, :doc:`OPT <Speed_opt>` packages |
| Many-core CPUs | :doc:`INTEL <Speed_intel>`, :doc:`KOKKOS <Speed_kokkos>`, :doc:`OPENMP <Speed_omp>`, :doc:`OPT <Speed_opt>` packages |
+-----------------+-----------------------------------------------------------------------------------------------------------------------------+
| GPUs | :doc:`GPU <Speed_gpu>`, :doc:`KOKKOS <Speed_kokkos>` packages |
+-----------------+-----------------------------------------------------------------------------------------------------------------------------+
| Intel Phi/AVX | :doc:`USER-INTEL <Speed_intel>`, :doc:`KOKKOS <Speed_kokkos>` packages |
| Intel Phi/AVX | :doc:`INTEL <Speed_intel>`, :doc:`KOKKOS <Speed_kokkos>` packages |
+-----------------+-----------------------------------------------------------------------------------------------------------------------------+
Which package is fastest for your hardware may depend on the size
@ -84,9 +83,9 @@ listed above:
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| build the accelerator library | only for GPU package |
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| install the accelerator package | make yes-opt, make yes-user-intel, etc |
| install the accelerator package | make yes-opt, make yes-intel, etc |
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| add compile/link flags to Makefile.machine in src/MAKE | only for USER-INTEL, KOKKOS, USER-OMP, OPT packages |
| add compile/link flags to Makefile.machine in src/MAKE | only for INTEL, KOKKOS, OPENMP, OPT packages |
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| re-build LAMMPS | make machine |
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
@ -116,15 +115,15 @@ script.
With a few exceptions, you can build a single LAMMPS executable
with all its accelerator packages installed. Note however that the
USER-INTEL and KOKKOS packages require you to choose one of their
INTEL and KOKKOS packages require you to choose one of their
hardware options when building for a specific platform. I.e. CPU or
Phi option for the USER-INTEL package. Or the OpenMP, Cuda, or Phi
Phi option for the INTEL package. Or the OpenMP, Cuda, or Phi
option for the KOKKOS package.
These are the exceptions. You cannot build a single executable with:
* both the USER-INTEL Phi and KOKKOS Phi options
* the USER-INTEL Phi or Kokkos Phi option, and the GPU package
* both the INTEL Phi and KOKKOS Phi options
* the INTEL Phi or Kokkos Phi option, and the GPU package
See the examples/accelerate/README and make.list files for sample
Make.py commands that build LAMMPS with any or all of the accelerator
@ -156,7 +155,7 @@ are in the individual accelerator sections.
* Styles with a "gpu" suffix are part of the GPU package and can be run
on Intel, NVIDIA, or AMD GPUs. The speed-up on a GPU depends on a
variety of factors, discussed in the accelerator sections.
* Styles with an "intel" suffix are part of the USER-INTEL
* Styles with an "intel" suffix are part of the INTEL
package. These styles support vectorized single and mixed precision
calculations, in addition to full double precision. In extreme cases,
this can provide speedups over 3.5x on CPUs. The package also
@ -167,7 +166,7 @@ are in the individual accelerator sections.
run using OpenMP on multicore CPUs, on an NVIDIA or AMD GPU, or on an
Intel Xeon Phi in "native" mode. The speed-up depends on a variety of
factors, as discussed on the KOKKOS accelerator page.
* Styles with an "omp" suffix are part of the USER-OMP package and allow
* Styles with an "omp" suffix are part of the OPENMP package and allow
a pair-style to be run in multi-threaded mode using OpenMP. This can
be useful on nodes with high-core counts when using less MPI processes
than cores is advantageous, e.g. when running with PPPM so that FFTs

View File

@ -67,7 +67,7 @@ Post-processing tools
* :ref:`amber2lmp <amber>`
* :ref:`binary2txt <binary>`
* :ref:`ch2lmp <charmm>`
* :ref:`colvars <colvars>`
* :ref:`colvars <colvars_tools>`
* :ref:`eff <eff>`
* :ref:`fep <fep>`
* :ref:`lmp2arc <arc>`
@ -214,7 +214,7 @@ tool and the specific name of the program used (e.g. ``ninja-v1.10`` or
----------
.. _colvars:
.. _colvars_tools:
colvars tools
---------------------------
@ -341,7 +341,7 @@ fep tool
The tools/fep directory contains Python scripts useful for
post-processing results from performing free-energy perturbation
simulations using the USER-FEP package.
simulations using the FEP package.
The scripts were contributed by Agilio Padua (ENS de Lyon), agilio.padua at ens-lyon.fr.
@ -861,10 +861,10 @@ phonon tool
The phonon sub-directory contains a post-processing tool useful for
analyzing the output of the :doc:`fix phonon <fix_phonon>` command in
the USER-PHONON package.
the PHONON package.
See the README file for instruction on building the tool and what
library it needs. And see the examples/USER/phonon directory
library it needs. And see the examples/PACKAGES/phonon directory
for example problems that can be post-processed with this tool.
This tool was written by Ling-Ti Kong at Shanghai Jiao Tong
@ -968,13 +968,13 @@ smd tool
The smd sub-directory contains a C++ file dump2vtk_tris.cpp and
Makefile which can be compiled and used to convert triangle output
files created by the Smooth-Mach Dynamics (USER-SMD) package into a
files created by the Smooth-Mach Dynamics (MACHDYN) package into a
VTK-compatible unstructured grid file. It could then be read in and
visualized by VTK.
See the header of dump2vtk.cpp for more details.
This tool was written by the USER-SMD package author, Georg
This tool was written by the MACHDYN package author, Georg
Ganzenmuller at the Fraunhofer-Institute for High-Speed Dynamics,
Ernst Mach Institute in Germany (georg.ganzenmueller at emi.fhg.de).

View File

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

View File

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

View File

@ -126,7 +126,7 @@ Restrictions
This angle style can only be used if LAMMPS was built with the CLASS2
package. For the *class2/p6* style LAMMPS needs to be built with the
USER-MOFFF package. See the :doc:`Build package <Build_package>` doc
MOFFF package. See the :doc:`Build package <Build_package>` doc
page for more info.
Related commands

View File

@ -60,7 +60,7 @@ Restrictions
:doc:`special_bonds <special_bonds>` 0.0 weighting of 1-3 interactions.
This angle style can only be used if LAMMPS was built with the
USER-MOFFF package. See the :doc:`Build package <Build_package>` doc
MOFFF package. See the :doc:`Build package <Build_package>` doc
page for more info.
Related commands

View File

@ -64,7 +64,7 @@ Restrictions
""""""""""""
This angle style can only be used if LAMMPS was built with the
USER-CGSDK package. See the :doc:`Build package <Build_package>` doc
CG-SDK package. See the :doc:`Build package <Build_package>` doc
page for more info.
Related commands

View File

@ -194,7 +194,7 @@ For the *peri* style, the particles are spherical and each stores a
per-particle mass and volume.
The *dpd* style is for dissipative particle dynamics (DPD) particles.
Note that it is part of the USER-DPD package, and is not for use with
Note that it is part of the DPD-REACT package, and is not for use with
the :doc:`pair_style dpd or dpd/stat <pair_dpd>` commands, which can
simply use atom_style atomic. Atom_style dpd extends DPD particle
properties with internal temperature (dpdTheta), internal conductive
@ -319,7 +319,7 @@ styles take the same arguments and should produce the same results,
except for round-off and precision issues.
Note that other acceleration packages in LAMMPS, specifically the GPU,
USER-INTEL, USER-OMP, and OPT packages do not use accelerated atom
INTEL, OPENMP, and OPT packages do not use accelerated atom
styles.
The accelerated styles are part of the KOKKOS package. They are only
@ -352,24 +352,24 @@ The *dipole* style is part of the DIPOLE package.
The *peri* style is part of the PERI package for Peridynamics.
The *electron* style is part of the USER-EFF package for :doc:`electronic force fields <pair_eff>`.
The *electron* style is part of the EFF package for :doc:`electronic force fields <pair_eff>`.
The *dpd* style is part of the USER-DPD package for dissipative
The *dpd* style is part of the DPD-REACT package for dissipative
particle dynamics (DPD).
The *edpd*\ , *mdpd*\ , and *tdpd* styles are part of the USER-MESODPD package
The *edpd*\ , *mdpd*\ , and *tdpd* styles are part of the DPD-MESO package
for energy-conserving dissipative particle dynamics (eDPD), many-body
dissipative particle dynamics (mDPD), and transport dissipative particle
dynamics (tDPD), respectively.
The *sph* style is part of the USER-SPH package for smoothed particle
The *sph* style is part of the SPH package for smoothed particle
hydrodynamics (SPH). See `this PDF guide <USER/sph/SPH_LAMMPS_userguide.pdf>`_ to using SPH in LAMMPS.
The *mesont* style is part of the USER-MESONT package.
The *mesont* style is part of the MESONT package.
The *spin* style is part of the SPIN package.
The *wavepacket* style is part of the USER-AWPMD package for the
The *wavepacket* style is part of the AWPMD package for the
:doc:`antisymmetrized wave packet MD method <pair_awpmd>`.
Related commands

View File

@ -77,16 +77,16 @@ commands:
be changed without reparameterizing the entire model.
Example input and data files for DNA and RNA duplexes can be found in
examples/USER/cgdna/examples/oxDNA/ , /oxDNA2/ and /oxRNA2/. A simple python
examples/PACKAGES/cgdna/examples/oxDNA/ , /oxDNA2/ and /oxRNA2/. A simple python
setup tool which creates single straight or helical DNA strands, DNA/RNA
duplexes or arrays of DNA/RNA duplexes can be found in
examples/USER/cgdna/util/.
examples/PACKAGES/cgdna/util/.
Please cite :ref:`(Henrich) <Henrich0>` in any publication that uses
this implementation. The article contains general information
on the model, its implementation and performance as well as the structure of
the data and input file. The preprint version of the article can be found
`here <PDF/USER-CGDNA.pdf>`_.
`here <PDF/CG-DNA.pdf>`_.
Please cite also the relevant oxDNA/oxRNA publications. These are
:ref:`(Ouldridge) <Ouldridge0>` and
:ref:`(Ouldridge-DPhil) <Ouldridge-DPhil0>` for oxDNA,
@ -101,7 +101,7 @@ Restrictions
""""""""""""
This bond style can only be used if LAMMPS was built with the
USER-CGDNA package and the MOLECULE and ASPHERE package. See the
CG-DNA package and the MOLECULE and ASPHERE package. See the
:doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -42,7 +42,7 @@ too frequently or to have multiple compute/dump commands, each of
which computes this quantity.
An example input script that uses this compute is provided
in examples/USER/misc/basal.
in examples/USER-MISC/basal.
Output info
"""""""""""

View File

@ -60,7 +60,7 @@ The vector values will be in energy and temperature :doc:`units <units>`.
Restrictions
""""""""""""
This command is part of the USER-DPD package. It is only enabled if
This command is part of the DPD-REACT package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
This command also requires use of the :doc:`atom_style dpd <atom_style>`

View File

@ -50,7 +50,7 @@ and temperature (:math:`theta`) :doc:`units <units>`.
Restrictions
""""""""""""
This command is part of the USER-DPD package. It is only enabled if
This command is part of the DPD-REACT package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
This command also requires use of the :doc:`atom_style dpd <atom_style>`

View File

@ -44,7 +44,7 @@ The per-atom vector values will be in temperature :doc:`units <units>`.
Restrictions
""""""""""""
This compute is part of the USER-MESODPD package. It is only enabled if
This compute is part of the DPD-MESO package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -33,7 +33,7 @@ Description
Define a computation that calculates the electric field at each atom in a group.
The compute should only enabled with pair and kspace styles that are provided
by the USER-DIELECTRIC package because only these styles compute the per-atom
by the DIELECTRIC package because only these styles compute the per-atom
electric field at every time step.
The electric field is a 3-component vector. The value of the electric field
@ -59,7 +59,7 @@ The per-atom vector values will be in electric field :doc:`units <units>`.
Restrictions
""""""""""""
This compute is part of the USER-DIELECTRIC package. It is only enabled if
This compute is part of the DIELECTRIC package. It is only enabled if
LAMMPS was built with that package.
Related commands

View File

@ -48,7 +48,7 @@ Examples
compute 1 all fep 298 pair lj/cut epsilon 1 * v_delta pair lj/cut sigma 1 * v_delta volume yes
compute 1 all fep 300 atom charge 2 v_delta
Example input scripts available: examples/USER/fep
Example input scripts available: examples/PACKAGES/fep
Description
"""""""""""
@ -303,7 +303,7 @@ The values calculated by this compute are "extensive".
Restrictions
""""""""""""
This compute is distributed as the USER-FEP package. It is only
This compute is distributed as the FEP package. It is only
enabled if LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -152,7 +152,7 @@ The following example illustrates the placement of this command in the input scr
The :doc:`fix_modify energy yes <fix_modify>` command must also be specified if a fix is to contribute potential energy to this command.
An example input script that uses this compute is included in
examples/USER/hma/ along with corresponding LAMMPS output showing that the HMA
examples/PACKAGES/hma/ along with corresponding LAMMPS output showing that the HMA
properties fluctuate less than the corresponding conventional properties.
Output info

View File

@ -73,7 +73,7 @@ The per-atom vector values will be in energy :doc:`units <units>`.
Restrictions
""""""""""""
This compute is part of the USER-EFF package. It is only enabled if
This compute is part of the EFF package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -78,7 +78,7 @@ scalar value will be in energy :doc:`units <units>`.
Restrictions
""""""""""""
This compute is part of the USER-EFF package. It is only enabled if
This compute is part of the EFF package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -43,7 +43,7 @@ The computed values are provided in energy :doc:`units <units>`.
Restrictions
""""""""""""
These computes are part of the USER-MESONT package. They are only enabled if
These computes are part of the MESONT package. They are only enabled if
LAMMPS is built with that package. See the :doc:`Build package <Build_package>`
doc page for more info. In addition, :doc:`mesont pair_style <pair_style>`
must be used.

View File

@ -56,21 +56,22 @@ and it is also straightforward to add new descriptor styles.
The compute *mliap* command must be followed by two keywords
*model* and *descriptor* in either order.
The *model* keyword is followed by the model style (*linear*, *quadratic* or *mliappy*).
The *mliappy* model is only available
if lammps is built with MLIAPPY package.
The *model* keyword is followed by the model style (*linear*,
*quadratic* or *mliappy*). The *mliappy* model is only available if
LAMMPS is built with the *mliappy* python module. There are
:ref:`specific installation instructions <mliap>` for that.
The *descriptor* keyword is followed by a descriptor style, and additional arguments.
The compute currently supports just one descriptor style, but it is
is straightforward to add new descriptor styles.
The SNAP descriptor style *sna* is the same as that used by :doc:`pair_style snap <pair_snap>`,
including the linear, quadratic, and chem variants.
A single additional argument specifies the descriptor filename
containing the parameters and setting used by the SNAP descriptor.
The descriptor filename usually ends in the *.mliap.descriptor* extension.
The format of this file is identical to the descriptor file in the
:doc:`pair_style mliap <pair_mliap>`, and is described in detail
there.
The *descriptor* keyword is followed by a descriptor style, and
additional arguments. The compute currently supports two descriptor
styles *sna* and *so3*, but it is is straightforward to add additional
descriptor styles. The SNAP descriptor style *sna* is the same as that
used by :doc:`pair_style snap <pair_snap>`, including the linear,
quadratic, and chem variants. A single additional argument specifies
the descriptor filename containing the parameters and setting used by
the SNAP descriptor. The descriptor filename usually ends in the
*.mliap.descriptor* extension. The format of this file is identical to
the descriptor file in the :doc:`pair_style mliap <pair_mliap>`, and is
described in detail there.
.. note::
@ -164,11 +165,12 @@ potentials, see the examples in `FitSNAP <https://github.com/FitSNAP/FitSNAP>`_.
Restrictions
""""""""""""
This compute is part of the MLIAP package. It is only enabled if LAMMPS
was built with that package. In addition, building LAMMPS with the MLIAP package
requires building LAMMPS with the SNAP package.
The *mliappy* model requires building LAMMPS with the PYTHON package.
See the :doc:`Build package <Build_package>` doc page for more info.
This compute is part of the ML-IAP package. It is only enabled if
LAMMPS was built with that package. In addition, building LAMMPS with
the ML-IAP package requires building LAMMPS with the ML-SNAP package.
The *mliappy* model also requires building LAMMPS with the PYTHON
package. See the :doc:`Build package <Build_package>` doc page for more
info.
Related commands
""""""""""""""""

View File

@ -41,7 +41,7 @@ The keywords and output information are documented in
Restrictions
""""""""""""
This fix is part of the USER-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>` doc page for more info.
This command can only be used when :doc:`fix nvt/uef <fix_nh_uef>`

View File

@ -74,7 +74,7 @@ Syntax
.. parsed-literal::
USER-EFF and USER-AWPMD package per-atom properties:
EFF and AWPMD package per-atom properties:
spin = electron spin
eradius = electron radius
ervel = electron radial velocity
@ -82,7 +82,7 @@ Syntax
.. parsed-literal::
USER-SPH package per-atom properties:
SPH package per-atom properties:
rho = density of SPH particles
drho = change in density
e = energy

View File

@ -112,7 +112,7 @@ For atoms that are not within the compute group-ID, all values are set to zero.
Restrictions
""""""""""""
This fix is part of the USER-PTM package. It is only enabled if
This fix is part of the PTM package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -245,7 +245,7 @@ All array values calculated by this compute are "intensive".
Restrictions
""""""""""""
This compute is part of the USER-DIFFRACTION package. It is only
This compute is part of the DIFFRACTION package. It is only
enabled if LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
The compute_saed command does not work for triclinic cells.

View File

@ -48,7 +48,7 @@ The per-particle vector values will be in distance :doc:`units <units>`.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -40,7 +40,7 @@ The per-particle values are dimensionless an in the range of zero to one.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the "Build
Related commands

View File

@ -50,7 +50,7 @@ The per-particle vector values will are dimensionless. See
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
This quantity will be computed only for particles which interact with

View File

@ -42,7 +42,7 @@ The per-particle vector values will be given in :doc:`units <units>` of energy.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info. This compute can
only be used for particles which interact via the updated Lagrangian
or total Lagrangian SPH pair styles.

View File

@ -42,7 +42,7 @@ The per-particle values will be given dimensionless. See :doc:`units <units>`.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info. This compute can
only be used for particles which interact via the updated Lagrangian
or total Lagrangian SPH pair styles.

View File

@ -42,7 +42,7 @@ The per-particle values will be given in :doc:`units <units>` of one over time.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info. This compute can
only be used for particles which interact via the updated Lagrangian
or total Lagrangian SPH pair styles.

View File

@ -44,7 +44,7 @@ The per-particle values will be in :doc:`units <units>` of mass over volume.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -47,7 +47,7 @@ entry is the determinant of the deformation gradient.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info. TThis compute can
only be used for particles which interact via the total Lagrangian SPH
pair style.

View File

@ -48,7 +48,7 @@ The per-particle values will be given in :doc:`units <units>` of time.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
This compute can only be used for particles interacting with the

View File

@ -43,7 +43,7 @@ The per-particle values are dimensionless. See :doc:`units <units>`.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
This quantity will be computed only for particles which interact with

View File

@ -50,7 +50,7 @@ particle relative to its initial state.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
This quantity will be computed only for particles which interact with

View File

@ -46,7 +46,7 @@ zz, xy, xz, yz components of the symmetric strain tensor.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
This quantity will be computed only for particles which interact with

View File

@ -45,7 +45,7 @@ zz, xy, xz, yz components of the symmetric strain rate tensor.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
This quantity will be computed only for particles which interact with

View File

@ -47,7 +47,7 @@ invariant of the stress tensor, i.e., the von Mises equivalent stress.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
This quantity will be computed only for particles which interact with

View File

@ -53,7 +53,7 @@ The values will be given in :doc:`units <units>` of distance.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -44,7 +44,7 @@ style.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info. This compute can
only be used for particles which interact with the updated Lagrangian
SPH pair style.

View File

@ -43,7 +43,7 @@ The per-particle values will be given dimensionless, see :doc:`units <units>`.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info. This compute can
only be used for particles which interact with the updated Lagrangian
SPH pair style.

View File

@ -46,7 +46,7 @@ The per-particle tensor values will be given dimensionless, see
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info. This compute can
only be used for particles which interact with the updated Lagrangian
SPH pair style.

View File

@ -46,7 +46,7 @@ zz, xy, xz, yz components of the symmetric strain rate tensor.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
This compute can only be used for particles which interact with the

View File

@ -46,7 +46,7 @@ stress tensor, i.e., the von Mises equivalent stress.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info. This compute can
only be used for particles which interact with the updated Lagrangian
SPH pair style.

View File

@ -46,7 +46,7 @@ per-particle volumes of the group for which the fix is defined.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
This compute is part of the MACHDYN package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -72,64 +72,66 @@ Description
"""""""""""
Define a computation that calculates a set of quantities related to the
bispectrum components of the atoms in a group. These computes are
used primarily for calculating the dependence of energy, force, and
stress components on the linear coefficients in the
:doc:`snap pair_style <pair_snap>`, which is useful when training a
SNAP potential to match target data.
bispectrum components of the atoms in a group. These computes are used
primarily for calculating the dependence of energy, force, and stress
components on the linear coefficients in the :doc:`snap pair_style
<pair_snap>`, which is useful when training a SNAP potential to match
target data.
Bispectrum components of an atom are order parameters characterizing
the radial and angular distribution of neighbor atoms. The detailed
Bispectrum components of an atom are order parameters characterizing the
radial and angular distribution of neighbor atoms. The detailed
mathematical definition is given in the paper by Thompson et
al. :ref:`(Thompson) <Thompson20141>`
The position of a neighbor atom *i'* relative to a central atom *i* is
a point within the 3D ball of radius :math:`R_{ii'}` = *rcutfac* :math:`(R_i + R_i')`
The position of a neighbor atom *i'* relative to a central atom *i* is a
point within the 3D ball of radius :math:`R_{ii'}` = *rcutfac*
:math:`(R_i + R_i')`
Bartok et al. :ref:`(Bartok) <Bartok20101>`, proposed mapping this 3D ball
onto the 3-sphere, the surface of the unit ball in a four-dimensional
space. The radial distance *r* within *R_ii'* is mapped on to a third
polar angle :math:`\theta_0` defined by,
Bartok et al. :ref:`(Bartok) <Bartok20101>`, proposed mapping this 3D
ball onto the 3-sphere, the surface of the unit ball in a
four-dimensional space. The radial distance *r* within *R_ii'* is
mapped on to a third polar angle :math:`\theta_0` defined by,
.. math::
\theta_0 = {\sf rfac0} \frac{r-r_{min0}}{R_{ii'}-r_{min0}} \pi
In this way, all possible neighbor positions are mapped on to a subset
of the 3-sphere. Points south of the latitude :math:`\theta_0` = *rfac0* :math:`\pi`
are excluded.
of the 3-sphere. Points south of the latitude :math:`\theta_0` =
*rfac0* :math:`\pi` are excluded.
The natural basis for functions on the 3-sphere is formed by the
representatives of *SU(2)*, the matrices :math:`U^j_{m,m'}(\theta, \phi, \theta_0)`.
These functions are better known as :math:`D^j_{m,m'}`, the elements of the Wigner
*D*\ -matrices :ref:`(Meremianin <Meremianin2006>`,
:ref:`Varshalovich <Varshalovich1987>`, :ref:`Mason) <Mason2009>`
The density of neighbors on the 3-sphere can be written as a sum of
Dirac-delta functions, one for each neighbor, weighted by species and
radial distance. Expanding this density function as a generalized
Fourier series in the basis functions, we can write each Fourier
coefficient as
representatives of *SU(2)*, the matrices :math:`U^j_{m,m'}(\theta, \phi,
\theta_0)`. These functions are better known as :math:`D^j_{m,m'}`, the
elements of the Wigner *D*\ -matrices :ref:`(Meremianin
<Meremianin2006>`, :ref:`Varshalovich <Varshalovich1987>`, :ref:`Mason)
<Mason2009>` The density of neighbors on the 3-sphere can be written as
a sum of Dirac-delta functions, one for each neighbor, weighted by
species and radial distance. Expanding this density function as a
generalized Fourier series in the basis functions, we can write each
Fourier coefficient as
.. math::
u^j_{m,m'} = U^j_{m,m'}(0,0,0) + \sum_{r_{ii'} < R_{ii'}}{f_c(r_{ii'}) w_{\mu_{i'}} U^j_{m,m'}(\theta_0,\theta,\phi)}
The :math:`w_{\mu_{i'}}` neighbor weights are dimensionless numbers that depend on
:math:`\mu_{i'}`, the SNAP element of atom *i'*, while the central atom is
arbitrarily assigned a unit weight. The function :math:`f_c(r)` ensures that
the contribution of each neighbor atom goes smoothly to zero at
:math:`R_{ii'}`:
The :math:`w_{\mu_{i'}}` neighbor weights are dimensionless numbers that
depend on :math:`\mu_{i'}`, the SNAP element of atom *i'*, while the
central atom is arbitrarily assigned a unit weight. The function
:math:`f_c(r)` ensures that the contribution of each neighbor atom goes
smoothly to zero at :math:`R_{ii'}`:
.. math::
f_c(r) = & \frac{1}{2}(\cos(\pi \frac{r-r_{min0}}{R_{ii'}-r_{min0}}) + 1), r \leq R_{ii'} \\
= & 0, r > R_{ii'}
The expansion coefficients :math:`u^j_{m,m'}` are complex-valued and they are
not directly useful as descriptors, because they are not invariant
under rotation of the polar coordinate frame. However, the following
scalar triple products of expansion coefficients can be shown to be
real-valued and invariant under rotation :ref:`(Bartok) <Bartok20101>`.
The expansion coefficients :math:`u^j_{m,m'}` are complex-valued and
they are not directly useful as descriptors, because they are not
invariant under rotation of the polar coordinate frame. However, the
following scalar triple products of expansion coefficients can be shown
to be real-valued and invariant under rotation :ref:`(Bartok)
<Bartok20101>`.
.. math::
@ -140,21 +142,20 @@ real-valued and invariant under rotation :ref:`(Bartok) <Bartok20101>`.
{j_2} {m_2} {m'_2} \end{array}}
u^{j_1}_{m_1,m'_1} u^{j_2}_{m_2,m'_2}
The constants :math:`H^{jmm'}_{j_1 m_1 m_{1'},j_2 m_ 2m_{2'}}`
are coupling coefficients,
analogous to Clebsch-Gordan coefficients for rotations on the
2-sphere. These invariants are the components of the bispectrum and
these are the quantities calculated by the compute *sna/atom*\ . They
characterize the strength of density correlations at three points on
the 3-sphere. The j2=0 subset form the power spectrum, which
characterizes the correlations of two points. The lowest-order
components describe the coarsest features of the density function,
while higher-order components reflect finer detail. Each bispectrum
component contains terms that depend on the positions of up to 4
atoms (3 neighbors and the central atom).
The constants :math:`H^{jmm'}_{j_1 m_1 m_{1'},j_2 m_ 2m_{2'}}` are
coupling coefficients, analogous to Clebsch-Gordan coefficients for
rotations on the 2-sphere. These invariants are the components of the
bispectrum and these are the quantities calculated by the compute
*sna/atom*\ . They characterize the strength of density correlations at
three points on the 3-sphere. The j2=0 subset form the power spectrum,
which characterizes the correlations of two points. The lowest-order
components describe the coarsest features of the density function, while
higher-order components reflect finer detail. Each bispectrum component
contains terms that depend on the positions of up to 4 atoms (3
neighbors and the central atom).
Compute *snad/atom* calculates the derivative of the bispectrum components
summed separately for each LAMMPS atom type:
Compute *snad/atom* calculates the derivative of the bispectrum
components summed separately for each LAMMPS atom type:
.. math::
@ -180,16 +181,16 @@ section below on output for a detailed explanation.
Compute *snap* calculates a global array containing information related
to all three of the above per-atom computes *sna/atom*\ , *snad/atom*\ ,
and *snav/atom*\ . The first row of the array contains the summation of
*sna/atom* over all atoms, but broken out by type. The last six rows
of the array contain the summation of *snav/atom* over all atoms, broken
out by type. In between these are 3\*\ *N* rows containing the same values
computed by *snad/atom* (these are already summed over all atoms and
broken out by type). The element in the last column of each row contains
the potential energy, force, or stress, according to the row.
*sna/atom* over all atoms, but broken out by type. The last six rows of
the array contain the summation of *snav/atom* over all atoms, broken
out by type. In between these are 3\*\ *N* rows containing the same
values computed by *snad/atom* (these are already summed over all atoms
and broken out by type). The element in the last column of each row
contains the potential energy, force, or stress, according to the row.
These quantities correspond to the user-specified reference potential
that must be subtracted from the target data when fitting SNAP.
The potential energy calculation uses the built in compute *thermo_pe*.
The stress calculation uses a compute called *snap_press* that is
that must be subtracted from the target data when fitting SNAP. The
potential energy calculation uses the built in compute *thermo_pe*. The
stress calculation uses a compute called *snap_press* that is
automatically created behind the scenes, according to the following
command:
@ -225,36 +226,32 @@ The keyword *switchflag* can be used to turn off the switching
function :math:`f_c(r)`.
The keyword *bzeroflag* determines whether or not *B0*\ , the bispectrum
components of an atom with no neighbors, are subtracted from
the calculated bispectrum components. This optional keyword
normally only affects compute *sna/atom*\ . However, when
*quadraticflag* is on, it also affects *snad/atom* and *snav/atom*\ .
components of an atom with no neighbors, are subtracted from the
calculated bispectrum components. This optional keyword normally only
affects compute *sna/atom*\ . However, when *quadraticflag* is on, it
also affects *snad/atom* and *snav/atom*\ .
The keyword *quadraticflag* determines whether or not the
quadratic combinations of bispectrum quantities are generated.
These are formed by taking the outer product of the vector
of bispectrum components with itself.
See section below on output for a
detailed explanation of the number of quadratic terms and the
ordered in which they are listed.
The keyword *quadraticflag* determines whether or not the quadratic
combinations of bispectrum quantities are generated. These are formed
by taking the outer product of the vector of bispectrum components with
itself. See section below on output for a detailed explanation of the
number of quadratic terms and the ordered in which they are listed.
The keyword *chem* activates the explicit multi-element variant
of the SNAP bispectrum components. The argument *nelements*
specifies the number of SNAP elements that will be handled.
This is followed by *elementlist*, a list of integers of
length *ntypes*, with values in the range [0, *nelements* ),
which maps each LAMMPS type to one of the SNAP elements.
Note that multiple LAMMPS types can be mapped to the same element,
and some elements may be mapped by no LAMMPS type. However, in typical
use cases (training SNAP potentials) the mapping from LAMMPS types
to elements is one-to-one.
The keyword *chem* activates the explicit multi-element variant of the
SNAP bispectrum components. The argument *nelements* specifies the
number of SNAP elements that will be handled. This is followed by
*elementlist*, a list of integers of length *ntypes*, with values in the
range [0, *nelements* ), which maps each LAMMPS type to one of the SNAP
elements. Note that multiple LAMMPS types can be mapped to the same
element, and some elements may be mapped by no LAMMPS type. However, in
typical use cases (training SNAP potentials) the mapping from LAMMPS
types to elements is one-to-one.
The explicit multi-element variant invoked by the *chem* keyword
partitions the density of neighbors into partial densities
for each chemical element. This is described in detail in the
paper by :ref:`Cusentino et al. <Cusentino2020>`
The bispectrum components are indexed on
ordered triplets of elements:
partitions the density of neighbors into partial densities for each
chemical element. This is described in detail in the paper by
:ref:`Cusentino et al. <Cusentino2020>` The bispectrum components are
indexed on ordered triplets of elements:
.. math::
@ -272,17 +269,19 @@ of element :math:`\mu`
u^{\mu}_{j,m,m'} = w^{self}_{\mu_{i}\mu} U^{j,m,m'}(0,0,0) + \sum_{r_{ii'} < R_{ii'}}{\delta_{\mu\mu_{i'}}f_c(r_{ii'}) w_{\mu_{i'}} U^{j,m,m'}(\theta_0,\theta,\phi)}
where :math:`w^{self}_{\mu_{i}\mu}` is the self-contribution, which is either 1 or 0
(see keyword *wselfallflag* below), :math:`\delta_{\mu\mu_{i'}}` indicates
that the sum is only over neighbor atoms of element :math:`\mu`,
and all other quantities are the same as those appearing in the
original equation for :math:`u^j_{m,m'}` given above.
where :math:`w^{self}_{\mu_{i}\mu}` is the self-contribution, which is
either 1 or 0 (see keyword *wselfallflag* below),
:math:`\delta_{\mu\mu_{i'}}` indicates that the sum is only over
neighbor atoms of element :math:`\mu`, and all other quantities are the
same as those appearing in the original equation for :math:`u^j_{m,m'}`
given above.
The keyword *wselfallflag* defines the rule used for the self-contribution.
If *wselfallflag* is on, then :math:`w^{self}_{\mu_{i}\mu}` = 1. If it is
off then :math:`w^{self}_{\mu_{i}\mu}` = 0, except in the case
of :math:`{\mu_{i}=\mu}`, when :math:`w^{self}_{\mu_{i}\mu}` = 1.
When the *chem* keyword is not used, this keyword has no effect.
The keyword *wselfallflag* defines the rule used for the
self-contribution. If *wselfallflag* is on, then
:math:`w^{self}_{\mu_{i}\mu}` = 1. If it is off then
:math:`w^{self}_{\mu_{i}\mu}` = 0, except in the case of
:math:`{\mu_{i}=\mu}`, when :math:`w^{self}_{\mu_{i}\mu}` = 1. When the
*chem* keyword is not used, this keyword has no effect.
The keyword *bnormflag* determines whether or not the bispectrum
component :math:`B_{j_1,j_2,j}` is divided by a factor of :math:`2j+1`.
@ -299,16 +298,16 @@ are not both set or not both unset.
.. note::
If you have a bonded system, then the settings of
:doc:`special_bonds <special_bonds>` command can remove pairwise
interactions between atoms in the same bond, angle, or dihedral. This
is the default setting for the :doc:`special_bonds <special_bonds>`
command, and means those pairwise interactions do not appear in the
neighbor list. Because this fix uses the neighbor list, it also means
those pairs will not be included in the calculation. One way to get
around this, is to write a dump file, and use the :doc:`rerun <rerun>`
command to compute the bispectrum components for snapshots in the dump
file. The rerun script can use a :doc:`special_bonds <special_bonds>`
If you have a bonded system, then the settings of :doc:`special_bonds
<special_bonds>` command can remove pairwise interactions between
atoms in the same bond, angle, or dihedral. This is the default
setting for the :doc:`special_bonds <special_bonds>` command, and
means those pairwise interactions do not appear in the neighbor list.
Because this fix uses the neighbor list, it also means those pairs
will not be included in the calculation. One way to get around this,
is to write a dump file, and use the :doc:`rerun <rerun>` command to
compute the bispectrum components for snapshots in the dump file.
The rerun script can use a :doc:`special_bonds <special_bonds>`
command that includes all pairs in the neighbor list.
----------
@ -317,10 +316,10 @@ Output info
"""""""""""
Compute *sna/atom* calculates a per-atom array, each column
corresponding to a particular bispectrum component. The total number
of columns and the identity of the bispectrum component contained in
each column depend of the value of *twojmax*\ , as
described by the following piece of python code:
corresponding to a particular bispectrum component. The total number of
columns and the identity of the bispectrum component contained in each
column depend of the value of *twojmax*\ , as described by the following
piece of python code:
.. parsed-literal::
@ -338,73 +337,72 @@ For even twojmax = 2(*m*\ -1), :math:`K = m(m+1)(2m+1)/6`, the *m*\ -th pyramida
since all potentials use the value of 3, corresponding to the
above set of bispectrum components.
Compute *snad/atom* evaluates a per-atom array. The columns are
arranged into *ntypes* blocks, listed in order of atom type *I*\ . Each
block contains three sub-blocks corresponding to the *x*\ , *y*\ , and *z*
Compute *snad/atom* evaluates a per-atom array. The columns are arranged
into *ntypes* blocks, listed in order of atom type *I*\ . Each block
contains three sub-blocks corresponding to the *x*\ , *y*\ , and *z*
components of the atom position. Each of these sub-blocks contains *K*
columns for the *K* bispectrum components, the same as for compute *sna/atom*
columns for the *K* bispectrum components, the same as for compute
*sna/atom*
Compute *snav/atom* evaluates a per-atom array. The columns are
arranged into *ntypes* blocks, listed in order of atom type *I*\ . Each
block contains six sub-blocks corresponding to the *xx*\ , *yy*\ , *zz*\ ,
Compute *snav/atom* evaluates a per-atom array. The columns are arranged
into *ntypes* blocks, listed in order of atom type *I*\ . Each block
contains six sub-blocks corresponding to the *xx*\ , *yy*\ , *zz*\ ,
*yz*\ , *xz*\ , and *xy* components of the virial tensor in Voigt
notation. Each of these sub-blocks contains *K*
columns for the *K* bispectrum components, the same as for compute *sna/atom*
notation. Each of these sub-blocks contains *K* columns for the *K*
bispectrum components, the same as for compute *sna/atom*
Compute *snap* evaluates a global array.
The columns are arranged into
*ntypes* blocks, listed in order of atom type *I*\ . Each block
contains one column for each bispectrum component, the same as for compute
*sna/atom*\ . A final column contains the corresponding energy, force component
on an atom, or virial stress component. The rows of the array appear
in the following order:
Compute *snap* evaluates a global array. The columns are arranged into
*ntypes* blocks, listed in order of atom type *I*\ . Each block contains
one column for each bispectrum component, the same as for compute
*sna/atom*\ . A final column contains the corresponding energy, force
component on an atom, or virial stress component. The rows of the array
appear in the following order:
* 1 row: *sna/atom* quantities summed for all atoms of type *I*
* 3\*\ *N* rows: *snad/atom* quantities, with derivatives w.r.t. x, y, and z coordinate of atom *i* appearing in consecutive rows. The atoms are sorted based on atom ID.
* 6 rows: *snav/atom* quantities summed for all atoms of type *I*
For example, if *K* =30 and ntypes=1, the number of columns in the per-atom
arrays generated by *sna/atom*\ , *snad/atom*\ , and *snav/atom*
are 30, 90, and 180, respectively. With *quadratic* value=1,
the numbers of columns are 930, 2790, and 5580, respectively.
The number of columns in the global array generated by *snap*
are 31, and 931, respectively, while the number of rows is
1+3\*\ *N*\ +6, where *N* is the total number of atoms.
For example, if *K* =30 and ntypes=1, the number of columns in the
per-atom arrays generated by *sna/atom*\ , *snad/atom*\ , and
*snav/atom* are 30, 90, and 180, respectively. With *quadratic* value=1,
the numbers of columns are 930, 2790, and 5580, respectively. The
number of columns in the global array generated by *snap* are 31, and
931, respectively, while the number of rows is 1+3\*\ *N*\ +6, where *N*
is the total number of atoms.
If the *quadratic* keyword value is set to 1, then additional
columns are generated, corresponding to
the products of all distinct pairs of bispectrum components. If the
number of bispectrum components is *K*\ , then the number of distinct pairs
is *K*\ (\ *K*\ +1)/2.
For compute *sna/atom* these columns are appended to existing *K* columns.
The ordering of quadratic terms is upper-triangular,
(1,1),(1,2)...(1,\ *K*\ ),(2,1)...(\ *K*\ -1,\ *K*\ -1),(\ *K*\ -1,\ *K*\ ),(\ *K*\ ,\ *K*\ ).
If the *quadratic* keyword value is set to 1, then additional columns
are generated, corresponding to the products of all distinct pairs of
bispectrum components. If the number of bispectrum components is *K*\ ,
then the number of distinct pairs is *K*\ (\ *K*\ +1)/2. For compute
*sna/atom* these columns are appended to existing *K* columns. The
ordering of quadratic terms is upper-triangular, (1,1),(1,2)...(1,\ *K*\
),(2,1)...(\ *K*\ -1,\ *K*\ -1),(\ *K*\ -1,\ *K*\ ),(\ *K*\ ,\ *K*\ ).
For computes *snad/atom* and *snav/atom* each set of *K*\ (\ *K*\ +1)/2
additional columns is inserted directly after each of sub-block
of linear terms i.e. linear and quadratic terms are contiguous.
So the nesting order from inside to outside is bispectrum component,
linear then quadratic, vector/tensor component, type.
additional columns is inserted directly after each of sub-block of
linear terms i.e. linear and quadratic terms are contiguous. So the
nesting order from inside to outside is bispectrum component, linear
then quadratic, vector/tensor component, type.
If the *chem* keyword is used, then the data is arranged into :math:`N_{elem}^3`
sub-blocks, each sub-block corresponding to a particular chemical labeling
:math:`\kappa\lambda\mu` with the last label changing fastest.
Each sub-block contains *K* bispectrum components. For the purposes
of handling contributions to force, virial, and quadratic combinations,
these :math:`N_{elem}^3` sub-blocks are treated as a single block
of :math:`K N_{elem}^3` columns.
If the *chem* keyword is used, then the data is arranged into
:math:`N_{elem}^3` sub-blocks, each sub-block corresponding to a
particular chemical labeling :math:`\kappa\lambda\mu` with the last
label changing fastest. Each sub-block contains *K* bispectrum
components. For the purposes of handling contributions to force, virial,
and quadratic combinations, these :math:`N_{elem}^3` sub-blocks are
treated as a single block of :math:`K N_{elem}^3` columns.
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>` doc
page for an overview of LAMMPS output options. To see how this command
can be used within a Python workflow to train SNAP potentials,
see the examples in `FitSNAP <https://github.com/FitSNAP/FitSNAP>`_.
can be used within a Python workflow to train SNAP potentials, see the
examples in `FitSNAP <https://github.com/FitSNAP/FitSNAP>`_.
Restrictions
""""""""""""
These computes are part of the SNAP package. They are only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>`
doc page for more info.
These computes are part of the ML-SNAP package. They are only enabled
if LAMMPS was built with that package. See the :doc:`Build package
<Build_package>` doc page for more info.
Related commands
""""""""""""""""

View File

@ -49,7 +49,7 @@ The per-atom vector values will be in energy :doc:`units <units>`.
Restrictions
""""""""""""
This compute is part of the USER-SPH package. It is only enabled if
This compute is part of the SPH package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -48,7 +48,7 @@ The per-atom vector values will be in mass/volume :doc:`units <units>`.
Restrictions
""""""""""""
This compute is part of the USER-SPH package. It is only enabled if
This compute is part of the SPH package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -53,7 +53,7 @@ The per-atom vector values will be in temperature :doc:`units <units>`.
Restrictions
""""""""""""
This compute is part of the USER-SPH package. It is only enabled if
This compute is part of the SPH package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Related commands

View File

@ -233,7 +233,7 @@ since its computations are performed pairwise), nor granular pair
styles with pairwise forces which are not aligned with the vector
between the pair of particles. All bond styles are supported. All
angle, dihedral, improper styles are supported with the exception of
USER-INTEL and KOKKOS variants of specific styles. It also does not
INTEL and KOKKOS variants of specific styles. It also does not
support models with long-range Coulombic or dispersion forces,
i.e. the kspace_style command in LAMMPS. It also does not support the
following fixes which add rigid-body constraints: :doc:`fix shake

View File

@ -87,7 +87,7 @@ and stress_dir,z.
The values are in pressure :doc:`units <units>`.
The values produced by this compute can be accessed by various :doc:`output commands <Howto_output>`. For instance, the results can be written to a file using the :doc:`fix ave/time <fix_ave_time>` command. Please see the example in the examples/USER/mop folder.
The values produced by this compute can be accessed by various :doc:`output commands <Howto_output>`. For instance, the results can be written to a file using the :doc:`fix ave/time <fix_ave_time>` command. Please see the example in the examples/PACKAGES/mop folder.
Restrictions
""""""""""""

View File

@ -91,7 +91,7 @@ Both the scalar and vector values calculated by this compute are
Restrictions
""""""""""""
This compute is part of the USER-TALLY package. It is only enabled if
This compute is part of the TALLY package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
Not all pair styles can be evaluated in a pairwise mode as required by

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