Blog

Molecular Dynamics

LAMMPS Stable Release 29 September 2021

September 29, 2021
6 min read
blog-LAMMPS-stable_29Sep2021.jpg

LAMMPS Stable Release Overview

Sandia just released a new stable release for LAMMPS, their popular molecular dynamics simulation program.

Same as the last time, this stable release contains over 4000 commits since the previous stable release. This includes many contributions from beyond the core LAMMPS developers, but also continues the internal refactoring of the code base to make it more consistent and reliable yet also take more advantage of C++ features where they help to simplify the code and easier to modify, maintain, and contribute to.

Read on to view the list of major changes since the last stable release 29 October 2020.

What is LAMMPS used for?

LAMMPS is a classical molecular dynamics (MD) code that models ensembles of particles in a liquid, solid, or gaseous state. It can model atomic, polymeric, biological, solid-state (metals, ceramics, oxides), granular, coarse-grained, or macroscopic systems using a variety of interatomic potentials (force fields) and boundary conditions. It can model 2D or 3D systems with only a few particles up to millions or billions.

LAMMPS can run on single processor laptops or desktops, but is designed for parallel computers using message-passing techniques and a spatial-decomposition of the simulation domain. This includes shared-memory boxes and distributed-memory clusters and supercomputers. Many of its models have versions that provide accelerated performance on CPUs, GPUs, and Intel Xeon Phis. The code is designed to be easy to modify or extend with new functionality.



Interested in getting faster results?
Learn more about LAMMPS Certified GPU Workstations and Servers starting at $4,300


General changes:

  • Continued refactoring of the core LAMMPS code and many packages to increase code reuse, simplify new additions, improve consistency, and benefit from C++11 features. Several convenience functions and classes were added in the process.
  • Reorganization of packages: the "USER" prefix has been dropped, some packages have prefixes to group them (CG-, DPD-, EXTRA-, ML-) and the contents of the USER-MISC package have been moved to appropriate existing or new packages. There are now EXTRA-PAIR, EXTRA-COMPUTE, EXTRA-FIX, EXTRA-DUMP, EXTRA-MOLECULE packages for the less commonly used styles. We recommend that external packages (i.e. those not included in the LAMMPS distribution) adopt a USER- prefix to make them recognizable as external package.
  • Refactored multi-cutoff neighbor list support resulting in significant performance improvements for polydisperse granular systems.
  • Continued improvements to the build systems, especially the CMake based version.
  • Refactored the handling of embedded citation strings to make them more visible.
  • Updates and additions to the programmer guide section of the manual including updated guidelines and information for contributing code to LAMMPS.
  • Add support for using clang-format in the src tree with a configuration file and suitable comments in the source files. This is recommended for new contributions and will be gradually applied to existing .cpp files as the reformatting can interfere with the readability in some cases.
  • Scripts to support building LAMMPS and its documentation via CMake on systems without direct internet access.

Updates and new commands or styles or packages:

  • Expanded support for machine learning potentials in the ML-IAP package and the added ML-HDNNP, ML-PACE, ML-RANN packages
  • New MDI package to allow client/server mode coupling of LAMMPS to other code using the MolSSI Driver Interface API
  • New BROWNIAN package for Brownian dynamics time integration of point and extended particles plus updates for fix propel/self
  • New DIELECTRIC package with boundary element solvers for computing induced charges at interfaces
  • Major refactoring of the REAXFF package to eliminate dead code and inconsistencies, modernize force field file parsing, and correctly handle computing of the virial stress under different settings and with OpenMP
  • Updates to the library interface and corresponding changes to the LAMMPS python module: bug fixes, additional introspection support and support for setting callbacks for fix external and other associated properties with C and Python callbacks/functions possible.
  • Updated GPU package with improved support for OpenCL which enables using the GPU package with GPUs embedded in Intel processors (Iris, UHD, and HD graphics using the "NEO" OpenCL runtime).
  • Diverse updates, performance improvements, and bugfixes for the following packages: DRUDE, PLUMED, COLVARS, KOKKOS, KIM, ML-IAP, SNAP, REACTION
  • Many bugfixes, updates, and individual contributed commands and styles.

Backward compatibility notes:

  • The LAMMPS python module is now a folder with multiple Python script files instead of a single lammps.py file. This should not affect how the module can be used "in-place" by setting environment variables. The python module contains a version check that should help detecting when a LAMMPS shared library that does not match the python module.
  • Multi-cutoff neighbor list and communication is using a new and more flexible code path with a few additional constraints over the old code path, which is still available as a backup that must be explicitly requested.
  • KIM package commands have been reorganized into a single wrapper and multiple sub-commands: kim_<something> has become kim <something>
  • The CMake preset "minimal" has been renamed to "basic". There are no more "make yes/no-standard" and "make yes/no-user" due to the package reorganization; instead "make yes/no-basic" and a "make yes/no-most" targets have been added to reflect the corresponding CMake presets

This release has 2 assets:

  • Source code (zip)
  • Source code (tar.gz)

Visit the release page to download them.


About LAMMPS

LAMMPS (Large-scale Atomic/Molecular Massively Parallel Simulator) a classical molecular dynamics simulation code designed to run efficiently on parallel computers. It was developed at Sandia National Laboratories, a US Department of Energy facility, with funding from the DOE. It is an open-source code, distributed freely under the terms of the GNU Public License (GPL).


Have any questions about LAMMPS or other applications for molecular dynamics? Contact Exxact Today

Free Resources

Browse our whitepapers, e-books, case studies, and reference architecture.

