Merge branch 'master' into collected-small-changes

This commit is contained in:
Axel Kohlmeyer 2020-09-04 13:32:47 -04:00
commit ceed9284c1
No known key found for this signature in database
GPG Key ID: D9B44E93BF0C375A
1401 changed files with 6368 additions and 6517 deletions

View File

@ -248,6 +248,26 @@ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
endif()
endif()
#######################################
# add custom target for IWYU analysis
#######################################
set(ENABLE_IWYU OFF CACHE BOOL "Add 'iwyu' build target to call the include-what-you-use tool")
mark_as_advanced(ENABLE_IWYU)
if(ENABLE_IWYU)
find_program(IWYU_EXE NAMES include-what-you-use iwyu)
find_program(IWYU_TOOL NAMES iwyu_tool iwyu-tool iwyu_tool.py)
if (IWYU_EXE AND IWYU_TOOL)
add_custom_target(
iwyu
${IWYU_TOOL} -o clang -p ${CMAKE_CURRENT_BINARY_DIR} -- -Xiwyu --mapping_file=${CMAKE_CURRENT_SOURCE_DIR}/iwyu/iwyu-extra-map.imp
COMMENT "Running IWYU")
add_dependencies(iwyu lammps)
else()
message(FATAL_ERROR "To use IWYU you need the include-what-you-use/iwyu executable"
"and the iwyu-tool/iwyu_tool script installed in your PATH")
endif()
endif()
set(ENABLE_SANITIZER "none" CACHE STRING "Select a code sanitizer option (none (default), address, leak, thread, undefined)")
mark_as_advanced(ENABLE_SANITIZER)
set(ENABLE_SANITIZER_VALUES none address leak thread undefined)
@ -292,7 +312,6 @@ if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
endif()
endif()
find_package(JPEG QUIET)
option(WITH_JPEG "Enable JPEG support" ${JPEG_FOUND})
if(WITH_JPEG)

View File

@ -0,0 +1,7 @@
[
{ include: [ "<bits/types/struct_rusage.h>", private, "<sys/resource.h>", public ] },
{ include: [ "<bits/exception.h>", public, "<exception>", public ] },
{ include: [ "@<Eigen/.*>", private, "<Eigen/Eigen>", public ] },
{ include: [ "@<gtest/.*>", private, "\"gtest/gtest.h\"", public ] },
{ include: [ "@<gmock/.*>", private, "\"gmock/gmock.h\"", public ] },
]

View File

@ -91,32 +91,31 @@ statements should follow the "include what you use" principle.
Include files should be included in this order:
* the header matching the implementation (`some_class.h` for file `some_class.cpp`)
* mpi.h
* system and library headers (anything that is using angular brackets; C-library headers first, then C++)
* mpi.h (only if needed)
* LAMMPS local headers (preferably in alphabetical order)
* system and library headers (anything that is using angular brackets; preferably in alphabetical order)
* conditional include statements (i.e. anything bracketed with ifdefs)
### Special Cases and Exceptions
#### pointers.h
The `pointer.h` header file also includes `cstdio`, `cstddef`,
`string`, `lmptype.h`, and `utils.h` (and through those indirectly
`stdint.h`, `intttypes.h`, cstdlib, and `climits`).
The `pointer.h` header file also includes (in this order) `lmptype.h`,
`mpi.h`, `cstddef`, `cstdio`, `string`, `utils.h`, and `fmt/format.h`
and through `lmptype.h` indirectly also `climits`, `cstdlib`, `cinttypes`.
This means any header including `pointers.h` can assume that `FILE`,
`NULL`, `INT_MAX` are defined, they may freely use std::string
and functions from the utils namespace without including the
corresponding header files.
`NULL`, `INT_MAX` are defined, and the may freely use the std::string
for arguments. Corresponding implementation files do not need to include
those headers.
## Tools
The [Include What You Use tool](https://include-what-you-use.org/)
can be used to provide supporting information about compliance with
the rules listed here. There are some limitations and the IWYU tool
may give incorrect advice. The tools is activated by setting the
CMake variable `CMAKE_CXX_INCLUDE_WHAT_YOU_USE` variable to the
path of the `include-what-you-use` command. When activated, the
tool will be run after each compilation and provide suggestions for
which include files should be added or removed.
the rules listed here. Through setting `-DENABLE_IWYU=on` when running
CMake, a custom build target is added that will enable recording
the compilation commands and then run the `iwyu_tool` using the
recorded compilation commands information when typing `make iwyu`.
## Legacy Code

View File

@ -115,12 +115,12 @@ 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 <Speed_omp>` doc 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) and adds
vectorization support when compiled with compatible compilers, in
particular the Intel compilers on top of OpenMP. Also, the ``KOKKOS``
``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)
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
@ -290,13 +290,13 @@ Serial build with GNU gcc (see ``src/MAKE/Makefile.serial``):
compiler that supports C++11; either as a binary package or through
compiling from source.
If you build LAMMPS with any :doc:`accelerator packages
<Speed_packages>` included, there may be specific optimization flags
If you build LAMMPS with any :doc:`Speed_packages` included, there may
be specific compiler or linker flags
that are either required or recommended to enable required features and
to achieve optimal performance. You need to include these in the
CCFLAGS and LINKFLAGS settings above. For details, see the individual
package doc pages listed on the :doc:`Speed packages <Speed_packages>`
doc page. Or examine these files in the src/MAKE/OPTIONS directory.
package doc pages listed on the :doc:`Speed_packages`
page. Or examine these files in the src/MAKE/OPTIONS directory.
They correspond to each of the 5 accelerator packages and their hardware
variants:
@ -418,7 +418,7 @@ recommended to ensure the integrity of the system software installation.
.. _debug:
Excluding or removing debug support
Including or removing debug support
-----------------------------------
By default the compilation settings will include the *-g* flag which
@ -460,7 +460,7 @@ python packages are installed into that virtual environment via the pip
tool. The actual translation is then done via make commands.
.. _rst: https://docutils.readthedocs.io/en/sphinx-docs/user/rst/quickstart.html
.. _sphinx: https://sphinx-doc.org
.. _sphinx: https://www.sphinx-doc.org
Documentation make option
^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -28,6 +28,40 @@ variable VERBOSE set to 1:
----------
.. _iwyu_processing:
Report missing and unneeded '#include' statements
-------------------------------------------------
The conventions for how and when to use and order include statements in
LAMMPS are `documented in a separate file <https://github.com/lammps/lammps/blob/master/doc/include-file-conventions.md>`_
(also included in the source code distribution). To assist with following
these conventions one can use the `Include What You Use tool <https://include-what-you-use.org/>`_.
This is still under development and for large and complex projects like LAMMPS
there are some false positives, so suggested changes need to be verified manually.
It is recommended to use at least version 0.14, which has much fewer incorrect
reports than earlier versions.
The necessary steps to generate the report can be enabled via a
CMake variable:
.. code-block:: bash
-D ENABLE_IWYU=value # value = no (default) or yes
This will check if the required binary (include-what-you-use or iwyu)
and python script script (iwyu-tool or iwyu_tool or iwyu_tool.py) can
be found in the path. The analysis can then be started with:
.. code-block:: bash
make iwyu
This may first run some compilation, as the analysis is dependent
on recording all commands required to do the compilation.
----------
.. _sanitizer:
Address, Undefined Behavior, and Thread Sanitizer Support
@ -37,14 +71,14 @@ Compilers such as GCC and Clang support generating instrumented binaries
which use different sanitizer libraries to detect problems in the code
during run-time. They can detect issues like:
- `memory leaks <https://clang.llvm.org/docs/AddressSanitizer.html>`_
- `memory leaks <https://clang.llvm.org/docs/AddressSanitizer.html#memory-leak-detection>`_
- `undefined behavior <https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html>`_
- `data races <https://clang.llvm.org/docs/ThreadSanitizer.html>`_
Please note that this kind of instrumentation usually comes with a
performance hit (but much less than using tools like `Valgrind
<https://valgrind.org>`_ with a more low level approach). The to enable
these features additional compiler flags need to be added to the
<https://valgrind.org>`_ with a more low level approach). To enable
these features, additional compiler flags need to be added to the
compilation and linking stages. This is done through setting the
``ENABLE_SANITIZER`` variable during configuration. Examples:
@ -77,7 +111,7 @@ error margin). The status of this automated testing can be viewed on
The unit testing facility is integrated into the CMake build process
of the LAMMPS source code distribution itself. It can be enabled by
setting ``-D ENABLE_TESTING=on`` during the CMake configuration step.
It requires the `YAML <http://pyyaml.org/>`_ library and development
It requires the `PyYAML <http://pyyaml.org/>`_ library and development
headers to compile and will download and compile a recent version of the
`Googletest <https://github.com/google/googletest/>`_ C++ test framework
for implementing the tests.

