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: 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.
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 given on the download page.
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.
17 Aug 2017
Markus Hohnerbach (RWTH-Aachen) has added AIREBO to the USER-INTEL package. This can give speedups of 6X+ on some processors. EAM variants and a CHARMM variant were also added by Mike Brown (Intel).
Trung Nguyen (Northwestern U) optimized the neighbor lists for 3-body interactions in several 3-body potentials supported by the GPU package. Similar to the CPU versions, these can result in significant speed-ups of the potential computation (pair style time).
The special_bonds extra keyword was removed. Its functionality is now available via similar keywords for the create_box or read_data commands.
BACKWARD COMPATIBILITY: As explained above, the special_bonds extra keyword was removed.
This patch file can be applied to the 11 Aug 2017 version. This is the list of changed files.
11 Aug 2017
Another small tweak to the Python Install.py scripts for the stable release.
This patch file can be applied to the 10 Aug 2017 version. This is the list of changed files.
10 Aug 2017
Richard Berger (Temple U) added a tutorial on how to use LAMMPS via Bash on a Windows machine.
Axel Kohlmeyer (Temple U) made all the new Install.py scripts we recently added for library downloading and building compatible with both Python 2/3 and standardized their operation. These can be invoked via make from the src dir, or directly in the lib directories themselves. These easy-install options are now available for packages like KIM, VORONOI, MCSG, and many others. See Section packages for details.
Various small code clean-ups and bug fixes in preparation for a stable release this week.
This patch file can be applied to the 24 Jul 2017 version. This is the list of changed files.
24 Jul 2017
Nir Goldman (LLNL) contributed a new examples/COUPLE/fortran_dftb interface for driving LAMMPS from the DFTB+ density functional tight-binding code. It also allows some new DFTB-related options to be enabled in the fix msst command.
Also a variety of small bug fixes, updates, clean-ups, in preparation for the next stable release. Thanks to Axel Kohlmeyer (Temple U) for managing these.
This patch file can be applied to the 6 Jul 2017 version. This is the list of changed files.
6 Jul 2017
Sebastian Hutter (Otto-von-Guericke University, Germany) has implemented a C++ version of the MEAM potential as a USER-MEAMC package. The new pair_style meam/c command is functionally equivalent to the existing pair_style meam command. The latter is part of the MEAM package and uses a Fortran implemention of MEAM as a library (in lib/meam). The new version should be as fast (or faster) than the Fortran version and also allows for use of MEAM with the pair_style hybrid command including using meam multiple times as a hybrid sub-style, which the Fortran version did not.
Mike Salerno (NRL) sent some code for creating single bonds, angles, dihedrals from the input script. It has been added as new options to the create_bonds command, i.e. single/bond, single/angle, single/dihedral style options.
Andrew Jewett added options to the read_data command to specify options for leaving room for additional bonds/angles/dihedrals/impropers, similar to the create_box command. A few of these options can also be specified in the header section of the data file, but will be deprecated at some point in favor of controlling this from the input script.
BACKWARD COMPATIBILITY: The syntax of the create_bonds command was changed to allow for multiple styles of creation. The previous syntax (with no style name) is now the many style for creating many bonds at once. So you need to add the word many as a first argument to reproduce earlier behavior of the command.
This patch file can be applied to the 23 Jun 2017 version. This is the list of changed files.
23 Jun 2017
Fixed an issue with the compute pair/local and compute property/local commands not using the correct neighbor list (should be a copy of the pairwise neighbor list) when granular potentials are used. Thanks to Leo Silbert (SIUC) and Kevin Hanley for sending test scripts.
A small change was made to the newest CHARMM pair styles, pair_style charmmfsw/coul/charmmfsh and pair_style charmmfsw/coul/long to enable more precise agreement with the CHARMM force field energies and forces. The CHARMM code uses a slightly different value for the Coulombic energy conversion factor in real units (Kcal/mole), namely CHARMM = 332.0716, LAMMPS = 332.06371. Now, when using either of these pair styles, the conversion factor is reset within LAMMPS to the CHARMM value, as if it were effectively a parameter of the force field.
This patch file can be applied to the 20 Jun 2017 version. This is the list of changed files.
20 Jun 2017
Mike Brown and William McDoniel (RWTH Aachen University) have updated the USER-INTEL package with better performance (up to 45%) for Xeon Phi and Skylake processors. Versions of kspace_style pppm/disp/intel and pair_style lj/long/coul/long/intel have been added to the package.
Emile Maras (CEA, France) added several new options to the fix neb command for nudged elastic band (NEB) calculations. These allow different treatment of the first/last replicas in the NEB chain of replicas, and more control of the way inter-replica forces are calculated and applied, so that better convergence can be achieved.
Metin Aktulga (MSU) and Axel Kohlmeyer (Temple U) added an OpenMP version of the ReaxFF potential USER-OMP package as a pair_style reaxc/omp command.
Paulo Branicio (USC) added a "compute cnp/atom" command for Common Neighborhood Parameter (CNP) analysis of each atom's local environment.
Anders Hafreager (UiO) added a GPU package version of the pair_style vashishta/gpu command.
Removed the pair_style lj/sf command as it was essentially identical to the pair_style lj/smooth/linear command.
BACKWARD COMPATIBILITY: The pair_style lj/sf command was removed.
This patch file can be applied to the 19 May 2017 version. This is the list of changed files.
19 May 2017
New fix python command which allows you to specify a Python method that will get invoked periodically during a simulation. Also a new pair_style python command which allows writing the kernel of a new pairwise pair style in Python code. This can be useful for rapid prototyping or debugging. Both thanks to Richard Berger (Temple U).
New pair_style edip/multi potential. Thanks to Chao Jiang (U Wisconsin).
New pair_style gw and pair_style gw/zbl Gao-Weber potentials. Thanks to German Samolyuk (ORNL).
Bug fix to pair_style morse/smooth/linear to make it continuous at the cutoff. Thanks to Jian Luo (Corning).
Another bugfix to the pair_style airebo potential for corner cases when the spline indexing can go out-of-bounds, e.g. for high-temperature configurations. Thanks to several folks who looked over the change carefully and reported this recent issue on the mail list.
Two neighbor list bug fixes, one for occasional lists that are not copies of a perpetual list due to them sometimes getting out-of-sync with binning of atoms. Also a small bug fix for the fix reaxc/species command.
This patch file can be applied to the 4 May 2017 version. This is the list of changed files.
4 May 2017
Updated and stardardized the documention for all standard and user packages, in Section_packages of the manual. Each package now has info about authors, package contents, how to build LAMMPS with the package including associated internal or external libraries, and what doc pages and other resources (README files, examples, pictures/movies) are provided with the LAMMPS distro or web pages.
Added "lib-package" make targets for packages that have an associated internal or external library, so the the library can be built and/or downloaded from the src directory as part of the build process. The options for each package are documented in Section_packages
BACKWARD COMPATIBILITY: As part of the standardization, the names of a few packages and their commands were changed. Package USER-CG-CMM is now USER-CGSDK. Package USER-NC-DUMP is now USER-NETCDF, and its dump_style nc command is now dump_style netcdf. The dump_style custom/vtk command in package USER-VTK is now dump_style vtk.
This patch file can be applied to the 13 Apr 2017 version. This is the list of changed files.
13 Apr 2017
Fixed a small issue with the python package, introduced in the most recent patch, with respect to the instantiation/destruction of the Python interpreter. It could cause a segfault at the very end of a simulation, when LAMMPS exits.
This patch file can be applied to the 11 Apr 2017 version. This is the list of changed files.
11 Apr 2017
Stefan Paquay (Eindhoven U of Tech, The Netherlands) added bond coefficient options to the fix adapt command.
The name of the new dihedral_style charmmfsh command was changed to dihedral_style charmmfsw. This is to reflect that it should be used with both of the new pair_style charmmfsw commands, for both cutoff and long-range Coulombics.
BACKWARD COMPATIBILITY: As explained above, the dihedral_style charmmfsh command no longer exists. Use the dihedral_style charmmfsw command instead.
This patch file can be applied to the 31 Mar 2017 version. This is the list of changed files.
31 Mar 2017
Minor changes to enable 31Mar17 stable release.
Thanks to Axel Kohlmeyer and Richard Berger (Temple U) for birddogging this process and ensuring as much regression testing and bug fixing as possible was done.
This patch file can be applied to the 28 Mar 2017 version. This is the list of changed files.
28 Mar 2017
We changed the internal units of the Planck constant defined for LJ units, which only affects the fix gcmc command. The change makes it easier to choose an input chemical potential in a more consistent and natural way.
BACKWARD COMPATIBILITY: The internal units for the mu parameter for the fix gcmc command has changed when using LJ units. This means an input script using this parameter will give different results. The fix gcmc doc page explains the difference in units, and how to choose a new value for mu that would reproduce the old behavior.
Oliver Henrich (U Edinburgh) has augmented his USER-CGDNA package with additional pair and bond styles.
This patch file can be applied to the 24 Mar 2017 version. This is the list of changed files.
24 Mar 2017
A couple of bug fixes were made for the fix ave/chunk command for its density/number and density/mass options, which sometimes affected how normalization was performed.
Dan Bolintineanu (Sandia) added an option to treat spherical particles as 2d discs (circles), when time integrated with a rotational moment of inertia. It also affects the particle mass when set as a density parameter. This adds a new option to these commands:
Aidan Thompson (Sandia) added a new fix_modify dynamic/dof option for use with fix rigid/small/nvt and fix rigid/small/npt, which allows them to thermostat correctly when the number of rigid bodies varies dynamically. E.g. when rigid bodies are inserted via the fix gcmc, fix deposit, or fix pour commands.
Aidan also added some fix gcmc examples in a new examples/gcmc dir.
Ya Zhou, Kristen Fichthorn, and Tonnam Balankura (Penn State University) contributed a new pair_style momb command for a many-body metal-organic (MOMB) potential.
Robert Meissner and Lucio Colombi Ciacchi (Bremen U) and Robert Latour (Clemson U) have provided a more accurate implementation of the CHARMM force field for pairwise interactions. Specifically, they implemented the CHARMM-standard force-switching and force-shifting functions for pairwise distances between the inner and outer cutoffs for LJ and Coulombic interactions respectively. These can work better than the energy-switching function used in the original LAMMPS implementation. These are the new commands:
This patch file can be applied to the 17 Mar 2017 version. This is the list of changed files.
17 Mar 2017
Lukas Fath (KIT) added a "fix filter/corotate command implements a mollified impulse method. It can be used the the rRESPA time integrator to extend the maximum timestep size, typically for biomolecular simulations with long-range electrostatics.
Tim Mattox (Engility Corp) fixed an issue with the irregular communication operation in LAMMPS which is used by several commands. On very large processor counts and some MPI implementations it could hang due to blocking communication. For example, when using the MPIIO package which has to redistribute data after its parallel read operations.
This patch file can be applied to the 10 Mar 2017 version. This is the list of changed files.
10 Mar 2017
Changed the inner workings of the RCB option in the balance and fix balance commands with regards to which dimensions they make cuts in. Previously each cut was always in the longest dimension of the current sub-box. For some problems this can lead to very "skinny" sub-boxes which in extreme cases can trigger warnings about sub-domain dimensions being smaller than the neighbor list skin distance. This in turn can lead to poor performance or lost atoms. The new method attempts a cut in all dimensions (2 or 3), and chooses a cut which induces sub-boxes to be more cube-ish (3d) or square-ish (2d). This will hopefully avoid the issue with too-skinny boxes.
Thanks to John Grime (U Chicago) for flagging this issue, sending some test scripts that triggered it, and testing the new version on large simulations.
Added a tlimit option to the fix halt command to allow benchmark runs to be halted after a desired time limit with minmimal overhead.
This patch file can be applied to the 7 Mar 2017 version. This is the list of changed files.
7 Mar 2017
Markus Höhnerbach (RWTH Aachen University) did some nice, careful work to identify a handful of bugs in the implementation of the AIREBO potential in LAMMPS, checking the consistency of forces and energies, and comparing source files to a recent implementation of AIREBO by Steve Stuart's group (Clemson U) in the KIM project's archive of potentials. Hopefully this will fix issues that arise in some systems which users occasionally report.
Peter Gordon (ExxonMobil) extended the neigh_modify exclude molecule command to exclude either intermolecular or intramolecular nonbond neighbor interactions.
Jaap Kroes (Radboud Universiteit) contributed a new pair_style kolmogorov/crespi/z command.
BACKWARD COMPATIBILITY: The neigh_modify exclude molecule command no longer exists. It now has 2 variants: neigh_modify exclude molecule/inter and neigh_modify exclude molecule/intra. The latter was what the molecule option did before.
This patch file can be applied to the 21 Feb 2017 version. This is the list of changed files.
21 Feb 2017
Mitch Wood and Aidan Thompson (SNL) added a high-accuracy SNAP potential for tungsten and tungsten/helium interactions. The potential itself is in the potentials dir; example test scripts are in the examples/snap dir. The fitting procedure (to quantum DFT data) and comparison to previous potentials for tungsten crystal and defect properties are described here http://arxiv.org/abs/1702.07042.
Ray Shan (Materials Design) created Kokkos versions of the class2 bond/angle/dihedral/improper styles.
Some more (relatively minor) refactoring of neighbor lists was done to simply the possible combinations. Also to enable some new neighboring styles to be added, some of which will be useful for future commands we are working on.
The neighbor list enhancements enabled a new cutoff option for the compute rdf command so that g(r) can be calculated for distances further than the pairwise cutoff if desired. As the doc page indicates, this incurs extra communication and neighbor list building, so should be invoked judiciously.
This patch file can be applied to the 13 Jan 2017 version. This is the list of changed files.
13 Feb 2017
Axel Kohlmeyer trimmed down the 3d FFT code we use to eliminate old vendor 1d FFT support that is no longer needed.
Added a molecule option to the compute group/group command command, to allow tallying of energy and force between molecules or within molecules.
Jalil Mahdizadeh submitted a new Tersoff potential for germanium from this paper:
A Mahdizadeh, "Optimized Tersoff empirical potential for germanene", J Mol Graph Model, 72, 1-5 (2017).
This patch file can be applied to the 26 Jan 2017 version. This is the list of changed files.
26 Jan 2017
Various small bug fixes.
This patch file can be applied to the 18 Jan 2017 version. This is the list of changed files.
18 Jan 2017
Oliver Henrich (U Edinburgh) has added a USER-CGDNA package which implements coarse-grained DNA models, which can be used to model sequence-specific DNA strands. These are the new pair and bond and fix commands added by the package:
Example problems are also provide in the examples/USER/cgdna dir.
This patch file can be applied to the 17 Jan 2017 version. This is the list of changed files.
20 Jan 2017
A couple more small bug fixes to the neighbor list refactoring. Hopefully the last of them!
This patch file can be applied to the 17 Jan 2017 version. This is the list of changed files.
17 Jan 2017
Luis Gustavo Vieira Goncalves added an option to the compute coord/atom command to determine "coordination" based on an atom's bond-orientational order parameter with its neighbors. The way this is implemented, other options could be added for a central atom to calculate other properties with respect to its near neighbors to determine "coordination".
Added a line to the error messages LAMMPS generates to include the last input script command that was processed. This can be helpful when debugging an input script.
Fixed a few small bugs with the new neighbor list refactoring that were affecting specific input scripts. Thanks to sevearl users for reporting these issues.
BACKWARD COMPATIBILITY: The compute coord/atom command now takes a cstyle keyword, one of whose options is cutoff, which was the only option before.
This patch file can be applied to the 9 Jan 2017 version. This is the list of changed files.
9 Jan 2017
Lauren Abbott (Sandia) worked with Jacob Wagner from Greg Voth's group at (U Chicago) to create a new fix mscg command. It works with the Voth group's Multi-Scale Coarse-Graining (MS-CG) library, which is freely available on GitHub at this link. The new command uses the library to create coarse-grained force (CG) field parameters via a force-matching method. Thus it can be used in a workflow where an all-atom simulation is performed (e.g. with LAMMPS), its coordinates and forces are mapped to a CG model, an optimized CG force field is derived, and a new CG simulation is performed (again with LAMMPS). See more details on this workflow on the doc page for the fix mscg command and in examples/mscg.
Mike Brown (Intel) added a USER-INTEL accelerated version of the EAM pair style for Intel CPUs and KNL.
This patch file can be applied to the 6 Jan 2017 version. This is the list of changed files.
6 Jan 2017
Stan Moore (Sandia) enabled the kspaces_style pppm/tip4p command to work with triclinic boxes. This also fixes a corner case bug in the TIP4P pair styles, which sometimes occurred when the cutoff is larger than the box size. The code occasioanlly got confused with which H atom images (owned or ghost atoms) to assign to an O atom in the same water molecule.
Added a new fix nvk from Efrem Braun (UC Berkeley). Added a new fix momentum/kk (Kokkos) command from Dan Ibanez (Sandia).
This patch file can be applied to the 21 Dec 2016 version. This is the list of changed files.