Explore
blog-LAMMPS-stable_29Sep2021.jpg
Molecular Dynamics

LAMMPS Stable Release 29 September 2021

September 29, 2021 6 min read

LAMMPS Stable Release Overview

Sandia just released a new stable release for LAMMPS, their popular molecular dynamics simulation program.

Same as the last time, this stable release contains over 4000 commits since the previous stable release. This includes many contributions from beyond the core LAMMPS developers, but also continues the internal refactoring of the code base to make it more consistent and reliable yet also take more advantage of C++ features where they help to simplify the code and easier to modify, maintain, and contribute to.

Read on to view the list of major changes since the last stable release 29 October 2020.

What is LAMMPS used for?

LAMMPS is a classical molecular dynamics (MD) code that models ensembles of particles in a liquid, solid, or gaseous state. It can model atomic, polymeric, biological, solid-state (metals, ceramics, oxides), granular, coarse-grained, or macroscopic systems using a variety of interatomic potentials (force fields) and boundary conditions. It can model 2D or 3D systems with only a few particles up to millions or billions.

LAMMPS can run on single processor laptops or desktops, but is designed for parallel computers using message-passing techniques and a spatial-decomposition of the simulation domain. This includes shared-memory boxes and distributed-memory clusters and supercomputers. Many of its models have versions that provide accelerated performance on CPUs, GPUs, and Intel Xeon Phis. The code is designed to be easy to modify or extend with new functionality.



Interested in getting faster results?
Learn more about LAMMPS Certified GPU Workstations and Servers starting at $4,300


General changes:

  • Continued refactoring of the core LAMMPS code and many packages to increase code reuse, simplify new additions, improve consistency, and benefit from C++11 features. Several convenience functions and classes were added in the process.
  • Reorganization of packages: the "USER" prefix has been dropped, some packages have prefixes to group them (CG-, DPD-, EXTRA-, ML-) and the contents of the USER-MISC package have been moved to appropriate existing or new packages. There are now EXTRA-PAIR, EXTRA-COMPUTE, EXTRA-FIX, EXTRA-DUMP, EXTRA-MOLECULE packages for the less commonly used styles. We recommend that external packages (i.e. those not included in the LAMMPS distribution) adopt a USER- prefix to make them recognizable as external package.
  • Refactored multi-cutoff neighbor list support resulting in significant performance improvements for polydisperse granular systems.
  • Continued improvements to the build systems, especially the CMake based version.
  • Refactored the handling of embedded citation strings to make them more visible.
  • Updates and additions to the programmer guide section of the manual including updated guidelines and information for contributing code to LAMMPS.
  • Add support for using clang-format in the src tree with a configuration file and suitable comments in the source files. This is recommended for new contributions and will be gradually applied to existing .cpp files as the reformatting can interfere with the readability in some cases.
  • Scripts to support building LAMMPS and its documentation via CMake on systems without direct internet access.

Updates and new commands or styles or packages:

  • Expanded support for machine learning potentials in the ML-IAP package and the added ML-HDNNP, ML-PACE, ML-RANN packages
  • New MDI package to allow client/server mode coupling of LAMMPS to other code using the MolSSI Driver Interface API
  • New BROWNIAN package for Brownian dynamics time integration of point and extended particles plus updates for fix propel/self
  • New DIELECTRIC package with boundary element solvers for computing induced charges at interfaces
  • Major refactoring of the REAXFF package to eliminate dead code and inconsistencies, modernize force field file parsing, and correctly handle computing of the virial stress under different settings and with OpenMP
  • Updates to the library interface and corresponding changes to the LAMMPS python module: bug fixes, additional introspection support and support for setting callbacks for fix external and other associated properties with C and Python callbacks/functions possible.
  • Updated GPU package with improved support for OpenCL which enables using the GPU package with GPUs embedded in Intel processors (Iris, UHD, and HD graphics using the "NEO" OpenCL runtime).
  • Diverse updates, performance improvements, and bugfixes for the following packages: DRUDE, PLUMED, COLVARS, KOKKOS, KIM, ML-IAP, SNAP, REACTION
  • Many bugfixes, updates, and individual contributed commands and styles.

Backward compatibility notes:

  • The LAMMPS python module is now a folder with multiple Python script files instead of a single lammps.py file. This should not affect how the module can be used "in-place" by setting environment variables. The python module contains a version check that should help detecting when a LAMMPS shared library that does not match the python module.
  • Multi-cutoff neighbor list and communication is using a new and more flexible code path with a few additional constraints over the old code path, which is still available as a backup that must be explicitly requested.
  • KIM package commands have been reorganized into a single wrapper and multiple sub-commands: kim_<something> has become kim <something>
  • The CMake preset "minimal" has been renamed to "basic". There are no more "make yes/no-standard" and "make yes/no-user" due to the package reorganization; instead "make yes/no-basic" and a "make yes/no-most" targets have been added to reflect the corresponding CMake presets

This release has 2 assets:

  • Source code (zip)
  • Source code (tar.gz)

Visit the release page to download them.


About LAMMPS

LAMMPS (Large-scale Atomic/Molecular Massively Parallel Simulator) a classical molecular dynamics simulation code designed to run efficiently on parallel computers. It was developed at Sandia National Laboratories, a US Department of Energy facility, with funding from the DOE. It is an open-source code, distributed freely under the terms of the GNU Public License (GPL).


Have any questions about LAMMPS or other applications for molecular dynamics? Contact Exxact Today

Free Resources

Browse our whitepapers, e-books, case studies, and reference architecture.

Explore