Previous Section - LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands - Next Section

4. Packages

This section gives a quick overview of the add-on packages that extend LAMMPS functionality.

4.1 Standard packages
4.2 User packages

LAMMPS includes many optional packages, which 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 by typing "make package" from within the src directory of the LAMMPS distribution.

See Section_start 3 of the manual for details on how to include/exclude specific packages as part of the LAMMPS build process, and for more details about the differences between standard packages and user packages in LAMMPS.

Below, the packages currently availabe in LAMMPS are listed. For standard packages, just a one-line description is given. For user packages, more details are provided.



4.1 Standard packages

The current list of standard packages is as follows:

Package Description Author(s) Doc page Example Library
ASPHERE aspherical particles - Section_howto ellipse -
CLASS2 class 2 force fields - pair_style lj/class2 - -
COLLOID colloidal particles - atom_style colloid colloid -
DIPOLE point dipole particles - pair_style dipole/cut dipole -
FLD Fast Lubrication Dynamics Kumar & Bybee & Higdon (1) pair_style lubricateU - -
GPU GPU-enabled potentials Mike Brown (ORNL) Section accelerate gpu lib/gpu
GRANULAR granular systems - Section_howto pour -
KIM openKIM potentials Smirichinski & Elliot & Tadmor (3) pair_style kim kim KIM
KSPACE long-range Coulombic solvers - kspace_style peptide -
MANYBODY many-body potentials - pair_style tersoff shear -
MEAM modified EAM potential Greg Wagner (Sandia) pair_style meam meam lib/meam
MC Monte Carlo options - fix gcmc - -
MOLECULE molecular system force fields - Section_howto peptide -
OPT optimized pair potentials Fischer & Richie & Natoli (2) Section accelerate - -
PERI Peridynamics models Mike Parks (Sandia) pair_style peri peri -
POEMS coupled rigid body motion Rudra Mukherjee (JPL) fix poems rigid lib/poems
REAX ReaxFF potential Aidan Thompson (Sandia) pair_style reax reax lib/reax
REPLICA multi-replica methods - Section_howto tad -
RIGID rigid bodies - fix rigid rigid -
SHOCK shock loading methods - fix msst - -
SRD stochastic rotation dynamics - fix srd srd -
VORONOI Voronoi tesselations Daniel Schwen (LANL) compute voronoi/atom - Voro++
XTC dumps in XTC format - dump - -

The "Authors" column lists a name(s) if a specific person is responible for creating and maintaining the package.

(1) The FLD package was created by Amit Kumar and Michael Bybee from Jonathan Higdon's group at UIUC.

(2) The OPT package was created by James Fischer (High Performance Technologies), David Richie, and Vincent Natoli (Stone Ridge Technolgy).

(3) The KIM package was created by Valeriu Smirichinski, Ryan Elliott, and Ellad Tadmor (U Minn).

The "Doc page" column links to either a portion of the Section_howto of the manual, or an input script command implemented as part of the package.

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.

The "Library" column lists an external library which must be built first and which LAMMPS links to when it is built. If it is listed as lib/package, then the code for the library is under the lib directory of the LAMMPS distribution. See the lib/package/README file for info on how to build the library. If it is not listed as lib/package, then it is a third-party library not included in the LAMMPS distribution. See the src/package/README or src/package/Makefile.lammps file for info on where to download the library. Section start of the manual also gives details on how to build LAMMPS with both kinds of auxiliary libraries.



4.2 User packages

The current list of user-contributed packages is as follows:

Package Description Author(s) Doc page Example Pic/movie Library
USER-ATC atom-to-continuum coupling Jones & Templeton & Zimmerman (2) fix atc USER/atc atc lib/atc
USER-AWPMD wave-packet MD Ilya Valuev (JIHT) pair_style awpmd/cut USER/awpmd - lib/awpmd
USER-CG-CMM coarse-graining model Axel Kohlmeyer (Temple U) pair_style lj/sdk USER/cg-cmm cg -
USER-COLVARS collective variables Fiorin & Henin & Kohlmeyer (3) fix colvars USER/colvars colvars lib/colvars
USER-CUDA NVIDIA GPU styles Christian Trott (U Tech Ilmenau) Section accelerate USER/cuda - lib/cuda
USER-EFF electron force field Andres Jaramillo-Botero (Caltech) pair_style eff/cut USER/eff eff -
USER-MISC single-file contributions USER-MISC/README USER-MISC/README - - -
USER-MOLFILE VMD molfile plug-ins Axel Kohlmeyer (Temple U) dump molfile - - VMD-MOLFILE
USER-OMP OpenMP threaded styles Axel Kohlmeyer (Temple U) Section accelerate - - -
USER-REAXC C version of ReaxFF Metin Aktulga (LBNL) pair_style reaxc reax - -
USER-SPH smoothed particle hydrodynamics Georg Ganzenmuller (EMI) userguide.pdf USER/sph sph -

