LAMMPS website

Latest Features and Bug Fixes in LAMMPS

This page is a continuous listing of new features and bug fixes for the LAMMPS molecular dynamics package. It also lists periodic "stable" versions which have undergone more testing.

See the unfixed bug page for info on as-yet unresolved bugs.

In some cases, new features change the syntax or operation of an existing input script command, which can cause LAMMPS output to change, or even "break" an earlier working script. These cases are highlighted below with a "BACKWARD COMPATIBILITY" note.

To stay up-to-date with the current LAMMPS, you have 3 choices:

This page contains a year's worth of new features and bug fixes.

Past years of features/fixes are here: 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004

Periodic summaries of major new features added to LAMMPS are on the history page.


What version of LAMMPS do you have?

A LAMMPS "version" is the date when it was released, such as 1 Oct 2010. LAMMPS is updated continuously. Every time we fix a bug or add a feature, we release it immediately, as listed below. Each dated copy of LAMMPS contains all the features and bug-fixes up to and including that version date. The version date is printed to the screen and logfile every time you run LAMMPS. It is on the first page of the HTML version of the manual. It is also in the file src/version.h and in the LAMMPS directory name created when you unpack a tarball.


Stable versions

These are recently released "stable" versions of LAMMPS, which have successfully passed a suite of build and run tests. This is more testing than is done for the incremental development patches listed below.

If you don't want to track the bleeding edge of LAMMPS development, you can always download a tarball of the most recent stable version on the download page. A summary of what is in each stable release is provided on the LAMMPS GitHub site.

Earlier stable versions are also available as tarballs on the LAMMPS web site, at this link, using the appropriate date from the list above.

You can use Git to check out a specific stable version in one of two ways, using the tag listed above:

(1) If you do not have an existing checkout:

git clone -b stable_4Nov2016 https://github.com/lammps/lammps.git mylammps 

(2) If you already have an existing checkout:

git fetch origin
git checkout -b release-4Nov16 stable_4Nov2016 

which will create a branch with the name "release-4Nov16", with all the files for that specific stable release.

Likewise, you can use SVN to check out a specific stable version, using the tag listed above:

svn checkout https://github.com/lammps/lammps.git/tags/stable_4Nov2016 mylammps 

Additional info on how to track other branches (stable, unstable, master) of the GitHub LAMMPS repository via Git or SVN are linked to on the download page.



30 Jun 2020

Details on what is changed by this patch are here and details for all releases are here.

New MLIAP package providing a general framework for adding machine-learning based interatomic potentials to LAMMPS with SNAP as reference implementation (Aidan Thompson, SNL) PR #2174

Add option for chemical specificity to SNAP potentials (Aidan Thompson, SNL and Charles Sievers, UC Davis) PR #1971, PR #2168, GPU optimization for SNAP support in KOKKOS (Evan Weinberg, NVIDIA) PR #2172

Bugfix for computing virial with GPU accelerated TIP4P when energy is not tallied (Vsevolod Nikolskiy, HSE University Moscow) PR #2187

Update build system for the GPU package to be compatible with AMD ROCm 3.5 (Vsevolod Nikolskiy, HSE University Moscow) PR #2167

Updates to the dynamical matrix examples and scripts (Charles Sievers, UC Davis) PR #2179

Implement a feature to transparently convert potential parameters for selected manybody and tabulated potentials from metal to real units or vice versa, if the potential file has a UNITS: tag. This extends the functionality of "PR #2159 (Axel Kohlmeyer, Temple U) PR #2183, PR #2198

This patch file can be applied to the 2 Jun 2020 version. This is the list of changed files.


15 Jun 2020

Details on what is changed by this patch are here and details for all releases are here.

Bugfixes for read_data and read_restart that were introduced during the recent refactoring of the AtomVec class. (Axel Kohlmeyer, Temple U) PR #2132

New package USER-MESONT that adds the tubular potential model (TPM). This consist of a Fortran library, a pair_style and compute, and tools for generating force field files. Pair style mesocnt, which implements the same model in C++-only has been moved from USER-MISC to this package. (Maxim V. Shugaev & Leonid V. Zhigilei, University of Virginia, Alexey N. Volkov, University of Alabama) PR #1873

New fix orient/eco command to add an "energy conserving orientation" force, which is a superset of what fix orient/fcc and fix orient/bcc do. (Adrian Schratt and Volker Mohles, Ruhr-Uni Bochum)) PR #2126

Update to Nose-Hoover barostats to allow setting a barostat temperature if there is no temperature compute already included (Joel Clemmer, Ishan Srivastava, SNL) PR #2137

Document access to per-atom contact information for fix wall/gran and fix wall/gran/region and fix an issue with not deleting "expired" contacts (Richard Berger, Temple U) PR #2121

