History of LAMMPS

Origins

LAMMPS began in the mid-1990s under a cooperative research & development agreement (CRADA) between two US Department of Energy labs (Sandia and LLNL) and three companies (Cray, Bristol-Myers Squibb, and DuPont). The goal was a large-scale parallel classical molecular-dynamics code; the effort was led by Steve Plimpton at Sandia.

After the CRADA ended, a final Fortran 77 version, LAMMPS 99, was released, followed by a Fortran 90 rewrite, LAMMPS 2001. The current LAMMPS is a C++ rewrite, first released as open source in September 2004. It absorbed features from older Sandia parallel MD codes — ParaDyn, Warp, and GranFlow — and, from late 2006, many-body potentials (Stillinger-Weber, Tersoff, ReaxFF) and charge equilibration from Aidan Thompson’s GRASP code.

Recent releases

Detailed, curated release notes for every version are maintained on GitHub — for recent changes start there:

(GitHub release notes are detailed from the 2020 stable release onward.)


Highlights by year

A condensed, year-by-year summary of notable additions. For day-to-day detail of recent years, use the GitHub release notes above.

2026

  • The GRAPHICS package was split out and greatly expanded into a native visualization toolkit (fix graphics/* for isosurfaces, arrows, labels, trajectory lines, periodic images, chunk convex hulls, and cross-replica atoms; screen-door transparency, rounded-triangle meshes, per-property coloring). New packages: GRANSURF (granular surfaces from triangle meshes or line segments), MBX (many-body data driven potentials), and ML-RUNNER (RuNNer neural-network potentials).
  • Input-script and setup improvements: the group command gains within and exclude keywords for dynamic groups; the molecule command can infer angles, dihedrals, and impropers from bonds; wildcard atom types in fix bond/react; volume- and area-preserving Nose-Hoover barostats; Brotli and 7-Zip compression for output files.
  • Superellipsoid granular particles; fix ilves (enhanced constraint solver), fix gemc (Gibbs-ensemble MC), fix baoab (BAOAB Langevin), and compute hbond/local; the ESP FFT-based long-range solver; pair airebo/bc. Extensive porting of functionality to the KOKKOS, GPU, and OPENMP accelerator packages.
  • (Year in progress — see the GitHub release notes above for full detail.)

2025

  • LAMMPS now requires a C++17 compiler.
  • APIP (adaptive-precision interatomic potentials) package; MDR granular contact model; JSON molecule files and a write_molecule command; mixed- and single-precision support in the KOKKOS package; hybrid Monte Carlo (fix hmc).
  • Bosonic path-integral MD; fix neighbor/swap (hybrid MD/kMC sampling); the extxyz dump style; Grimme-D3 dispersion (pair dispersion/d3); an overhauled error-reporting system whose messages point at the offending input and link to the manual; LAMMPS-GUI split out into its own repository; retirement of the ATC, POEMS, and AWPMD packages.
  • A set of curated LAMMPS tutorials (eight beginner-to-advanced lessons) was published in the Living Journal of Computational Molecular Science.
  • Stable release 22 Jul 2025.

2024

  • Support for general triclinic (any orientation) simulation boxes; the ML-UF3 and RHEO packages; CTIP charge-transfer ReaxFF-style potentials (pair coul/ctip, fix qeq/ctip); pair hybrid/molecular.
  • Expanded FFT-library support (heFFTe, plus vendor FFTs for GPUs and Grace CPUs); ACE descriptors in ML-IAP (compute pace); flow and deformation boundary fixes (fix wall/flow, fix deform/pressure); compute rattlers/atom.
  • Stable release 29 Aug 2024.

2023

  • LEPTON package (runtime-compiled custom potentials and expressions); alchemical transformations (fix alchemy); QM/MM coupling through the MDI interface package (fix mdi/qmmm, with PySCF, NWChem, LATTE); path-integral MD (fix pimd/langevin).
  • A modular GRANULAR package refactor (reusable granular contact models); pair meam/ms (multi-state MEAM); the fix press/langevin barostat; angle_write/dihedral_write; retirement of the MSCG, MPIIO, and LATTE packages.
  • Stable release 2 Aug 2023.

2022

  • The canonical LAMMPS overview paper appeared in Computer Physics Communications.
  • AMOEBA polarizable force-field package; ELECTRODE package (constant-potential electrodes); BPM (bonded particle model) and ML-POD packages; support for type labels (string atom/bond/angle/… types); distributed grid classes; YAML thermo and dump output.
  • Elastic-constant calculation (compute born/matrix); semi-grand-canonical Monte Carlo (fix sgcmc); building atoms from STL meshes (create_atoms ... mesh); the unified reset_atoms command.
  • Stable release 23 Jun 2022.

2021

  • Runtime plugin command and PLUGIN package (load styles without recompiling); several machine-learning-potential packages (ML-PACE, ML-HDNNP, ML-RANN); DIELECTRIC package; the MDI package for code coupling.
  • Packages reorganized — the USER- prefix dropped across nearly all packages; the BROWNIAN dynamics package (fix brownian, fix propel/self); fix charge/regulation (Monte Carlo charge regulation); pair hybrid/scaled.
  • The LAMMPS forum launched on MatSci.org replacing the Sourceforge hosted mailing-list.
  • Stable release 29 Sep 2021.

2020

  • LAMMPS now requires a C++11 compiler.
  • ML-IAP machine-learning interatomic-potential interface (pair/compute mliap); a HIP backend for AMD GPUs; SNAP and other Kokkos/GPU optimizations.
  • Stable releases 3 Mar and 29 Oct 2020.

2019

  • Documentation source converted from the legacy text markup to reStructuredText — a major docs modernization.
  • KIM API 2.x integration, including KIM simulator models and the kim_param / kim_query commands.
  • New generalized pair_style granular (flexible granular contact models); GNEB and energy minimizers in the SPIN package; dynamical_matrix and third_order commands; ADIOS and YAFF packages; fix electron/stopping; compute hma and compute centroid/stress/atom.
  • Rendezvous communication for much faster setup of large systems.
  • Stable releases 5 Jun and 7 Aug 2019.

2018

  • New CMake build system alongside the traditional makefiles; the manual was refactored to document it, and packages are no longer pre-installed in the source tree.
  • SPIN package — classical atomic magnetic spins coupled to atomic motion.
  • fix bond/react — heuristic bonded reactions that rewrite molecular topology.
  • Hyperdynamics (hyper, fix hyper/global, fix hyper/local).
  • New packages wrapping external libraries: PLUMED (free energy), ScaFaCoS (long-range solvers), MESSAGE (client/server coupling); plus BOCS, MOFFF, SDPD.
  • Structure analysis: PTM (polyhedral template matching), compute entropy/atom, compute adf.
  • LAMMPS received an R&D 100 award.
  • Stable releases 16 Mar, 22 Aug, and 12 Dec 2018.

2017

  • A C++ MEAM implementation (pair meam/c), usable inside pair hybrid.
  • fix python and pair python — Python callbacks and prototype pair styles.
  • fix latte — quantum forces via the LATTE density-functional tight-binding code.
  • New packages: MESO (eDPD/tDPD/mDPD), CGDNA (coarse-grained / oxDNA models), UEF (extensional flow).
  • Standardized package documentation and automatic library download/build; a per-fix virial switch (fix_modify virial); USER-INTEL AIREBO and speedups.
  • Stable releases 31 Mar and 11 Aug 2017.

2016

  • Reactive DPD models and the USER-DPD package; the MANIFOLD package; multiple processors per replica in NEB; weighted load balancing; fix cmap (CHARMM cross-terms); Kokkos versions of PPPM and ReaxFF; vector-style variables; per-bond/angle/dihedral/improper computes; many USER-INTEL styles.
  • Major neighbor-list framework refactor — all list-building classes were restructured, making it easier to add new neighboring methods and package styles; generalized replica exchange (temper/grem, fix grem); a PID feedback controller (fix controller) and fix halt; VTK/ParaView (dump custom/vtk) and NetCDF (dump netcdf) trajectory output; the USER-CUDA package retired as GPU work consolidated into the GPU and KOKKOS packages.

2015

  • New KOKKOS package and library for performance portability across CPUs and GPUs; the PYTHON package to embed Python in input scripts.
  • The chunk framework (compute chunk/atom + per-chunk computes, fix ave/chunk), replacing many older per-molecule computes.
  • New HTML documentation with search; CORESHELL, DRUDE, SMD, DIFFRACTION, QTB, COMPRESS, and *TALLY packages; pair quip (GAP); create_bonds; fix atom/swap.
  • Bond-orientational order analysis (compute orientorder/atom, compute hexorder/atom); the RATTLE constraint algorithm (fix rattle); the Vashishta 2-/3-body potential (pair vashishta); the MGPT, SMTBQ, and H5MD (dump h5md) packages; the timer and info diagnostic commands.

2014

  • The KOKKOS and USER-INTEL accelerator packages introduced.
  • pair snap — the SNAP machine-learning interatomic potential.
  • 64-bit atom and molecule IDs; comm_style brick/tiled and comm_modify; path-integral MD (fix gle, fix ipi, fix pimd); dynamic groups; fix rigid/small NVE/NVT/NPH/NPT variants; the FEP package.
  • QM/MM coupling via the USER-QMMM package (fix qmmm, e.g. to Quantum ESPRESSO); a general charge-equilibration framework (fix qeq/point, qeq/shielded, qeq/slater, qeq/dynamic); recursive coordinate bisection (RCB) load balancing; MPI-IO parallel restart and dump styles.

2013

  • The MSM long-range solver matured (non-periodic boundaries); triclinic support for the PPPM/MSM/Ewald solvers.
  • atom_style body and the BODY package; compute voronoi/atom; pair comb3; pair zbl; fix phonon and the PHONON package; the USER-LB (lattice Boltzmann) package; the molecule command with molecule templates; write_data, write_dump, and dump movie; parallel restart read/write.
  • fix property/atom (custom named per-atom attributes without a new atom style); the CiteMe feature (log.cite auto-generates citations for the features a run uses); immediate $(...) inline formula evaluation; thermodynamic-integration fixes (fix ti/rs, fix ti/spring); Generalized Langevin Dynamics (fix gld); staggered-mesh PPPM (kspace_style pppm/stagger); long-range point dipoles (pair lj/cut/dipole/long).

2012

  • MSM (multilevel summation method) long-range solver, plus 2-FFT PPPM and a PPPM variant for long-range Lennard-Jones (dispersion) interactions.
  • COLVARS package (fix colvars) for collective variables and free energy; MOLFILE package (read/write VMD molfile-plugin trajectory formats).
  • Load balancing (balance and fix balance); OpenKIM support with new KIM package (pair_style kim); rerun and read_dump commands.
  • A simplified Python interface (through the shared library) and a new Fortran wrapper on the library interface.
  • Rigid-body NPT/NPH ensembles (fix rigid/npt, fix rigid/nph); damped-shifted-force Coulombics (pair coul/dsf); the BOP (pair bop) and long-range carbon (pair lcbop) bond-order potentials; the moltemplate molecular builder added to the distribution.

2011

  • The USER-OMP (OpenMP) and USER-CUDA (GPU) packages; OpenCL and PPPM support in the GPU package; broader FFT support (KISS FFT, single-precision FFTs).
  • Grand-canonical Monte Carlo (fix gcmc); temperature-accelerated dynamics; 64-bit integers for atom and timestep counts; the package and partition commands; aspherical line/triangle particles; the FLD, USER-SPH, and USER-AWPMD packages.
  • Native dump image ray-traced rendering (JPG/PPM straight from a running simulation); run_style verlet/split (split KSpace onto a second partition for large-scale speedups); the processors command for explicit 3d processor-grid mapping; the USER-MISC catch-all package; Wolf-summation Coulombics (pair coul/wolf, born/coul/wolf); a native Windows build using Microsoft Visual Studio.

2010

  • Nudged elastic band (NEB); FIRE and quickmin minimizers; stochastic rotation dynamics (SRD); the COMB charge-optimized many-body potential; the electron force field (EFF) package; a C implementation of ReaxFF (pair reax/c); DREIDING force-field support.
  • A Python wrapper on LAMMPS for real-time visualization, plotting, and GUI interaction; fix external; a major rework of the Nose-Hoover fix nvt/npt/nph commands.
  • Free-energy and transport tools: fix adapt (alchemical scaling) with compute ti; fix ave/correlate time-correlation functions for Green-Kubo workflows; the Multiscale Shock Technique (fix msst); the state-based peridynamic model (pair peri/lps); the Embedded-Ion-Method potential (pair eim); parallel restart reads (a 10-billion-atom read cut from hours to minutes); coupling examples to DFT (Quest) and kinetic Monte Carlo (SPPARKS).

2009

  • The GPU package — LAMMPS’s first NVIDIA GPU acceleration library (pair lj/cut/gpu, gayberne/gpu); the foundation for later GPU work.
  • fix bond/create and fix bond/break for reactive bond topology; the Fortran ReaxFF (pair reax); compute heat/flux for Green-Kubo thermal conductivity; fix box/relax; fix ttm (two-temperature model); a self-describing dump format.
  • Accelerated dynamics via parallel replica dynamics (prd); the USER-ATC (atomistic-to-continuum) and USER-IMD (interactive MD/VMD steering) packages; a new analysis framework converting fixes to computes (compute rdf/msd/com, per-bond/angle/dihedral local computes, compute property/atom, fix ave/histo).

2008

  • The CG-CMM (coarse-grained) and steered-MD packages; bias velocities so thermostats and temperature computes combine flexibly; finite-size spherical particles (fix nve/nvt/npt/sphere); compute group/group and compute reduce; Berendsen thermostat/barostat; fix bond/swap.
  • The PERI package** for Peridynamics mesoscale fracture modeling (atom_style peri, pair_style peri/pmb, compute damage/atom).
  • fix thermal/conductivity (reverse-NEMD thermal conductivity); pair_style tersoff/zbl (ZBL-screened Tersoff for radiation damage); pair_style lj/gromacs; a rewritten energy minimizer with backtracking line search and a force-tolerance criterion; natural-syntax equal- and atom-style variable formulas.

2007

  • The compute command — a flexible, unified way to define global and per-atom calculations (a major architectural change that replaced the old temperature command).
  • Many-body potentials: Tersoff, Stillinger-Weber, and MEAM.
  • Flexible output (thermo_style custom, dump custom, fix ave/time, fix ave/spatial, fix ave/atom); the ASPHERE package with the Gay-Berne potential (ellipsoidal particles); the DIPOLE and COLLOID packages; NEMD (fix nvt/sllod); non-orthogonal (triclinic) boxes; fix poems for coupled rigid bodies; the AIREBO potential; ability to instantiate LAMMPS multiple times as a library.
  • The **USER-**package framework (community-contributed, self-supported feature packages) and the OPT package of hand-optimized pair styles; pair_style hybrid/overlay (superpose potentials on the same type pair); long-range dispersion via kspace_style ewald/n; per-atom (atom-style) variables; neighbor multi and the communicate command for widely disparate particle sizes; pair_style lubricate; fix viscosity (reverse-NEMD).

2006

  • Energy minimization (minimize, min_style); dissipative particle dynamics (DPD); grain-boundary driving (fix orient/fcc); dump dcd/dump xtc (VMD-compatible); the TIP4P water model; the OPLS dihedral style; the shell command and many input-script scripting enhancements.
  • Library coupling on an MPI sub-communicator (run LAMMPS on a processor subset of a larger code) with run start/stop, pre/post, and every options; generalized non-orthogonal lattice/create_atoms with multi-atom bases; parallel per-processor restart I/O (% wildcard); breakable bond_style quartic; fix deposit for surface deposition; fix gyration/recenter/momentum.

2005

  • LAMMPS partitioned into optional packages (make package); a better rigid-body integrator; targeted MD (fix tmd); the centro-symmetry parameter; the class-2 (COMPASS) force field; support for more than 2 billion atoms; hybrid pair and atom styles; tabulated pair potentials; the include command; radial distribution functions; release of the Pizza.py toolkit.
  • Library interface — LAMMPS can be built and called as a library (lammps_open/lammps_command/lammps_close) from another program or script.
  • An input-script scripting framework: variable styles (index/loop/equal/world/universe), next-driven loops, and multi-partition (universe) runs; fix efield; Buckingham, Yukawa, and Morse pair styles; a hash-table atom_modify map that removed the last large-system memory bottleneck.

2004

  • Initial public open-source release of the C++ rewrite of LAMMPS (1 September 2004, ~53,000 lines of code), superseding LAMMPS 2001 (Fortran 90) and LAMMPS 99 (Fortran 77).

Older LAMMPS source code variants and precursors

  • LAMMPS 2001 — Fortran 90 + MPI, dynamic memory, spatial-decomposition parallelism, NVE/NVT/NPT/NPH/rRESPA integrators, LJ/Coulomb and CHARMM/class-2 force fields, 2d/3d Ewald & PPPM, SHAKE, a truncated-Newton minimizer.
  • LAMMPS 99 — Fortran 77 + MPI, static memory, most LAMMPS 2001 features except 2d Ewald/PPPM, some CHARMM terms, and SHAKE.
  • ParaDyn / Warp / GranFlow — earlier Sandia parallel MD codes for EAM metals and granular systems whose capabilities fed into LAMMPS.