"Previous Section"_Section_commands.html - "LAMMPS WWW Site"_lws -
"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next
Section"_Section_accelerate.html :c

:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)

:line

4. Packages :h3

This section gives an overview of the optional packages that extend
LAMMPS functionality with instructions on how to build LAMMPS with
each of them.  Packages are groups of files that enable a specific set
of features.  For example, force fields for molecular systems or
granular systems are in packages.  You can see the list of all
packages and "make" commands to manage them by typing "make package"
from within the src directory of the LAMMPS distribution.  "Section
2.3"_Section_start.html#start_3 gives general info on how to install
and un-install packages as part of the LAMMPS build process.

There are two kinds of packages in LAMMPS, standard and user packages:

"Table of standard packages"_#table_standard
"Table of user packages"_#table_user :ul

Either of these kinds of packages may work as is, may require some
additional code compiled located in the lib folder, or may require
an external library to be downloaded, compiled, installed, and LAMMPS
configured to know about its location and additional compiler flags.
You can often do the build of the internal or external libraries
in one step by typing "make lib-name args='...'" from the src dir,
with appropriate arguments included in args='...'. If you just type
"make lib-name" you should see a help message about supported flags
and some examples. For more details about this, please study the
tables below and the sections about the individual packages.

Standard packages are supported by the LAMMPS developers and are
written in a syntax and style consistent with the rest of LAMMPS.
This means the developers will answer questions about them, debug and
fix them if necessary, and keep them compatible with future changes to
LAMMPS.

User packages have been contributed by users, and begin with the
"user" prefix.  If they are a single command (single file), they are
typically in the user-misc package.  User packages don't necessarily
meet the requirements of the standard packages. This means the
developers will try to keep things working and usually can answer
technical questions about compiling the package. If you have problems
using a feature provided in a user package, you may need to contact
the contributor directly to get help.  Information on how to submit
additions you make to LAMMPS as single files or as a standard or user
package are given in "this section"_Section_modify.html#mod_15 of the
manual.

Following the next two tables is a sub-section for each package.  It
lists authors (if applicable) and summarizes the package contents.  It
has specific instructions on how to install the package, including (if
necessary) downloading or building any extra library it requires. It
also gives links to documentation, example scripts, and
pictures/movies (if available) that illustrate use of the package.

NOTE: To see the complete list of commands a package adds to LAMMPS,
just look at the files in its src directory, e.g. "ls src/GRANULAR".
Files with names that start with fix, compute, atom, pair, bond,
angle, etc correspond to commands with the same style names.

In these two tables, the "Example" column is a sub-directory in the
examples directory of the distribution which has an input script that
uses the package.  E.g. "peptide" refers to the examples/peptide
directory; USER/atc refers to the examples/USER/atc directory.  The
"Library" column indicates whether an extra library is needed to build
and use the package:

dash = no library
sys = system library: you likely have it on your machine
int = internal library: provided with LAMMPS, but you may need to build it
ext = external library: you will need to download and install it on your machine :ul

:line
:line

[Standard packages] :link(table_standard),p

Package, Description, Doc page, Example, Library
"ASPHERE"_#ASPHERE, aspherical particle models, "Section 6.6.14"_Section_howto.html#howto_14, ellipse, -
"BODY"_#BODY, body-style particles, "body"_body.html, body, -
"CLASS2"_#CLASS2, class 2 force fields, "pair_style lj/class2"_pair_class2.html, -, -
"COLLOID"_#COLLOID, colloidal particles, "atom_style colloid"_atom_style.html, colloid, -
"COMPRESS"_#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys
"CORESHELL"_#CORESHELL, adiabatic core/shell model, "Section 6.6.25"_Section_howto.html#howto_25, coreshell, -
"DIPOLE"_#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, -
"GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, int
"GRANULAR"_#GRANULAR, granular systems, "Section 6.6.6"_Section_howto.html#howto_6, pour, -
"KIM"_#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext
"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, -
"MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, -
"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, -
"MEAM"_#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int
"MISC"_#MISC, miscellanous single-file commands, -, -, -
"MOLECULE"_#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, -
"MPIIO"_#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, -
"MSCG"_#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext
"OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"PERI"_#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, -
"POEMS"_#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int
"PYTHON"_#PYTHON, embed Python code in an input script, "python"_python.html, python, sys
"QEQ"_#QEQ, QEq charge equilibration, "fix qeq"_fix_qeq.html, qeq, -
"REAX"_#REAX, ReaxFF potential (Fortran), "pair_style reax"_pair_reax.html, reax, int
"REPLICA"_#REPLICA, multi-replica methods, "Section 6.6.5"_Section_howto.html#howto_5, tad, -
"RIGID"_#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, -
"SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, -
"SNAP"_#SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, -
"SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, -
"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l)

[USER packages] :link(table_user),p

Package, Description, Doc page, Example, Library
"USER-ATC"_#USER-ATC, atom-to-continuum coupling, "fix atc"_fix_atc.html, USER/atc, int
"USER-AWPMD"_#USER-AWPMD, wave-packet MD, "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, int
"USER-CGDNA"_#USER-CGDNA, coarse-grained DNA force fields, src/USER-CGDNA/README, USER/cgdna, -
"USER-CGSDK"_#USER-CGSDK, SDK coarse-graining model, "pair_style lj/sdk"_pair_sdk.html, USER/cgsdk, -
"USER-COLVARS"_#USER-COLVARS, collective variables library, "fix colvars"_fix_colvars.html, USER/colvars, int
"USER-DIFFRACTION"_#USER-DIFFRACTION, virtual x-ray and electron diffraction,"compute xrd"_compute_xrd.html, USER/diffraction, -
"USER-DPD"_#USER-DPD, reactive dissipative particle dynamics, src/USER-DPD/README, USER/dpd, -
"USER-DRUDE"_#USER-DRUDE, Drude oscillators, "tutorial"_tutorial_drude.html, USER/drude, -
"USER-EFF"_#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, -
"USER-FEP"_#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, -
"USER-H5MD"_#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext
"USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"USER-LB"_#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, -
"USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, -
"USER-MEAMC"_#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, -
"USER-MESO"_#USER-MESO, mesoscale DPD models, "pair_style edpd"_pair_meso.html, USER/meso, -
"USER-MGPT"_#USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, -
"USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, -
"USER-MOLFILE"_#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext
"USER-NETCDF"_#USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext
"USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"USER-PHONON"_#USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, -
"USER-QMMM"_#USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext
"USER-QTB"_#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, -
"USER-QUIP"_#USER-QUIP, QUIP/libatoms interface,"pair_style quip"_pair_quip.html, USER/quip, ext
"USER-REAXC"_#USER-REAXC, ReaxFF potential (C/C++) ,"pair_style reaxc"_pair_reaxc.html, reax, -
"USER-SMD"_#USER-SMD, smoothed Mach dynamics,"SMD User Guide"_PDF/SMD_LAMMPS_userguide.pdf, USER/smd, ext
"USER-SMTBQ"_#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, -
"USER-SPH"_#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, -
"USER-TALLY"_#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, -
"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext :tb(ea=c,ca1=l)

:line
:line

ASPHERE package :link(ASPHERE),h4

[Contents:]

Computes, time-integration fixes, and pair styles for aspherical
particle models including ellipsoids, 2d lines, and 3d triangles.

[Install or un-install:]

make yes-asphere
make machine :pre

make no-asphere
make machine :pre

[Supporting info:]

src/ASPHERE: filenames -> commands
"Section 6.14"_Section_howto.html#howto_14
"pair_style gayberne"_pair_gayberne.html
"pair_style resquared"_pair_resquared.html
"doc/PDF/pair_gayberne_extra.pdf"_PDF/pair_gayberne_extra.pdf
"doc/PDF/pair_resquared_extra.pdf"_PDF/pair_resquared_extra.pdf
examples/ASPHERE
examples/ellipse
http://lammps.sandia.gov/movies.html#line
http://lammps.sandia.gov/movies.html#tri :ul

:line

BODY package :link(BODY),h4

[Contents:]

Body-style particles with internal structure.  Computes,
time-integration fixes, pair styles, as well as the body styles
themselves.  See the "body"_body.html doc page for an overview.

[Install or un-install:]

make yes-body
make machine :pre

make no-body
make machine :pre

[Supporting info:]

src/BODY filenames -> commands
"body"_body.html
"atom_style body"_atom_style.html
"fix nve/body"_fix_nve_body.html
"pair_style body"_pair_body.html
examples/body :ul

:line

CLASS2 package :link(CLASS2),h4

[Contents:]

Bond, angle, dihedral, improper, and pair styles for the COMPASS
CLASS2 molecular force field.

[Install or un-install:]

make yes-class2
make machine :pre

make no-class2
make machine :pre

[Supporting info:]

src/CLASS2: filenames -> commands
"bond_style class2"_bond_class2.html
"angle_style class2"_angle_class2.html
"dihedral_style class2"_dihedral_class2.html
"improper_style class2"_improper_class2.html
"pair_style lj/class2"_pair_class2.html :ul

:line

COLLOID package :link(COLLOID),h4

[Contents:]

Coarse-grained finite-size colloidal particles.  Pair stayle and fix
wall styles for colloidal interactions.  Includes the Fast Lubrication
Dynamics (FLD) method for hydrodynamic interactions, which is a
simplified approximation to Stokesian dynamics.

[Authors:] This package includes Fast Lubrication Dynamics pair styles
which were created by Amit Kumar and Michael Bybee from Jonathan
Higdon's group at UIUC.