View File

@ -234,11 +234,10 @@ command, you also need to have libcurl installed with the matching
development headers and the curl-config tool.
If you would like to use the :doc:`kim_property <kim_commands>`
command, you need to build LAMMPS with the Python 3.6 or later package
installed. See the :doc:`Python <python>` doc page for more info on building
LAMMPS with the version of Python on your system.
After successfully building LAMMPS with Python, you need to
install the kim-property Python package, which can be easily done using
command, you need to build LAMMPS with the PYTHON package installed
and linked to Python 3.6 or later. See the :ref:`PYTHON package build info <python>`
for more details on this. After successfully building LAMMPS with Python, you
also need to install the kim-property Python package, which can be easily done using
*pip* as ``pip install kim-property``, or from the *conda-forge* channel as
``conda install kim-property`` if LAMMPS is built in Conda. More detailed
information is available at:
@ -812,10 +811,11 @@ a corresponding ``Makefile.lammps.machine`` file.
PYTHON package
---------------------------
Building with the PYTHON package requires you have a Python shared
library available on your system, which needs to be a Python 2.7
version or a Python 3.x version. See ``lib/python/README`` for more
details.
Building with the PYTHON package requires you have a the Python development
headers and library available on your system, which needs to be a Python 2.7
version or a Python 3.x version. Since support for Python 2.x has ended,
using Python 3.x is strongly recommended. See ``lib/python/README`` for
additional details.
CMake build
^^^^^^^^^^^
@ -1095,7 +1095,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_>`_.
from LAMMPS using the generic `PLUMED installation instructions <plumedinstall_>`_.
The USER-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.
@ -1262,7 +1262,7 @@ 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
on the :doc:`Speed intel <Speed_intel>` doc page.
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

View File

@ -4,11 +4,11 @@ Link LAMMPS as a library to another code
LAMMPS is designed as a library of C++ objects that can be
integrated into other applications including Python scripts.
The files ``src/library.cpp`` and ``src/library.h`` define a
C-style API for using LAMMPS as a library. See the :doc:`Howto
library <Howto_library>` page for a description of the interface
and how to use it for your needs.
C-style API for using LAMMPS as a library. See the
:doc:`Howto_library` page
for a description of the interface and how to use it for your needs.
The :doc:`Build basics <Build_basics>` doc page explains how to build
The :doc:`Build_basics` page explains how to build
LAMMPS as either a shared or static library. This results in a file
in the compilation folder called ``liblammps.a`` or ``liblammps_<name>.a``
in case of building a static library. In case of a shared library

View File

@ -37,7 +37,7 @@ enable (or "install") them first, as discussed on the :doc:`Build
package <Build_package>` doc page. If a packages requires (provided or
external) libraries, you must configure and build those libraries
**before** building LAMMPS itself and especially **before** enabling
such a package with ``make yes-<package>``. Building :doc:`LAMMPS with
such a package with ``make yes-<package>``. :doc:`Building LAMMPS with
CMake <Build_cmake>` can automate much of this for many types of
machines, especially workstations, desktops, and laptops, so we suggest
you try it first when building LAMMPS in those cases.

View File

@ -6,7 +6,7 @@ explain how to do this for building both with CMake and make.
* :ref:`C++11 standard compliance <cxx11>` when building all of LAMMPS
* :ref:`FFT library <fft>` for use with the :doc:`kspace_style pppm <kspace_style>` command
* :ref:`Size of LAMMPS data types <size>`
* :ref:`Size of LAMMPS integer types <size>`
* :ref:`Read or write compressed files <gzip>`
* :ref:`Output of JPG and PNG files <graphics>` via the :doc:`dump image <dump_image>` command
* :ref:`Output of movie files <graphics>` via the :doc:`dump_movie <dump_image>` command
@ -123,7 +123,8 @@ per-timestep CPU cost, FFTs are only a portion of long-range
Coulombics, and 1d FFTs are only a portion of the FFT cost (parallel
communication can be costly). A breakdown of these timings is printed
to the screen at the end of a run when using the
:doc:`kspace_style pppm <kspace_style>` command. The :doc:`Run output <Run_output>`
:doc:`kspace_style pppm <kspace_style>` command. The
:doc:`Screen and logfile output <Run_output>`
doc page gives more details. A more detailed (and time consuming)
report of the FFT performance is generated with the
:doc:`kspace_modify fftbench yes <kspace_modify>` command.

View File

@ -38,7 +38,7 @@ optional Windows feature allows you to run the bash shell from Ubuntu
from within Windows and from there on, you can pretty much use that
shell like you are running on an Ubuntu Linux machine (e.g. installing
software via apt-get and more). For more details on that, please
see :doc:`this tutorial <Howto_wsl>`
see :doc:`this tutorial <Howto_wsl>`.
.. _gnu:

View File

@ -17,6 +17,11 @@ ways through the :doc:`compute chunk/atom <compute_chunk_atom>` command
and then averaging is done using :doc:`fix ave/chunk <fix_ave_chunk>`.
Please refer to the :doc:`chunk HOWTO <Howto_chunk>` section for an overview.
Reset_ids command
-----------------
The reset_ids command has been renamed to :doc:`reset_atom_ids <reset_atom_ids>`.
MEAM package
------------
@ -27,7 +32,7 @@ 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
:doc:`meam <pair_meamc>` is an alias to the new style and backward
meam is an alias to the new style and backward
compatibility of old inputs is preserved.
REAX package

View File

@ -6,23 +6,25 @@ the steps outlined below:
* Check the `New features and bug fixes
<https://lammps.sandia.gov/bug.html>`_ section of the `LAMMPS WWW site
<lws_>`_ to see if the bug has already been addressed in a patch.
<https://lammps.sandia.gov>`_ or the
`GitHub Releases page <https://github.com/lammps/lammps/releases>`_ to
see if the bug has already been addressed in a patch release.
* Check that your issue can be reproduced with the latest development
version of LAMMPS.
* Check the manual carefully to verify that the unexpected behavior you
are observing is indeed in conflict with the documentation
* Check the `GitHub Issue page <gip_>`_
* Check the `GitHub Issue page <https://github.com/lammps/lammps/issues>`_
if your issue has already been reported and if it is still open.
* Check the `GitHub Pull Requests page <https://github.com/lammps/pulls>`_
if there is already a fix for your bug pending.
* Check the `GitHub Pull Requests page <https://github.com/lammps/lammps/pulls>`_
to see if there is already a fix for your bug pending.
* Check the `mailing list archives <https://lammps.sandia.gov/mail.html>`_
to see if the issue has been discussed before.
If none of these steps yields any useful information, please file a new
bug report on the `GitHub Issue page <gip_>`_. The website will offer
you to select a suitable template with explanations and then you should
replace those explanations with the information that you can provide to
reproduce your issue.
bug report on the `GitHub Issue page <https://github.com/lammps/lammps/issues>`_.
The website will offer you to select a suitable template with explanations
and then you should replace those explanations with the information that
you can provide to reproduce your issue.
The most useful thing you can do to help us verify and fix a bug is to
isolate the problem. Run it on the smallest number of atoms and fewest
@ -33,7 +35,7 @@ Please avoid using binary restart files unless the issue requires it.
In the latter case you should also include an input deck to quickly
generate this restart from a data file or a simple additional input.
This input deck can be used with tools like a debugger or `valgrind
<valgrind_>`_ to further :doc:`debug the crash <Errors_debug>`.
<https://valgrind.org>`_ to further :doc:`debug the crash <Errors_debug>`.
You may also send an email to the LAMMPS mailing list at
"lammps-users at lists.sourceforge.net" describing the problem with the
@ -44,6 +46,3 @@ is overlooked and then forgotten. Issues on GitHub have to be explicitly
closed, so that will *guarantee* that at least one LAMMPS developer will
have looked at it.
.. _lws: https://lammps.sandia.gov
.. _gip: https://github.com/lammps/issues
.. _valgrind: https://valgrind.org

