Molecular Dynamics

LAMMPS Patch Release 18 September 2020

September 21, 2020
17 min read
blog-LAMMPS-patch_18Sep2020.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 August 2020:

This is the one of the last patch releases with new features before a stable release that is due in 2-3 weeks.

  • New fix pafi to perform langevin or brownian dynamics time integration constrained to a potential hyperplane. Intended to be coupled to the PAFI C++ code (Thomas Swinburne, CNRS /CINaM Marseille and Mihai-Cosmin Marinica, SRMP/CEA Saclay) PR #1472
  • Update of the Kokkos library to version 3.2 (Stand Moore, SNL and the Kokkos developers), PR #2311
  • Updates to KOKKOS package to improve usability with the HIP backend for AMD GPUs (Nick Curtis) PR #2371
  • Update of the USER-COLVARS package to version 2020-09-17 (Giacomo Fiorin, NIH and other Colvars developers) PR #2356, PR #2376
  • Change behavior of fix bond/react to update all charges by default which is the more intuitive behavior. Keywords have been updated to be more intuitive as well (Jake Gissinger, U Colorado) PR #2368
  • Update of dump styles in the COMPRESS package to be consistent with recent changes elsewhere, added support for Zstd compression and the option to set the compression level (Richard Berger, Temple U), PR #2331
  • Use eigensolver contributed to USER-REACTION package to replace the old “jacobi” function to avoid licensing issues. Implement wrapper functions around templated implementation (Andrew Jewett, Scripps), PR #2347
  • Small refactor of fix qeq/reax and its USER-OMP and KOKKOS variants to reduce code replication and allow to add features (Stan Moore, SNL) PR #2354
  • Replace the use of the C-style NULL with the C++11 nullptr keyword, where meaningful. (E. Anne Gunn, Sheridan College) PR #2358
  • Replace numeric constants in Atom and AtomVec classes by symbolic ones via enumerators (Axel Kohlmeyer, Temple U) PR #2360
  • Bugfixes for the GPU package and related CMake/make files (Vsevolod Nikolskiy, HSE University Moscow and Trung Nguyen, Northwestern U), PR #2307, PR #2313, PR #2322, PR #2326
  • Bugfix for Langevin thermostatting inside of multiple fix rigid variants (Trung Nguyen, Northwestern U) PR #2367
  • Refactoring of the C library interface and the Python wrapper for consistency and maintainability, unit test support for the interfaces, decoration of library functions with Doxygen comments for semi-automatic documentation in the manual (Axel Kohlmeyer and Richard Berger, Temple U) PR #2310, PR #2318, PR #2320, PR #2357, PR #2359, PR #2362
  • Update of documentation build system to include Doxygen processing and integration of that output via the “breathe” Sphinx extension inclusion of the Developer Guide in the manual, update and corrections to the CMake support (Axel Kohlmeyer and Richard Berger, Temple U) PR #2309, PR #2312, PR #2327
  • Update headers in the documentation of LAMMPS style commands to be more compact and check for missing index entries (Richard Berger, Temple U) PR #2335
  • Update the compilation related documentation to use the sphinx-tabs extension (in HTML mode only) to make it more compact (Axel Kohlmeyer, Temple U) PR #2348
  • Revised internal and external links in the documentation (Matt Mansell and others) PR #2341
  • Move more convenience functions from classes to the utils namespace, update the code to consistently use the new versions and remove the old, update the manual to include the documentation of those APIs into the developer guide (Axel Kohlmeyer, Temple U) PR #2319, PR #2349
  • Start of a new (and “official”) Fortran library interface and corresponding sphinx API documentation in the programmer guide plus unit tests for implemented APIs (Axel Kohlmeyer, Temple U) PR #2325
  • Update include file conventions and update lists of include files accordingly, add make iwyu target to run the include-what-you-use tool (Axel Kohlmeyer, Temple U) PR #2338
  • Make internal memory usage reporting consistently use the same data type (Axel Kohlmeyer, Temple U) PR #2363
  • Add support to call reset_mol_ids internally from fix bond/react (Jake Gissinger, U Colorado), PR #2240
  • Add RMSD based constraint to fix bond/react (Jake Gissinger, U Collorado, and Andrew Jewett, Scripps, and Yuya Kurebayashi, Tohoku U) PR #2314
  • Refactor of USER-BOCS code to fix memory leaks and memory access issues (E. Anne Gunn, Sheridan College) PR #2274
  • Implementation of force history for Mindlin variants of the granular pair style (Jibril B. Coulibaly, Northwestern U), PR #2196
  • Updated singularity container description files to better support the upcoming stable release (Richard Berger, Temple U) PR #2340
  • Various small updates and corrections (multiple authors) PR #2315, PR #2317, PR #2336, PR #2344, PR #2353, PR #2364, PR #2366, PR #2373, PR #2369, PR #2375

Backward compatibility notice:

  • The default behavior of fix bond/react about how charges are updated is changed and the related keyword is renamed.
  • The LAMMPS C library interface has some modifications that are supposed to be backward compatible. The use of a void ** argument to lammps_open() and similar functions is deprecated and the void * return value should be used instead. Also it implements some symbolic constants that should replace the explicit numbers from previous revisions of the API (the values are unchanged).
  • The LAMMPS python module follows the changes of the C library interface. Data types and dimensions for “extract” functions are queried from the LAMMPS library and automatically applied, but the old style methods setting the data types explicitly should still work for the time being.
  • When using CMake and compiling with the KOKKOS package enabled, the CMakeCache.txt file needs to be removed due to deprecation of variables in the updated Kokkos library CMake scripts

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_18Sep2020.jpg
Molecular Dynamics

