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:
@ -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)
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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::
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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::
|
||||
|
||||
@ -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::
|
||||
|
||||
@ -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>`
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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*
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
|
||||
@ -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 |
|
||||
|
||||
@ -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::
|
||||
|
||||
|
||||
@ -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".
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
----------
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
449
doc/src/Packages_list.rst
Normal 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/
|
||||
@ -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 |
|
||||
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
|
||||
@ -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
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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).
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
"""""""""""
|
||||
|
||||
@ -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>`
|
||||
|
||||
@ -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>`
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
""""""""""""""""
|
||||
|
||||
@ -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>`
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
""""""""""""""""
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
""""""""""""
|
||||
|
||||
@ -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
Reference in New Issue
Block a user