View File

@ -48,8 +48,10 @@ to see it on the screen. If you get an error like "Invalid ...
style", with ... being fix, compute, pair, etc, it means that you
mistyped the style name or that the command is part of an optional
package which was not compiled into your executable. The list of
available styles in your executable can be listed by using :doc:`the -h command-line swith <Run_options>`. The installation and
compilation of optional packages is explained on the :doc:`Build packages <Build_package>` doc page.
available styles in your executable can be listed by using
:doc:`the -h command-line switch <Run_options>`. The installation and
compilation of optional packages is explained on the
:doc:`Build packages <Build_package>` doc page.
For a given command, LAMMPS expects certain arguments in a specified
order. If you mess this up, LAMMPS will often flag the error, but it

View File

@ -27,7 +27,7 @@ be quickly post-processed into a movie using commands described on the
:doc:`dump image <dump_image>` doc page.
Animations of many of the examples can be viewed on the Movies section
of the `LAMMPS web site <lws_>`_.
of the `LAMMPS web site <https://lammps.sandia.gov/movies.html>`_.
There are two kinds of sub-directories in the examples folder. Lower
case named directories contain one or a few simple, quick-to-run
@ -223,4 +223,3 @@ instructions. See the :doc:`Packages_details <Packages_details>` doc
page for more info on specific USER packages.
.. _openkim: https://openkim.org
.. _lws: https://lammps.sandia.gov

View File

@ -3,7 +3,7 @@ Howto discussions
These doc pages describe how to perform various tasks with LAMMPS,
both for users and developers. The
`glossary <https://lammps.sandia.gov>`_ website page also lists MD
`glossary <https://lammps.sandia.gov/glossary.html>`_ website page also lists MD
terminology with links to corresponding LAMMPS manual pages. The
example input scripts included in the examples directory of the LAMMPS
distribution and highlighted on the :doc:`Examples <Examples>` doc page

View File

@ -6,14 +6,14 @@ Use the :doc:`dimension <dimension>` command to specify a 2d simulation.
Make the simulation box periodic in z via the :doc:`boundary <boundary>`
command. This is the default.
If using the :doc:`create box <create_box>` command to define a
If using the :doc:`create_box <create_box>` command to define a
simulation box, set the z dimensions narrow, but finite, so that the
create_atoms command will tile the 3d simulation box with a single z
plane of atoms - e.g.
:doc:`create_atoms <create_atoms>` command will fill the 3d simulation
box with a single z plane of atoms - e.g.
.. code-block:: LAMMPS
:doc:`create box <create_box>` 1 -10 10 -10 10 -0.25 0.25
create box 1 -10 10 -10 10 -0.25 0.25
If using the :doc:`read data <read_data>` command to read in a file of
atom coordinates, set the "zlo zhi" values to be finite but narrow,

View File

@ -32,9 +32,9 @@ thus how they can be used to compute pairwise body/body or
bond/non-body (point particle) interactions. More details of each
style are described below.
More styles may be added in the future. See the :doc:`Modify body
<Modify_body>` doc page for details on how to add a new body style to
the code.
More styles may be added in the future. See the
:doc:`page on creating new body styles <Modify_body>` for details on
how to add a new body style to the code.
----------

View File

@ -198,7 +198,8 @@ explained on the :doc:`compute chunk/spread/atom <compute_chunk_spread_atom>` co
(7) An example for using one set of per-chunk values for molecule
chunks, to create a second set of micelle-scale chunks (clustered
molecules, due to hydrophobicity), is explained on the :doc:`compute chunk/reduce <compute_reduce_chunk>` command doc page.
molecules, due to hydrophobicity), is explained on the
:doc:`compute reduce/chunk <compute_reduce_chunk>` command doc page.
(8) An example for using one set of per-chunk values (dipole moment
vectors) for molecule chunks, spreading the values to each atom in

View File

@ -29,7 +29,7 @@ molecular systems (:ref:`Lamoureux and Roux <howto-Lamoureux>`):
to the total charge of the core atom).
A detailed tutorial covering the usage of Drude induced dipoles in
LAMMPS is on the :doc:`Howto drude2e <Howto_drude2>` doc page.
LAMMPS is on the :doc:`here <Howto_drude2>`.
As with the core-shell model, the cores and Drude particles should
appear in the data file as standard atoms. The same holds for the

View File

@ -377,7 +377,7 @@ For our phenol example, the groups would be defined as
Note that with the fixes *drude/transform*\ , it is not required to
specify *comm_modify vel yes* because the fixes do it anyway (several
times and for the forces also). To avoid the flying ice cube artifact
:ref:`(Lamoureux) <Lamoureux2>`, where the atoms progressively freeze and the
:ref:`(Lamoureux and Roux) <Lamoureux2>`, where the atoms progressively freeze and the
center of mass of the whole system drifts faster and faster, the *fix
momentum* can be used. For instance:
@ -456,7 +456,7 @@ NPT ensemble using Nose-Hoover thermostat:
.. _Lamoureux2:
**(Lamoureux)** Lamoureux and Roux, J Chem Phys, 119, 3025-3039 (2003)
**(Lamoureux and Roux)** Lamoureux and Roux, J Chem Phys, 119, 3025-3039 (2003)
.. _Schroeder:

View File

@ -20,7 +20,7 @@ work required by the LAMMPS developers. Consequently, creating a pull
request will increase your chances to have your contribution included
and will reduce the time until the integration is complete. For more
information on the requirements to have your code included into LAMMPS
please see the :doc:`Modify contribute <Modify_contribute>` doc page.
please see :doc:`this page <Modify_contribute>`.
----------

View File

@ -114,7 +114,7 @@ will only rotate and experience torque if the force field computes
such interactions. These are the various :doc:`pair styles <pair_style>` that generate torque:
* :doc:`pair_style gran/history <pair_gran>`
* :doc:`pair_style gran/hertzian <pair_gran>`
* :doc:`pair_style gran/hertz <pair_gran>`
* :doc:`pair_style gran/no_history <pair_gran>`
* :doc:`pair_style dipole/cut <pair_dipole>`
* :doc:`pair_style gayberne <pair_gayberne>`

View File

@ -42,12 +42,12 @@ particles.
DPD thermostatting alters pairwise interactions in a manner analogous
to the per-particle thermostatting of :doc:`fix langevin <fix_langevin>`.
Any of the thermostatting fixes can use :doc:`temperature computes <Howto_thermostat>` that remove bias which has two
effects. First, the current calculated temperature, which is compared
to the requested target temperature, is calculated with the velocity
bias removed. Second, the thermostat adjusts only the thermal
temperature component of the particle's velocities, which are the
velocities with the bias removed. The removed bias is then added back
Any of the thermostatting fixes can be instructed to use custom temperature
computes that remove bias which has two effects: first, the current
calculated temperature, which is compared to the requested target temperature,
is calculated with the velocity bias removed; second, the thermostat adjusts
only the thermal temperature component of the particle's velocities, which are
the velocities with the bias removed. The removed bias is then added back
to the adjusted velocities. See the doc pages for the individual
fixes and for the :doc:`fix_modify <fix_modify>` command for
instructions on how to assign a temperature compute to a
@ -55,7 +55,24 @@ thermostatting fix. For example, you can apply a thermostat to only
the x and z components of velocity by using it in conjunction with
:doc:`compute temp/partial <compute_temp_partial>`. Of you could
thermostat only the thermal temperature of a streaming flow of
particles without affecting the streaming velocity, by using :doc:`compute temp/profile <compute_temp_profile>`.
particles without affecting the streaming velocity, by using
:doc:`compute temp/profile <compute_temp_profile>`.
Below is a list of some custom temperature computes that can be used like that:
* :doc:`compute_temp_asphere`
* :doc:`compute_temp_body`
* :doc:`compute_temp_chunk`
* :doc:`compute_temp_com`
* :doc:`compute_temp_deform`
* :doc:`compute_temp_partial`
* :doc:`compute_temp_profile`
* :doc:`compute_temp_ramp`
* :doc:`compute_temp_region`
* :doc:`compute_temp_rotate`
* :doc:`compute_temp_sphere`
.. note::