LAMMPS Patch Release 18 September 2020

September 21, 202017 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 August 2020:

This is the one of the last patch releases with new features before a stable release that is due in 2-3 weeks.

  • New fix pafi to perform langevin or brownian dynamics time integration constrained to a potential hyperplane. Intended to be coupled to the PAFI C++ code (Thomas Swinburne, CNRS /CINaM Marseille and Mihai-Cosmin Marinica, SRMP/CEA Saclay) PR #1472
  • Update of the Kokkos library to version 3.2 (Stand Moore, SNL and the Kokkos developers), PR #2311
  • Updates to KOKKOS package to improve usability with the HIP backend for AMD GPUs (Nick Curtis) PR #2371
  • Update of the USER-COLVARS package to version 2020-09-17 (Giacomo Fiorin, NIH and other Colvars developers) PR #2356, PR #2376
  • Change behavior of fix bond/react to update all charges by default which is the more intuitive behavior. Keywords have been updated to be more intuitive as well (Jake Gissinger, U Colorado) PR #2368
  • Update of dump styles in the COMPRESS package to be consistent with recent changes elsewhere, added support for Zstd compression and the option to set the compression level (Richard Berger, Temple U), PR #2331
  • Use eigensolver contributed to USER-REACTION package to replace the old “jacobi” function to avoid licensing issues. Implement wrapper functions around templated implementation (Andrew Jewett, Scripps), PR #2347
  • Small refactor of fix qeq/reax and its USER-OMP and KOKKOS variants to reduce code replication and allow to add features (Stan Moore, SNL) PR #2354
  • Replace the use of the C-style NULL with the C++11 nullptr keyword, where meaningful. (E. Anne Gunn, Sheridan College) PR #2358
  • Replace numeric constants in Atom and AtomVec classes by symbolic ones via enumerators (Axel Kohlmeyer, Temple U) PR #2360
  • Bugfixes for the GPU package and related CMake/make files (Vsevolod Nikolskiy, HSE University Moscow and Trung Nguyen, Northwestern U), PR #2307, PR #2313, PR #2322, PR #2326
  • Bugfix for Langevin thermostatting inside of multiple fix rigid variants (Trung Nguyen, Northwestern U) PR #2367
  • Refactoring of the C library interface and the Python wrapper for consistency and maintainability, unit test support for the interfaces, decoration of library functions with Doxygen comments for semi-automatic documentation in the manual (Axel Kohlmeyer and Richard Berger, Temple U) PR #2310, PR #2318, PR #2320, PR #2357, PR #2359, PR #2362
  • Update of documentation build system to include Doxygen processing and integration of that output via the “breathe” Sphinx extension inclusion of the Developer Guide in the manual, update and corrections to the CMake support (Axel Kohlmeyer and Richard Berger, Temple U) PR #2309, PR #2312, PR #2327
  • Update headers in the documentation of LAMMPS style commands to be more compact and check for missing index entries (Richard Berger, Temple U) PR #2335
  • Update the compilation related documentation to use the sphinx-tabs extension (in HTML mode only) to make it more compact (Axel Kohlmeyer, Temple U) PR #2348
  • Revised internal and external links in the documentation (Matt Mansell and others) PR #2341
  • Move more convenience functions from classes to the utils namespace, update the code to consistently use the new versions and remove the old, update the manual to include the documentation of those APIs into the developer guide (Axel Kohlmeyer, Temple U) PR #2319, PR #2349
  • Start of a new (and “official”) Fortran library interface and corresponding sphinx API documentation in the programmer guide plus unit tests for implemented APIs (Axel Kohlmeyer, Temple U) PR #2325
  • Update include file conventions and update lists of include files accordingly, add make iwyu target to run the include-what-you-use tool (Axel Kohlmeyer, Temple U) PR #2338
  • Make internal memory usage reporting consistently use the same data type (Axel Kohlmeyer, Temple U) PR #2363
  • Add support to call reset_mol_ids internally from fix bond/react (Jake Gissinger, U Colorado), PR #2240
  • Add RMSD based constraint to fix bond/react (Jake Gissinger, U Collorado, and Andrew Jewett, Scripps, and Yuya Kurebayashi, Tohoku U) PR #2314
  • Refactor of USER-BOCS code to fix memory leaks and memory access issues (E. Anne Gunn, Sheridan College) PR #2274
  • Implementation of force history for Mindlin variants of the granular pair style (Jibril B. Coulibaly, Northwestern U), PR #2196
  • Updated singularity container description files to better support the upcoming stable release (Richard Berger, Temple U) PR #2340
  • Various small updates and corrections (multiple authors) PR #2315, PR #2317, PR #2336, PR #2344, PR #2353, PR #2364, PR #2366, PR #2373, PR #2369, PR #2375

Backward compatibility notice:

  • The default behavior of fix bond/react about how charges are updated is changed and the related keyword is renamed.
  • The LAMMPS C library interface has some modifications that are supposed to be backward compatible. The use of a void ** argument to lammps_open() and similar functions is deprecated and the void * return value should be used instead. Also it implements some symbolic constants that should replace the explicit numbers from previous revisions of the API (the values are unchanged).
  • The LAMMPS python module follows the changes of the C library interface. Data types and dimensions for “extract” functions are queried from the LAMMPS library and automatically applied, but the old style methods setting the data types explicitly should still work for the time being.
  • When using CMake and compiling with the KOKKOS package enabled, the CMakeCache.txt file needs to be removed due to deprecation of variables in the updated Kokkos library CMake scripts

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