Remove extra large (potential) files from the distribution and instead download them on demand from downloads.lammps.org when the corresponding package is installed/configured. Apply to pair style mesocnt as first case (Axel Kohlmeyer, Temple U) PR #2139

Add a sort option to the reset_ids command to obtain consistent atom IDs in parallel regardless of the number of MPI ranks (Steve Plimpton, SNL) PR #2142

This patch file can be applied to the 2 Jun 2020 version. This is the list of changed files.


2 Jun 2020

Details on what is changed by this patch are here and details for all releases are here.

Support for building neighbor lists on the GPU with triclinic boxes in the GPU package (Trung Nguyen, Northwestern U) PR #2073

Major refactoring of AtomVec classes in order to simplify adding such classes in the future. (Steve Plimpton, Stan Moore, SNL) PR #1788 , PR #2080, PR #2092

Add new thread-safe and simpler to use tokenizer and word counter classes. Apply to file readers for manybody potentials and several other places. Richard Berger (Temple U) PR #2113

Integrate fmt to generate printf() style formatted C++ strings and thus make generating those less complex and safer. Also add utils::logmesg() convenience function to send string to both, screen and logfile, with one call. Axel Kohlmeyer (Temple U), PR #2103

Add the first step of a comprehensive integrated unittest library with support for testing a selection of pair, bond, and angle styles under various conditions and with multiple uses. (Axel Kohlmeyer and Richard Berger, Temple U) PR #2098 , PR #2100, PR #2101, PR #2108 , PR #2114, PR #2119

Add support for molecule fragments to fix bond/react (Jake Gissinger, CU Bolder), PR #2106

Update of Kokkos library to version 3.1.1 (Christoph Junghans, LANL and the Kokkos developers) PR #2070

Update default version of LATTE to 1.2.2, as used by the fix latte command. (Christoph Junghans, LANL) PR #2069

BACKWARD COMPATIBILITY:

The refactoring of the AtomVec classes may break external packages that provide their own AtomVec classes if they contain styles that depend on the name of per-atom properties that have been renamed. All AtomVec derived classes bundled within LAMMPS have been updated.

The refactored reading and parsing of potential files will now be reporting an error on Fortran-style double precision floating-point numbers with a "d" exponent instead of silently ignoring the "d" and the exponent. Potential files bundled with LAMMPS have been corrected (their exponent was "d0", so it does - by chance - not affect any results).

The (unsupported) previous library of simple run tests for LAMMPS has been replaced by a more systematic and comprehensive unit test library which will be significantly expanded over time.

This patch file can be applied to the 5 May 2020 version. This is the list of changed files.


5 May 2020

Details on what is changed by this patch are here and details for all releases are here.

Update of the bundled Kokkos library to version 3.1 (Stan Moore and the Kokkos developers, SNL) PR #2004, PR #2054

New Kokkos styles compute orientorder/atom and coord/atom and some related bugfixes/improvements (Stan Moore, SNL) PR #1895, PR #1902, PR #1906, PR #2033

New fix accelerate/cos and compute viscosity/cos in USER-MISC as yet another method to compute viscosity (Zheng Gong, École normale supérieure de Lyon) PR #2019

Update of the polymorphic pair style with bug fixes and a new feature (Xiaoweng Zhou, SNL) PR #2000

Update to fix bond/react to allow using equal style variables as a probability input (Wolfgang Verestek, U Stuttgart) PR #2013

This patch file can be applied to the 15 Apr 2020 version. This is the list of changed files.


15 Apr 2020

Details on what is changed by this patch are here and details for all releases are here.

New HIP backend to the GPU package enabling use of AMD GPUs natively through the ROCm toolkit (Evgeny Kuznetsov, Vladimir Stegailov, Vsevolod Nikolskiy, National Research University Higher School of Economics, Russia) PR #1863

Update of included Kokkos library to version 3.0 (Stan Moore and the Kokkos developers, SNL) PR #1870, PR #1968, PR #1969, PR #1974, PR #1986

More optimizations to the KOKKOS version of the SNAP code (Evan Weinberg, Nvidia and Stan Moore SNL) PR #1958

Bugfixes and improvements for the SPIN package and computing of the norm in minimizers, also documentation corrections for the latter (Julien Tranchida, SNL) PR #1967

Major refactoring of CMake support to take advantage of features of newer CMake versions now that we require at least version 3.10 (Christoph Junghans, LANL) PR #1956 , PR #1983, PR #1995, PR #1996

Simplification of the process to build LAMMPS. Always build a library and link the executable to the library. That reduces the choices to "static" and "shared" with "static" as default (like before). Add tutorials for creating stack traces with gdb or valgrind and for using CMake (Axel Kohlmeyer, Temple U) PR #1981