View File

@ -5,8 +5,8 @@ The shear viscosity eta of a fluid can be measured in at least 6 ways
using various options in LAMMPS. See the examples/VISCOSITY directory
for scripts that implement the 5 methods discussed here for a simple
Lennard-Jones fluid model and 1 method for SPC/E water model.
Also, see the :doc:`Howto kappa <Howto_kappa>` doc page for an analogous discussion for
thermal conductivity.
Also, see the :doc:`page on calculating thermal conductivity <Howto_kappa>`
for an analogous discussion for thermal conductivity.
Eta is a measure of the propensity of a fluid to transmit momentum in
a direction perpendicular to the direction of velocity or momentum

View File

@ -51,15 +51,14 @@ Or they can be generated from the content provided in doc/src by
typing ``make html`` from the doc directory.
After initial cloning, as bug fixes and new features are added to
LAMMPS, as listed on :doc:`this page <Errors_bugs>`, you can stay
up-to-date by typing the following git commands from within the
"mylammps" directory:
LAMMPS you can stay up-to-date by typing the following git commands
from within the "mylammps" directory:
.. code-block:: bash
$ git checkout unstable # not needed if you always stay in this branch
$ git checkout stable # use one of the 3 checkout commands
$ git checkout master
$ git checkout stable # use one of these 3 checkout commands
$ git checkout master # to choose the branch to follow
$ git pull
Doing a "pull" will not change any files you have added to the LAMMPS
@ -82,8 +81,8 @@ Stable versions and what tagID to use for a particular stable version
are discussed on `this page <https://lammps.sandia.gov/bug.html#version>`_.
Note that this command will print some warnings, because in order to get
back to the latest revision and to be able to update with ``git pull``
again, you first will need to first type ``git checkout unstable`` (or
check out any other desired branch).
again, you will need to do ``git checkout unstable`` (or
check out any other desired branch) first.
Once you have updated your local files with a ``git pull`` (or ``git
checkout``), you still need to re-build LAMMPS if any source files have
@ -95,7 +94,7 @@ changed. To do this, you should cd to the src directory and type:
$ 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:`Install patch <Install_patch>` doc page,
just as described on the :doc:`Apply patch <Install_patch>` doc page,
after a patch has been installed.
.. warning::

View File

@ -6,9 +6,12 @@ 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:`Install git <Install_tarball>` doc page, you can stay current by
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 and feature page <https://lammps.sandia.gov/bug.html>`_ of the LAMMPS website, along
a patch file is posted on the
`bugf fixes and new feature page <https://lammps.sandia.gov/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.

View File

@ -181,7 +181,7 @@ Pre- and post-processing
* A handful of pre- and post-processing tools are packaged with LAMMPS,
some of which can convert input and output files to/from formats used
by other codes; see the :doc:`Toos <Tools>` doc page.
by other codes; see the :doc:`Tools <Tools>` doc page.
* Our group has also written and released a separate toolkit called
`Pizza.py <pizza_>`_ which provides tools for doing setup, analysis,
plotting, and visualization for LAMMPS simulations. Pizza.py is
@ -197,7 +197,7 @@ Specialized features
----------------------------------
LAMMPS can be built with optional packages which implement a variety
of additional capabilities. See the :doc:`Packages <Packages>` doc
of additional capabilities. See the :doc:`Optional Packages <Packages>`
page for details.
These are LAMMPS capabilities which you may not think of as typical
@ -214,7 +214,7 @@ classical MD options:
* Monte Carlo via :doc:`GCMC <fix_gcmc>` and :doc:`tfMC <fix_tfmc>` and :doc:`atom swapping <fix_atom_swap>`
* :doc:`path-integral molecular dynamics (PIMD) <fix_ipi>` and :doc:`this as well <fix_pimd>`
* :doc:`Direct Simulation Monte Carlo <pair_dsmc>` for low-density fluids
* :doc:`Peridynamics mesoscale modeling <pair_peri>`
* :doc:`Peridynamics modeling <pair_peri>`
* :doc:`Lattice Boltzmann fluid <fix_lb_fluid>`
* :doc:`targeted <fix_tmd>` and :doc:`steered <fix_smd>` molecular dynamics
* :doc:`two-temperature electron model <fix_ttm>`

View File

@ -66,8 +66,10 @@ Here are suggestions on how to perform these tasks:
on-the-fly via its :doc:`dump image <dump_image>` command and pass
them to an external program, `FFmpeg <https://www.ffmpeg.org>`_ to generate
movies from them. For high-quality, interactive visualization there are
many excellent and free tools available. See the `Other Codes page <https://lammps.sandia.gov/viz.html>`_ page of the LAMMPS website for
visualization packages that can use LAMMPS output data.
many excellent and free tools available. See the
`Visualization Tools <https://lammps.sandia.gov/viz.html>`_ page of the
LAMMPS website for
visualization packages that can process LAMMPS output data.
* **Plotting:** See the next bullet about Pizza.py as well as the
:doc:`Python <Python_head>` doc page for examples of plotting LAMMPS
output. Scripts provided with the *python* tool in the tools

View File

@ -15,7 +15,7 @@ that supports the `MPI <mpi_>`_ message-passing library. This includes
shared-memory boxes and distributed-memory clusters and
supercomputers.
.. _mpi: http://www-unix.mcs.anl.gov/mpi
.. _mpi: https://en.wikipedia.org/wiki/Message_Passing_Interface
.. _lws: https://lammps.sandia.gov
LAMMPS is written in C++. Earlier versions were written in F77 and

View File

@ -2,22 +2,22 @@ Additional website links
========================
The `LAMMPS website <lws_>`_ has a variety of additional info about
LAMMPS, beyond what is in this manual. Some of the other pages in
this Intr are included in this list.
LAMMPS, beyond what is in this manual. Some other useful resources
available online are listed below.
.. _lws: https://lammps.sandia.gov
* `Brief intro and recently added significant features <lws_>`_
* `List of features <https://lammps.sandia.gov/features.html>`_
* `List of non-features <https://lammps.sandia.gov/non_features.html>`_
* `List of features <https://lammps.sandia.gov/doc/Intro_features.html>`_
* `List of non-features <https://lammps.sandia.gov/doc/Intro_nonfeatures.html>`_
* `Recent bug fixes and new features <https://lammps.sandia.gov/bug.html>`_
* `Download info <https://lammps.sandia.gov/download.html>`_
* `GitHub site <https://github.com/lammps/lammps>`_
* `SourceForge site <https://sourceforge.net/projects/lammps>`_
* `LAMMPS open-source license <https://lammps.sandia.gov/open_source.html>`_
* `LAMMPS open-source license <https://lammps.sandia.gov/doc/Intro_opensource.html>`_
* `Glossary of MD terms relevant to LAMMPS <https://lammps.sandia.gov/glossary.html>`_
* `Glossary of terms relevant to LAMMPS <https://lammps.sandia.gov/glossary.html>`_
* `LAMMPS highlights with images <https://lammps.sandia.gov/pictures.html>`_
* `LAMMPS highlights with movies <https://lammps.sandia.gov/movies.html>`_
* `Mail list <https://lammps.sandia.gov/mail.html>`_

View File

