4. Packages

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

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

Standard packages

Package Description Doc page Example Library
ASPHERE aspherical particle models Section 6.6.14 ellipse
BODY body-style particles body body
CLASS2 class 2 force fields pair_style lj/class2
COLLOID colloidal particles atom_style colloid colloid
COMPRESS I/O compression dump */gz
sys
CORESHELL adiabatic core/shell model Section 6.6.25 coreshell
DIPOLE point dipole particles pair_style dipole/cut dipole
GPU GPU-enabled styles Section 5.3.1 Benchmarks int
GRANULAR granular systems Section 6.6.6 pour
KIM OpenKIM wrapper pair_style kim kim ext
KOKKOS Kokkos-enabled styles Section 5.3.3 Benchmarks
KSPACE long-range Coulombic solvers kspace_style peptide
LATTE quantum DFTB forces via LATTE fix latte latte ext
MANYBODY many-body potentials pair_style tersoff shear
MC Monte Carlo options fix gcmc
MEAM modified EAM potential pair_style meam meam int
MISC miscellanous single-file commands
MOLECULE molecular system force fields Section 6.6.3 peptide
MPIIO MPI parallel I/O dump and restart dump
MSCG multi-scale coarse-graining wrapper fix mscg mscg ext
OPT optimized pair styles Section 5.3.5 Benchmarks
PERI Peridynamics models pair_style peri peri
POEMS coupled rigid body motion fix poems rigid int
PYTHON embed Python code in an input script python python sys
QEQ QEq charge equilibration fix qeq qeq
REAX ReaxFF potential (Fortran) pair_style reax reax int
REPLICA multi-replica methods Section 6.6.5 tad
RIGID rigid bodies and constraints fix rigid rigid
SHOCK shock loading methods fix msst
SNAP quantum-fitted potential pair_style snap snap
SRD stochastic rotation dynamics fix srd srd
VORONOI Voronoi tesselation compute voronoi/atom
ext

USER packages

Package Description Doc page Example Library
USER-ATC atom-to-continuum coupling fix atc USER/atc int
USER-AWPMD wave-packet MD pair_style awpmd/cut USER/awpmd int
USER-BOCS BOCS bottom up coarse graining fix bocs USER/bocs
USER-CGDNA coarse-grained DNA force fields src/USER-CGDNA/README USER/cgdna
USER-CGSDK SDK coarse-graining model pair_style lj/sdk USER/cgsdk
USER-COLVARS collective variables library fix colvars USER/colvars int
USER-DIFFRACTION virtual x-ray and electron diffraction compute xrd USER/diffraction
USER-DPD reactive dissipative particle dynamics src/USER-DPD/README USER/dpd
USER-DRUDE Drude oscillators tutorial USER/drude
USER-EFF electron force field pair_style eff/cut USER/eff
USER-FEP free energy perturbation compute fep USER/fep
USER-H5MD dump output via HDF5 dump h5md
ext
USER-INTEL optimized Intel CPU and KNL styles Section 5.3.2 Benchmarks
USER-LB Lattice Boltzmann fluid fix lb/fluid USER/lb
USER-MANIFOLD motion on 2d surfaces fix manifoldforce USER/manifold
USER-MEAMC modified EAM potential (C++) pair_style meam/c meam
USER-MESO mesoscale DPD models pair_style edpd USER/meso
USER-MGPT fast MGPT multi-ion potentials pair_style mgpt USER/mgpt
USER-MISC single-file contributions USER-MISC/README USER/misc
USER-MOFFF styles for MOF-FF force field pair_style buck6d/coul/gauss USER/mofff
USER-MOLFILE VMD molfile plug-ins dump molfile
ext
USER-NETCDF dump output via NetCDF dump netcdf
ext
USER-OMP OpenMP-enabled styles Section 5.3.4 Benchmarks
USER-PHONON phonon dynamical matrix fix phonon USER/phonon
USER-QMMM QM/MM coupling fix qmmm USER/qmmm ext
USER-QTB quantum nuclear effects fix qtb fix qbmsst qtb
USER-QUIP QUIP/libatoms interface pair_style quip USER/quip ext
USER-REAXC ReaxFF potential (C/C++) pair_style reaxc reax
USER-SMD smoothed Mach dynamics SMD User Guide USER/smd ext
USER-SMTBQ second moment tight binding QEq potential pair_style smtbq USER/smtbq
USER-SPH smoothed particle hydrodynamics SPH User Guide USER/sph
USER-TALLY pairwise tally computes compute XXX/tally USER/tally
USER-UEF extensional flow fix nvt/uef USER/uef
USER-VTK dump output via VTK compute vtk
ext