The "Authors" column lists a name(s) if a specific person is responible for creating and maintaining the package.

If the Library is not listed as lib/package, then it is a third-party library not included in the LAMMPS distribution. See the src/package/Makefile.lammps file for info on where to download the library from.

(2) The ATC package was created by Reese Jones, Jeremy Templeton, and Jon Zimmerman (Sandia).

(3) The COLVARS package was created by Axel Kohlmeyer (Temple U) using the colvars module library written by Giacomo Fiorin (Temple U) and Jerome Henin (LISM, Marseille, France).

The "Doc page" column links to either a portion of the Section_howto of the manual, or an input script command implemented as part of the package, or to additional documentation provided witht he package.

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/cuda refers to the examples/USER/cuda directory.

The "Library" column lists an external library which must be built first and which LAMMPS links to when it is built. If it is listed as lib/package, then the code for the library is under the lib directory of the LAMMPS distribution. See the lib/package/README file for info on how to build the library. If it is not listed as lib/package, then it is a third-party library not included in the LAMMPS distribution. See the src/package/Makefile.lammps file for info on where to download the library. Section start of the manual also gives details on how to build LAMMPS with both kinds of auxiliary libraries.

More details on each package, from the USER-*/README file is given below.


USER-MISC package

The files in this package are a potpourri of (mostly) unrelated features contributed to LAMMPS by users. Each feature is a single pair of files (*.cpp and *.h).

More information about each feature can be found by reading its doc page in the LAMMPS doc directory. The doc page which lists all LAMMPS input script commands is as follows:

Section_commands

User-contributed features are listed at the bottom of the fix, compute, pair, etc sections.

The list of features and author of each is given in the src/USER-MISC/README file.

You should contact the author directly if you have specific questions about the feature or its coding.


USER-ATC package

This package implements a "fix atc" command which can be used in a LAMMPS input script. This fix can be employed to either do concurrent coupling of MD with FE-based physics surrogates or on-the-fly post-processing of atomic information to continuum fields.

See the doc page for the fix atc command to get started. At the bottom of the doc page are many links to additional documentation contained in the doc/USER/atc directory.

There are example scripts for using this package in examples/USER/atc.

This package uses an external library in lib/atc which must be compiled before making LAMMPS. See the lib/atc/README file and the LAMMPS manual for information on building LAMMPS with external libraries.

The primary people who created this package are Reese Jones (rjones at sandia.gov), Jeremy Templeton (jatempl at sandia.gov) and Jon Zimmerman (jzimmer at sandia.gov) at Sandia. Contact them directly if you have questions.


USER-AWPMD package

This package contains a LAMMPS implementation of the Antisymmetrized Wave Packet Molecular Dynamics (AWPMD) method.

See the doc page for the pair_style awpmd/cut command to get started.

There are example scripts for using this package in examples/USER/awpmd.

This package uses an external library in lib/awpmd which must be compiled before making LAMMPS. See the lib/awpmd/README file and the LAMMPS manual for information on building LAMMPS with external libraries.

The person who created this package is Ilya Valuev at the JIHT in Russia (valuev at physik.hu-berlin.de). Contact him directly if you have questions.


USER-COLVARS package

This package implements the "fix colvars" command which can be used in a LAMMPS input script.

This fix allows to use "collective variables" to implement Adaptive Biasing Force, Metadynamics, Steered MD, Umbrella Sampling and Restraints. This code consists of two parts:

See the doc page of fix colvars for more details.

There are example scripts for using this package in examples/USER/colvars

This is a very new interface that does not yet support all features in the module and will see future optimizations and improvements. The colvars module library is also available in NAMD has been thoroughly used and tested there. Bugs and problems are likely due to the interface layers code. Thus the current version of this package should be considered beta quality.

The person who created this package is Axel Kohlmeyer at Temple U (akohlmey at gmail.com). Contact him directly if you have questions.


USER-CG-CMM package

This package implements 3 commands which can be used in a LAMMPS input script:

These styles allow coarse grained MD simulations with the parametrization of Shinoda, DeVane, Klein, Mol Sim, 33, 27 (2007) (SDK), with extensions to simulate ionic liquids, electrolytes, lipids and charged amino acids.

See the doc pages for these commands for details.

There are example scripts for using this package in examples/USER/cg-cmm.

This is the second generation implementation reducing the the clutter of the previous version. For many systems with electrostatics, it will be faster to use pair_style hybrid/overlay with lj/sdk and coul/long instead of the combined lj/sdk/coul/long style. since the number of charged atom types is usually small. For any other coulomb interactions this is now required. To exploit this property, the use of the kspace_style pppm/cg is recommended over regular pppm. For all new styles, input file backward compatibility is provided. The old implementation is still available through appending the /old suffix. These will be discontinued and removed after the new implementation has been fully validated.

