LAMMPS - a flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales

Aidan P. Thompson,H. Metin Aktulga,Richard Berger,Dan S. Bolintineanu,W. Michael Brown,Paul S. Crozier,Pieter J. in 't Veld,Axel Kohlmeyer,Stan G. Moore,Trung Dac Nguyen,Ray Shan,Mark J. Stevens,Julien Tranchida,Christian Trott,Steven J. Plimpton
DOI: https://doi.org/10.1016/j.cpc.2021.108171
IF: 4.717
2022-02-01
Computer Physics Communications
Abstract:Since the classical molecular dynamics simulator LAMMPS was released as an open source code in 2004, it has become a widely-used tool for particle-based modeling of materials at length scales ranging from atomic to mesoscale to continuum. Reasons for its popularity are that it provides a wide variety of particle interaction models for different materials, that it runs on any platform from a single CPU core to the largest supercomputers with accelerators, and that it gives users control over simulation details, either via the input script or by adding code for new interatomic potentials, constraints, diagnostics, or other features needed for their models. As a result, hundreds of people have contributed new capabilities to LAMMPS and it has grown from fifty thousand lines of code in 2004 to a million lines today. In this paper several of the fundamental algorithms used in LAMMPS are described along with the design strategies which have made it flexible for both users and developers. We also highlight some capabilities recently added to the code which were enabled by this flexibility, including dynamic load balancing, on-the-fly visualization, magnetic spin dynamics models, and quantum-accuracy machine learning interatomic potentials.Program SummaryProgram Title: Large-scale Atomic/Molecular Massively Parallel Simulator (LAMMPS)CPC Library link to program files: https://doi.org/10.17632/cxbxs9btsv.1Developer's repository link: https://github.com/lammps/lammpsLicensing provisions: GPLv2Programming language: C++, Python, C, FortranSupplementary material: https://www.lammps.orgNature of problem: Many science applications in physics, chemistry, materials science, and related fields require parallel, scalable, and efficient generation of long, stable classical particle dynamics trajectories. Within this common problem definition, there lies a great diversity of use cases, distinguished by different particle interaction models, external constraints, as well as timescales and lengthscales ranging from atomic to mesoscale to macroscopic.Solution method: The LAMMPS code uses neighbor lists, parallel spatial decomposition, and parallel FFTs for long-range Coulombic interactions [1]. The time integration algorithm is based on the Størmer-Verlet symplectic integrator [2], which provides better stability than higher-order non-symplectic methods. In addition, LAMMPS supports a wide range of interatomic potentials, constraints, diagnostics, software interfaces, and pre- and post-processing features.Additional comments including restrictions and unusual features: This paper serves as the definitive reference for the LAMMPS code.References[1]S. Plimpton. Fast parallel algorithms for short-range molecular dynamics. J. Comp. Phys., 117:1–19, 1995.[2]L. Verlet. Computer experiments on classical fluids: I. Thermodynamical properties of Lennard–Jones molecules. Phys. Rev., 159:98–103, 1967.
physics, mathematical,computer science, interdisciplinary applications
What problem does this paper attempt to address?
The problem this paper attempts to address is: many scientific studies in the fields of physics, chemistry, materials science, and related areas require parallel, scalable, and efficient generation of long-term, stable classical particle dynamics trajectories. Under this common problem definition, there are numerous use cases that are distinguished by different particle interaction models, external constraints, and time and length scales ranging from atomic to mesoscopic to macroscopic scales. Specifically, the paper focuses on the following aspects: 1. **Parallel Algorithms**: How to design parallel algorithms to achieve efficient large-scale molecular dynamics simulations. 2. **Flexibility**: How to make LAMMPS a flexible tool that meets user needs while being convenient for developers to extend and improve. 3. **Performance Optimization**: How to optimize the numerous models and functions in LAMMPS to perform well on different hardware. 4. **New Features**: Introducing some recently added new features, such as dynamic load balancing, real-time visualization, magnetic spin dynamics models, and quantum-accuracy machine learning interatomic potential functions. By addressing these issues, LAMMPS aims to become a powerful tool suitable for particle-based materials modeling from atomic to mesoscopic to continuum scales.