[Install or un-install:]

make yes-colloid
make machine :pre

make no-colloid
make machine :pre

[Supporting info:]

src/COLLOID: filenames -> commands
"fix wall/colloid"_fix_wall.html
"pair_style colloid"_pair_colloid.html
"pair_style yukawa/colloid"_pair_yukawa_colloid.html
"pair_style brownian"_pair_brownian.html
"pair_style lubricate"_pair_lubricate.html
"pair_style lubricateU"_pair_lubricateU.html
examples/colloid
examples/srd :ul

:line

COMPRESS package :link(COMPRESS),h4

[Contents:]

Compressed output of dump files via the zlib compression library,
using dump styles with a "gz" in their style name.

To use this package you must have the zlib compression library
available on your system.

[Author:] Axel Kohlmeyer (Temple U).

[Install or un-install:]

Note that building with this package assumes you have the zlib
compression library available on your system.  The LAMMPS build uses
the settings in the lib/compress/Makefile.lammps file in the
compile/link process.  You should only need to edit this file if the
LAMMPS build fails on your system.

make yes-compress
make machine :pre

make no-compress
make machine :pre

[Supporting info:]

src/COMPRESS: filenames -> commands
src/COMPRESS/README
lib/compress/README
"dump atom/gz"_dump.html
"dump cfg/gz"_dump.html
"dump custom/gz"_dump.html
"dump xyz/gz"_dump.html :ul

:line

CORESHELL package :link(CORESHELL),h4

[Contents:]

Compute and pair styles that implement the adiabatic core/shell model
for polarizability.  The pair styles augment Born, Buckingham, and
Lennard-Jones styles with core/shell capabilities.  The "compute
temp/cs"_compute_temp_cs.html command calculates the temperature of a
system with core/shell particles.  See "Section
6.26"_Section_howto.html#howto_26 for an overview of how to use this
package.

[Author:] Hendrik Heenen (Technical U of Munich).

[Install or un-install:]

make yes-coreshell
make machine :pre

make no-coreshell
make machine :pre

[Supporting info:]

src/CORESHELL: filenames -> commands
"Section 6.26"_Section_howto.html#howto_26
"Section 6.25"_Section_howto.html#howto_25
"compute temp/cs"_compute_temp_cs.html
"pair_style born/coul/long/cs"_pair_cs.html
"pair_style buck/coul/long/cs"_pair_cs.html
"pair_style lj/cut/coul/long/cs"_pair_lj.html
examples/coreshell :ul

:line

DIPOLE package :link(DIPOLE),h4

[Contents:]

An atom style and several pair styles for point dipole models with
short-range or long-range interactions.

[Install or un-install:]

make yes-dipole
make machine :pre

make no-dipole
make machine :pre

[Supporting info:]

src/DIPOLE: filenames -> commands
"atom_style dipole"_atom_style.html
"pair_style lj/cut/dipole/cut"_pair_dipole.html
"pair_style lj/cut/dipole/long"_pair_dipole.html
"pair_style lj/long/dipole/long"_pair_dipole.html
examples/dipole :ul

:line

GPU package :link(GPU),h4

[Contents:]

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.
"Section 5.3.1"_accelerate_gpu.html 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" "command-line
switches"_Section_start.html#start_6.  See also the "KOKKOS"_#KOKKOS
package, which has GPU-enabled styles.

[Authors:] Mike Brown (Intel) while at Sandia and ORNL and Trung Nguyen
(Northwestern U) while at ORNL.

[Install or un-install:]

Before building LAMMPS with this package, you must first build the GPU
library in lib/gpu from a set of provided C and CUDA files.  You can
do this manually if you prefer; follow the instructions in
lib/gpu/README. Please note, that the GPU library uses MPI calls, so
you have to make certain to use the same MPI library (or the STUBS
library) settings as the main LAMMPS code. That same applies to the
-DLAMMPS_BIGBIG, -DLAMMPS_SMALLBIG, or -DLAMMPS_SMALLSMALL define.

You can also do it in one step from the lammps/src
dir, using a command like these, which simply invoke the
lib/gpu/Install.py script with the specified args:

make lib-gpu               # print help message
make lib-gpu args="-b"     # build GPU library with default Makefile.linux
make lib-gpu args="-m xk7 -p single -o xk7.single"  # create new Makefile.xk7.single, altered for single-precision
make lib-gpu args="-m mpi -p mixed -b" # build GPU library with mixed precision using settings in Makefile.mpi :pre

Note that this procedure through the '-m machine' flag starts with one of
the existing Makefile.machine files in lib/gpu. For your convenience,
machine makefiles for "mpi" and "serial" are provided, which have the
same settings as the corresponding machine makefiles in the main LAMMPS
source folder. In addition you can alter 4 important settings in that
Makefile, via the -h, -a, -p, -e switches, and also save a copy of the
new Makefile, if desired:

CUDA_HOME = where NVIDIA CUDA software is installed on your system
CUDA_ARCH = what GPU hardware you have (see help message for details)
CUDA_PRECISION = precision (double, mixed, single)
EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul

If the library build is successful, at least 3 files should be created:
lib/gpu/libgpu.a, lib/gpu/nvc_get_devices, and lib/gpu/Makefile.lammps.
The latter has settings that enable LAMMPS to link with CUDA libraries.
If the settings in Makefile.lammps for your machine are not correct,
the LAMMPS build will fail, and lib/gpu/Makefile.lammps may need to
be edited.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-gpu
make machine :pre

make no-gpu
make machine :pre

NOTE: If you re-build the GPU library in lib/gpu, you should always
un-install the GPU package, then re-install it and re-build LAMMPS.
This is because the compilation of files in the GPU package use the
library settings from the lib/gpu/Makefile.machine used to build the
GPU library.

[Supporting info:]

src/GPU: filenames -> commands
src/GPU/README
lib/gpu/README
"Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.1"_accelerate_gpu.html
"Section 2.6 -sf gpu"_Section_start.html#start_6
"Section 2.6 -pk gpu"_Section_start.html#start_6
"package gpu"_package.html
Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (g)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul

:line

GRANULAR package :link(GRANULAR),h4

[Contents:]

Pair styles and fixes for finite-size granular particles, which
interact with each other and boundaries via frictional and dissipative
potentials.

[Install or un-install:]

make yes-granular
make machine :pre

make no-granular
make machine :pre

[Supporting info:]

src/GRANULAR: filenames -> commands
"Section 6.6"_Section_howto.html#howto_6,
"fix pour"_fix_pour.html
"fix wall/gran"_fix_wall_gran.html
"pair_style gran/hooke"_pair_gran.html
"pair_style gran/hertz/history"_pair_gran.html
examples/granregion
examples/pour
bench/in.chute
http://lammps.sandia.gov/pictures.html#jamming
http://lammps.sandia.gov/movies.html#hopper
http://lammps.sandia.gov/movies.html#dem
http://lammps.sandia.gov/movies.html#brazil
http://lammps.sandia.gov/movies.html#granregion :ul

:line

KIM package :link(KIM),h4

[Contents:]

A "pair_style kim"_pair_kim.html command which is a wrapper on the
Knowledge Base for Interatomic Models (KIM) repository of interatomic
potentials, enabling any of them to be used in LAMMPS simulations.

To use this package you must have the KIM library available on your
system.

Information about the KIM project can be found at its website:
https://openkim.org.  The KIM project is led by Ellad Tadmor and Ryan
Elliott (U Minnesota) and James Sethna (Cornell U).

[Authors:] Ryan Elliott (U Minnesota) is the main developer for the KIM
API which the "pair_style kim"_pair_kim.html command uses.  He
developed the pair style in collaboration with Valeriu Smirichinski (U
Minnesota).

[Install or un-install:]

Before building LAMMPS with this package, you must first download and
build the KIM library and include the KIM models that you want to
use. You can do this manually if you prefer; follow the instructions
in lib/kim/README.  You can also do it in one step from the lammps/src
dir, using a command like these, which simply invoke the
lib/kim/Install.py script with the specified args.

make lib-kim              # print help message
make lib-kim args="-b "   # (re-)install KIM API lib with only example models
make lib-kim args="-b -a Glue_Ercolessi_Adams_Al__MO_324507536345_001"  # ditto plus one model
make lib-kim args="-b -a everything"     # install KIM API lib with all models
make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002"       # add one model or model driver
make lib-kim args="-p /usr/local/kim-api" # use an existing KIM API installation at the provided location
make lib-kim args="-p /usr/local/kim-api -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver :pre

Note that in LAMMPS lingo, a KIM model driver is a pair style
(e.g. EAM or Tersoff).  A KIM model is a pair style for a particular
element or alloy and set of parameters, e.g. EAM for Cu with a
specific EAM potential file.  Also note that installing the KIM API
library with all its models, may take around 30 min to build.  Of
course you only need to do that once.

See the list of KIM model drivers here:
https://openkim.org/kim-items/model-drivers/alphabetical

See the list of all KIM models here:
https://openkim.org/kim-items/models/by-model-drivers

See the list of example KIM models included by default here:
https://openkim.org/kim-api in the "What is in the KIM API source
package?" section

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-kim
make machine :pre

make no-kim
make machine :pre

[Supporting info:]

src/KIM: filenames -> commands
src/KIM/README
lib/kim/README
"pair_style kim"_pair_kim.html
examples/kim :ul

:line

KOKKOS package :link(KOKKOS),h4

[Contents:]

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.  "Section 5.3.3"_accelerate_kokkos.html 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" "command-line
switches"_Section_start.html#start_6.  Also see the "GPU"_#GPU,
"OPT"_#OPT, "USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP
packages, which have styles optimized for CPUs, KNLs, and GPUs.