The current version of this package should be considered beta quality. The CG potentials work correctly for "normal" situations, but have not been testing with all kinds of potential parameters and simulation systems.

The person who created this package is Axel Kohlmeyer at Temple U (akohlmey at gmail.com). Contact him directly if you have questions.


USER-CUDA package

This package provides acceleration of various LAMMPS pair styles, fix styles, compute styles, and long-range Coulombics via PPPM for NVIDIA GPUs.

See this section of the manual to get started:

Section_accelerate

There are example scripts for using this package in examples/USER/cuda.

This package uses an external library in lib/cuda which must be compiled before making LAMMPS. See the lib/cuda/README file and the LAMMPS manual for information on building LAMMPS with external libraries.

The person who created this package is Christian Trott at the University of Technology Ilmenau, Germany (christian.trott at tu-ilmenau.de). Contact him directly if you have questions.


USER-EFF package

This package contains a LAMMPS implementation of the electron Force Field (eFF) currently under development at Caltech, 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.

eFF can be viewed as an approximation to QM wave packet dynamics and Fermionic molecular dynamics, combining the ability of electronic structure methods to describe atomic structure, bonding, and chemistry in materials, and of plasma methods to describe nonequilibrium dynamics of large systems with a large number of highly excited electrons. We classify it as a mixed QM-classical approach rather than a conventional force field method, which introduces QM-based terms (a spin-dependent repulsion term to account for the Pauli exclusion principle and the electron wavefunction kinetic energy associated with the Heisenberg principle) that reduce, along with classical electrostatic terms between nuclei and electrons, to the sum of a set of effective pairwise potentials. This makes eFF uniquely suited to simulate materials over a wide range of temperatures and pressures where electronically excited and ionized states of matter can occur and coexist.

The necessary customizations to the LAMMPS core are in place to enable the correct handling of explicit electron properties during minimization and dynamics.

See the doc page for the pair_style eff/cut command to get started.

There are example scripts for using this package in examples/USER/eff.

There are auxiliary tools for using this package in tools/eff.

The person who created this package is Andres Jaramillo-Botero at CalTech (ajaramil at wag.caltech.edu). Contact him directly if you have questions.


USER-OMP package

This package provides OpenMP multi-threading support and other optimizations of various LAMMPS pair styles, dihedral styles, and fix styles.

See this section of the manual to get started:

Section_accelerate

The person who created this package is Axel Kohlmeyer at Temple U (akohlmey at gmail.com). Contact him directly if you have questions.


USER-REAXC package

This package contains a implementation for LAMMPS of the ReaxFF force field. ReaxFF uses distance-dependent bond-order functions to represent the contributions of chemical bonding to the potential energy. It was originally developed by Adri van Duin and the Goddard group at CalTech.

The USER-REAXC version of ReaxFF (pair_style reax/c), implemented in C, should give identical or very similar results to pair_style reax, which is a ReaxFF implementation on top of a Fortran library, a version of which library was originally authored by Adri van Duin.

The reax/c version should be somewhat faster and more scalable, particularly with respect to the charge equilibration calculation. It should also be easier to build and use since there are no complicating issues with Fortran memory allocation or linking to a Fortran library.

For technical details about this implemention of ReaxFF, see this paper:

Parallel and Scalable Reactive Molecular Dynamics: Numerical Methods and Algorithmic Techniques, H. M. Aktulga, J. C. Fogarty, S. A. Pandit, A. Y. Grama, Parallel Computing, in press (2011).

See the doc page for the pair_style reax/c command for details of how to use it in LAMMPS.

The person who created this package is Hasan Metin Aktulga (hmaktulga at lbl.gov), while at Purdue University. Contact him directly, or Aidan Thompson at Sandia (athomps at sandia.gov), if you have questions.


USER-SPH package

This package implements smoothed particle hydrodynamics (SPH) in LAMMPS. Currently, the package has the following features:

* Tait, ideal gas, Lennard-Jones equation of states, full support for complete (i.e. internal-energy dependent) equations of state * plain or Monaghans XSPH integration of the equations of motion * density continuity or density summation to propagate the density field * commands to set internal energy and density of particles from the input script * output commands to access internal energy and density for dumping and thermo output

See the file doc/USER/sph/SPH_LAMMPS_userguide.pdf to get started.

There are example scripts for using this package in examples/USER/sph.

The person who created this package is Georg Ganzenmuller at the Fraunhofer-Institute for High-Speed Dynamics, Ernst Mach Institute in Germany (georg.ganzenmueller at emi.fhg.de). Contact him directly if you have questions.