LAMMPS
Molecular dynamics software program From Wikipedia, the free encyclopedia
LAMMPS (Large-scale Atomic/Molecular Massively Parallel Simulator) is a molecular dynamics program developed by Sandia National Laboratories.[1] It utilizes the Message Passing Interface (MPI) for parallel communication, enabling high-performance simulations. LAMMPS is a free and open-source software, distributed under the terms of the GNU General Public License.[1] It is available on Linux, Windows, and macOS platforms.
![]() | |
Original author(s) | Steve Plimpton, Aidan Thompson, Stan Moore, Axel Kohlmeyer, Richard Berger |
---|---|
Developer(s) | Sandia National Laboratories Temple University |
Initial release | 1995 |
Stable release | 29August2024
/ August 29, 2024 |
Repository | github |
Written in | C++ |
Operating system | Cross-platform: Linux, macOS, Windows, FreeBSD, Solaris |
Platform | x86, x86-64, ARM, POWER9 |
Size | 534 MB |
Available in | English |
Type | Molecular dynamics |
License | GNU General Public License |
Website | www |
History
LAMMPS was developed in the mid-1990s under a Cooperative Research and Development Agreement between two laboratories from the United States Department of Energy (Sandia National Laboratories and Lawrence Livermore National Laboratory) and three companies (Cray, DuPont, and Bristol-Myers Squibb).[2] The goal was to create a parallel molecular dynamics code capable of running on large supercomputers for materials and biomolecular modeling.[3] Initially written in Fortran, LAMMPS has since been rewritten in C++ to provide more flexibility and ease in adding new features.
Features
Summarize
Perspective
LAMMPS is a highly flexible and scalable molecular dynamics simulator that supports both single-processor and parallel execution through MPI and OpenMP. GPU acceleration is also available. LAMMPS can be run from an input script, as well as a graphical interface GUI.[4] Its modular, open-source C++ design is easy to extend or integrate with other codes or languages like Python. Users can define variables, use loops, and run multiple simulations simultaneously from a single script.[5]
Particle and model types
LAMMPS supports a wide variety of particle and model types, ranging from simple atoms to complex systems like molecules, metals, and granular materials. It also handles finite-size shapes, such as spherical and ellipsoidal particles, point dipole particles, and magnetic spins,[6] and offers the possibility of using hybrid combinations of these particle and model types.[5]
Interatomic potentials
LAMMPS supports a vast array of potentials, including pairwise (e.g., Lennard-Jones, Coulombic), many-body (e.g., EAM, REBO, ReaxFF [7]), machine learning (e.g., ACE, GAP), and specialized models (e.g., TIP4P water). It also accommodates hybrid and overlaid potentials, enabling the combination of multiple potential types in a single simulation.
Ensembles, constraints, and boundary conditions
LAMMPS supports both 2D and 3D systems with orthogonal or non-orthogonal (triclinic) simulation domains. It includes multiple thermostat and barostat choices, such as Nose/Hoover, Berendsen, and Parrinello/Rahman. Different rigid body constraints and advanced algorithms like SHAKE and RATTLE can be combines with additional harmonic forces. Additionally, LAMMPS supports some Monte Carlo move, atom and molecule insertion and deletion, non-equilibrium molecular dynamics (NEMD), and a variety of boundary conditions (e.g., periodic, shrink-wrapped) and walls (static and moving).[2]
Integrators
Several integrators can be used with LAMMPS, including the velocity-Verlet integrator, Brownian dynamics, and rigid body integration. It also supports energy minimization techniques like conjugate gradient, steepest descent, and damped dynamics (FIRE, Quickmin), as well as rRESPA hierarchical timestepping and fixed or adaptive time steps. Additionally, the rerun command allows for post-processing of dump files.[5]
Outputs
LAMMPS provides numerous fix
and compute
commands for monitoring system properties. Thermodynamic data, such as system temperature and energy, is logged, and atom-level information such as positions and velocities can be output via text or binary dump files at chosen intervals. LAMMPS also allows output to be customized for spatial or temporal resolution using chunks, time averaging, or histogramming. The state of the simulation can be saved in text and binary restart files. Additionally, LAMMPS can export atom snapshots in various formats.[5] [4]
Various
For computing efficiency, LAMMPS uses neighbor lists (Verlet lists) to keep track of nearby particles. The lists are optimized for systems with particles that repel at short distances, so that the local density of particles never grows too large.[3]
On parallel computers, LAMMPS uses spatial-decomposition techniques to partition the simulation domain into small 3D sub-domains, one of which is assigned to each processor. Processors communicate and store ghost atom information for atoms that border their subdomain. LAMMPS is most efficient (in a parallel computing sense) for systems whose particles fill a 3D rectangular box with approximately uniform density. Lots of accelerators are supported by LAMMPS, including GPU (CUDA, OpenCL, HIP, SYCL), Intel Xeon Phi, and OpenMP, due to its integration with Trilinos.
Coupling LAMMPS with Other Software
LAMMPS can be coupled with a variety of external analysis tools and visualization engines,[8] including VMD[9] and OVITO.[10] LAMMPS can be coupled with Python libraries for setting up and analyzing simulations, such as MDAnalysis,[11] MDTraj,[12] and ASE. [13] In addition, LAMMPS supports coupling with free energy calculation tools such as PLUMED[14] and the Colvars module.[15]
See also
References
External links
Wikiwand - on
Seamless Wikipedia browsing. On steroids.