12. Future and history

This section lists features we plan to add to LAMMPS, features of previous versions of LAMMPS, and features of other parallel molecular dynamics codes our group has distributed.

12.1. Coming attractions

As of summer 2016 we are using the LAMMPS project issue tracker on GitHub for keeping track of suggested, planned or pending new features. This includes discussions of how to best implement them, or why they would be useful. Especially if a planned or proposed feature is non-trivial to add, e.g. because it requires changes to some of the core classes of LAMMPS, people planning to contribute a new feature to LAMMS are encouraged to submit an issue about their planned implementation this way in order to receive feedback from the LAMMPS core developers. They will provide suggestions about the validity of the proposed approach and possible improvements, pitfalls or alternatives.

Please see some of the closed issues for examples of how to suggest code enhancements, submit proposed changes, or report possible bugs and how they are resolved.

As an alternative to using GitHub, you may e-mail the core developers or send an e-mail to the LAMMPS Mail list if you want to have your suggestion added to the list.

12.2. Past versions

LAMMPS development began in the mid 1990s under a cooperative research & development agreement (CRADA) between two DOE labs (Sandia and LLNL) and 3 companies (Cray, Bristol Myers Squibb, and Dupont). The goal was to develop a large-scale parallel classical MD code; the coding effort was led by Steve Plimpton at Sandia.

After the CRADA ended, a final F77 version, LAMMPS 99, was released. As development of LAMMPS continued at Sandia, its memory management was converted to F90; a final F90 version was released as LAMMPS 2001.

The current LAMMPS is a rewrite in C++ and was first publicly released as an open source code in 2004. It includes many new features beyond those in LAMMPS 99 or 2001. It also includes features from older parallel MD codes written at Sandia, namely ParaDyn, Warp, and GranFlow (see below).

In late 2006 we began merging new capabilities into LAMMPS that were developed by Aidan Thompson at Sandia for his MD code GRASP, which has a parallel framework similar to LAMMPS. Most notably, these have included many-body potentials - Stillinger-Weber, Tersoff, ReaxFF - and the associated charge-equilibration routines needed for ReaxFF.

The History link on the LAMMPS WWW page gives a timeline of features added to the C++ open-source version of LAMMPS over the last several years.

These older codes are available for download from the LAMMPS WWW site, except for Warp & GranFlow which were primarily used internally. A brief listing of their features is given here.


  • F90 + MPI
  • dynamic memory
  • spatial-decomposition parallelism
  • NVE, NVT, NPT, NPH, rRESPA integrators
  • LJ and Coulombic pairwise force fields
  • all-atom, united-atom, bead-spring polymer force fields
  • CHARMM-compatible force fields
  • class 2 force fields
  • 3d/2d Ewald & PPPM
  • various force and temperature constraints
  • Hessian-free truncated-Newton minimizer
  • user-defined diagnostics


  • F77 + MPI
  • static memory allocation
  • spatial-decomposition parallelism
  • most of the LAMMPS 2001 features with a few exceptions
  • no 2d Ewald & PPPM
  • molecular force fields are missing a few CHARMM terms
  • no SHAKE


  • F90 + MPI
  • spatial-decomposition parallelism
  • embedded atom method (EAM) metal potentials + LJ
  • lattice and grain-boundary atom creation
  • NVE, NVT integrators
  • boundary conditions for applying shear stresses
  • temperature controls for actively sheared systems
  • per-atom energy and centro-symmetry computation and output


  • F77 + MPI
  • atom- and force-decomposition parallelism
  • embedded atom method (EAM) metal potentials
  • lattice atom creation
  • NVE, NVT, NPT integrators
  • all serial DYNAMO features for controls and constraints


  • F90 + MPI
  • spatial-decomposition parallelism
  • frictional granular potentials
  • NVE integrator
  • boundary conditions for granular flow and packing and walls
  • particle insertion