@ -27,9 +27,10 @@ all LAMMPS development is coordinated.
The content for this manual is part of the LAMMPS distribution. You
can build a local copy of the Manual as HTML pages or a PDF file, by
following the steps on the :doc:`Manual build <Manual_build>` doc page.
The manual is split into two parts:
1) :ref:`User documentation <user_documentation>`
and 2) :ref:`Programmer documentation <programmer_documentation>`.
The manual is organized in two parts:
1) A :ref:`User documentation <user_documentation>` for how to install
and use LAMMPS and 2) a :ref:`Programmer documentation <programmer_documentation>`
for how to write programs using the LAMMPS library or how to modify LAMMPS.
----------

View File

@ -8,7 +8,8 @@ this.
If you add a new feature to LAMMPS and think it will be of interest to
general users, we encourage you to submit it for inclusion in LAMMPS
as a pull request on our `GitHub site <https://github.com/lammps/lammps>`_, after reading the :doc:`Modify contribute <Modify_contribute>` doc page.
as a pull request on our `GitHub site <https://github.com/lammps/lammps>`_,
after reading :doc:`this page <Modify_contribute>`.
.. toctree::
:maxdepth: 1

View File

@ -47,13 +47,13 @@ other strings.
* - fields_comm
- list of properties communicated to ghost atoms every step
* - fields_comm_vel
- additional properties communicated if :doc:`comm_modify vel <atom_style>` is used
- additional properties communicated if :doc:`comm_modify vel <comm_modify>` is used
* - fields_reverse
- list of properties summed from ghost atoms every step
* - fields_border
- list of properties communicated with ghost atoms every reneighboring step
* - fields_border_vel
- additional properties communicated if :doc:`comm_modify vel <atom_style>` is used
- additional properties communicated if :doc:`comm_modify vel <comm_modify>` is used
* - fields_exchange
- list of properties communicated when an atom migrates to another processor
* - fields_restart

View File

@ -31,14 +31,14 @@ send an e-mail to ``slack@lammps.org`` explaining what part of LAMMPS
you are working on. Only discussions related to LAMMPS development are
tolerated, so this is **NOT** for people that look for help with compiling,
installing, or using LAMMPS. Please contact the `lammps-users mailing
list <https://lammps.sandia.gov>`_ for those purposes instead.
list <https://lammps.sandia.gov/mail.html>`_ for those purposes instead.
How quickly your contribution will be integrated depends largely on how
much effort it will cause to integrate and test it, how much it requires
changes to the core codebase, and of how much interest it is to the
larger LAMMPS community. Please see below for a checklist of typical
requirements. Once you have prepared everything, see the :doc:`Using
GitHub with LAMMPS Howto <Howto_github>` doc page for instructions on
requirements. Once you have prepared everything, see the :doc:`LAMMPS GitHub
Tutorial <Howto_github>` page for instructions on
how to submit your changes or new files through a GitHub pull
request. If you prefer to submit patches or full files, you should first
make certain, that your code works correctly with the latest patch-level
@ -58,8 +58,8 @@ are listed and described on the :doc:`Packages details <Packages_details>` doc p
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,
used as a license for the rest of LAMMPS. See the `Open source <https://lammps.sandia.gov/open_source.html>`_ page on the LAMMPS
website for details.
used as a license for the rest of LAMMPS. 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

View File

@ -20,7 +20,7 @@ for output. Search for the word "customize" with references to
"keyword" in thermo.cpp to see the several locations where code will
need to be added.
Note that the :doc:`thermo_style custom <thermo>` command already allows
Note that the :doc:`thermo_style custom <thermo_style>` command already allows
for thermo output of quantities calculated by :doc:`fixes <fix>`,
:doc:`computes <compute>`, and :doc:`variables <variable>`. Thus, it may
be simpler to compute what you wish via one of those constructs, than

View File

@ -299,7 +299,8 @@ Dozens of pair styles and a version of the PPPM long-range Coulombic
solver optimized for GPUs. All such styles have a "gpu" as a suffix
in their style name. The GPU code can be compiled with either CUDA or
OpenCL, however the OpenCL variants are no longer actively maintained
and only the CUDA versions are regularly tested. The :doc:`Speed gpu <Speed_gpu>` doc page gives details of what hardware and GPU
and only the CUDA versions are regularly tested. The
:doc:`Speed_gpu` page gives details of what hardware and GPU
software is required on your system, and details on how to build and
use this package. Its styles can be invoked at run time via the "-sf
gpu" or "-suffix gpu" :doc:`command-line switches <Run_options>`. See
@ -318,8 +319,8 @@ This package has :ref:`specific installation instructions <gpu>` on the :doc:`Bu
* src/GPU: filenames -> commands
* src/GPU/README
* lib/gpu/README
* :doc:`Speed packages <Speed_packages>`
* :doc:`Speed gpu <Speed_gpu>`
* :doc:`Accelerator packages <Speed_packages>`
* :doc:`GPU package <Speed_gpu>`
* :doc:`Section 2.6 -sf gpu <Run_options>`
* :doc:`Section 2.6 -pk gpu <Run_options>`
* :doc:`package gpu <package>`
@ -433,7 +434,7 @@ Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute
styles adapted to compile using the Kokkos library which can convert
them to OpenMP or CUDA code so that they run efficiently on multicore
CPUs, KNLs, or GPUs. All the styles have a "kk" as a suffix in their
style name. The :doc:`Speed kokkos <Speed_kokkos>` doc page gives
style name. The :doc:`KOKKOS package <Speed_kokkos>` doc page gives
details of what hardware and software is required on your system, and
how to build and use this package. Its styles can be invoked at run
time via the "-sf kk" or "-suffix kk" :doc:`command-line switches <Run_options>`. Also see the :ref:`GPU <PKG-GPU>`, :ref:`OPT <PKG-OPT>`,
@ -463,8 +464,8 @@ This package has :ref:`specific installation instructions <kokkos>` on the :doc:
* src/KOKKOS: filenames -> commands
* src/KOKKOS/README
* lib/kokkos/README
* :doc:`Speed packages <Speed_packages>`
* :doc:`Speed kokkos <Speed_kokkos>`
* :doc:`Accelerator packages <Speed_packages>`
* :doc:`KOKKOS package <Speed_kokkos>`
* :doc:`Section 2.6 -k on ... <Run_options>`
* :doc:`Section 2.6 -sf kk <Run_options>`
* :doc:`Section 2.6 -pk kokkos <Run_options>`
@ -665,7 +666,7 @@ A general interface for machine-learning interatomic potentials.
**Install:**
To use this package, also the :ref:`SNAP package<PKG-SNAP>` needs to be installed.
To use this package, also the :ref:`SNAP package <PKG-SNAP>` needs to be installed.
**Author:** Aidan Thompson (Sandia).
@ -773,7 +774,7 @@ OPT package
A handful of pair styles which are optimized for improved CPU
performance on single or multiple cores. These include EAM, LJ,
CHARMM, and Morse potentials. The styles have an "opt" suffix in
their style name. The :doc:`Speed opt <Speed_opt>` doc page gives
their style name. The :doc:`OPT package <Speed_opt>` doc page gives
details of how to build and use this package. Its styles can be
invoked at run time via the "-sf opt" or "-suffix opt" :doc:`command-line switches <Run_options>`. See also the :ref:`KOKKOS <PKG-KOKKOS>`,
:ref:`USER-INTEL <PKG-USER-INTEL>`, and :ref:`USER-OMP <PKG-USER-OMP>` packages, which
@ -789,8 +790,8 @@ This package has :ref:`specific installation instructions <opt>` on the :doc:`Bu
**Supporting info:**
* src/OPT: filenames -> commands
* :doc:`Speed packages <Speed_packages>`
* :doc:`Speed opt <Speed_opt>`
* :doc:`Accelerator packages <Speed_packages>`
* :doc:`OPT package <Speed_opt>`
* :doc:`Section 2.6 -sf opt <Run_options>`
* Search the :doc:`pair style <Commands_pair>` page for styles followed by (t)
* `Benchmarks page <https://lammps.sandia.gov/bench.html>`_ of web site
@ -1541,7 +1542,8 @@ USER-INTEL package
Dozens of pair, fix, bond, angle, dihedral, improper, and kspace
styles which are optimized for Intel CPUs and KNLs (Knights Landing).
All of them have an "intel" in their style name. The :doc:`Speed intel <Speed_intel>` doc page gives details of what hardware and
All of them have an "intel" in their style name. The
:doc:`USER-INTEL package <Speed_intel>` page gives details of what hardware and
compilers are required on your system, and how to build and use this
package. Its styles can be invoked at run time via the "-sf intel" or
"-suffix intel" :doc:`command-line switches <Run_options>`. Also see
@ -1567,8 +1569,8 @@ This package has :ref:`specific installation instructions <user-intel>` on the :
* src/USER-INTEL: filenames -> commands
* src/USER-INTEL/README
* :doc:`Speed packages <Speed_packages>`
* :doc:`Speed intel <Speed_intel>`
* :doc:`Accelerator packages <Speed_packages>`
* :doc:`USER-INTEL package <Speed_intel>`
* :doc:`Section 2.6 -sf intel <Run_options>`
* :doc:`Section 2.6 -pk intel <Run_options>`
* :doc:`package intel <package>`
@ -1915,7 +1917,7 @@ USER-OMP package
Hundreds of pair, fix, compute, bond, angle, dihedral, improper, and
kspace styles which are altered to enable threading on many-core CPUs
via OpenMP directives. All of them have an "omp" in their style name.
The :doc:`Speed omp <Speed_omp>` doc page gives details of what hardware
The :doc:`USER-OMP package <Speed_omp>` page gives details of what hardware
and compilers are required on your system, and how to build and use
this package. Its styles can be invoked at run time via the "-sf omp"
or "-suffix omp" :doc:`command-line switches <Run_options>`. Also see
@ -1947,8 +1949,8 @@ This package has :ref:`specific installation instructions <user-omp>` on the :do
* src/USER-OMP: filenames -> commands
* src/USER-OMP/README
* :doc:`Speed packages <Speed_packages>`
* :doc:`Speed omp <Speed_omp>`
* :doc:`Accelerator packages <Speed_packages>`
* :doc:`USER-OMP package <Speed_omp>`
* :doc:`Section 2.6 -sf omp <Run_options>`
* :doc:`Section 2.6 -pk omp <Run_options>`
* :doc:`package omp <package>`