You must have a C++11 compatible compiler to use this package.

[Authors:] The KOKKOS package was created primarily by Christian Trott
and Stan Moore (Sandia), with contributions from other folks as well.
It uses the open-source "Kokkos library"_https://github.com/kokkos
which was developed by Carter Edwards, Christian Trott, and others at
Sandia, and which is included in the LAMMPS distribution in
lib/kokkos.

[Install or un-install:]

For the KOKKOS package, you have 3 choices when building.  You can
build with either CPU or KNL or GPU support.  Each choice requires
additional settings in your Makefile.machine for the KOKKOS_DEVICES
and KOKKOS_ARCH settings.  See the src/MAKE/OPTIONS/Makefile.kokkos*
files for examples.

For multicore CPUs using OpenMP:

KOKKOS_DEVICES = OpenMP
KOKKOS_ARCH = HSW           # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc :pre

For Intel KNLs using OpenMP:

KOKKOS_DEVICES = OpenMP
KOKKOS_ARCH = KNL :pre

For NVIDIA GPUs using CUDA:

KOKKOS_DEVICES = Cuda
KOKKOS_ARCH = Pascal60,Power8     # P100 hosted by an IBM Power8, etc
KOKKOS_ARCH = Kepler37,Power8     # K80 hosted by an IBM Power8, etc :pre

For GPUs, you also need these 2 lines in your Makefile.machine before
the CC line is defined, in this case for use with OpenMPI mpicxx.  The
2 lines define a nvcc wrapper compiler, which will use nvcc for
compiling CUDA files or use a C++ compiler for non-Kokkos, non-CUDA
files.

KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd)
export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper
CC =		mpicxx :pre

Once you have an appropriate Makefile.machine, you can
install/un-install the package and build LAMMPS in the usual manner.
Note that you cannot build one executable to run on multiple hardware
targets (CPU or KNL or GPU).  You need to build LAMMPS once for each
hardware target, to produce a separate executable.  Also note that we
do not recommend building with other acceleration packages installed
(GPU, OPT, USER-INTEL, USER-OMP) when also building with KOKKOS.

make yes-kokkos
make machine :pre

make no-kokkos
make machine :pre

[Supporting info:]

src/KOKKOS: filenames -> commands
src/KOKKOS/README
lib/kokkos/README
"Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.3"_accelerate_kokkos.html
"Section 2.6 -k on ..."_Section_start.html#start_6
"Section 2.6 -sf kk"_Section_start.html#start_6
"Section 2.6 -pk kokkos"_Section_start.html#start_6
"package kokkos"_package.html
Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (k)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul

:line

KSPACE package :link(KSPACE),h4

[Contents:]

A variety of long-range Coulombic solvers, as well as pair styles
which compute the corresponding short-range pairwise Coulombic
interactions.  These include Ewald, particle-particle particle-mesh
(PPPM), and multilevel summation method (MSM) solvers.

[Install or un-install:]

Building with this package requires a 1d FFT library be present on
your system for use by the PPPM solvers.  This can be the KISS FFT
library provided with LAMMPS, 3rd party libraries like FFTW, or a
vendor-supplied FFT library.  See step 6 of "Section
2.2.2"_Section_start.html#start_2_2 of the manual for details on how
to select different FFT options in your machine Makefile.

make yes-kspace
make machine :pre

make no-kspace
make machine :pre

[Supporting info:]

src/KSPACE: filenames -> commands
"kspace_style"_kspace_style.html
"doc/PDF/kspace.pdf"_PDF/kspace.pdf
"Section 6.7"_Section_howto.html#howto_7
"Section 6.8"_Section_howto.html#howto_8
"Section 6.9"_Section_howto.html#howto_9
"pair_style coul"_pair_coul.html
Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 with "long" or "msm" in pair style name
examples/peptide
bench/in.rhodo :ul

:line

MANYBODY package :link(MANYBODY),h4

[Contents:]

A variety of manybody and bond-order potentials.  These include
(AI)REBO, BOP, EAM, EIM, Stillinger-Weber, and Tersoff potentials.

[Install or un-install:]

make yes-manybody
make machine :pre

make no-manybody
make machine :pre

[Supporting info:]

src/MANYBODY: filenames -> commands
Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5
examples/comb
examples/eim
examples/nb3d
examples/shear
examples/streitz
examples/vashishta
bench/in.eam :ul

:line

MC package :link(MC),h4

[Contents:]

Several fixes and a pair style that have Monte Carlo (MC) or MC-like
attributes.  These include fixes for creating, breaking, and swapping
bonds, for performing atomic swaps, and performing grand-canonical MC
(GCMC) in conjuction with dynamics.

[Install or un-install:]

make yes-mc
make machine :pre

make no-mc
make machine :pre

[Supporting info:]

src/MC: filenames -> commands
"fix atom/swap"_fix_atom_swap.html
"fix bond/break"_fix_bond_break.html
"fix bond/create"_fix_bond_create.html
"fix bond/swap"_fix_bond_swap.html
"fix gcmc"_fix_gcmc.html
"pair_style dsmc"_pair_dsmc.html
http://lammps.sandia.gov/movies.html#gcmc :ul

:line

MEAM package :link(MEAM),h4

[Contents:]

A pair style for the modified embedded atom (MEAM) potential.

Please note that the MEAM package has been superseded by the
"USER-MEAMC"_#USER-MEAMC package, which is a direct translation
of the MEAM package to C++. USER-MEAMC contains additional
optimizations making it run faster than MEAM on most machines,
while providing the identical features and USER interface.

[Author:] Greg Wagner (Northwestern U) while at Sandia.

[Install or un-install:]

Before building LAMMPS with this package, you must first build the
MEAM library in lib/meam.  You can do this manually if you prefer;
follow the instructions in lib/meam/README.  You can also do it in one
step from the lammps/src dir, using a command like these, which simply
invoke the lib/meam/Install.py script with the specified args:

make lib-meam                  # print help message
make lib-meam args="-m mpi"    # build with default Fortran compiler compatible with your MPI library
make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran)
make lib-meam args="-m ifort"  # build with Intel Fortran compiler using Makefile.ifort :pre

The build should produce two files: lib/meam/libmeam.a and
lib/meam/Makefile.lammps.  The latter is copied from an existing
Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with
Fortran (MEAM library).  Typically the two compilers used for LAMMPS
and the MEAM library need to be consistent (e.g. both Intel or both
GNU compilers).  If necessary, you can edit/create a new
lib/meam/Makefile.machine file for your system, which should define an
EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine
file.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-meam
make machine :pre

make no-meam
make machine :pre

NOTE: You should test building the MEAM library with both the Intel
and GNU compilers to see if a simulation runs faster with one versus
the other on your system.

[Supporting info:]

src/MEAM: filenames -> commands
src/meam/README
lib/meam/README
"pair_style meam"_pair_meam.html
examples/meam :ul

:line

MISC package :link(MISC),h4

[Contents:]

A variety of compute, fix, pair, dump styles with specialized
capabilities that don't align with other packages.  Do a directory
listing, "ls src/MISC", to see the list of commands.

NOTE: the MISC package contains styles that require using the
-restrict flag, when compiling with Intel compilers.

[Install or un-install:]

make yes-misc
make machine :pre

make no-misc
make machine :pre

[Supporting info:]

src/MISC: filenames -> commands
"compute ti"_compute_ti.html
"fix evaporate"_fix_evaporate.html
"fix orient/fcc"_fix_orient.html
"fix ttm"_fix_ttm.html
"fix thermal/conductivity"_fix_thermal_conductivity.html
"fix viscosity"_fix_viscosity.html
examples/KAPPA
examples/VISCOSITY
http://lammps.sandia.gov/pictures.html#ttm
http://lammps.sandia.gov/movies.html#evaporation :ul

:line

MOLECULE package :link(MOLECULE),h4

[Contents:]

A large number of atom, pair, bond, angle, dihedral, improper styles
that are used to model molecular systems with fixed covalent bonds.
The pair styles include the Dreiding (hydrogen-bonding) and CHARMM
force fields, and a TIP4P water model.

[Install or un-install:]

make yes-molecule
make machine :pre

make no-molecule
make machine :pre

[Supporting info:]

src/MOLECULE: filenames -> commands
"atom_style"_atom_style.html
"bond_style"_bond_style.html
"angle_style"_angle_style.html
"dihedral_style"_dihedral_style.html
"improper_style"_improper_style.html
"pair_style hbond/dreiding/lj"_pair_hbond_dreiding.html
"pair_style lj/charmm/coul/charmm"_pair_charmm.html
"Section 6.3"_Section_howto.html#howto_3
examples/cmap
examples/dreiding
examples/micelle,
examples/peptide
bench/in.chain
bench/in.rhodo :ul

:line

MPIIO package :link(MPIIO),h4

[Contents:]

Support for parallel output/input of dump and restart files via the
MPIIO library.  It adds "dump styles"_dump.html with a "mpiio" in
their style name.  Restart files with an ".mpiio" suffix are also
written and read in parallel.

[Install or un-install:]

Note that MPIIO is part of the standard message-passing interface
(MPI) library, so you should not need any additional compiler or link
settings, beyond what LAMMPS normally uses for MPI on your system.

make yes-mpiio
make machine :pre

make no-mpiio
make machine :pre

[Supporting info:]

src/MPIIO: filenames -> commands
"dump"_dump.html
"restart"_restart.html
"write_restart"_write_restart.html
"read_restart"_read_restart.html :ul