4.1. ASPHERE package

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

make no-asphere
make machine

Supporting info:


4.2. BODY package

Contents:

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

Install or un-install:

make yes-body
make machine

make no-body
make machine

Supporting info:


4.3. CLASS2 package

Contents:

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

Install or un-install:

make yes-class2
make machine

make no-class2
make machine

Supporting info:


4.4. COLLOID package

Contents:

Coarse-grained finite-size colloidal particles. Pair styles 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

make no-colloid
make machine

Supporting info:


4.5. COMPRESS package

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

make no-compress
make machine

Supporting info:


4.6. CORESHELL package

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 command calculates the temperature of a system with core/shell particles. See Section 6.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

make no-coreshell
make machine

Supporting info:


4.7. DIPOLE package

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

make no-dipole
make machine

Supporting info:


4.8. GPU package

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 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. See also the 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

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

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

make no-gpu
make machine

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:


4.9. GRANULAR package

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

make no-granular
make machine

Supporting info:


4.10. KIM package

Contents:

A pair_style kim 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 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

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

make no-kim
make machine

Supporting info:

  • src/KIM: filenames -> commands
  • src/KIM/README
  • lib/kim/README
  • pair_style kim
  • examples/kim

4.11. KOKKOS package

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 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. Also see the GPU, OPT, USER-INTEL, and 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 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

For Intel KNLs using OpenMP:

KOKKOS_DEVICES = OpenMP
KOKKOS_ARCH = KNL

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

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

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

make no-kokkos
make machine

Supporting info:


4.12. KSPACE package

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 of the manual for details on how to select different FFT options in your machine Makefile.

make yes-kspace
make machine

make no-kspace
make machine

Supporting info:


4.13. LATTE package

Contents:

A fix command which wraps the LATTE DFTB code, so that molecular dynamics can be run with LAMMPS using density-functional tight-binding quantum forces calculated by LATTE.

More information on LATTE can be found at this web site: https://github.com/lanl/LATTE. A brief technical description is given with the fix latte command.

Authors: Christian Negre (LANL) and Steve Plimpton (Sandia). LATTE itself is developed at Los Alamos National Laboratory by Marc Cawkwell, Anders Niklasson, and Christian Negre.

Install or un-install:

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

make lib-latte                          # print help message
make lib-latte args="-b"                # download and build in lib/latte/LATTE-master
make lib-latte args="-p $HOME/latte"    # use existing LATTE installation in $HOME/latte
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 builds in src 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.

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

make yes-latte
make machine

make no-latte
make machine

Supporting info:


4.14. MANYBODY package

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

make no-manybody
make machine

Supporting info:

  • src/MANYBODY: filenames -> commands
  • Pair Styles section of Section 3.5
  • examples/comb
  • examples/eim
  • examples/nb3d
  • examples/shear
  • examples/streitz
  • examples/vashishta
  • bench/in.eam

4.15. MC package

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

make no-mc
make machine

Supporting info:


4.16. MEAM package

Contents:

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

Please note that the MEAM package has been superseded by the 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

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

make no-meam
make machine

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
  • examples/meam

4.17. MISC package

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

make no-misc
make machine

Supporting info:


4.18. MOLECULE package

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

make no-molecule
make machine

Supporting info:


4.19. MPIIO package

Contents:

Support for parallel output/input of dump and restart files via the MPIIO library. It adds dump styles 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

make no-mpiio
make machine

Supporting info:


4.20. MSCG package

Contents:

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

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

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

make no-mscg
make machine

Supporting info:

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

4.21. OPT package

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 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. See also the KOKKOS, USER-INTEL, and 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

make no-opt
make machine

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

Supporting info:


4.22. PERI package

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

make no-peri
make machine

Supporting info:


4.23. POEMS package

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

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

make no-meam
make machine

Supporting info:

  • src/POEMS: filenames -> commands
  • src/POEMS/README
  • lib/poems/README
  • fix poems
  • examples/rigid

4.24. PYTHON package

Contents:

A python 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 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

make no-python
make machine

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
  • lib/python/README
  • examples/python

4.25. QEQ package

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

make no-qeq
make machine