View File

@ -37,7 +37,7 @@ package:
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :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 dipole/cut <pair_dipole>` | dipole | 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://lammps.sandia.gov/bench.html>`_ | int |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+

View File

@ -27,11 +27,11 @@ executable itself can be placed elsewhere.
As LAMMPS runs it prints info to the screen and a logfile named
*log.lammps*\ . More info about output is given on the
:doc:`Run output <Run_output>` doc page.
:doc:`screen and logfile output <Run_output>` page.
If LAMMPS encounters errors in the input script or while running a
simulation it will print an ERROR message and stop or a WARNING
message and continue. See the :doc:`Errors <Errors>` doc page for a
message and continue. See the :doc:`Common Problems <Errors>` page for a
discussion of the various kinds of errors LAMMPS can or can't detect,
a list of all ERROR and WARNING messages, and what to do about them.

View File

@ -80,7 +80,7 @@ stdin.
Explicitly enable or disable KOKKOS support, as provided by the KOKKOS
package. Even if LAMMPS is built with this package, as described
in :doc:`Speed kokkos <Speed_kokkos>`, this switch must be set to enable
in the :doc:`the KOKKOS package page <Speed_kokkos>`, this switch must be set to enable
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
@ -98,7 +98,8 @@ Either the full word or an abbreviation can be used for the keywords.
Note that the keywords do not use a leading minus sign. I.e. the
keyword is "t", not "-t". Also note that each of the keywords has a
default setting. Examples of when to use these options and what
settings to use on different platforms is given on the :doc:`Speed kokkos <Speed_kokkos>` doc page.
settings to use on different platforms is given on the :doc:`KOKKOS package <Speed_kokkos>`
doc page.
* d or device
* g or gpus
@ -268,7 +269,7 @@ machine (e.g. your desktop), you can run on more (virtual) processors
than you have physical processors.
To run multiple independent simulations from one input script, using
multiple partitions, see the :doc:`Howto multiple <Howto_multiple>` doc
multiple partitions, see the :doc:`Howto multiple <Howto_multiple>`
page. World- and universe-style :doc:`variables <variable>` are useful
in this context.
@ -326,7 +327,7 @@ cores within each node are ranked in a desired order. Or when using
the :doc:`run_style verlet/split <run_style>` command with 2 partitions
to insure that a specific Kspace processor (in the second partition) is
matched up with a specific set of processors in the first partition.
See the :doc:`Speed tips <Speed_tips>` doc page for more details.
See the :doc:`General tips <Speed_tips>` page for more details.
If the keyword *nth* is used with a setting *N*\ , then it means every
Nth processor will be moved to the end of the ranking. This is useful
@ -385,7 +386,7 @@ implementations, either by environment variables that specify how to
order physical processors, or by config files that specify what
physical processors to assign to each MPI rank. The -reorder switch
simply gives you a portable way to do this without relying on MPI
itself. See the :doc:`processors out <processors>` command for how
itself. See the :doc:`processors file <processors>` command for how
to output info on the final assignment of physical processors to
the LAMMPS simulation domain.
@ -523,10 +524,10 @@ lj/cut/intel, lj/cut/kk, lj/cut/omp, and lj/cut/opt. A variant style
can be specified explicitly in your input script, e.g. pair_style
lj/cut/gpu. If the -suffix switch is used the specified suffix
(gpu,intel,kk,omp,opt) is automatically appended whenever your input
script command creates a new :doc:`atom <atom_style>`,
:doc:`pair <pair_style>`, :doc:`fix <fix>`, :doc:`compute <compute>`, or
:doc:`run <run_style>` style. If the variant version does not exist,
the standard version is created.
script command creates a new :doc:`atom style <atom_style>`,
:doc:`pair style <pair_style>`, :doc:`fix <fix>`,
:doc:`compute <compute>`, or :doc:`run style <run_style>`. If the
variant version does not exist, the standard version is created.
For the GPU package, using this command-line switch also invokes the
default GPU settings, as if the command "package gpu 1" were used at
@ -579,8 +580,8 @@ index variable in the input script, since index variables cannot be
re-defined.
See the :doc:`variable <variable>` command for more info on defining
index and other kinds of variables and the :doc:`Commands parse <Commands_parse>` page for more info on using variables in
input scripts.
index and other kinds of variables and the :doc:`Parsing rules <Commands_parse>`
page for more info on using variables in input scripts.
.. note::

View File

@ -38,7 +38,7 @@ of these 5 problems on 1 or 4 cores of Linux desktop. The bench/FERMI
and bench/KEPLER directories have input files and scripts and instructions
for running the same (or similar) problems using OpenMP or GPU or Xeon
Phi acceleration options. See the README files in those directories and the
:doc:`Speed packages <Speed_packages>` doc pages for instructions on how
:doc:`Accelerator packages <Speed_packages>` pages for instructions on how
to build LAMMPS and run on that kind of hardware.
The bench/POTENTIALS directory has input files which correspond to the

View File

