make subheaders and typesetting more consistent

This commit is contained in:
Axel Kohlmeyer
2020-06-14 12:41:19 -04:00
parent 4042b836c2
commit 5abfcde3f7
3 changed files with 330 additions and 255 deletions

View File

@ -372,7 +372,8 @@ it. The build step will also create generic soft links, named
``liblammps.a`` and ``liblammps.so``\ , which point to the specific
``liblammps_machine.a/so`` files.
**CMake and make info**\ :
CMake and make info
^^^^^^^^^^^^^^^^^^^
Note that for creating a shared library, all the libraries it depends on
must be compiled to be compatible with shared libraries. This should be
@ -462,7 +463,8 @@ 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
**Documentation make option**\ :
Documentation make option
^^^^^^^^^^^^^^^^^^^^^^^^^
The following make commands can be issued in the doc folder of the
LAMMPS source distribution.
@ -489,7 +491,8 @@ your system.
current LAMMPS version (HTML and PDF files), from the website
`download page <https://lammps.sandia.gov/download.html>`_.
**CMake build option**\ :
CMake build option
^^^^^^^^^^^^^^^^^^
It is also possible to create the HTML version of the manual within
the :doc:`CMake build directory <Build_cmake>`. The reason for this
@ -512,7 +515,8 @@ Build LAMMPS tools
Some tools described in :doc:`Auxiliary tools <Tools>` can be built directly
using CMake or Make.
**CMake build3**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -521,7 +525,8 @@ using CMake or Make.
The generated binaries will also become part of the LAMMPS installation
(see below).
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
.. code-block:: bash
@ -545,7 +550,8 @@ a globally visible place on your system, for others to access. Note
that you may need super-user privileges (e.g. sudo) if the directory
you want to copy files to is protected.
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -553,7 +559,8 @@ you want to copy files to is protected.
make # perform make after CMake command
make install # perform the installation into prefix
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
There is no "install" option in the ``src/Makefile`` for LAMMPS. If
you wish to do this you will need to first build LAMMPS, then manually

View File

