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

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

Past years of features/fixes are here: 2020 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.



27 May 2021

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

Only new features or notable changes are highlighted here:

New package USER-HDNNP which provides a new pair style hdnnp, which is an interface to the N2P2 library for Behler-Parinello neural network potentials (Andreas Singraber, U Vienna) PR #2626

New package USER-RANN which provides a new pair style rann and matching potential files for using "rapid atomistic neural network (RANN) potentials (Christopher Barrett and Doyl Dickel, Mississippi State) PR #2570

Update of the bundled Kokkos library to version 3.4.1 (Stan Moore, SNL and the Kokkos developers) PR #2783


14 May 2021

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

Only new features or notable changes are highlighted here:

New package USER-PACE which provides a new pair style pace computing interactions using the Atomic Cluster Expansion (ACE) (Yury Lysogorskiy and collaborators at ICAMS, Ruhr-Uni Bochum) PR #2699

New Package USER-BROWNIAN for Brownian dynamics time integration of point and extended particles plus updates for fix propel/self (Sam Cameron, U Bristol) PR #2511

New Package USER-MDI to enable client/server mode coupling of LAMMPS with other codes using the MolSSI Driver Interface (MDI) (Taylor Barnes, MolSSI) PR #2611

New fix style "charge/regulation" which implements Monte Carlo sampling of charge regulation (Tine Curk, Northwestern U and Jiaxing Yuan, Shanghai Jiao Tong U) PR #2585

New generalized DPD pair styles: dpd/ext and dpd/ext/tstat (Martin Svoboda, Karel Sindelka, and Martin Lisal, ICPF) PR #2710

Faster and more flexible support for multi style neighbor lists (Joel Clemmer, SNL) PR #2536

New pair style hybrid/scaled that allows combining contributions from different pair styles with constant or variable scaling factors (Axel Kohlmeyer, Temple U) PR #2702

Updated version of pair style bop with bugfixes and performance improvements (Xiaowang Zhou, SNL) PR #2750, PR #2753

GPU package version of pair style lj/smooth (Gurgen Melikyan, HSE University) PR #2706

Update of the bundled Kokkos library to version 3.4.0 (Stan Moore, SNL and the Kokkos developers) PR #2733

Support for atom style spin in the KOKKOS package (Julien Tranchida, Stan Moore, and Svetoslav Nikolov, SNL) PR #2693

New clang-format configuration file in src tree. All files in that tree are prepared so that clang-format can be applied without destroying functionality. (Axel Kohlmeyer, Temple U) PR #2762

Scripts to support building LAMMPS and its documentation on systems without direct internet access (Richard Berger, Temple U) PR #2742


8 Apr 2021

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

Only new features or notable changes are highlighted here:

New PLUGIN package providing a plugin command that allows loading and unloading of LAMMPS styles from separately compiled shared object files at runtime (Axel Kohlmeyer, Temple U) PR #2650

Refactoring of core LAMMPS code and packages to increase code reuse and readability, simplify text parsing, simplify internal fix/compute generation, improve thread safety (Richard Berger and Axel Kohlmeyer, Temple U) PR #2655, PR #2657, PR #2674, PR #2678, PR #2683, PR #2685, PR #2694, PR #2700

Additional unit test tools and test inputs to increase coverage of automated testing (Richard Berger and Axel Kohlmeyer, Temple U) PR #2308, PR #2653, PR #2658, PR #2679, PR #2681, PR #2682, PR #2695

Improved error/exception detection and handling in the LAMMPS python module (Richard Berger, Temple U) PR #2668


10 Mar 2021

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

Only new features or notable changes are highlighted here:

Major update of the GPU package with significant performance and compatibility improvements (Mike Brown and Nitin Dhamankar, Intel Corp.) PR #2603, PR #2610, use statically linked OpenCL driver loader with CMake (Axel Kohlmeyer, Temple U) PR #2617, HIP compilation fixes (Richard Berger, Temple U) PR #2622

New pair style lj/relres which allows fine-grained/coarse-grained simulations for lj/cut type interactions (Mark Chaimovich, Russian School of Mathematics, and Aviel Chaimovich, Drexel University) PR #2590

Refactoring of the KIM package commands. Instead of multiple kim_ commands there is now only the kim command which accepts as subcommand. Additional cleanups and improvements to the kim commands (Yaser Afshar, Ryan S. Elliott, Ellad Tadmor UMN) PR #2620, PR #2625, PR #2649

Direct support for neural network (nn) models added to MLIAP package (Pedro Antonio Santos Florez, University of Nevada - Las Vegas) PR #2641

Reader classes for LAMMPS log files and fix ave/chunk output added to the LAMMPS Python module (Richard Berger, Temple U) PR #2631

Unit tester tools for dihedrals and impropers with inputs for most styles (Abhishek Shandilya, RPI and Axel Kohlmeyer, Temple U) PR #2290


10 Feb 2021

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

Only new features or notable changes are highlighted here:

Add support for machine learning potentials using python frameworks to the MLIAP package (Nicholas Lubbers, LANL, and Aidan Thompson, SNL) PR #2508

New 'eam/he' pair style for modeling He bubbles in metals (Xiaowang Zhou, SNL) PR #2556

New Wang-Frenkel pair style ('wf/cut'), a smooth, short range Lennard-Jones like potential (Xipeng Wang and Simón Ramírez-Hinestrosa, Chinese Academy of Sciences, U Cambridge) PR #2435

Refactor processing of embedded citation strings to make them more visible (Axel Kohlmeyer, Temple U and Steve Plimpton, SNL) PR #2545

BACKWARD COMPATIBILITY:

The processing and meaning of the fix_modify energy and fix_modify virial options has been changed. It is now only available for fixes that contribute to the potential energy and the virial. The energy contributions from thermostats and similar fixes can be accessed with the thermo keyword ecouple and the conserved quantity (i.e. etotal + ecouple) is available as econserve. There are corresponding changes to the implementation, so external fixes will have to be adapted or they will no longer compile. All affected fixes in the LAMMPS distribution have been updated.

The LAMMPS python module now contains a version check: When installing the python module, the current LAMMPS version is stored in a __version__ module variable and upon initialization of a LAMMPS instance it is checked against the output from the lammps.version() method which returns the version of the loaded shared library. If they don't match an exception is raised. This helps to detect inconsistent installations of the shared library or module or incorrectly setting LD_LIBRARY_PATH or PYTHONPATH.

Arguments to LAMMPS commands that contain references to compute, fixes, or variables (c_ID, f_ID, v_ID with and without indices) are now more strictly checked for correctness. Inputs that are incorrect but have previously worked by chance will now cause failures. the KOKKOS package option "cuda/aware" has been renamed to "gpu/aware" since Kokkos now also supports AMD GPUs via HIP.

This release has several "invasive" changes to core parts of LAMMPS, so there is an increased risk that something has been broken in a part of the code that is not (yet) covered by our automated tests (which currently cover about 1/3rd of the total code base).