@ -9,7 +9,7 @@ different back end languages such as CUDA, OpenMP, or Pthreads. The
Kokkos library also provides data abstractions to adjust (at compile
time) the memory layout of data structures like 2d and 3d arrays to
optimize performance on different hardware. For more information on
Kokkos, see `GitHub <https://github.com/kokkos/kokkos>`_.
Kokkos, see `the Kokkos GitHub page <https://github.com/kokkos/kokkos>`_.
The LAMMPS KOKKOS package contains versions of pair, fix, and atom
styles that use data structures and macros provided by the Kokkos
@ -20,20 +20,20 @@ including Sikandar Mashayak (UIUC), Ray Shan (Sandia), and Dan Ibanez
(Sandia). For more information on developing using Kokkos abstractions
see the Kokkos `Wiki <https://github.com/kokkos/kokkos/wiki>`_.
Kokkos currently provides support for 3 modes of execution (per MPI
Kokkos currently provides support for 4 modes of execution (per MPI
task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP
(threading for many-core CPUs and Intel Phi), and CUDA (for NVIDIA
GPUs). You choose the mode at build time to produce an executable
compatible with specific hardware.
(threading for many-core CPUs and Intel Phi), CUDA (for NVIDIA
GPUs) and HIP (for AMD GPUs). You choose the mode at build time to
produce an executable compatible with a specific hardware.
.. note::
.. admonition:: NVIDIA CUDA support
To build with Kokkos support for NVIDIA GPUs, the NVIDIA CUDA toolkit
software version 9.0 or later must be installed on your system. See
the discussion for the :doc:`GPU package <Speed_gpu>` for details of
how to check and do this.
.. note::
.. admonition:: CUDA and MPI library compatibility
Kokkos with CUDA currently implicitly assumes that the MPI library is
CUDA-aware. This is not always the case, especially when using
@ -45,6 +45,13 @@ compatible with specific hardware.
LAMMPS command line or by using the command :doc:`package kokkos
cuda/aware off <package>` in the input file.
.. admonition:: AMD GPU support
To build with Kokkos the HIPCC compiler from the AMD ROCm software
version 3.5 or later is required. Supporting this Kokkos mode in
LAMMPS is still work in progress. Please contact the LAMMPS developers
if you run into problems.
Building LAMMPS with the KOKKOS package
"""""""""""""""""""""""""""""""""""""""

View File

@ -14,7 +14,7 @@ timings; you can simply extrapolate from short runs.
For the set of runs, look at the timing data printed to the screen and
log file at the end of each LAMMPS run. The
:doc:`Run_output <Run_output>` doc page gives an overview.
:doc:`screen and logfile output <Run_output>` page gives an overview.
Running on one (or a few processors) should give a good estimate of
the serial performance and what portions of the timestep are taking

View File

@ -86,7 +86,8 @@ USER-OMP 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
to those used in the OPT package, described in :doc:`Section 5.3.5 <Speed_opt>`.
to those used in the OPT package, described in
:doc:`the OPT package <Speed_opt>` doc page.
With multiple threads/task, the optimal choice of number of MPI
tasks/node and OpenMP threads/task can vary a lot and should always be
@ -95,7 +96,8 @@ specific machine, paying attention to guidelines discussed in the next
sub-section.
A description of the multi-threading strategy used in the USER-OMP
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>`_
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
"""""""""""""""""""""""""""""""

View File

@ -1,16 +1,12 @@
.. index:: angle_style charmm
.. index:: angle_style charmm/intel
.. index:: angle_style charmm/kk
.. index:: angle_style charmm/omp
angle_style charmm command
==========================
angle_style charmm/intel command
================================
angle_style charmm/kk command
=============================
angle_style charmm/omp command
==============================
Accelerator Variants: *charmm/intel*, *charmm/kk*, *charmm/omp*
Syntax
""""""

View File

@ -1,13 +1,12 @@
.. index:: angle_style class2
.. index:: angle_style class2/kk
.. index:: angle_style class2/omp
.. index:: angle_style class2/p6
angle_style class2 command
==========================
angle_style class2/kk command
=============================
angle_style class2/omp command
==============================
Accelerator Variants: *class2/kk*, *class2/omp*
angle_style class2/p6 command
=============================

View File

@ -1,13 +1,11 @@
.. index:: angle_style cosine
.. index:: angle_style cosine/omp
.. index:: angle_style cosine/kk
angle_style cosine command
==========================
angle_style cosine/omp command
==============================
angle_style cosine/kk command
=============================
Accelerator Variants: *cosine/omp*, *cosine/kk*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: angle_style cosine/delta
.. index:: angle_style cosine/delta/omp
angle_style cosine/delta command
================================
angle_style cosine/delta/omp command
====================================
Accelerator Variants: *cosine/delta/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: angle_style cosine/periodic
.. index:: angle_style cosine/periodic/omp
angle_style cosine/periodic command
===================================
angle_style cosine/periodic/omp command
=======================================
Accelerator Variants: *cosine/periodic/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: angle_style cosine/shift
.. index:: angle_style cosine/shift/omp
angle_style cosine/shift command
=================================
================================
angle_style cosine/shift/omp command
====================================
Accelerator Variants: *cosine/shift/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: angle_style cosine/shift/exp
.. index:: angle_style cosine/shift/exp/omp
angle_style cosine/shift/exp command
====================================
angle_style cosine/shift/exp/omp command
========================================
Accelerator Variants: *cosine/shift/exp/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: angle_style cosine/squared
.. index:: angle_style cosine/squared/omp
angle_style cosine/squared command
==================================
angle_style cosine/squared/omp command
======================================
Accelerator Variants: *cosine/squared/omp*
Syntax
""""""

View File

@ -1,7 +1,7 @@
.. index:: angle_style cross
angle_style cross command
==========================
=========================
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: angle_style dipole
.. index:: angle_style dipole/omp
angle_style dipole command
==========================
angle_style dipole/omp command
==============================
Accelerator Variants: *dipole/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: angle_style fourier
.. index:: angle_style fourier/omp
angle_style fourier command
===========================
angle_style fourier/omp command
===============================
Accelerator Variants: *fourier/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: angle_style fourier/simple
.. index:: angle_style fourier/simple/omp
angle_style fourier/simple command
==================================
angle_style fourier/simple/omp command
======================================
Accelerator Variants: *fourier/simple/omp*
Syntax
""""""

View File

@ -1,16 +1,12 @@
.. index:: angle_style harmonic
.. index:: angle_style harmonic/intel
.. index:: angle_style harmonic/kk
.. index:: angle_style harmonic/omp
angle_style harmonic command
============================
angle_style harmonic/intel command
==================================
angle_style harmonic/kk command
===============================
angle_style harmonic/omp command
================================
Accelerator Variants: *harmonic/intel*, *harmonic/kk*, *harmonic/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: angle_style quartic
.. index:: angle_style quartic/omp
angle_style quartic command
===========================
angle_style quartic/omp command
===============================
Accelerator Variants: *quartic/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: angle_style sdk
.. index:: angle_style sdk/omp
angle_style sdk command
=======================
angle_style sdk/omp command
===========================
Accelerator Variants: *sdk/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: angle_style table
.. index:: angle_style table/omp
angle_style table command
=========================
angle_style table/omp command
=============================
Accelerator Variants: *table/omp*
Syntax
""""""

View File

@ -1,13 +1,11 @@
.. index:: bond_style class2
.. index:: bond_style class2/omp
.. index:: bond_style class2/kk
bond_style class2 command
=========================
bond_style class2/omp command
=============================
bond_style class2/kk command
============================
Accelerator Variants: *class2/omp*, *class2/kk*
Syntax
""""""

View File

@ -1,16 +1,12 @@
.. index:: bond_style fene
.. index:: bond_style fene/intel
.. index:: bond_style fene/kk
.. index:: bond_style fene/omp
bond_style fene command
=======================
bond_style fene/intel command
=============================
bond_style fene/kk command
==========================
bond_style fene/omp command
===========================
Accelerator Variants: *fene/intel*, *fene/kk*, *fene/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: bond_style fene/expand
.. index:: bond_style fene/expand/omp
bond_style fene/expand command
==============================
bond_style fene/expand/omp command
==================================
Accelerator Variants: *fene/expand/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: bond_style gromos
.. index:: bond_style gromos/omp
bond_style gromos command
=========================
bond_style gromos/omp command
=============================
Accelerator Variants: *gromos/omp*
Syntax
""""""

View File

@ -1,16 +1,12 @@
.. index:: bond_style harmonic
.. index:: bond_style harmonic/intel
.. index:: bond_style harmonic/kk
.. index:: bond_style harmonic/omp
bond_style harmonic command
===========================
bond_style harmonic/intel command
=================================
bond_style harmonic/kk command
==============================
bond_style harmonic/omp command
===============================
Accelerator Variants: *harmonic/intel*, *harmonic/kk*, *harmonic/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: bond_style harmonic/shift
.. index:: bond_style harmonic/shift/omp
bond_style harmonic/shift command
=================================
bond_style harmonic/shift/omp command
=====================================
Accelerator Variants: *harmonic/shift/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: bond_style harmonic/shift/cut
.. index:: bond_style harmonic/shift/cut/omp
bond_style harmonic/shift/cut command
=====================================
bond_style harmonic/shift/cut/omp command
=========================================
Accelerator Variants: *harmonic/shift/cut/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: bond_style morse
.. index:: bond_style morse/omp
bond_style morse command
========================
bond_style morse/omp command
============================
Accelerator Variants: *morse/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: bond_style nonlinear
.. index:: bond_style nonlinear/omp
bond_style nonlinear command
============================
bond_style nonlinear/omp command
================================
Accelerator Variants: *nonlinear/omp*
Syntax
""""""

View File

@ -1,4 +1,6 @@
.. index:: bond_style oxdna/fene
.. index:: bond_style oxdna2/fene
.. index:: bond_style oxrna2/fene
bond_style oxdna/fene command
=============================

View File

@ -1,10 +1,10 @@
.. index:: bond_style quartic
.. index:: bond_style quartic/omp
bond_style quartic command
==========================
bond_style quartic/omp command
==============================
Accelerator Variants: *quartic/omp*
Syntax
""""""

View File

@ -1,7 +1,7 @@
.. index:: bond_style special
bond_style special command
=================================
==========================
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: bond_style table
.. index:: bond_style table/omp
bond_style table command
========================
bond_style table/omp command
============================
Accelerator Variants: *table/omp*
Syntax
""""""

View File

@ -1,4 +1,6 @@
.. index:: compute cluster/atom
.. index:: compute fragment/atom
.. index:: compute aggregate/atom
compute cluster/atom command
============================

View File

@ -1,10 +1,10 @@
.. index:: compute coord/atom
.. index:: compute coord/atom/kk
compute coord/atom command
==========================
compute coord/atom/kk command
===================================
Accelerator Variants: *coord/atom/kk*
Syntax
""""""

View File

@ -1,7 +1,7 @@
.. index:: compute mesont
compute mesont command
==========================
======================
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: compute orientorder/atom
.. index:: compute orientorder/atom/kk
compute orientorder/atom command
================================
compute orientorder/atom/kk command
===================================
Accelerator Variants: *orientorder/atom/kk*
Syntax
""""""

View File

@ -1,4 +1,5 @@
.. index:: compute reduce
.. index:: compute reduce/region
compute reduce command
======================

View File

@ -1,7 +1,7 @@
.. index:: compute smd/ulsph/effm
compute smd/ulsph/effm command
================================
==============================
Syntax
""""""

View File

@ -1,4 +1,7 @@
.. index:: compute sna/atom
.. index:: compute snad/atom
.. index:: compute snav/atom
.. index:: compute snap
compute sna/atom command
========================

View File

@ -1,7 +1,7 @@
.. index:: compute sph/e/atom
compute sph/e/atom command
===========================
==========================
Syntax
""""""

View File

@ -1,7 +1,7 @@
.. index:: compute sph/rho/atom
compute sph/rho/atom command
=============================
============================
Syntax
""""""

View File

@ -1,7 +1,7 @@
.. index:: compute sph/t/atom
compute sph/t/atom command
===========================
==========================
Syntax
""""""

View File

@ -1,4 +1,5 @@
.. index:: compute stress/atom
.. index:: compute centroid/stress/atom
compute stress/atom command
===========================

View File

@ -1,4 +1,5 @@
.. index:: compute stress/mop
.. index:: compute stress/mop/profile
compute stress/mop command
==========================

View File

@ -1,4 +1,8 @@
.. index:: compute force/tally
.. index:: compute heat/flux/tally
.. index:: compute pe/tally
.. index:: compute pe/mol/tally
.. index:: compute stress/tally
compute force/tally command
===========================

View File

@ -1,10 +1,10 @@
.. index:: compute temp
.. index:: compute temp/kk
compute temp command
====================
compute temp/kk command
=======================
Accelerator Variants: *temp/kk*
Syntax
""""""

View File

@ -1,16 +1,13 @@
.. index:: dihedral_style charmm
.. index:: dihedral_style charmm/intel
.. index:: dihedral_style charmm/kk
.. index:: dihedral_style charmm/omp
.. index:: dihedral_style charmmfsw
dihedral_style charmm command
=============================
dihedral_style charmm/intel command
===================================
dihedral_style charmm/kk command
================================
dihedral_style charmm/omp command
=================================
Accelerator Variants: *charmm/intel*, *charmm/kk*, *charmm/omp*
dihedral_style charmmfsw command
================================

View File

@ -1,13 +1,11 @@
.. index:: dihedral_style class2
.. index:: dihedral_style class2/omp
.. index:: dihedral_style class2/kk
dihedral_style class2 command
=============================
dihedral_style class2/omp command
=================================
dihedral_style class2/kk command
================================
Accelerator Variants: *class2/omp*, *class2/kk*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: dihedral_style cosine/shift/exp
.. index:: dihedral_style cosine/shift/exp/omp
dihedral_style cosine/shift/exp command
=======================================
dihedral_style cosine/shift/exp/omp command
===========================================
Accelerator Variants: *cosine/shift/exp/omp*
Syntax
""""""

View File

@ -1,13 +1,11 @@
.. index:: dihedral_style fourier
.. index:: dihedral_style fourier/intel
.. index:: dihedral_style fourier/omp
dihedral_style fourier command
==============================
dihedral_style fourier/intel command
====================================
dihedral_style fourier/omp command
==================================
Accelerator Variants: *fourier/intel*, *fourier/omp*
Syntax
""""""

View File

@ -1,16 +1,12 @@
.. index:: dihedral_style harmonic
.. index:: dihedral_style harmonic/intel
.. index:: dihedral_style harmonic/kk
.. index:: dihedral_style harmonic/omp
dihedral_style harmonic command
===============================
dihedral_style harmonic/intel command
=====================================
dihedral_style harmonic/kk command
==================================
dihedral_style harmonic/omp command
===================================
Accelerator Variants: *harmonic/intel*, *harmonic/kk*, *harmonic/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: dihedral_style helix
.. index:: dihedral_style helix/omp
dihedral_style helix command
============================
dihedral_style helix/omp command
================================
Accelerator Variants: *helix/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: dihedral_style multi/harmonic
.. index:: dihedral_style multi/harmonic/omp
dihedral_style multi/harmonic command
=====================================
dihedral_style multi/harmonic/omp command
=========================================
Accelerator Variants: *multi/harmonic/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: dihedral_style nharmonic
.. index:: dihedral_style nharmonic/omp
dihedral_style nharmonic command
=================================
================================
dihedral_style nharmonic/omp command
=====================================
Accelerator Variants: *nharmonic/omp*
Syntax
""""""

View File

@ -1,16 +1,12 @@
.. index:: dihedral_style opls
.. index:: dihedral_style opls/intel
.. index:: dihedral_style opls/kk
.. index:: dihedral_style opls/omp
dihedral_style opls command
===========================
dihedral_style opls/intel command
=================================
dihedral_style opls/kk command
==============================
dihedral_style opls/omp command
===============================
Accelerator Variants: *opls/intel*, *opls/kk*, *opls/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: dihedral_style quadratic
.. index:: dihedral_style quadratic/omp
dihedral_style quadratic command
================================
dihedral_style quadratic/omp command
====================================
Accelerator Variants: *quadratic/omp*
Syntax
""""""

View File

@ -1,10 +1,10 @@
.. index:: dihedral_style table
.. index:: dihedral_style table/omp
dihedral_style table command
============================
dihedral_style table/omp command
================================
Accelerator Variants: *table/omp*
Syntax
""""""

View File

@ -1,7 +1,7 @@
.. index:: dihedral_style zero
dihedral_style zero command
============================
===========================
Syntax
""""""

View File

@ -1,4 +1,5 @@
.. index:: fix ave/histo
.. index:: fix ave/histo/weight
fix ave/histo command
=====================

View File

@ -1,4 +1,5 @@
.. index:: fix bond/create
.. index:: fix bond/create/angle
fix bond/create command
=======================

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