Improved error messages and related documentation for USER-MEAMC (Sebastian Huetter, OvGuericke U) PR #1965

Extensions to fix restrain to allow for a growing or shrinking bond restraint, and a new lower bound only bond restraint with the same option (David Castillo and Marco Di Stefano, Structural Genomics Group, CNAG-CRG) PR #1957

New kim_property command in the KIM package (Yaser Afshar, Ellad Tadmor, Daniel S. Karls, Ryan Elliott , UMN) PR #1946

Internal KIM command for matching symbolic to numeric atom types (Ron Miller, Carleton U and Ryan S. Elliott, UMN) PR #1999

Use preprocessor macros to enable compatibility of OpenMP directives with otherwise incompatible OpenMP 3.x and OpenMP 4.x and later const variable sharing semantics (Michael Lamparski) PR #1651

New functions in Info class and library interface to query installed styles (Richard Berger, Temple U) PR #1966

Added extract methods to several bond styles for use with fix adapt (Evangelos Voyiatzis, NovaMechanics Ltd) PR #1973

Refactored and generalized the way how LAMMPS detects how multiple fixes change box data and whether there are conflicts. (Axel Kohlmeyer, Temple U) PR #1874

Core-shell version of pair style lj/class2/coul/long (Evangelos Voyiatzis, NovaMechanics Ltd) PR #1978

Added support for apply scale in fix adapt to diameter and charge, diameter/disc option for mass changes consistent with 2d systems (Jibril B. Coulibaly, Northwestern U) PR #1937

This patch file can be applied to the 19 Mar 2020 version. This is the list of changed files.


19 Mar 2020

Details on what is changed by this patch are here and details for all releases are here.

Update USER-COLVARS package to version 2020-02-27 (Giacomo Fiorin, Temple U) PR #1909

Move fix bond/react into its own package, USER-REACTION (Jake Gissinger CU Boulder) PR #1822

Update the molecule command to add support for setting molecule IDs and grouping atoms into fragments (Jake Gissinger CU Boulder) PR #1913

Optimizations for the KOKKOS version of SNAP (Evan Weinberg, NVIDIA) PR #1922

New pair styles with smeared coulomb charge interactions (coul/slater) (Evangelos Voyiatzis,Royal DSM) PR #1883

New fix numdiff command to compute derivatives of per-atom data numerically from finite differences (Charles Sievers, UC Davis) PR #1891

Require C++11 and CMake 3.10, simplify some CMake settings and remove checks for pre-C++11 compilers (Axel Kohlmeyer and Giacomo Fiorin, Temple U) PR #1915, PR #1930

Changes to the binary restart file format, so that incomplete restart files can be detected. Also an option to fix halt to monitor file systems for available free space (Axel Kohlmeyer, Temple U) PR #1862

Rename package USER-MESO to USER-MESODPD (Axel Kohlmeyer, Temple U) PR #1924

Major documentation cleanup that removes artifacts from txt2rst processing, updates many external URLs, improves syntax highlighting settings, and uses more consistent typesetting for examples and throughout the text. USER-ATC documentation is now in rst format, too. (Axel Kohlmeyer and Richard Berger, Temple U) PR #1926, and many others

This patch file can be applied to the 3 Mar 2020 version. This is the list of changed files.


3 Mar 2020

This is a stable release.

Details on what has changed in this release (compared to the previous stable release) are here and details for all releases are here.

This includes small changes to the previous patch to create a new stable release.

This patch file can be applied to the 27 Feb 2020 version. This is the list of changed files.


27 Feb 2020

This patch release is a new candidate for becoming a stable release. if no further changes are needed, it will become the next stable release.

Details on what is changed by this patch are here and details for all releases are here.

Further refactoring of the manual with significant corrections and updates to the introductory, build, and package sections. Also, all remaining mathematical expressions typeset in LaTeX and included as pictures are now included as embedded math and will be rendered as needed during the creation of the documentation in either HTML or PDF or ePUB format. The embedded math in the HTML pages can now be viewed without internet access. Fixes to the embedded math to avoid errors with ePUB format output. Various updates and fixes to build procedures for USER-QMMM. (Axel Kohlmeyer and Richard Berger, Temple U) PR #1888 and PR #1903

Updates to QM/MM compilation with Quantum Espresso version 6.3 and higher (Mariella Ippolito, CINECA) PR #1886

Remove conditional C++11 check for stable release. will become an unconditional check after the release. (Axel Kohlmeyer, Temple U) PR #1885

New example in the COUPLE folder for dynamically loading LAMMPS as a plugin into a C code (Axel Kohlmeyer, Temple U) PR #1900

This patch file can be applied to the 18 Feb 2020 version. This is the list of changed files.


18 Feb 2020

