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. 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.
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, and offers the possibility of using hybrid combinations of these particle and model types.), 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).
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.
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.
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. 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 ==