Supporting info:

  • src/QEQ: filenames -> commands
  • fix qeq/*
  • examples/qeq
  • examples/streitz

4.26. REAX package

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 for an alternate implementation in C/C++. Also a fix reax/bonds 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

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

make no-reax
make machine

Supporting info:


4.27. REPLICA package

Contents:

A collection of multi-replica methods which can be used when running multiple LAMMPS simulations (replicas). See Section 6.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

make no-replica
make machine

Supporting info:


4.28. RIGID package

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

To un-install/re-build:

make no-rigid
make machine

Supporting info:


4.29. SHOCK package

Contents:

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

Install or un-install:

make yes-shock
make machine

make no-shock
make machine

Supporting info:


4.30. SNAP package

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

make no-snap
make machine

Supporting info:


4.31. SRD package

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

To un-install/re-build:

make no-srd
make machine

Supporting info:


4.32. VORONOI package

Contents:

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

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

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

make no-voronoi
make machine

Supporting info:

  • src/VORONOI: filenames -> commands
  • src/VORONOI/README
  • lib/voronoi/README
  • compute voronoi/atom
  • examples/voronoi

4.33. USER-ATC package

Contents:

ATC stands for atoms-to-continuum. This package implements a fix atc 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

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

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

make yes-user-atc
make machine

make no-user-atc
make machine

Supporting info:


4.34. USER-AWPMD package

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

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

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

make yes-user-awpmd
make machine

make no-user-awpmd
make machine

Supporting info:

  • src/USER-AWPMD: filenames -> commands
  • src/USER-AWPMD/README
  • pair_style awpmd/cut
  • examples/USER/awpmd

4.35. USER-BOCS package

Contents:

This package provides fix bocs, a modified version of fix npt which includes the pressure correction to the barostat as outlined in:

N. J. H. Dunn and W. G. Noid, “Bottom-up coarse-grained models that accurately describe the structure, pressure, and compressibility of molecular liquids,” J. Chem. Phys. 143, 243148 (2015).

Authors: Nicholas J. H. Dunn and Michael R. DeLyser (The Pennsylvania State University)

Install or un-install:

make yes-user-bocs
make machine

make no-user-bocs
make machine

Supporting info:

The USER-BOCS user package for LAMMPS is part of the BOCS software package: https://github.com/noid-group/BOCS

See the following reference for information about the entire package:

Dunn, NJH; Lebold, KM; DeLyser, MR; Rudzinski, JF; Noid, WG. “BOCS: Bottom-Up Open-Source Coarse-Graining Software.” J. Phys. Chem. B. 122, 13, 3363-3377 (2018).

Example inputs are in the examples/USER/bocs folder.


4.36. USER-CGDNA package

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

make no-user-cgdna
make machine

Supporting info:


4.37. USER-CGSDK package

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

make no-user-cgsdk
make machine

Supporting info:


4.38. USER-COLVARS package

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

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

make no-user-colvars
make machine

Supporting info:


4.39. USER-DIFFRACTION package

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

make no-user-diffraction
make machine

Supporting info:


4.40. USER-DPD package

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

make no-user-dpd
make machine

Supporting info:


4.41. USER-DRUDE package

Contents:

Fixes, pair styles, and a compute to simulate thermalized Drude oscillators as a model of polarization. See Section 6.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

make no-user-drude
make machine

Supporting info:


4.42. USER-EFF package

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

make no-user-eff
make machine

Supporting info:


4.43. USER-FEP package

Contents:

FEP stands for free energy perturbation. This package provides methods for performing FEP simulations by using a fix adapt/fep 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

make no-user-fep
make machine

Supporting info:


4.44. USER-H5MD package

Contents:

H5MD stands for HDF5 for MD. 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 command to output LAMMPS snapshots in this format.

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

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

make no-user-h5md
make machine

Supporting info:

  • src/USER-H5MD: filenames -> commands
  • src/USER-H5MD/README
  • lib/h5md/README
  • dump h5md

4.45. USER-INTEL package

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 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. Also see the KOKKOS, OPT, and 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

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

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.

make yes-user-intel yes-user-omp
make machine

make no-user-intel no-user-omp
make machine

Supporting info:


4.46. USER-LB package

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

make no-user-lb
make machine

Supporting info:


4.47. USER-MGPT package

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

make no-user-mgpt
make machine

Supporting info:

  • src/USER-MGPT: filenames -> commands
  • src/USER-MGPT/README
  • pair_style mgpt
  • examples/USER/mgpt

4.48. USER-MISC package

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

make no-user-misc
make machine

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

4.49. USER-MANIFOLD package

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

make no-user-manifold
make machine

Supporting info:


4.50. USER-MEAMC package

Contents:

A pair style for the modified embedded atom (MEAM) potential translated from the Fortran version in the 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

make no-user-meamc
make machine

Supporting info:

  • src/USER-MEAMC: filenames -> commands
  • src/USER-MEAMC/README
  • pair_style meam/c
  • examples/meam

4.51. USER-MESO package

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

make no-user-meso
make machine

Supporting info:


4.52. USER-MOFFF package

Contents:

Pair, angle and improper styles needed to employ the MOF-FF force field by Schmid and coworkers with LAMMPS. MOF-FF is a first principles derived force field with the primary aim to simulate MOFs and related porous framework materials, using spherical Gaussian charges. It is described in S. Bureekaew et al., Phys. Stat. Sol. B 2013, 250, 1128-1141. For the usage of MOF-FF see the example in the example directory as well as the MOF+ website.

Author: Hendrik Heenen (Technical U of Munich), Rochus Schmid (Ruhr-University Bochum).

Install or un-install:

make yes-user-mofff
make machine

make no-user-mofff
make machine

Supporting info:


4.53. USER-MOLFILE package

Contents:

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

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

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

make no-user-molfile
make machine

Supporting info:

  • src/USER-MOLFILE: filenames -> commands
  • src/USER-MOLFILE/README
  • lib/molfile/README
  • dump molfile

4.54. USER-NETCDF package

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 supports the AMBER convention and the extensions mentioned above)
  • VMD
  • AtomEye (the libAtoms version of AtomEye contains a NetCDF reader not present in the standard distribution)

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

make no-user-netcdf
make machine

Supporting info:

  • src/USER-NETCDF: filenames -> commands
  • src/USER-NETCDF/README
  • lib/netcdf/README
  • dump netcdf

4.55. USER-OMP package

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 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. Also see the KOKKOS, OPT, and 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

make no-user-omp
make machine
  • CCFLAGS: add -fopenmp (and -restrict when using Intel compilers)
  • LINKFLAGS: add -fopenmp

Supporting info:


4.56. USER-PHONON package

Contents:

A fix phonon 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

make no-user-phonon
make machine

Supporting info:

  • src/USER-PHONON: filenames -> commands
  • src/USER-PHONON/README
  • fix phonon
  • examples/USER/phonon

4.57. USER-QMMM package

Contents:

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

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

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

make no-user-qmmm
make machine

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 Quantum 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
  • lib/qmmm/example-ec/README
  • lib/qmmm/example-mc/README

4.58. USER-QTB package

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

make no-user-qtb
make machine

Supporting info:

  • src/USER-QTB: filenames -> commands
  • src/USER-QTB/README
  • fix qtb
  • fix qbmsst
  • examples/USER/qtb

4.59. USER-QUIP package

Contents:

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

To use this package you must have the QUIP libAtoms 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

make no-user-quip
make machine

Supporting info:

  • src/USER-QUIP: filenames -> commands
  • src/USER-QUIP/README
  • pair_style quip
  • examples/USER/quip

4.60. USER-REAXC package

Contents:

A pair style which implements the ReaxFF potential in C/C++ (in contrast to the REAX package 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

make no-user-reaxc
make machine

Supporting info:


4.61. USER-SMD package

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).

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

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

make no-user-smd
make machine

Supporting info:


4.62. USER-SMTBQ package

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

make no-user-smtbq
make machine

Supporting info:

  • src/USER-SMTBQ: filenames -> commands
  • src/USER-SMTBQ/README
  • pair_style smtbq
  • examples/USER/smtbq

4.63. USER-SPH package

Contents:

An atom style, fixes, computes, and several pair styles which implements smoothed particle hydrodynamics (SPH) for liquids. See the related USER-SMD package 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 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 command.

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

Install or un-install:

make yes-user-sph
make machine

make no-user-sph
make machine

Supporting info:


4.64. USER-TALLY package

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

make no-user-tally
make machine

Supporting info:

  • src/USER-TALLY: filenames -> commands
  • src/USER-TALLY/README
  • compute */tally
  • examples/USER/tally

4.65. USER-UEF package

Contents:

A fix style for the integration of the equations of motion under extensional flow with proper boundary conditions, as well as several supporting compute styles and an output option.

Author: David Nicholson (MIT).

Install or un-install:

make yes-user-uef
make machine

make no-user-uef
make machine

Supporting info:


4.66. USER-VTK package

Contents:

A dump vtk command which outputs snapshot info in the VTK format, enabling visualization by Paraview or other visualization packages.

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

make no-user-vtk
make machine

Supporting info:

  • src/USER-VTK: filenames -> commands
  • src/USER-VTK/README
  • lib/vtk/README
  • dump vtk