Molecular Dynamics

LAMMPS Patch Release 10 February 2021

February 11, 2021
8 min read
blog-LAMMPS-patch_10Feb2021.jpg

LAMMPS Patch Release Overview

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


Changes since the patch release 24 December 2020:

  • - Add support for machine learning potentials using python frameworks to the MLIAP package (Nicholas Lubbers, LANL, and Aidan Thompson, SNL) PR #2508
  • - Add 'shift' keyword for multiple Tersoff pair style variants to allow adjusting lattice constants in the case of hetero materials (Wengen Ouyang, Tel Aviv University, Davide Mandelli, Istituto Italiano di Tecnologia, Aidan Thompson, SNL) PR #2514
  • - 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
  • - New potential files in version 2 format for the AGNI pair style and support for reading/processing those potential files (James Chapman, Lawrence Livermore National Lab) PR #2479
  • - Update of bundled Kokkos library to version 3.3.1 (Stan Moore, SNL, and the Kokkos developers) PR #2540
  • - Optimizations for running SNAP potentials with KOKKOS on GPUs (Evan Weinberg, Nvidia) PR #2549
  • - Add capability to fix bond/react to have reactions create atoms (Jake Gissinger, NASA) PR #2584
  • - Standardize the way how contributions from fix styles to energy and virial are handled. Remove THERMO_ENERGY fix mask. (Steve Plimpton, SNL) PR #2560
  • - Replace redundant 3-vector inline functions from pair styles and math_vector.h with calls to MathExtra namespace functions. Obsolete math_vector.h and math_complex.h header files that were using common c++ class names without a protecting namespace (Axel Kohlmeyer, Temple U) PR #2558
  • - More granular control over communication for pair style and fixes with KOKKOS (Stan Moore, SNL) PR #2532
  • - Refactor processing of embedded citation strings to make them more visible (Axel Kohlmeyer, Temple U and Steve Plimpton, SNL) PR #2545
  • - Add introspection support for compile time settings of accelerator packages (Axel Kohlmeyer, Temple U), PR #2554
  • - Add ArgInfo class for simpler processing of references to computes, fixes, variables and more. Refactor the code using those (Axel Kohlmeyer, Temple U) PR #2571
  • - Add `utils::strdup()`` convenience function and apply it to many files to collapse repetitive multi-line code to a single line (Axel Kohlmeyer, Temple U) PR #2583
  • - Detect non-ASCII characters in input and try to correct known cases where equivalent UTF-8 characters are used (Axel Kohlmeyer, Temple U) PR #2564
  • - Add version check to the LAMMPS python module so that the version of the python module must match the version in the shared library. (Axel Kohlmeyer, Temple U) PR #2589
  • - Change sign conventions for forward/reverse Fourier transforms in LAMMPS to be aligned with common conventions (Steve Plimpton and Stan Moore, SNL) PR #2506
  • - Move definition of "INVOKED_*" bitmap constants to an enumerator in the compute.h header file for consistency (Axel Kohlmeyer, Temple U) PR #2572
  • - Add to CI checks runs via GitHub Actions (instead of Jenkins on ci.lammps.org): Static code analysis for C++ and Python via CodeQL, and compilation and unit tests on MacOS. (Axel Kohlmeyer and Richard Berger, Temple U) PR #2401
  • - Various small bug fixes, coding style and formatting updates (multiple authors) PR #2547, PR #2553, PR #2555, PR #2557, PR #2559, PR #2561, PR #2562, PR #2565, PR #2566, PR #2567, PR #2569, PR #2576, PR #2579, PR #2580, PR #2582, PR #2586, PR #2591, PR #2592, #2594, #2596

Backward compatibility notice:

  • - the processing and meaning of fix_modify energy and fix_modify virial 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).

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

Topics

blog-LAMMPS-patch_10Feb2021.jpg
Molecular Dynamics

LAMMPS Patch Release 10 February 2021

February 11, 20218 min read

LAMMPS Patch Release Overview

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


Changes since the patch release 24 December 2020:

  • - Add support for machine learning potentials using python frameworks to the MLIAP package (Nicholas Lubbers, LANL, and Aidan Thompson, SNL) PR #2508
  • - Add 'shift' keyword for multiple Tersoff pair style variants to allow adjusting lattice constants in the case of hetero materials (Wengen Ouyang, Tel Aviv University, Davide Mandelli, Istituto Italiano di Tecnologia, Aidan Thompson, SNL) PR #2514
  • - 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
  • - New potential files in version 2 format for the AGNI pair style and support for reading/processing those potential files (James Chapman, Lawrence Livermore National Lab) PR #2479
  • - Update of bundled Kokkos library to version 3.3.1 (Stan Moore, SNL, and the Kokkos developers) PR #2540
  • - Optimizations for running SNAP potentials with KOKKOS on GPUs (Evan Weinberg, Nvidia) PR #2549
  • - Add capability to fix bond/react to have reactions create atoms (Jake Gissinger, NASA) PR #2584
  • - Standardize the way how contributions from fix styles to energy and virial are handled. Remove THERMO_ENERGY fix mask. (Steve Plimpton, SNL) PR #2560
  • - Replace redundant 3-vector inline functions from pair styles and math_vector.h with calls to MathExtra namespace functions. Obsolete math_vector.h and math_complex.h header files that were using common c++ class names without a protecting namespace (Axel Kohlmeyer, Temple U) PR #2558
  • - More granular control over communication for pair style and fixes with KOKKOS (Stan Moore, SNL) PR #2532
  • - Refactor processing of embedded citation strings to make them more visible (Axel Kohlmeyer, Temple U and Steve Plimpton, SNL) PR #2545
  • - Add introspection support for compile time settings of accelerator packages (Axel Kohlmeyer, Temple U), PR #2554
  • - Add ArgInfo class for simpler processing of references to computes, fixes, variables and more. Refactor the code using those (Axel Kohlmeyer, Temple U) PR #2571
  • - Add `utils::strdup()`` convenience function and apply it to many files to collapse repetitive multi-line code to a single line (Axel Kohlmeyer, Temple U) PR #2583
  • - Detect non-ASCII characters in input and try to correct known cases where equivalent UTF-8 characters are used (Axel Kohlmeyer, Temple U) PR #2564
  • - Add version check to the LAMMPS python module so that the version of the python module must match the version in the shared library. (Axel Kohlmeyer, Temple U) PR #2589
  • - Change sign conventions for forward/reverse Fourier transforms in LAMMPS to be aligned with common conventions (Steve Plimpton and Stan Moore, SNL) PR #2506
  • - Move definition of "INVOKED_*" bitmap constants to an enumerator in the compute.h header file for consistency (Axel Kohlmeyer, Temple U) PR #2572
  • - Add to CI checks runs via GitHub Actions (instead of Jenkins on ci.lammps.org): Static code analysis for C++ and Python via CodeQL, and compilation and unit tests on MacOS. (Axel Kohlmeyer and Richard Berger, Temple U) PR #2401
  • - Various small bug fixes, coding style and formatting updates (multiple authors) PR #2547, PR #2553, PR #2555, PR #2557, PR #2559, PR #2561, PR #2562, PR #2565, PR #2566, PR #2567, PR #2569, PR #2576, PR #2579, PR #2580, PR #2582, PR #2586, PR #2591, PR #2592, #2594, #2596

Backward compatibility notice:

  • - the processing and meaning of fix_modify energy and fix_modify virial 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).

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

Topics