This patch release is a candidate for becoming a stable release. if no further changes are needed, it will become the next stable release.

Details on what is changed by this patch are here and details for all releases are here.

GPU kernel optimizations for pair style lj/cut/tip4p/long/gpu (Vsevolod Nikolskiy, HSE Univ. Moscow) PR #1876

Update of USER-PLUMED to support Plumed 2.6 (Axel Kohlmeyer, Temple U) PR #1879

Further refactoring of the manual by converting external math expressions to be embedded math in .rst files (Axel Kohlmeyer and Richard Berger, Temple U) PR #1869

This patch file can be applied to the 4 Feb 2020 version. This is the list of changed files.


4 Feb 2020

Details on what is changed by this patch are here and details for all releases are here.

Improved version of the FIRE minimizer option with better convergence and more options to adapt its behavior (Julien Guénolé, RWTH Aachen and Erik Bitzek, FAU Erlangen-Nuernberg) PR #1052

Update Colvars library to version 2020-01-27 (Giacomo Fiorin and multiple Contributors to the Colvars project) PR #1859

New SNAP potential parameter files for single element systems containing Cu, Ge, Li, Mo, Ni, or Si (Yunxing Zuo, UCSD) PR #1866

Support threaded FFTs with MKL and refactoring of FFT support in KOKKOS (Axel Kohlmeyer, Temple U and Stan Moore, SNL) PR #1858

Add support to run NWChem along with LAMMPS in client/server mode (Jeff Boschen, Iowa State) PR #1703

Remove all legacy documentation sources. From now on writing reStructuredText is the only option. The txt2rst tool remains available, though. (Axel Kohlmeyer, Temple U), PR #1855

Cleanup of the ReStructuredText source for the manual, convert more .tex file to embedded math, and corrections for issues due to inconsistencies in the conversion from the original txt2html markup or due to undetected errors in the original txt2html sources. (Axel Kohlmeyer, Temple U), PR #1861, PR #1864, PR #1867

This patch file can be applied to the 24 Jan 2020 version. This is the list of changed files.


24 Jan 2020

Details on what is changed by this patch are here and details for all releases are here.

New pair style mesocnt for mesoscopic modeling of (carbon) nanotubes (Philipp Kloza, U Cambridge), PR #1841

New fix npt/cauchy for improved handling of variable cells with large deformation (Ronald Miller, Carlton U, Fabio Pavia, and Subrahmanyam Pattamatta, UMN) PR #1096

New fix propel/self for self-propelling particles (Stefan Paquay, Brandeis U) PR #1847

New fix wall/reflect/stochastic for multiple variants of stochastic reflecting walls (Quy-Dong To, Université Paris Est Marne la Vallée), PR #1691 , PR #1838

Added support for threaded FFTW3 in all versions of pppm and support for using cuFFT or KISSFFT on the GPU with KOKKOS when CUDA is enabled (Stan Moore (SNL), Sam Mish (U.C. Davis)), PR #1520

New orient option to fix deposit (Tongtong Shen), PR #1685

New quit option to message command for client/server coupling with the MESSAGE package (Steve Plimption, SNL), PR #1835

New examples for using rerun and read_dump (Steve Plimpton, SNL) PR #1829

New options ratio and subset for create_atoms plus type/ratio and type/subset for set to populate an exact ratio or exact number of lattice points of atoms when creating atoms or change the atom type with set. This also includes a significant performance improvement when creating a very large number of atoms with create_atoms (Jake Gissinger, UC Boulder and Steve Plimpton, SNL), PR #603

Add support for read_dump and rerun to USER-ADIOS package (Norbert Podhorszki, ORNL) PR #1820

Updated ILP potential files and new files for bulk systems, improve energy conservation of ILP pair styles with dangling bonds (Wengen Ouyang, Tel Aviv U) PR #1843

This patch file can be applied to the 9 Jan 2020 version. This is the list of changed files.


9 Jan 2020

Details on what is changed by this patch are here and details for all releases are here.

Highlights include:

Expose LAMMPS neighbor lists to the library interface and to the Python wrapper (Richard Berger, Temple U) PR #1674

Addition of oxRNA2 model for RNA to the USER-CGDNA package (Oliver Henrich, Strathclyde U) PR #1772 , PR #1804 , PR #1812

New compute snap command to support training SNAP package potentials (Aidan Thompson, SNL) PR #1779 , PR #1796

New pair style lj/cut/tip4p/long/gpu for the GPU package (Vsevolod Nikolskiy, Vladimir Stegailov, Higher School of Economics, Moscow) PR #1776

Build the documentation directly from .rst files. Various updates to the process and integration of formula as direct rendered graphics via MathJAX (Richard Berger, Temple U) PR #1786

This patch file can be applied to the 20 Nov 2019 version. This is the list of changed files.