@ -59,12 +59,13 @@ This is the list of packages that may require additional steps.
.. _compress:
COMPRESS package
-------------------------------
----------------
To build with this package you must have the zlib compression library
available on your system.
**CMake build**\ :
CMake build
^^^^^^^^^^^
If CMake cannot find the library, you can set these variables:
@ -73,10 +74,11 @@ If CMake cannot find the library, you can set these variables:
-D ZLIB_INCLUDE_DIR=path # path to zlib.h header file
-D ZLIB_LIBRARIES=path # path to libz.a (.so) file
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
If make cannot find the library, you can edit the file
lib/compress/Makefile.lammps to specify the paths and library
``lib/compress/Makefile.lammps`` to specify the paths and library
name.
----------
@ -90,7 +92,8 @@ To build with this package, you must choose options for precision and
which GPU hardware to build for. The GPU package currently supports
three different types of backends: OpenCL, CUDA and HIP.
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -158,7 +161,8 @@ and the linker to work correctly.
cmake -D PKG_GPU=on -D GPU_API=HIP -D HIP_ARCH=sm_70 ..
make -j 4
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
Before building LAMMPS, you must build the GPU library in ``lib/gpu``\ .
You can do this manually if you prefer; follow the instructions in
@ -207,10 +211,10 @@ your machine are not correct, the LAMMPS build will fail, and
.. note::
If you re-build the GPU library in lib/gpu, you should always
un-install the GPU package in lammps/src, then re-install it and
If you re-build the GPU library in ``lib/gpu``, you should always
un-install the GPU package in ``lammps/src``, then re-install it and
re-build LAMMPS. This is because the compilation of files in the GPU
package uses the library settings from the lib/gpu/Makefile.machine
package uses the library settings from the ``lib/gpu/Makefile.machine``
used to build the GPU library.
----------
@ -249,7 +253,8 @@ See the list of all KIM models here: https://openkim.org/browse/models
the KIM API library with all its models, may take a long time (tens of
minutes to hours) to build. Of course you only need to do that once.)
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -281,7 +286,8 @@ As an alternative, you can specify your own CA cert path by setting the
environment variable ``CURL_CA_BUNDLE`` to the path of your choice. A call
to the KIM web query would get this value from the environmental variable.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
You can download and build the KIM library manually if you prefer;
follow the instructions in ``lib/kim/README``\ . You can also do it in one
@ -299,7 +305,7 @@ invoke the ``lib/kim/Install.py`` script with the specified args.
$ make lib-kim args="-p /usr/local -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver
Settings for OpenKIM web queries discussed above need to be applied by adding
them to the ``LMP_INC`` variable through editing the Makefile.machine you are
them to the ``LMP_INC`` variable through editing the ``Makefile.machine`` you are
using. For example:
.. code-block:: make
@ -604,7 +610,8 @@ LATTE package
To build with this package, you must download and build the LATTE
library.
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -617,7 +624,8 @@ already on your system (in a location CMake cannot find it),
``LATTE_LIBRARY`` is the filename (plus path) of the LATTE library file,
not the directory the library file is in.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
You can download and build the LATTE library manually if you prefer;
follow the instructions in ``lib/latte/README``\ . You can also do it in
@ -633,11 +641,12 @@ args:
$ make lib-latte args="-b -m gfortran" # download and build in lib/latte and
# copy Makefile.lammps.gfortran to Makefile.lammps
Note that 3 symbolic (soft) links, "includelink" and "liblink" and
"filelink.o", are created in lib/latte to point into the LATTE home
dir. When LAMMPS itself is built it will use these links. You should
also check that the Makefile.lammps file you create is appropriate for
the compiler you use on your system to build LATTE.
Note that 3 symbolic (soft) links, ``includelink`` and ``liblink`` and
``filelink.o``, are created in ``lib/latte`` to point to required
folders and files in the LATTE home directory. When LAMMPS itself is
built it will use these links. You should also check that the
``Makefile.lammps`` file you create is appropriate for the compiler you
use on your system to build LATTE.
----------
@ -650,7 +659,8 @@ This package can optionally include support for messaging via sockets,
using the open-source `ZeroMQ library <http://zeromq.org>`_, which must
be installed on your system.
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -658,7 +668,8 @@ be installed on your system.
-D ZMQ_LIBRARY=path # ZMQ library file (only needed if a custom location)
-D ZMQ_INCLUDE_DIR=path # ZMQ include directory (only needed if a custom location)
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
Before building LAMMPS, you must build the CSlib library in
``lib/message``\ . You can build the CSlib library manually if you prefer;
@ -673,8 +684,8 @@ simply invoke the ``lib/message/Install.py`` script with the specified args:
$ make lib-message args="-s" # build as serial lib with no ZMQ support
The build should produce two files: ``lib/message/cslib/src/libmessage.a``
and ``lib/message/Makefile.lammps``\ . The latter is copied from an
existing ``Makefile.lammps.\*`` and has settings to link with the ZeroMQ
and ``lib/message/Makefile.lammps``. The latter is copied from an
existing ``Makefile.lammps.*`` and has settings to link with the ZeroMQ
library if requested in the build.
----------
@ -690,7 +701,8 @@ library. Building the MS-CG library requires that the GSL
machine. See the ``lib/mscg/README`` and ``MSCG/Install`` files for
more details.
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -705,7 +717,8 @@ filename (plus path) of the MSCG library file, not the directory the
library file is in. ``MSCG_INCLUDE_DIR`` is the directory the MSCG
include file is in.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
You can download and build the MS-CG library manually if you prefer;
follow the instructions in ``lib/mscg/README``\ . You can also do it in one
@ -733,16 +746,18 @@ not need to edit the ``lib/mscg/Makefile.lammps`` file.
OPT package
---------------------
**CMake build**\ :
CMake build
^^^^^^^^^^^
No additional settings are needed besides ``-D PKG_OPT=yes``
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
The compile flag "-restrict" must be used to build LAMMPS with the OPT
The compile flag ``-restrict`` must be used to build LAMMPS with the OPT
package when using Intel compilers. It should be added to the CCFLAGS
line of your Makefile.machine. See src/MAKE/OPTIONS/Makefile.opt for
an example.
line of your ``Makefile.machine``. See
``src/MAKE/OPTIONS/Makefile.opt`` for an example.
----------
@ -751,11 +766,13 @@ an example.
POEMS package
-------------------------
**CMake build**\ :
CMake build
^^^^^^^^^^^
No additional settings are needed besides ``-D PKG_OPT=yes``
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
Before building LAMMPS, you must build the POEMS library in ``lib/poems``\ .
You can do this manually if you prefer; follow the instructions in
@ -771,8 +788,8 @@ dir, using a command like these, which simply invoke the
$ make lib-poems args="-m icc" # build with Intel icc compiler
The build should produce two files: ``lib/poems/libpoems.a`` and
``lib/poems/Makefile.lammps``\ . The latter is copied from an existing
``Makefile.lammps.\*`` and has settings needed to build LAMMPS with the
``lib/poems/Makefile.lammps``. The latter is copied from an existing
``Makefile.lammps.*`` and has settings needed to build LAMMPS with the
POEMS library (though typically the settings are just blank). If
necessary, you can edit/create a new ``lib/poems/Makefile.machine`` file
for your system, which should define an ``EXTRAMAKE`` variable to specify
@ -790,7 +807,8 @@ 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.
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -803,11 +821,12 @@ PYTHON_EXECUTABLE variable to specify which Python interpreter should
be used. Note note that you will also need to have the development
headers installed for this version, e.g. python2-devel.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
The build uses the ``lib/python/Makefile.lammps`` file in the compile/link
process to find Python. You should only need to create a new
``Makefile.lammps.\*`` file (and copy it to ``Makefile.lammps``\ ) if
``Makefile.lammps.*`` file (and copy it to ``Makefile.lammps``) if
the LAMMPS build fails.
----------
@ -821,7 +840,8 @@ To build with this package, you must download and build the `Voro++ library <vor
.. _voro-home: http://math.lbl.gov/voro++
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -829,19 +849,20 @@ To build with this package, you must download and build the `Voro++ library <vor
-D VORO_LIBRARY=path # Voro++ library file (only needed if at custom location)
-D VORO_INCLUDE_DIR=path # Voro++ include directory (only needed if at custom location)
If DOWNLOAD_VORO is set, the Voro++ library will be downloaded and
If ``DOWNLOAD_VORO`` is set, the Voro++ library will be downloaded and
built inside the CMake build directory. If the Voro++ library is
already on your system (in a location CMake cannot find it),
VORO_LIBRARY is the filename (plus path) of the Voro++ library file,
not the directory the library file is in. VORO_INCLUDE_DIR is the
``VORO_LIBRARY`` is the filename (plus path) of the Voro++ library file,
not the directory the library file is in. ``VORO_INCLUDE_DIR`` is the
directory the Voro++ include file is in.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
You can download and build the Voro++ library manually if you prefer;
follow the instructions in lib/voronoi/README. You can also do it in
one step from the lammps/src dir, using a command like these, which
simply invoke the lib/voronoi/Install.py script with the specified
follow the instructions in ``lib/voronoi/README``. You can also do it in
one step from the ``lammps/src`` dir, using a command like these, which
simply invoke the ``lib/voronoi/Install.py`` script with the specified
args:
.. code-block:: bash
@ -851,10 +872,10 @@ args:
$ make lib-voronoi args="-p $HOME/voro++" # use existing Voro++ installation in $HOME/voro++
$ make lib-voronoi args="-b -v voro++0.4.6" # download and build the 0.4.6 version in lib/voronoi/voro++-0.4.6
Note that 2 symbolic (soft) links, "includelink" and "liblink", are
created in lib/voronoi to point to the Voro++ src dir. When LAMMPS
builds in src it will use these links. You should not need to edit
the lib/voronoi/Makefile.lammps file.
Note that 2 symbolic (soft) links, ``includelink`` and ``liblink``, are
created in lib/voronoi to point to the Voro++ source dir. When LAMMPS
builds in ``src`` it will use these links. You should not need to edit
the ``lib/voronoi/Makefile.lammps`` file.
----------
@ -863,23 +884,28 @@ the lib/voronoi/Makefile.lammps file.
USER-ADIOS package
-----------------------------------
The USER-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 LAMMPS are automatically detected, if the PATH
and LD_LIBRARY_PATH environment variables have been updated for the local ADIOS
installation and the instructions below are followed for the respective build systems.
The USER-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
LAMMPS are automatically detected, if the PATH and LD_LIBRARY_PATH
environment variables have been updated for the local ADIOS installation
and the instructions below are followed for the respective build
systems.
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
-D ADIOS2_DIR=path # path is where ADIOS 2.x is installed
-D PKG_USER-ADIOS=yes
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
Turn on the USER-ADIOS package before building LAMMPS. If the ADIOS 2.x software is installed in PATH, there is nothing else to do:
Turn on the USER-ADIOS package before building LAMMPS. If the ADIOS 2.x
software is installed in PATH, there is nothing else to do:
.. code-block:: bash
@ -900,18 +926,20 @@ USER-ATC package
The USER-ATC package requires the MANYBODY package also be installed.
**CMake build**\ :
CMake build
^^^^^^^^^^^
No additional settings are needed besides "-D PKG_USER-ATC=yes"
and "-D PKG_MANYBODY=yes".
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
Before building LAMMPS, you must build the ATC library in lib/atc.
Before building LAMMPS, you must build the ATC library in ``lib/atc``.
You can do this manually if you prefer; follow the instructions in
lib/atc/README. You can also do it in one step from the lammps/src
dir, using a command like these, which simply invoke the
lib/atc/Install.py script with the specified args:
``lib/atc/README``. You can also do it in one step from the
``lammps/src`` dir, using a command like these, which simply invoke the
``lib/atc/Install.py`` script with the specified args:
.. code-block:: bash
@ -920,19 +948,19 @@ lib/atc/Install.py script with the specified args:
$ make lib-atc args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
$ make lib-atc args="-m icc" # build with Intel icc compiler
The build should produce two files: lib/atc/libatc.a and
lib/atc/Makefile.lammps. The latter is copied from an existing
Makefile.lammps.\* and has settings needed to build LAMMPS with the ATC
library. If necessary, you can edit/create a new
lib/atc/Makefile.machine file for your system, which should define an
EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine
file.
The build should produce two files: ``lib/atc/libatc.a`` and
``lib/atc/Makefile.lammps``. The latter is copied from an existing
``Makefile.lammps.*`` and has settings needed to build LAMMPS with the
ATC library. If necessary, you can edit/create a new
``lib/atc/Makefile.machine`` file for your system, which should define
an ``EXTRAMAKE`` variable to specify a corresponding
``Makefile.lammps.<machine>`` file.
Note that the Makefile.lammps file has settings for the BLAS and
LAPACK linear algebra libraries. As explained in lib/atc/README these
LAPACK linear algebra libraries. As explained in ``lib/atc/README`` these
can either exist on your system, or you can use the files provided in
lib/linalg. In the latter case you also need to build the library in
lib/linalg with a command like these:
``lib/linalg``. In the latter case you also need to build the library in
``lib/linalg`` with a command like these:
.. code-block:: bash
@ -946,19 +974,21 @@ lib/linalg with a command like these:
.. _user-awpmd:
USER-AWPMD package
-----------------------------------
------------------
**CMake build**\ :
CMake build
^^^^^^^^^^^
No additional settings are needed besides "-D PKG_USER-AQPMD=yes".
No additional settings are needed besides ``-D PKG_USER-AQPMD=yes``.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
Before building LAMMPS, you must build the AWPMD library in lib/awpmd.
Before building LAMMPS, you must build the AWPMD library in ``lib/awpmd``.
You can do this manually if you prefer; follow the instructions in
lib/awpmd/README. You can also do it in one step from the lammps/src
``lib/awpmd/README``. You can also do it in one step from the ``lammps/src``
dir, using a command like these, which simply invoke the
lib/awpmd/Install.py script with the specified args:
``lib/awpmd/Install.py`` script with the specified args:
.. code-block:: bash
@ -967,19 +997,19 @@ lib/awpmd/Install.py script with the specified args:
$ make lib-awpmd args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
$ make lib-awpmd args="-m icc" # build with Intel icc compiler
The build should produce two files: lib/awpmd/libawpmd.a and
lib/awpmd/Makefile.lammps. The latter is copied from an existing
Makefile.lammps.\* and has settings needed to build LAMMPS with the
The build should produce two files: ``lib/awpmd/libawpmd.a`` and
``lib/awpmd/Makefile.lammps``. The latter is copied from an existing
``Makefile.lammps.*`` and has settings needed to build LAMMPS with the
AWPMD library. If necessary, you can edit/create a new
lib/awpmd/Makefile.machine file for your system, which should define
an EXTRAMAKE variable to specify a corresponding
Makefile.lammps.machine file.
``lib/awpmd/Makefile.machine`` file for your system, which should define
an ``EXTRAMAKE`` variable to specify a corresponding
``Makefile.lammps.<machine>`` file.
Note that the Makefile.lammps file has settings for the BLAS and
LAPACK linear algebra libraries. As explained in lib/awpmd/README
Note that the ``Makefile.lammps`` file has settings for the BLAS and
LAPACK linear algebra libraries. As explained in ``lib/awpmd/README``
these can either exist on your system, or you can use the files
provided in lib/linalg. In the latter case you also need to build the
library in lib/linalg with a command like these:
provided in ``lib/linalg``. In the latter case you also need to build the
library in ``lib/linalg`` with a command like these:
.. code-block:: bash
@ -998,36 +1028,26 @@ USER-COLVARS package
This package includes into the LAMMPS distribution the Colvars library, which
can be built for the most part with all major versions of the C++ language.
A few of the most recent features require C++11 support. In particular, the
library is optionally built together with the
`Lepton <https://simtk.org/projects/lepton>`_ library, a copy of which is also
included in the LAMMPS distribution. Lepton implements the
`customFunction <http://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html#colvar|customFunction>`_
feature, and requires C++11 support.
See `here <https://colvars.github.io/README-c++11.html>`_ for a detailed list of
C++11-only features.
**CMake build**\ :
CMake build
^^^^^^^^^^^
This is the recommended build recipe: no additional settings are normally
needed besides "-D PKG_USER-COLVARS=yes".
needed besides ``-D PKG_USER-COLVARS=yes``.
Building and linking of Lepton (or other C++11-only features) is enabled
automatically when compilation is carried out with C++11 support, and disabled
otherwise. Optionally, Lepton build may be manually controlled with the flag
"-D COLVARS_LEPTON=yes\|no".
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
Before building LAMMPS, one must build the Colvars library in lib/colvars.
This can be done manually in the same folder by using or adapting one of the
provided Makefiles: for example, Makefile.g++ for the GNU compiler.
This can be done manually in the same folder by using or adapting one of
the provided Makefiles: for example, ``Makefile.g++`` for the GNU C++
compiler. C++11 compatibility may need to be enabled for some older
compilers (as is done in the example makefile).
In general, it is safer to use build setting consistent with the rest of
LAMMPS. This is best carried out from the LAMMPS src directory using a
command like these, which simply invoke the lib/colvars/Install.py script with
command like these, which simply invoke the ``lib/colvars/Install.py`` script with
the specified args:
.. code-block:: bash
@ -1038,7 +1058,7 @@ the specified args:
$ make lib-colvars args="-m g++-debug" # build with GNU g++ compiler and colvars debugging enabled
The "machine" argument of the "-m" flag is used to find a Makefile.machine to
use as build recipe. If it does not already exist in lib/colvars, it will be
use as build recipe. If it does not already exist in ``lib/colvars``, it will be
auto-generated by using compiler flags consistent with those parsed from the
core LAMMPS makefiles.
@ -1049,9 +1069,9 @@ Optional flags may be specified as environment variables:
$ COLVARS_DEBUG=yes make lib-colvars args="-m machine" # Build with debug code (much slower)
$ COLVARS_LEPTON=no make lib-colvars args="-m machine" # Build without Lepton (included otherwise)
The build should produce two files: the library lib/colvars/libcolvars.a
The build should produce two files: the library ``lib/colvars/libcolvars.a``
(which also includes Lepton objects if enabled) and the specification file
lib/colvars/Makefile.lammps. The latter is auto-generated, and normally does
``lib/colvars/Makefile.lammps``. The latter is auto-generated, and normally does
not need to be edited.
----------
@ -1098,12 +1118,14 @@ try a different one, switch to a different build system, consider a
global PLUMED installation or consider downloading PLUMED during the
LAMMPS build.
**CMake build**\ :
CMake build
^^^^^^^^^^^
When the "-D PKG_USER-PLUMED" 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 commands that control
the manner in which PLUMED is obtained and linked into LAMMPS.
When the ``-D PKG_USER-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 linked into
LAMMPS.
.. code-block:: bash
@ -1113,21 +1135,22 @@ the manner in which PLUMED is obtained and linked into LAMMPS.
If DOWNLOAD_PLUMED is set to "yes", the PLUMED library will be
downloaded (the version of PLUMED that will be downloaded is hard-coded
to a vetted version of PLUMED, usually a recent stable release version)
and built inside the CMake build directory. If DOWNLOAD_PLUMED is set
to "no" (the default), CMake will try to detect and link to an installed
version of PLUMED. For this to work, the PLUMED library has to be
installed into a location where the pkg-config tool can find it or the
PKG_CONFIG_PATH environment variable has to be set up accordingly.
PLUMED should be installed in such a location if you compile it using
the default make; make install commands.
and built inside the CMake build directory. If ``DOWNLOAD_PLUMED`` is
set to "no" (the default), CMake will try to detect and link to an
installed version of PLUMED. For this to work, the PLUMED library has
to be installed into a location where the ``pkg-config`` tool can find
it or the PKG_CONFIG_PATH environment variable has to be set up
accordingly. PLUMED should be installed in such a location if you
compile it using the default make; make install commands.
The PLUMED_MODE setting determines the linkage mode for the PLUMED
The ``PLUMED_MODE`` setting determines the linkage mode for the PLUMED
library. The allowed values for this flag are "static" (default),
"shared", or "runtime". For a discussion of PLUMED linkage modes,
please see above. When DOWNLOAD_PLUMED is enabled the static linkage
mode is recommended.
please see above. When ``DOWNLOAD_PLUMED`` is enabled the static
linkage mode is recommended.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
PLUMED needs to be installed before the USER-PLUMED package is installed
so that LAMMPS can find the right settings when compiling and linking
@ -1148,9 +1171,9 @@ from the src folder through the following make args:
$ make lib-plumed args="-p /usr/local -m shared" # use existing PLUMED installation in
# /usr/local and use shared linkage mode
Note that 2 symbolic (soft) links, "includelink" and "liblink" are
Note that 2 symbolic (soft) links, ``includelink`` and ``liblink`` are
created in lib/plumed that point to the location of the PLUMED build to
use. A new file lib/plumed/Makefile.lammps is also created with settings
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 LAMMPS in the usual manner:
@ -1185,9 +1208,10 @@ To build with this package you must have the HDF5 software package
installed on your system, which should include the h5cc compiler and
the HDF5 library.
**CMake build**\ :
CMake build
^^^^^^^^^^^
No additional settings are needed besides "-D PKG_USER-H5MD=yes".
No additional settings are needed besides ``-D PKG_USER-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 is
@ -1195,26 +1219,27 @@ installed. Use the ccmake (terminal window) or cmake-gui (graphical)
tools to see these options and set them interactively from their user
interfaces.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
Before building LAMMPS, you must build the CH5MD library in lib/h5md.
You can do this manually if you prefer; follow the instructions in
lib/h5md/README. You can also do it in one step from the lammps/src
dir, using a command like these, which simply invoke the
lib/h5md/Install.py script with the specified args:
Before building LAMMPS, you must build the CH5MD library in
``lib/h5md``. You can do this manually if you prefer; follow the
instructions in ``lib/h5md/README``. You can also do it in one step
from the ``lammps/src`` dir, using a command like these, which simply
invoke the ``lib/h5md/Install.py`` script with the specified args:
.. code-block:: bash
$ make lib-h5md # print help message
$ make lib-h5md args="-m h5cc" # build with h5cc compiler
The build should produce two files: lib/h5md/libch5md.a and
lib/h5md/Makefile.lammps. The latter is copied from an existing
Makefile.lammps.\* and has settings needed to build LAMMPS with the
The build should produce two files: ``lib/h5md/libch5md.a`` and
``lib/h5md/Makefile.lammps``. The latter is copied from an existing
``Makefile.lammps.*`` and has settings needed to build LAMMPS with the
system HDF5 library. If necessary, you can edit/create a new
lib/h5md/Makefile.machine file for your system, which should define an
EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine
file.
``lib/h5md/Makefile.machine`` file for your system, which should define
an EXTRAMAKE variable to specify a corresponding
``Makefile.lammps.<machine>`` file.
----------
@ -1229,7 +1254,8 @@ 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.
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -1248,11 +1274,12 @@ Best performance is achieved with Intel hardware, Intel compilers, as well as
the Intel TBB and MKL libraries. However, the code also compiles, links, and
runs with other compilers and without TBB and MKL.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
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
following settings. See ``src/MAKE/OPTIONS/Makefile.intel_cpu*`` and
``Makefile.knl`` files for examples. and ``src/USER-INTEL/README`` for
additional information.
For CPUs:
@ -1280,7 +1307,8 @@ For KNLs:
USER-MOLFILE package
---------------------------------------
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -1295,13 +1323,14 @@ folder of the local VMD installation in use. LAMMPS ships with a
couple of default header files that correspond to a popular VMD
version, usually the latest release.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
The lib/molfile/Makefile.lammps file has a setting for a dynamic
The ``lib/molfile/Makefile.lammps`` file has a setting for a dynamic
loading library libdl.a that is typically present on all systems. It
is required for LAMMPS to link with this package. If the setting is
not valid for your system, you will need to edit the Makefile.lammps
file. See lib/molfile/README and lib/molfile/Makefile.lammps for
file. See ``lib/molfile/README`` and ``lib/molfile/Makefile.lammps`` for
details. It is also possible to configure a different folder with
the VMD molfile plugin header files. LAMMPS ships with a couple of
default headers, but these are not compatible with all VMD versions,
@ -1318,22 +1347,24 @@ USER-NETCDF package
To build with this package you must have the NetCDF library installed
on your system.
**CMake build**\ :
CMake build
^^^^^^^^^^^
No additional settings are needed besides "-D PKG_USER-NETCDF=yes".
No additional settings are needed besides ``-D PKG_USER-NETCDF=yes``.
This should auto-detect the NETCDF library if it is installed on your
system at standard locations. Several advanced CMake NETCDF options
exist if you need to specify where it was installed. Use the ccmake
(terminal window) or cmake-gui (graphical) tools to see these options
and set them interactively from their user interfaces.
exist if you need to specify where it was installed. Use the ``ccmake``
(terminal window) or ``cmake-gui`` (graphical) tools to see these
options and set them interactively from their user interfaces.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
The lib/netcdf/Makefile.lammps file has settings for NetCDF include
The ``lib/netcdf/Makefile.lammps`` file has settings for NetCDF include
and library files which LAMMPS needs to build with this package. If
the settings are not valid for your system, you will need to edit the
Makefile.lammps file. See lib/netcdf/README for details.
``Makefile.lammps`` file. See ``lib/netcdf/README`` for details.
----------
@ -1342,18 +1373,20 @@ Makefile.lammps file. See lib/netcdf/README for details.
USER-OMP package
-------------------------------
**CMake build**\ :
CMake build
^^^^^^^^^^^
No additional settings are required besides "-D PKG_USER-OMP=yes". If
No additional settings are required besides ``-D PKG_USER-OMP=yes``. If
CMake detects OpenMP support, the USER-OMP code will be compiled with
multi-threading support enabled, otherwise as optimized serial code.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
To enable multi-threading support in the USER-OMP 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.
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.
.. parsed-literal::
@ -1363,8 +1396,7 @@ See src/MAKE/OPTIONS/Makefile.omp for an example.
LINKFLAGS: -qopenmp # for Intel compilers on Linux
For other platforms and compilers, please consult the documentation
about OpenMP support for your compiler. Please see the note about
how to address compatibility :ref:`issues with the 'default(none)' directive <default-none-issues>` of some compilers.
about OpenMP support for your compiler.
----------
@ -1374,19 +1406,20 @@ USER-QMMM package
---------------------------------
For using LAMMPS to do QM/MM simulations via the USER-QMMM package you
need to build LAMMPS as a library. A LAMMPS executable with 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 only Quantum
ESPRESSO (QE) is supported - and create a new executable which links
LAMMPS and the QM code together. Details are given in the
lib/qmmm/README file. It is also recommended to read the instructions
for :doc:`linking with LAMMPS as a library <Build_link>` for
background information. This requires compatible Quantum Espresso
and LAMMPS versions. The current interface and makefiles have last
been verified to work in February 2020 with Quantum Espresso versions
6.3 to 6.5.
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
only Quantum ESPRESSO (QE) is supported - and create a new executable
which links LAMMPS and the QM code together. Details are given in the
``lib/qmmm/README`` file. It is also recommended to read the
instructions for :doc:`linking with LAMMPS as a library <Build_link>`
for background information. This requires compatible Quantum Espresso
and LAMMPS versions. The current interface and makefiles have last been
verified to work in February 2020 with Quantum Espresso versions 6.3 to
6.5.
**CMake build**\ :
CMake build
^^^^^^^^^^^
When using CMake, building a LAMMPS library is required and it is
recommended to build a shared library, since any libraries built from
@ -1403,17 +1436,18 @@ would be:
After completing the LAMMPS build and also configuring and compiling
Quantum ESPRESSO with external library support (via "make couple"),
go back to the lib/qmmm folder and follow the instructions on the
go back to the ``lib/qmmm` folder and follow the instructions on the
README file to build the combined LAMMPS/QE QM/MM executable
(pwqmmm.x) in the lib/qmmm folder. You need to make certain, that
(pwqmmm.x) in the ``lib/qmmm`` folder. You need to make certain, that
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
Before building LAMMPS, you must build the QMMM library in lib/qmmm.
Before building LAMMPS, you must build the QMMM library in ``lib/qmmm``.
You can do this manually if you prefer; follow the first two steps
explained in lib/qmmm/README. You can also do it in one step from the
lammps/src dir, using a command like these, which simply invoke the
lib/qmmm/Install.py script with the specified args:
explained in ``lib/qmmm/README``. You can also do it in one step from
the ``lammps/src`` dir, using a command like these, which simply invoke
the ``lib/qmmm/Install.py`` script with the specified args:
.. code-block:: bash
@ -1422,18 +1456,18 @@ lib/qmmm/Install.py script with the specified args:
$ make lib-qmmm args="-m mpi" # build with default MPI compiler (settings as in "make mpi")
$ make lib-qmmm args="-m gfortran" # build with GNU Fortran compiler
The build should produce two files: lib/qmmm/libqmmm.a and
lib/qmmm/Makefile.lammps. The latter is copied from an existing
Makefile.lammps.\* and has settings needed to build LAMMPS with the
The build should produce two files: ``lib/qmmm/libqmmm.a`` and
``lib/qmmm/Makefile.lammps``. The latter is copied from an existing
``Makefile.lammps.*`` and has settings needed to build LAMMPS with the
QMMM library (though typically the settings are just blank). If
necessary, you can edit/create a new lib/qmmm/Makefile.machine file
for your system, which should define an EXTRAMAKE variable to specify
a corresponding Makefile.lammps.machine file.
necessary, you can edit/create a new ``lib/qmmm/Makefile.<machine>`` file
for your system, which should define an ``EXTRAMAKE`` variable to
specify a corresponding ``Makefile.lammps.<machine>`` file.
You can then install QMMM package and build LAMMPS in the usual
manner. After completing the LAMMPS build and compiling Quantum
ESPRESSO with external library support (via "make couple"), go back to
the lib/qmmm folder and follow the instructions in the README file to
the ``lib/qmmm`` folder and follow the instructions in the README file to
build the combined LAMMPS/QE QM/MM executable (pwqmmm.x) in the
lib/qmmm folder.
@ -1448,26 +1482,28 @@ To build with this package, you must download and build the QUIP
library. It can be obtained from GitHub. For support of GAP
potentials, additional files with specific licensing conditions need
to be downloaded and configured. See step 1 and step 1.1 in the
lib/quip/README file for details on how to do this.
``lib/quip/README`` file for details on how to do this.
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
-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_USER-QUIP=yes`` should
work. Set QUIP_LIBRARY if CMake cannot find the QUIP library.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
The download/build procedure for the QUIP library, described in
lib/quip/README file requires setting two environment variables,
``lib/quip/README`` file requires setting two environment variables,
QUIP_ROOT and QUIP_ARCH. These are accessed by the
lib/quip/Makefile.lammps file which is used when you compile and link
LAMMPS with this package. You should only need to edit
Makefile.lammps if the LAMMPS build can not use its settings to
``Makefile.lammps`` if the LAMMPS build can not use its settings to
successfully build on your system.
----------
@ -1477,11 +1513,13 @@ successfully build on your system.
USER-SCAFACOS package
-----------------------------------------
To build with this package, you must download and build the `ScaFaCoS Coulomb solver library <scafacos-home_>`_
To build with this package, you must download and build the `ScaFaCoS
Coulomb solver library <scafacos-home_>`_
.. _scafacos-home: http://www.scafacos.de
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -1496,22 +1534,23 @@ SCAFACOS_LIBRARY is the filename (plus path) of the ScaFaCoS library
file, not the directory the library file is in. SCAFACOS_INCLUDE_DIR
is the directory the ScaFaCoS include file is in.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
You can download and build the ScaFaCoS library manually if you
prefer; follow the instructions in lib/scafacos/README. You can also
do it in one step from the lammps/src dir, using a command like these,
which simply invoke the lib/scafacos/Install.py script with the
prefer; follow the instructions in ``lib/scafacos/README``. You can also
do it in one step from the ``lammps/src`` dir, using a command like these,
which simply invoke the ``lib/scafacos/Install.py`` script with the
specified args:
make lib-scafacos # print help message
make lib-scafacos args="-b" # download and build in lib/scafacos/scafacos-<version>
make lib-scafacos args="-p $HOME/scafacos # use existing ScaFaCoS installation in $HOME/scafacos
Note that 2 symbolic (soft) links, "includelink" and "liblink", are
created in lib/scafacos to point to the ScaFaCoS src dir. When LAMMPS
Note that 2 symbolic (soft) links, ``includelink`` and ``liblink``, are
created in ``lib/scafacos`` to point to the ScaFaCoS src dir. When LAMMPS
builds in src it will use these links. You should not need to edit
the lib/scafacos/Makefile.lammps file.
the ``lib/scafacos/Makefile.lammps`` file.
----------
@ -1523,24 +1562,26 @@ USER-SMD package
To build with this package, you must download the Eigen3 library.
Eigen3 is a template library, so you do not need to build it.
**CMake build**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
-D DOWNLOAD_EIGEN3 # download Eigen3, value = no (default) or yes
-D EIGEN3_INCLUDE_DIR=path # path to Eigen library (only needed if a custom location)
If DOWNLOAD_EIGEN3 is set, the Eigen3 library will be downloaded and
If ``DOWNLOAD_EIGEN3`` is set, the Eigen3 library will be downloaded and
inside the CMake build directory. If the Eigen3 library is already on
your system (in a location CMake cannot find it), EIGEN3_INCLUDE_DIR
your system (in a location CMake cannot find it), ``EIGEN3_INCLUDE_DIR``
is the directory the Eigen3++ include file is in.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
You can download the Eigen3 library manually if you prefer; follow the
instructions in lib/smd/README. You can also do it in one step from
the lammps/src dir, using a command like these, which simply invoke
the lib/smd/Install.py script with the specified args:
instructions in ``lib/smd/README``. You can also do it in one step from
the ``lammps/src`` dir, using a command like these, which simply invoke
the ``lib/smd/Install.py`` script with the specified args:
.. code-block:: bash
@ -1548,9 +1589,9 @@ the lib/smd/Install.py script with the specified args:
$ make lib-smd args="-b" # download to lib/smd/eigen3
$ make lib-smd args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3
Note that a symbolic (soft) link named "includelink" is created in
lib/smd to point to the Eigen dir. When LAMMPS builds it will use
this link. You should not need to edit the lib/smd/Makefile.lammps
Note that a symbolic (soft) link named ``includelink`` is created in
``lib/smd`` to point to the Eigen dir. When LAMMPS builds it will use
this link. You should not need to edit the ``lib/smd/Makefile.lammps``
file.
----------
@ -1563,21 +1604,23 @@ USER-VTK package
To build with this package you must have the VTK library installed on
your system.
**CMake build**\ :
CMake build
^^^^^^^^^^^
No additional settings are needed besides "-D PKG_USER-VTK=yes".
No additional settings are needed besides ``-D PKG_USER-VTK=yes``.
This should auto-detect the VTK library if it is installed on your
system at standard locations. Several advanced VTK options exist if
you need to specify where it was installed. Use the ccmake (terminal
window) or cmake-gui (graphical) tools to see these options and set
you need to specify where it was installed. Use the ``ccmake`` (terminal
window) or ``cmake-gui`` (graphical) tools to see these options and set
them interactively from their user interfaces.
**Traditional make**\ :
Traditional make
^^^^^^^^^^^^^^^^
The lib/vtk/Makefile.lammps file has settings for accessing VTK files
The ``lib/vtk/Makefile.lammps`` file has settings for accessing VTK files
and its library, which LAMMPS needs to build with this package. If
the settings are not valid for your system, check if one of the other
lib/vtk/Makefile.lammps.\* files is compatible and copy it to
``lib/vtk/Makefile.lammps.*`` files is compatible and copy it to
Makefile.lammps. If none of the provided files work, you will need to
edit the Makefile.lammps file. See lib/vtk/README for details.
edit the ``Makefile.lammps`` file. See ``lib/vtk/README`` for details.

View File

@ -44,7 +44,8 @@ require use of an FFT library to compute 1d FFTs. The KISS FFT
library is included with LAMMPS but other libraries can be faster.
LAMMPS can use them if they are available on your system.
**CMake variables**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -74,7 +75,12 @@ to assist:
-D FFT_MKL_THREADS=on # enable using threaded FFTs with MKL libraries
-D MKL_LIBRARIES=path
**Makefile.machine settings**\ :
Traditional make
^^^^^^^^^^^^^^^^
To change the FFT library to be used and its options, you have to edit
your machine Makefile. Below are examples how the makefile variables
could be changed.
.. code-block:: make
@ -104,7 +110,8 @@ As with CMake, you do not need to set paths in ``FFT_INC`` or ``FFT_PATH``, if
the compiler can find the FFT header and library files in its default search path.
You must specify ``FFT_LIB`` with the appropriate FFT libraries to include in the link.
**CMake and make info**\ :
CMake build
^^^^^^^^^^^
The `KISS FFT library <http://kissfft.sf.net>`_ is included in the LAMMPS
distribution. It is portable across all platforms. Depending on the size
@ -127,7 +134,7 @@ download it from `www.fftw.org <http://www.fftw.org>`_. LAMMPS requires
version 3.X; the legacy version 2.1.X is no longer supported.
Building FFTW for your box should be as simple as ``./configure; make;
make install``\ . The install command typically requires root privileges
make install``. The install command typically requires root privileges
(e.g. invoke it via sudo), unless you specify a local directory with
the "--prefix" option of configure. Type ``./configure --help`` to see
various options.
@ -176,13 +183,18 @@ LAMMPS has a few integer data types which can be defined as either
4-byte (= 32-bit) or 8-byte (= 64-bit) integers at compile time.
The default setting of "smallbig" is almost always adequate.
**CMake variable**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
-D LAMMPS_SIZES=value # smallbig (default) or bigbig or smallsmall
**Makefile.machine setting**\ :
Traditional build
^^^^^^^^^^^^^^^^^
If you want a setting different from the default, you need to edit your
machine Makefile.
.. code-block:: make
@ -190,7 +202,8 @@ The default setting of "smallbig" is almost always adequate.
The default setting is ``-DLAMMPS_SMALLBIG`` if nothing is specified
**CMake and make info**\ :
CMake and make info
^^^^^^^^^^^^^^^^^^^
The default "smallbig" setting allows for simulations with:
@ -251,7 +264,8 @@ PNG image files. Likewise the :doc:`dump movie <dump_image>` command
outputs movie files in MPEG format. Using these options requires the
following settings:
**CMake variables**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -276,7 +290,8 @@ variables:
-D ZLIB_LIBRARIES=path # path to libz.a (.so) file
-D FFMPEG_EXECUTABLE=path # path to ffmpeg executable
**Makefile.machine settings**\ :
Traditional make
^^^^^^^^^^^^^^^^
.. code-block:: make
@ -295,7 +310,8 @@ with a list of graphics libraries to include in the link. You must
insure ffmpeg is in a directory where LAMMPS can find it at runtime,
that is a directory in your PATH environment variable.
**CMake and make info**\ :
CMake and make info
^^^^^^^^^^^^^^^^^^^
Using ``ffmpeg`` to output movie files requires that your machine
supports the "popen" function in the standard runtime library.
@ -318,7 +334,8 @@ If this option is enabled, large files can be read or written with
gzip compression by several LAMMPS commands, including
:doc:`read_data <read_data>`, :doc:`rerun <rerun>`, and :doc:`dump <dump>`.
**CMake variables**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -326,13 +343,15 @@ gzip compression by several LAMMPS commands, including
# default is yes if CMake can find gzip, else no
-D GZIP_EXECUTABLE=path # path to gzip executable if CMake cannot find it
**Makefile.machine setting**\ :
Traditional make
^^^^^^^^^^^^^^^^
.. code-block:: make
LMP_INC = -DLAMMPS_GZIP
**CMake and make info**\ :
CMake and make info
^^^^^^^^^^^^^^^^^^^
This option requires that your machine supports the "popen()" function
in the standard runtime library and that a gzip executable can be
@ -363,7 +382,8 @@ pointers that are aligned to 16-byte boundaries. Using SSE vector
instructions efficiently, however, requires memory blocks being
aligned on 64-byte boundaries.
**CMake variable**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
@ -374,7 +394,8 @@ and revert to using the malloc() C-library function instead. When
compiling LAMMPS for Windows systems, malloc() will always be used
and this setting ignored.
**Makefile.machine setting**\ :
Traditional make
^^^^^^^^^^^^^^^^
.. code-block:: make
@ -398,13 +419,15 @@ types, the following setting will be needed. It converts "long long"
to a "long" data type, which should be the desired 8-byte integer on
those systems:
**CMake variable**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
-D LAMMPS_LONGLONG_TO_LONG=value # yes or no (default)
**Makefile.machine setting**\ :
Traditional make
^^^^^^^^^^^^^^^^
.. code-block:: make
@ -423,13 +446,15 @@ Instead, the call stack is unwound and control returns to the caller,
e.g. to Python. Of course, the calling code has to be set up to
*catch* exceptions thrown from within LAMMPS.
**CMake variable**\ :
CMake build
^^^^^^^^^^^
.. code-block:: bash
-D LAMMPS_EXCEPTIONS=value # yes or no (default)
**Makefile.machine setting**\ :
Traditional make
^^^^^^^^^^^^^^^^
.. code-block:: make