:line

MSCG package :link(mscg),h4

[Contents:]

A "fix mscg"_fix_mscg.html command which can parameterize a
Mulit-Scale Coarse-Graining (MSCG) model using the open-source "MS-CG
library"_mscg_home.

:link(mscg_home,https://github.com/uchicago-voth/MSCG-release)

To use this package you must have the MS-CG library available on your
system.

[Authors:] The fix was written by Lauren Abbott (Sandia).  The MS-CG
library was developed by Jacob Wagner in Greg Voth's group at the
University of Chicago.

[Install or un-install:]

Before building LAMMPS with this package, you must first download and
build the MS-CG library.  Building the MS-CG library and using it from
LAMMPS requires a C++11 compatible compiler and that the GSL
(GNU Scientific Library) headers and libraries are installed on your
machine.  See the lib/mscg/README and MSCG/Install files for more details.

Assuming these libraries are in place, you can do the download and
build of MS-CG manually if you prefer; follow the instructions in
lib/mscg/README.  You can also do it in one step from the lammps/src
dir, using a command like these, which simply invoke the
lib/mscg/Install.py script with the specified args:

make lib-mscg             # print help message
make lib-mscg args="-b -m serial"   # download and build in lib/mscg/MSCG-release-master
                                    # with the settings compatible with "make serial"
make lib-mscg args="-b -m mpi"      # download and build in lib/mscg/MSCG-release-master
                                    # with the settings compatible with "make mpi"
make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release :pre

Note that 2 symbolic (soft) links, "includelink" and "liblink", will be created in lib/mscg
to point to the MS-CG src/installation dir.  When LAMMPS is built in src it will use these links.
You should not need to edit the lib/mscg/Makefile.lammps file.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-mscg
make machine :pre

make no-mscg
make machine :pre

[Supporting info:]

src/MSCG: filenames -> commands
src/MSCG/README
lib/mscg/README
examples/mscg :ul

:line

OPT package :link(OPT),h4

[Contents:]

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.  "Section 5.3.5"_accelerate_opt.html 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" "command-line
switches"_Section_start.html#start_6.  See also the "KOKKOS"_#KOKKOS,
"USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP packages, which
have styles optimized for CPU performance.

[Authors:] James Fischer (High Performance Technologies), David Richie,
and Vincent Natoli (Stone Ridge Technolgy).

[Install or un-install:]

make yes-opt
make machine :pre

make no-opt
make machine :pre

NOTE: 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 Makefile.opt in
src/MAKE/OPTIONS for an example.

CCFLAGS: add -restrict for Intel compilers :ul

[Supporting info:]

src/OPT: filenames -> commands
"Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.5"_accelerate_opt.html
"Section 2.6 -sf opt"_Section_start.html#start_6
Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (t)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul

:line

PERI package :link(PERI),h4

[Contents:]

An atom style, several pair styles which implement different
Peridynamics materials models, and several computes which calculate
diagnostics.  Peridynamics is a a particle-based meshless continuum
model.

[Authors:] The original package was created by Mike Parks (Sandia).
Additional Peridynamics models were added by Rezwanur Rahman and John
Foster (UTSA).

[Install or un-install:]

make yes-peri
make machine :pre

make no-peri
make machine :pre

[Supporting info:]

src/PERI: filenames -> commands
"doc/PDF/PDLammps_overview.pdf"_PDF/PDLammps_overview.pdf
"doc/PDF/PDLammps_EPS.pdf"_PDF/PDLammps_EPS.pdf
"doc/PDF/PDLammps_VES.pdf"_PDF/PDLammps_VES.pdf
"atom_style peri"_atom_style.html
"pair_style peri/*"_pair_peri.html
"compute damage/atom"_compute_damage_atom.html
"compute plasticity/atom"_compute_plasticity_atom.html
examples/peri
http://lammps.sandia.gov/movies.html#peri :ul

:line

POEMS package :link(POEMS),h4

[Contents:]

A fix that wraps the Parallelizable Open source Efficient Multibody
Software (POEMS) library, which is able to simulate the dynamics of
articulated body systems.  These are systems with multiple rigid
bodies (collections of particles) whose motion is coupled by
connections at hinge points.

[Author:] Rudra Mukherjee (JPL) while at RPI.

[Install or un-install:]

Before building LAMMPS with this package, you must first build the
POEMS library in lib/poems.  You can do this manually if you prefer;
follow the instructions in lib/poems/README.  You can also do it in
one step from the lammps/src dir, using a command like these, which
simply invoke the lib/poems/Install.py script with the specified args:

make lib-poems                   # print help message
make lib-poems args="-m serial"  # build with GNU g++ compiler (settings as with "make serial")
make lib-poems args="-m mpi"     # build with default MPI C++ compiler (settings as with "make mpi")
make lib-poems args="-m icc"     # build with Intel icc compiler :pre

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
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
a corresponding Makefile.lammps.machine file.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-poems
make machine :pre

make no-meam
make machine :pre

[Supporting info:]

src/POEMS: filenames -> commands
src/POEMS/README
lib/poems/README
"fix poems"_fix_poems.html
examples/rigid :ul

:line

PYTHON package :link(PYTHON),h4

[Contents:]

A "python"_python.html command which allow you to execute Python code
from a LAMMPS input script.  The code can be in a separate file or
embedded in the input script itself.  See "Section
11.2"_Section_python.html#py_2 for an overview of using Python from
LAMMPS in this manner and the entire section for other ways to use
LAMMPS and Python together.

[Install or un-install:]

make yes-python
make machine :pre

make no-python
make machine :pre

NOTE: Building with the PYTHON package assumes you have a Python
shared library available on your system, which needs to be a Python 2
version, 2.6 or later.  Python 3 is not yet supported.  See the
lib/python/README for more details.  Note that the build uses the
lib/python/Makefile.lammps file in the compile/link process.  You
should only need to create a new Makefile.lammps.* file (and copy it
to Makefile.lammps) if the LAMMPS build fails.

[Supporting info:]

src/PYTHON: filenames -> commands
"Section 11"_Section_python.html
lib/python/README
examples/python :ul

:line

QEQ package :link(QEQ),h4

[Contents:]

Several fixes for performing charge equilibration (QEq) via different
algorithms.  These can be used with pair styles that perform QEq as
part of their formulation.

[Install or un-install:]

make yes-qeq
make machine :pre

make no-qeq
make machine :pre

[Supporting info:]

src/QEQ: filenames -> commands
"fix qeq/*"_fix_qeq.html
examples/qeq
examples/streitz :ul

:line

REAX package :link(REAX),h4

[Contents:]

A pair style which wraps a Fortran library which implements the ReaxFF
potential, which is a universal reactive force field.  See the
"USER-REAXC package"_#USER-REAXC for an alternate implementation in
C/C++.  Also a "fix reax/bonds"_fix_reax_bonds.html command for
monitoring molecules as bonds are created and destroyed.

[Author:] Aidan Thompson (Sandia).

[Install or un-install:]

Before building LAMMPS with this package, you must first build the
REAX library in lib/reax.  You can do this manually if you prefer;
follow the instructions in lib/reax/README.  You can also do it in one
step from the lammps/src dir, using a command like these, which simply
invoke the lib/reax/Install.py script with the specified args:

make lib-reax                    # print help message
make lib-reax args="-m serial"   # build with GNU Fortran compiler (settings as with "make serial")
make lib-reax args="-m mpi"      # build with default MPI Fortran compiler (settings as with "make mpi")
make lib-reax args="-m ifort"    # build with Intel ifort compiler :pre

The build should produce two files: lib/reax/libreax.a and
lib/reax/Makefile.lammps.  The latter is copied from an existing
Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with
Fortran (REAX library).  Typically the two compilers used for LAMMPS
and the REAX library need to be consistent (e.g. both Intel or both
GNU compilers).  If necessary, you can edit/create a new
lib/reax/Makefile.machine file for your system, which should define an
EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine
file.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-reax
make machine :pre

make no-reax
make machine :pre

[Supporting info:]

src/REAX: filenames -> commands
lib/reax/README
"pair_style reax"_pair_reax.html
"fix reax/bonds"_fix_reax_bonds.html
examples/reax :ul

:line

REPLICA package :link(REPLICA),h4

[Contents:]

A collection of multi-replica methods which can be used when running
multiple LAMMPS simulations (replicas).  See "Section
6.5"_Section_howto.html#howto_5 for an overview of how to run
multi-replica simulations in LAMMPS.  Methods in the package include
nudged elastic band (NEB), parallel replica dynamics (PRD),
temperature accelerated dynamics (TAD), parallel tempering, and a
verlet/split algorithm for performing long-range Coulombics on one set
of processors, and the remainder of the force field calcalation on
another set.

[Install or un-install:]

make yes-replica
make machine :pre

make no-replica
make machine :pre

[Supporting info:]

src/REPLICA: filenames -> commands
"Section 6.5"_Section_howto.html#howto_5
"neb"_neb.html
"prd"_prd.html
"tad"_tad.html
"temper"_temper.html,
"run_style verlet/split"_run_style.html
examples/neb
examples/prd
examples/tad :ul

:line

RIGID package :link(RIGID),h4

[Contents:]

Fixes which enforce rigid constraints on collections of atoms or
particles.  This includes SHAKE and RATTLE, as well as varous
rigid-body integrators for a few large bodies or many small bodies.
Also several computes which calculate properties of rigid bodies.

To install/build:

make yes-rigid
make machine :pre

To un-install/re-build:

make no-rigid
make machine :pre

[Supporting info:]

src/RIGID: filenames -> commands
"compute erotate/rigid"_compute_erotate_rigid.html
fix shake"_fix_shake.html
"fix rattle"_fix_shake.html
"fix rigid/*"_fix_rigid.html
examples/ASPHERE
examples/rigid
bench/in.rhodo
http://lammps.sandia.gov/movies.html#box
http://lammps.sandia.gov/movies.html#star :ul

:line

SHOCK package :link(SHOCK),h4

[Contents:]

Fixes for running impact simulations where a shock-wave passes through
a material.

[Install or un-install:]

make yes-shock
make machine :pre

make no-shock
make machine :pre

[Supporting info:]

src/SHOCK: filenames -> commands
"fix append/atoms"_fix_append_atoms.html
"fix msst"_fix_msst.html
"fix nphug"_fix_nphug.html
"fix wall/piston"_fix_wall_piston.html
examples/hugoniostat
examples/msst :ul

:line

SNAP package :link(SNAP),h4

[Contents:]

A pair style for the spectral neighbor analysis potential (SNAP).
SNAP is methodology for deriving a highly accurate classical potential
fit to a large archive of quantum mechanical (DFT) data. Also several
computes which analyze attributes of the potential.

[Author:] Aidan Thompson (Sandia).

[Install or un-install:]

make yes-snap
make machine :pre

make no-snap
make machine :pre

[Supporting info:]

src/SNAP: filenames -> commands
"pair_style snap"_pair_snap.html
"compute sna/atom"_compute_sna_atom.html
"compute snad/atom"_compute_sna_atom.html
"compute snav/atom"_compute_sna_atom.html
examples/snap :ul

:line

SRD package :link(SRD),h4

[Contents:]

A pair of fixes which implement the Stochastic Rotation Dynamics (SRD)
method for coarse-graining of a solvent, typically around large
colloidal particles.

To install/build:

make yes-srd
make machine :pre

To un-install/re-build:

make no-srd
make machine :pre

[Supporting info:]

src/SRD: filenames -> commands
"fix srd"_fix_srd.html
"fix wall/srd"_fix_wall_srd.html
examples/srd
examples/ASPHERE
http://lammps.sandia.gov/movies.html#tri
http://lammps.sandia.gov/movies.html#line
http://lammps.sandia.gov/movies.html#poly :ul

:line

VORONOI package :link(VORONOI),h4

[Contents:]

A compute command which calculates the Voronoi tesselation of a
collection of atoms by wrapping the "Voro++ library"_voro_home.  This
can be used to calculate the local volume or each atoms or its near
neighbors.

:link(voro_home,http://math.lbl.gov/voro++)

To use this package you must have the Voro++ library available on your
system.

[Author:] Daniel Schwen (INL) while at LANL.  The open-source Voro++
library was written by Chris Rycroft (Harvard U) while at UC Berkeley
and LBNL.

[Install or un-install:]

Before building LAMMPS with this package, you must first download and
build the Voro++ library.  You can do this 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
args:

make lib-voronoi                          # print help message
make lib-voronoi args="-b"                # download and build the default version in lib/voronoi/voro++-<version>
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 :pre

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.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-voronoi
make machine :pre

make no-voronoi
make machine :pre

[Supporting info:]

src/VORONOI: filenames -> commands
src/VORONOI/README
lib/voronoi/README
"compute voronoi/atom"_compute_voronoi_atom.html
examples/voronoi :ul

:line
:line

USER-ATC package :link(USER-ATC),h4

[Contents:]

ATC stands for atoms-to-continuum.  This package implements a "fix
atc"_fix_atc.html command to either couple molecular dynamics with
continuum finite element equations or perform on-the-fly conversion of
atomic information to continuum fields.

[Authors:] Reese Jones, Jeremy Templeton, Jon Zimmerman (Sandia).

[Install or un-install:]

Before building LAMMPS with this package, you must first 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:

make lib-atc                      # print help message
make lib-atc args="-m serial"     # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
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 :pre

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
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:

make lib-linalg                     # print help message
make lib-linalg args="-m serial"    # build with GNU Fortran compiler (settings as with "make serial")
make lib-linalg args="-m mpi"       # build with default MPI Fortran compiler (settings as with "make mpi")
make lib-linalg args="-m gfortran"  # build with GNU Fortran compiler :pre

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-user-atc
make machine :pre

make no-user-atc
make machine :pre

[Supporting info:]

src/USER-ATC: filenames -> commands
src/USER-ATC/README
"fix atc"_fix_atc.html
examples/USER/atc
http://lammps.sandia.gov/pictures.html#atc :ul

:line

USER-AWPMD package :link(USER-AWPMD),h4

[Contents:]

AWPMD stands for Antisymmetrized Wave Packet Molecular Dynamics.  This
package implements an atom, pair, and fix style which allows electrons
to be treated as explicit particles in a classical molecular dynamics
model.

[Author:] Ilya Valuev (JIHT, Russia).

[Install or un-install:]

Before building LAMMPS with this package, you must first 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 dir, using a command like these, which
simply invoke the lib/awpmd/Install.py script with the specified args:

make lib-awpmd                   # print help message
make lib-awpmd args="-m serial"  # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
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 :pre

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.

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:

make lib-linalg                     # print help message
make lib-linalg args="-m serial"    # build with GNU Fortran compiler (settings as with "make serial")
make lib-linalg args="-m mpi"       # build with default MPI Fortran compiler (settings as with "make mpi")
make lib-linalg args="-m gfortran"  # build with GNU Fortran compiler :pre

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-user-awpmd
make machine :pre

make no-user-awpmd
make machine :pre

[Supporting info:]

src/USER-AWPMD: filenames -> commands
src/USER-AWPMD/README
"pair_style awpmd/cut"_pair_awpmd.html
examples/USER/awpmd :ul

:line

USER-CGDNA package :link(USER-CGDNA),h4

[Contents:]

Several pair styles, a bond style, and integration fixes for
coarse-grained models of single- and double-stranded DNA based on the
oxDNA model of Doye, Louis and Ouldridge at the University of Oxford.
This includes Langevin-type rigid-body integrators with improved
stability.

[Author:] Oliver Henrich (University of Strathclyde, Glasgow).

[Install or un-install:]

make yes-user-cgdna
make machine :pre

make no-user-cgdna
make machine :pre

[Supporting info:]

src/USER-CGDNA: filenames -> commands
/src/USER-CGDNA/README
"pair_style oxdna/*"_pair_oxdna.html
"pair_style oxdna2/*"_pair_oxdna2.html
"bond_style oxdna/*"_bond_oxdna.html
"bond_style oxdna2/*"_bond_oxdna.html
"fix nve/dotc/langevin"_fix_nve_dotc_langevin.html :ul

:line

USER-CGSDK package :link(USER-CGSDK),h4

[Contents:]

Several pair styles and an angle style which implement the
coarse-grained SDK model of Shinoda, DeVane, and Klein which enables
simulation of ionic liquids, electrolytes, lipids and charged amino
acids.

[Author:] Axel Kohlmeyer (Temple U).

[Install or un-install:]

make yes-user-cgsdk
make machine :pre

make no-user-cgsdk
make machine :pre

[Supporting info:]

src/USER-CGSDK: filenames -> commands
src/USER-CGSDK/README
"pair_style lj/sdk/*"_pair_sdk.html
"angle_style sdk"_angle_sdk.html
examples/USER/cgsdk
http://lammps.sandia.gov/pictures.html#cg :ul

:line

USER-COLVARS package :link(USER-COLVARS),h4

[Contents:]

COLVARS stands for collective variables, which can be used to
implement various enhanced sampling methods, including Adaptive
Biasing Force, Metadynamics, Steered MD, Umbrella Sampling and
Restraints.  A "fix colvars"_fix_colvars.html command is implemented
which wraps a COLVARS library, which implements these methods.
simulations.

[Authors:] The COLVARS library is written and maintained by
Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA)
and Jerome Henin (LISM, CNRS, Marseille, France), originally for
the NAMD MD code, but with portability in mind.  Axel Kohlmeyer
(Temple U) provided the interface to LAMMPS.

[Install or un-install:]

Before building LAMMPS with this package, you must first build the
COLVARS library in lib/colvars.  You can do this manually if you
prefer; follow the instructions in lib/colvars/README.  You can also
do it in one step from the lammps/src dir, using a command like these,
which simply invoke the lib/colvars/Install.py script with the
specified args:

make lib-colvars                      # print help message
make lib-colvars args="-m serial"     # build with GNU g++ compiler (settings as with "make serial")
make lib-colvars args="-m mpi"        # build with default MPI compiler (settings as with "make mpi")
make lib-colvars args="-m g++-debug"  # build with GNU g++ compiler and colvars debugging enabled :pre

The build should produce two files: lib/colvars/libcolvars.a and
lib/colvars/Makefile.lammps.  The latter is copied from an existing
Makefile.lammps.* and has settings needed to build LAMMPS with the
COLVARS library (though typically the settings are just blank).  If
necessary, you can edit/create a new lib/colvars/Makefile.machine file
for your system, which should define an EXTRAMAKE variable to specify
a corresponding Makefile.lammps.machine file.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-user-colvars
make machine :pre

make no-user-colvars
make machine :pre

[Supporting info:]

src/USER-COLVARS: filenames -> commands
"doc/PDF/colvars-refman-lammps.pdf"_PDF/colvars-refman-lammps.pdf
src/USER-COLVARS/README
lib/colvars/README
"fix colvars"_fix_colvars.html
examples/USER/colvars :ul

:line

USER-DIFFRACTION package :link(USER-DIFFRACTION),h4

[Contents:]

Two computes and a fix for calculating x-ray and electron diffraction
intensities based on kinematic diffraction theory.

[Author:] Shawn Coleman while at the U Arkansas.

[Install or un-install:]

make yes-user-diffraction
make machine :pre

make no-user-diffraction
make machine :pre

[Supporting info:]

src/USER-DIFFRACTION: filenames -> commands
"compute saed"_compute_saed.html
"compute xrd"_compute_xrd.html
"fix saed/vtk"_fix_saed_vtk.html
examples/USER/diffraction :ul

:line

USER-DPD package :link(USER-DPD),h4

[Contents:]

DPD stands for dissipative particle dynamics.  This package implements
coarse-grained DPD-based models for energetic, reactive molecular
crystalline materials.  It includes many pair styles specific to these
systems, including for reactive DPD, where each particle has internal
state for multiple species and a coupled set of chemical reaction ODEs
are integrated each timestep.  Highly accurate time intergrators for
isothermal, isoenergetic, isobaric and isenthalpic conditions are
included.  These enable long timesteps via the Shardlow splitting
algorithm.

[Authors:] Jim Larentzos (ARL), Tim Mattox (Engility Corp), and and John
Brennan (ARL).

[Install or un-install:]

make yes-user-dpd
make machine :pre

make no-user-dpd
make machine :pre

[Supporting info:]

src/USER-DPD: filenames -> commands
/src/USER-DPD/README
"compute dpd"_compute_dpd.html
"compute dpd/atom"_compute_dpd_atom.html
"fix eos/cv"_fix_eos_table.html
"fix eos/table"_fix_eos_table.html
"fix eos/table/rx"_fix_eos_table_rx.html
"fix shardlow"_fix_shardlow.html
"fix rx"_fix_rx.html
"pair_style table/rx"_pair_table_rx.html
"pair_style dpd/fdt"_pair_dpd_fdt.html
"pair_style dpd/fdt/energy"_pair_dpd_fdt.html
"pair_style exp6/rx"_pair_exp6_rx.html
"pair_style multi/lucy"_pair_multi_lucy.html
"pair_style multi/lucy/rx"_pair_multi_lucy_rx.html
examples/USER/dpd :ul

:line

USER-DRUDE package :link(USER-DRUDE),h4

[Contents:]

Fixes, pair styles, and a compute to simulate thermalized Drude
oscillators as a model of polarization.  See "Section
6.27"_Section_howto.html#howto_27 for an overview of how to use the
package.  There are auxiliary tools for using this package in
tools/drude.

[Authors:] Alain Dequidt (U Blaise Pascal Clermont-Ferrand), Julien
Devemy (CNRS), and Agilio Padua (U Blaise Pascal).

[Install or un-install:]

make yes-user-drude
make machine :pre

make no-user-drude
make machine :pre

[Supporting info:]

src/USER-DRUDE: filenames -> commands
"Section 6.27"_Section_howto.html#howto_27
"Section 6.25"_Section_howto.html#howto_25
src/USER-DRUDE/README
"fix drude"_fix_drude.html
"fix drude/transform/*"_fix_drude_transform.html
"compute temp/drude"_compute_temp_drude.html
"pair_style thole"_pair_thole.html
"pair_style lj/cut/thole/long"_pair_thole.html
examples/USER/drude
tools/drude :ul

:line

USER-EFF package :link(USER-EFF),h4

[Contents:]

EFF stands for electron force field which allows a classical MD code
to model electrons as particles of variable radius.  This package
contains atom, pair, fix and compute styles which implement the eFF as
described in A. Jaramillo-Botero, J. Su, Q. An, and W.A. Goddard III,
JCC, 2010.  The eFF potential was first introduced by Su and Goddard,
in 2007.  There are auxiliary tools for using this package in
tools/eff; see its README file.

[Author:] Andres Jaramillo-Botero (CalTech).

[Install or un-install:]

make yes-user-eff
make machine :pre

make no-user-eff
make machine :pre

[Supporting info:]

src/USER-EFF: filenames -> commands
src/USER-EFF/README
"atom_style electron"_atom_style.html
"fix nve/eff"_fix_nve_eff.html
"fix nvt/eff"_fix_nh_eff.html
"fix npt/eff"_fix_nh_eff.html
"fix langevin/eff"_fix_langevin_eff.html
"compute temp/eff"_compute_temp_eff.html
"pair_style eff/cut"_pair_eff.html
"pair_style eff/inline"_pair_eff.html
examples/USER/eff
tools/eff/README
tools/eff
http://lammps.sandia.gov/movies.html#eff :ul

:line

USER-FEP package :link(USER-FEP),h4

[Contents:]

FEP stands for free energy perturbation.  This package provides
methods for performing FEP simulations by using a "fix
adapt/fep"_fix_adapt_fep.html command with soft-core pair potentials,
which have a "soft" in their style name.  There are auxiliary tools
for using this package in tools/fep; see its README file.

[Author:] Agilio Padua (Universite Blaise Pascal Clermont-Ferrand)

[Install or un-install:]

make yes-user-fep
make machine :pre

make no-user-fep
make machine :pre

[Supporting info:]

src/USER-FEP: filenames -> commands
src/USER-FEP/README
"fix adapt/fep"_fix_adapt_fep.html
"compute fep"_compute_fep.html
"pair_style */soft"_pair_lj_soft.html
examples/USER/fep
tools/fep/README
tools/fep :ul

:line

USER-H5MD package :link(USER-H5MD),h4

[Contents:]

H5MD stands for HDF5 for MD.  "HDF5"_HDF5 is a portable, binary,
self-describing file format, used by many scientific simulations.
H5MD is a format for molecular simulations, built on top of HDF5.
This package implements a "dump h5md"_dump_h5md.html command to output
LAMMPS snapshots in this format.

:link(HDF5,http://www.hdfgroup.org/HDF5)

To use this package you must have the HDF5 library available on your
system.

[Author:] Pierre de Buyl (KU Leuven) created both the package and the
H5MD format.

[Install or un-install:]

Note that to follow these steps to compile and link to the CH5MD
library, you need the standard HDF5 software package installed on your
system, which should include the h5cc compiler and the HDF5 library.

Before building LAMMPS with this package, you must first 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:

make lib-h5md                     # print help message
make lib-hm5d args="-m h5cc"      # build with h5cc compiler :pre

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.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-user-h5md
make machine :pre

make no-user-h5md
make machine :pre

[Supporting info:]

src/USER-H5MD: filenames -> commands
src/USER-H5MD/README
lib/h5md/README
"dump h5md"_dump_h5md.html :ul

:line

USER-INTEL package :link(USER-INTEL),h4

[Contents:]

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.  "Section
5.3.2"_accelerate_intel.html 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" "command-line switches"_Section_start.html#start_6.
Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and "USER-OMP"_#USER-OMP
packages, which have styles optimized for CPUs and KNLs.

You need to have an Intel compiler, version 14 or higher to take full
advantage of this package. While compilation with GNU compilers is
supported, performance will be suboptimal.

NOTE: the USER-INTEL package contains styles that require using the
-restrict flag, when compiling with Intel compilers.


[Author:] Mike Brown (Intel).

[Install or un-install:]

For the USER-INTEL package, you have 2 choices when building.  You can
build with either CPU or KNL support.  Each choice requires additional
settings in your Makefile.machine for CCFLAGS and LINKFLAGS and
optimized malloc libraries.  See the
src/MAKE/OPTIONS/Makefile.intel_cpu and src/MAKE/OPTIONS/Makefile.knl
files for examples.

For CPUs:

OPTFLAGS =      -xHost -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
CCFLAGS =	-g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
LINKFLAGS =	-g -qopenmp $(OPTFLAGS)
LIB =           -ltbbmalloc -ltbbmalloc_proxy :pre

For KNLs:

OPTFLAGS =      -xMIC-AVX512 -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
CCFLAGS =	-g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
LINKFLAGS =	-g -qopenmp $(OPTFLAGS)
LIB =           -ltbbmalloc :pre

Once you have an appropriate Makefile.machine, you can
install/un-install the package and build LAMMPS in the usual manner.
Note that you cannot build one executable to run on multiple hardware
targets (Intel CPUs or KNL).  You need to build LAMMPS once for each
hardware target, to produce a separate executable.

You should also typically install the USER-OMP package, as it can be
used in tandem with the USER-INTEL package to good effect, as
explained in "Section 5.3.2"_accelerate_intel.html.

make yes-user-intel yes-user-omp
make machine :pre

make no-user-intel no-user-omp
make machine :pre

[Supporting info:]

src/USER-INTEL: filenames -> commands
src/USER-INTEL/README
"Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.2"_accelerate_gpu.html
"Section 2.6 -sf intel"_Section_start.html#start_6
"Section 2.6 -pk intel"_Section_start.html#start_6
"package intel"_package.html
Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (i)
src/USER-INTEL/TEST
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul

:line

USER-LB package :link(USER-LB),h4

[Contents:]

Fixes which implement a background Lattice-Boltzmann (LB) fluid, which
can be used to model MD particles influenced by hydrodynamic forces.

[Authors:] Frances Mackay and Colin Denniston (University of Western
Ontario).

[Install or un-install:]

make yes-user-lb
make machine :pre

make no-user-lb
make machine :pre

[Supporting info:]

src/USER-LB: filenames -> commands
src/USER-LB/README
"fix lb/fluid"_fix_lb_fluid.html
"fix lb/momentum"_fix_lb_momentum.html
"fix lb/viscous"_fix_lb_viscous.html
examples/USER/lb :ul

:line

USER-MGPT package :link(USER-MGPT),h4

[Contents:]

A pair style which provides a fast implementation of the quantum-based
MGPT multi-ion potentials.  The MGPT or model GPT method derives from
first-principles DFT-based generalized pseudopotential theory (GPT)
through a series of systematic approximations valid for mid-period
transition metals with nearly half-filled d bands.  The MGPT method
was originally developed by John Moriarty at LLNL.  The pair style in
this package calculates forces and energies using an optimized
matrix-MGPT algorithm due to Tomas Oppelstrup at LLNL.

[Authors:] Tomas Oppelstrup and John Moriarty (LLNL).

[Install or un-install:]

make yes-user-mgpt
make machine :pre

make no-user-mgpt
make machine :pre

[Supporting info:]

src/USER-MGPT: filenames -> commands
src/USER-MGPT/README
"pair_style mgpt"_pair_mgpt.html
examples/USER/mgpt :ul

:line

USER-MISC package :link(USER-MISC),h4

[Contents:]

A potpourri of (mostly) unrelated features contributed to LAMMPS by
users.  Each feature is a single fix, compute, pair, bond, angle,
dihedral, improper, or command style.

[Authors:] The author for each style in the package is listed in the
src/USER-MISC/README file.

[Install or un-install:]

make yes-user-misc
make machine :pre

make no-user-misc
make machine :pre

[Supporting info:]

src/USER-MISC: filenames -> commands
src/USER-MISC/README
one doc page per individual command listed in src/USER-MISC/README
examples/USER/misc :ul

:line

USER-MANIFOLD package :link(USER-MANIFOLD),h4

[Contents:]

Several fixes and a "manifold" class which enable simulations of
particles constrained to a manifold (a 2D surface within the 3D
simulation box).  This is done by applying the RATTLE constraint
algorithm to formulate single-particle constraint functions
g(xi,yi,zi) = 0 and their derivative (i.e. the normal of the manifold)
n = grad(g).

[Author:] Stefan Paquay (until 2017: Eindhoven University of Technology (TU/e), The
Netherlands; since 2017: Brandeis University, Waltham, MA, USA)

[Install or un-install:]

make yes-user-manifold
make machine :pre

make no-user-manifold
make machine :pre

[Supporting info:]

src/USER-MANIFOLD: filenames -> commands
src/USER-MANIFOLD/README
"doc/manifolds"_manifolds.html
"fix manifoldforce"_fix_manifoldforce.html
"fix nve/manifold/rattle"_fix_nve_manifold_rattle.html
"fix nvt/manifold/rattle"_fix_nvt_manifold_rattle.html
examples/USER/manifold
http://lammps.sandia.gov/movies.html#manifold :ul

:line

USER-MEAMC package :link(USER-MEAMC),h4

[Contents:]

A pair style for the modified embedded atom (MEAM) potential
translated from the Fortran version in the "MEAM"_MEAM package
to plain C++. In contrast to the MEAM package, no library
needs to be compiled and the pair style can be instantiated
multiple times.

[Author:] Sebastian Huetter, (Otto-von-Guericke University Magdeburg)
based on the Fortran version of Greg Wagner (Northwestern U) while at
Sandia.

[Install or un-install:]
  
make yes-user-meamc
make machine :pre
 
make no-user-meamc
make machine :pre
 
[Supporting info:]

src/USER-MEAMC: filenames -> commands
src/USER-MEAMC/README
"pair_style meam/c"_pair_meam.html
examples/meam :ul

:line

USER-MESO package :link(USER-MESO),h4

[Contents:]

Several extensions of the the dissipative particle dynamics (DPD)
method.  Specifically, energy-conserving DPD (eDPD) that can model
non-isothermal processes, many-body DPD (mDPD) for simulating
vapor-liquid coexistence, and transport DPD (tDPD) for modeling
advection-diffuion-reaction systems. The equations of motion of these
DPD extensions are integrated through a modified velocity-Verlet (MVV)
algorithm.

[Author:] Zhen Li (Division of Applied Mathematics, Brown University)

[Install or un-install:]
  
make yes-user-meso
make machine :pre
 
make no-user-meso
make machine :pre
 
[Supporting info:]

src/USER-MESO: filenames -> commands
src/USER-MESO/README
"atom_style edpd"_atom_style.html
"pair_style edpd"_pair_meso.html
"pair_style mdpd"_pair_meso.html
"pair_style tdpd"_pair_meso.html
"fix mvv/dpd"_fix_mvv_dpd.html
examples/USER/meso
http://lammps.sandia.gov/movies.html#mesodpd :ul

:line

USER-MOLFILE package :link(USER-MOLFILE),h4

[Contents:]

A "dump molfile"_dump_molfile.html command which uses molfile plugins
that are bundled with the "VMD"_vmd_home
molecular visualization and analysis program, to enable LAMMPS to dump
snapshots in formats compatible with various molecular simulation
tools.

:link(vmd_home,http://www.ks.uiuc.edu/Research/vmd)

To use this package you must have the desired VMD plugins available on
your system.

Note that this package only provides the interface code, not the
plugins themselves, which will be accessed when requesting a specific
plugin via the "dump molfile"_dump_molfile.html command.  Plugins can
be obtained from a VMD installation which has to match the platform
that you are using to compile LAMMPS for. By adding plugins to VMD,
support for new file formats can be added to LAMMPS (or VMD or other
programs that use them) without having to recompile the application
itself.  More information about the VMD molfile plugins can be found
at
"http://www.ks.uiuc.edu/Research/vmd/plugins/molfile"_http://www.ks.uiuc.edu/Research/vmd/plugins/molfile.

[Author:] Axel Kohlmeyer (Temple U).

[Install or un-install:]

Note that the lib/molfile/Makefile.lammps file has a setting for a
dynamic loading library libdl.a that should is typically present on
all systems, which 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 details.

make yes-user-molfile
make machine :pre

make no-user-molfile
make machine :pre

[Supporting info:]

src/USER-MOLFILE: filenames -> commands
src/USER-MOLFILE/README
lib/molfile/README
"dump molfile"_dump_molfile.html :ul

:line

USER-NETCDF package :link(USER-NETCDF),h4

[Contents:]

Dump styles for writing NetCDF formatted dump files.  NetCDF is a
portable, binary, self-describing file format developed on top of
HDF5. The file contents follow the AMBER NetCDF trajectory conventions
(http://ambermd.org/netcdf/nctraj.xhtml), but include extensions.

To use this package you must have the NetCDF library available on your
system.

Note that NetCDF files can be directly visualized with the following
tools:

"Ovito"_ovito (Ovito supports the AMBER convention and the extensions mentioned above)
"VMD"_vmd_home
"AtomEye"_atomeye (the libAtoms version of AtomEye contains a NetCDF reader not present in the standard distribution) :ul

:link(ovito,http://www.ovito.org)
:link(atomeye,http://www.libatoms.org)

[Author:] Lars Pastewka (Karlsruhe Institute of Technology).

[Install or un-install:]

Note that to follow these steps, you need the standard NetCDF software
package installed on your system.  The lib/netcdf/Makefile.lammps file
has settings for NetCDF include and library files that LAMMPS needs to
compile and linkk 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.

make yes-user-netcdf
make machine :pre

make no-user-netcdf
make machine :pre

[Supporting info:]

src/USER-NETCDF: filenames -> commands
src/USER-NETCDF/README
lib/netcdf/README
"dump netcdf"_dump_netcdf.html :ul

:line

USER-OMP package :link(USER-OMP),h4

[Contents:]

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.
"Section 5.3.4"_accelerate_omp.html 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" "command-line switches"_Section_start.html#start_6.
Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and
"USER-INTEL"_#USER-INTEL packages, which have styles optimized for
CPUs.

[Author:] Axel Kohlmeyer (Temple U).

NOTE: To enable multi-threading support the compile flag "-fopenmp"
and the link flag "-fopenmp" (for GNU compilers, you have to look up
the equivalent flags for other compilers) must be used to build LAMMPS.
When using Intel compilers, also the "-restrict" flag is required.
The USER-OMP package can be compiled without enabling OpenMP; then
all code will be compiled as serial and the only improvement over the
regular styles are some data access optimization. These flags should
be added to the CCFLAGS and LINKFLAGS lines of your Makefile.machine.
See src/MAKE/OPTIONS/Makefile.omp for an example.

Once you have an appropriate Makefile.machine, you can
install/un-install the package and build LAMMPS in the usual manner:

[Install or un-install:]

make yes-user-omp
make machine :pre

make no-user-omp
make machine :pre

CCFLAGS: add -fopenmp (and -restrict when using Intel compilers)
LINKFLAGS: add -fopenmp :ul

[Supporting info:]

src/USER-OMP: filenames -> commands
src/USER-OMP/README
"Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.4"_accelerate_omp.html
"Section 2.6 -sf omp"_Section_start.html#start_6
"Section 2.6 -pk omp"_Section_start.html#start_6
"package omp"_package.html
Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (o)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul

:line

USER-PHONON package :link(USER-PHONON),h4

[Contents:]

A "fix phonon"_fix_phonon.html command that calculates dynamical
matrices, which can then be used to compute phonon dispersion
relations, directly from molecular dynamics simulations.

[Author:] Ling-Ti Kong (Shanghai Jiao Tong University).

[Install or un-install:]

make yes-user-phonon
make machine :pre

make no-user-phonon
make machine :pre

[Supporting info:]

src/USER-PHONON: filenames -> commands
src/USER-PHONON/README
"fix phonon"_fix_phonon.html
examples/USER/phonon :ul

:line

USER-QMMM package :link(USER-QMMM),h4

[Contents:]

A "fix qmmm"_fix_qmmm.html command which allows LAMMPS to be used in a
QM/MM simulation, currently only in combination with the "Quantum
ESPRESSO"_espresso package.

:link(espresso,http://www.quantum-espresso.org)

To use this package you must have Quantum ESPRESSO available on your
system.

The current implementation only supports an ONIOM style mechanical
coupling to the Quantum ESPRESSO plane wave DFT package.
Electrostatic coupling is in preparation and the interface has been
written in a manner that coupling to other QM codes should be possible
without changes to LAMMPS itself.

[Author:] Axel Kohlmeyer (Temple U).

[Install or un-install:]

Before building LAMMPS with this package, you must first 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:

make lib-qmmm                      # print help message
make lib-qmmm args="-m serial"     # build with GNU Fortran compiler (settings as in "make serial")
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 :pre

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.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-user-qmmm
make machine :pre

make no-user-qmmm
make machine :pre

NOTE: The LAMMPS executable these steps produce is not yet functional
for a QM/MM simulation.  You must also build Quantum ESPRESSO and
create a new executable which links LAMMPS and Quanutm ESPRESSO
together.  These are steps 3 and 4 described in the lib/qmmm/README
file.

[Supporting info:]

src/USER-QMMM: filenames -> commands
src/USER-QMMM/README
lib/qmmm/README
"fix phonon"_fix_phonon.html
lib/qmmm/example-ec/README
lib/qmmm/example-mc/README :ul

:line

USER-QTB package :link(USER-QTB),h4

[Contents:]

Two fixes which provide a self-consistent quantum treatment of
vibrational modes in a classical molecular dynamics simulation.  By
coupling the MD simulation to a colored thermostat, it introduces zero
point energy into the system, altering the energy power spectrum and
the heat capacity to account for their quantum nature. This is useful
when modeling systems at temperatures lower than their classical
limits or when temperatures ramp across the classical limits in a
simulation.

[Author:] Yuan Shen (Stanford U).

[Install or un-install:]

make yes-user-qtb
make machine :pre

make no-user-qtb
make machine :pre

[Supporting info:]

src/USER-QTB: filenames -> commands
src/USER-QTB/README
"fix qtb"_fix_qtb.html
"fix qbmsst"_fix_qbmsst.html
examples/USER/qtb :ul

:line

USER-QUIP package :link(USER-QUIP),h4

[Contents:]

A "pair_style quip"_pair_quip.html command which wraps the "QUIP
libAtoms library"_quip, which includes a variety of interatomic
potentials, including Gaussian Approximation Potential (GAP) models
developed by the Cambridge University group.

:link(quip,https://github.com/libAtoms/QUIP)

To use this package you must have the QUIP libAatoms library available
on your system.

[Author:] Albert Bartok (Cambridge University)

[Install or un-install:]

Note that to follow these steps to compile and link to the QUIP
library, you must first download and build QUIP on your systems.  It
can be obtained from GitHub.  See step 1 and step 1.1 in the
lib/quip/README file for details on how to do this.  Note that it
requires setting two environment variables, QUIP_ROOT and QUIP_ARCH,
which will be 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 this file if the LAMMPS build can not use its
settings to successfully build on your system.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-user-quip
make machine :pre

make no-user-quip
make machine :pre

[Supporting info:]

src/USER-QUIP: filenames -> commands
src/USER-QUIP/README
"pair_style quip"_pair_quip.html
examples/USER/quip :ul

:line

USER-REAXC package :link(USER-REAXC),h4

[Contents:]

A pair style which implements the ReaxFF potential in C/C++ (in
contrast to the "REAX package"_#REAX and its Fortran library).  ReaxFF
is universal reactive force field.  See the src/USER-REAXC/README file
for more info on differences between the two packages.  Also two fixes
for monitoring molecules as bonds are created and destroyed.

[Author:] Hasan Metin Aktulga (MSU) while at Purdue University.

[Install or un-install:]

make yes-user-reaxc
make machine :pre

make no-user-reaxc
make machine :pre

[Supporting info:]

src/USER-REAXC: filenames -> commands
src/USER-REAXC/README
"pair_style reax/c"_pair_reaxc.html
"fix reax/c/bonds"_fix_reax_bonds.html
"fix reax/c/species"_fix_reaxc_species.html
examples/reax :ul

:line

USER-SMD package :link(USER-SMD),h4

[Contents:]

An atom style, fixes, computes, and several pair styles which
implements smoothed Mach dynamics (SMD) for solids, which is a model
related to smoothed particle hydrodynamics (SPH) for liquids (see the
"USER-SPH package"_#USER-SPH).

This package solves solids mechanics problems via a state of the art
stabilized meshless method with hourglass control.  It can specify
hydrostatic interactions independently from material strength models,
i.e. pressure and deviatoric stresses are separated.  It provides many
material models (Johnson-Cook, plasticity with hardening,
Mie-Grueneisen, Polynomial EOS) and allows new material models to be
added.  It implements rigid boundary conditions (walls) which can be
specified as surface geometries from *.STL files.

[Author:] Georg Ganzenmuller (Fraunhofer-Institute for High-Speed
Dynamics, Ernst Mach Institute, Germany).

[Install or un-install:]

Before building LAMMPS with this package, you must first download the
Eigen library.  Eigen is a template library, so you do not need to
build it, just download it.  You can do this 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:

make lib-smd                         # print help message
make lib-smd args="-b"               # download and build in default lib/smd/eigen-eigen-...
make lib-smd args="-p /usr/include/eigen3"    # use existing Eigen installation in /usr/include/eigen3 :pre

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.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-user-smd
make machine :pre

make no-user-smd
make machine :pre

[Supporting info:]

src/USER-SMD: filenames -> commands
src/USER-SMD/README
doc/PDF/SMD_LAMMPS_userguide.pdf
examples/USER/smd
http://lammps.sandia.gov/movies.html#smd :ul

:line

USER-SMTBQ package :link(USER-SMTBQ),h4

[Contents:]

A pair style which implements a Second Moment Tight Binding model with
QEq charge equilibration (SMTBQ) potential for the description of
ionocovalent bonds in oxides.

[Authors:] Nicolas Salles, Emile Maras, Olivier Politano, and Robert
Tetot (LAAS-CNRS, France).

[Install or un-install:]

make yes-user-smtbq
make machine :pre

make no-user-smtbq
make machine :pre

[Supporting info:]

src/USER-SMTBQ: filenames -> commands
src/USER-SMTBQ/README
"pair_style smtbq"_pair_smtbq.html
examples/USER/smtbq :ul

:line

USER-SPH package :link(USER-SPH),h4

[Contents:]

An atom style, fixes, computes, and several pair styles which
implements smoothed particle hydrodynamics (SPH) for liquids.  See the
related "USER-SMD package"_#USER-SMD package for smooth Mach dynamics
(SMD) for solids.

This package contains ideal gas, Lennard-Jones equation of states,
Tait, and full support for complete (i.e. internal-energy dependent)
equations of state.  It allows for plain or Monaghans XSPH integration
of the equations of motion.  It has options for density continuity or
density summation to propagate the density field.  It has
"set"_set.html command options to set the internal energy and density
of particles from the input script and allows the same quantities to
be output with thermodynamic output or to dump files via the "compute
property/atom"_compute_property_atom.html command.

[Author:] Georg Ganzenmuller (Fraunhofer-Institute for High-Speed
Dynamics, Ernst Mach Institute, Germany).

[Install or un-install:]

make yes-user-sph
make machine :pre

make no-user-sph
make machine :pre

[Supporting info:]

src/USER-SPH: filenames -> commands
src/USER-SPH/README
doc/PDF/SPH_LAMMPS_userguide.pdf
examples/USER/sph
http://lammps.sandia.gov/movies.html#sph :ul

:line

USER-TALLY package :link(USER-TALLY),h4

[Contents:]

Several compute styles that can be called when pairwise interactions
are calculated to tally information (forces, heat flux, energy,
stress, etc) about individual interactions.

[Author:] Axel Kohlmeyer (Temple U).

[Install or un-install:]

make yes-user-tally
make machine :pre

make no-user-tally
make machine :pre

[Supporting info:]

src/USER-TALLY: filenames -> commands
src/USER-TALLY/README
"compute */tally"_compute_tally.html
examples/USER/tally :ul

:line

USER-VTK package :link(USER-VTK),h4

[Contents:]

A "dump vtk"_dump_vtk.html command which outputs
snapshot info in the "VTK format"_vtk, enabling visualization by
"Paraview"_paraview or other visuzlization packages.

:link(vtk,http://www.vtk.org)
:link(paraview,http://www.paraview.org)

To use this package you must have VTK library available on your
system.

[Authors:] Richard Berger (JKU) and Daniel Queteschiner (DCS Computing).

[Install or un-install:]

The lib/vtk/Makefile.lammps file has settings for accessing VTK files
and its library, which are required for LAMMPS to build and link 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 Makefile.lammps.  If none of the provided files work, you
will need to edit the Makefile.lammps file.

You can then install/un-install the package and build LAMMPS in the
usual manner:

make yes-user-vtk
make machine :pre

make no-user-vtk
make machine :pre

[Supporting info:]

src/USER-VTK: filenames -> commands
src/USER-VTK/README
lib/vtk/README
"dump vtk"_dump_vtk.html :ul
