Fact-checked by Grok 2 weeks ago

LAMMPS

LAMMPS, standing for Large-scale Atomic/Molecular Massively Parallel Simulator, is an open-source classical (MD) simulation software package focused on materials modeling. Developed primarily by researchers at , it integrates Newton's to model ensembles of particles—ranging from atoms to coarse-grained or continuum entities—in , , or gaseous states across 2D or 3D systems. LAMMPS excels in simulating complex materials like metals, semiconductors, polymers, biomolecules, and granular systems, scaling from a few to billions of particles on single processors or platforms including supercomputers. Its design emphasizes efficiency through spatial decomposition, neighbor lists, and optimizations for short-range interactions, while supporting extensions via modular packages. The development of LAMMPS originated in the mid-1990s under a Cooperative Research and Development Agreement (CRADA) between U.S. Department of Energy laboratories— and —and industry partners including Cray Research, Bristol-Myers Squibb, and , led by Steve Plimpton at Sandia. Initial versions were released in Fortran 77 (1999) and Fortran 90 (2001), incorporating capabilities from related codes like ParaDyn and , before the current C++ codebase was publicly released as on September 1, 2004, under the version 2. Since then, LAMMPS has undergone continuous enhancements, including the addition of many-body potentials like ReaxFF in 2006 and requirements for compatibility by 2020, with the latest stable release on July 22, 2025. Primarily funded by the U.S. Department of Energy, it received an R&D 100 Award in 2018 for its innovations in scalable simulation. Key features of LAMMPS include support for diverse particle types—such as point particles, finite-size atoms, dipoles, and rigid bodies—and a broad array of interatomic potentials, encompassing pairwise (e.g., Lennard-Jones), many-body (e.g., embedded atom method), bond/angle/cosine styles for polymers, long-range electrostatics via Ewald or particle-particle particle-mesh methods, and even machine-learning potentials. It offers flexible simulation controls through input scripts with variables, loops, and conditional logic; various thermodynamic ensembles (e.g., NVE, NVT, NPT); integrators like velocity-Verlet; and boundary conditions for periodic, fixed, or shrink-wrapped systems. Parallel execution leverages the Message Passing Interface (MPI) with optional OpenMP threading, GPU acceleration (via CUDA, HIP, OpenCL, or SYCL), and Intel Xeon Phi support, enabling high performance on distributed-memory clusters. Additional capabilities include atom creation/deletion, diagnostics, and output in formats like XYZ or LAMMPS dump files, with extensibility through a C library interface, Python wrappers, and plugins for custom force fields or models.

History and Development

Origins

Development of LAMMPS began in the mid-1990s under a Cooperative Research and Development Agreement (CRADA) between , , Research, Bristol-Myers Squibb, and . The project aimed to produce a large-scale parallel (MD) code capable of simulating materials on emerging architectures. The coding effort was led by Steve Plimpton at , with the primary goal of creating a flexible tool that could model materials without requiring extensive custom modifications to existing codes. At the time, many MD packages were limited in , often taking hours on vector supercomputers like the for simulations of 10,000 to 100,000 atoms over picoseconds, or inefficient on SIMD machines due to issues with global data structures and short-range forces. LAMMPS was designed to address these constraints by prioritizing parallel efficiency for systems with rapidly changing neighbors, with an initial focus on and granular simulations. Early implementations were written in , emphasizing computational efficiency for large-scale atomic and molecular systems on platforms such as the nCUBE 2 and iPSC/860, achieving up to 90% efficiency for systems with millions of atoms. These pre-2000 versions laid the foundation for extensible force computations and neighbor lists tailored to short-range interactions common in materials modeling. Over time, the code evolved into an open-source C++ version to enhance portability and community contributions.

Key Milestones and Releases

LAMMPS development concluded its initial phase under a Cooperative Research and Development Agreement (CRADA) in 1999 with the release of LAMMPS 99, the final version written in 77. This marked the end of proprietary restrictions from the CRADA between , , and industrial partners including Cray Research, Bristol-Myers Squibb, and . In 2001, LAMMPS transitioned to 90 with the release of LAMMPS 2001, introducing improved to enhance scalability for larger simulations. A major architectural shift occurred in 2004 when LAMMPS was rewritten in C++ and released as under the GNU General Public License version 2 (GPLv2), enabling broader community contributions. This version incorporated elements from related codes, including ParaDyn for dynamic remapping, for short-range interactions, and GranFlow for granular simulations. By 2006, LAMMPS integrated capabilities from Aidan Thompson's code, expanding support for many-body such as the Stillinger-Weber, Tersoff, and ReaxFF models to better handle complex material behaviors. In 2020, the release introduced a requirement for C++11-compatible compilers, aligning with modern software standards to facilitate advanced features while maintaining for core functionality. Recent releases include the version on July 22, 2025 (with an update on November 13, 2025), followed by a feature release cycle beginning on September 10, 2025, which implemented fundamental changes to the build system (raising minimum to 3.20 and restricting the traditional build system) and code structure (including support for and removal of certain packages). This release also built on prior enhancements, such as the addition of the dispersion/d3 pair for D3 corrections with DFT-based potentials in the July 2025 release. Biennial LAMMPS workshops support ongoing development, with the Ninth LAMMPS Workshop and Symposium held August 12-14, 2025, in , featuring tutorials, technical talks, and community discussions.

Contributors and Community

LAMMPS was primarily developed by Steve Plimpton at , who created the initial codebase in the mid-1990s and continues to lead its maintenance. A key contribution came from Aidan Thompson, also at Sandia, who integrated features from his molecular dynamics code into LAMMPS starting in 2006, enhancing its support for reactive force fields and other advanced models. Development and maintenance of LAMMPS have been primarily funded by the (DOE) through programs such as CRADA, LDRD, ASCI, ECP, and others, enabling Sandia-led efforts to sustain and expand the software. This supports core development activities, including optimizations and of new computational methods. Since its release as in 2004 under the GNU General Public License, LAMMPS has fostered global contributions through its repository, where users worldwide submit code enhancements, fixes, and new features. As of May 2025, the core codebase consists of approximately 750 source files totaling around 165,000 lines of C++ code, with over 430 total contributors and a core development team of 12 from five institutions across the and . The LAMMPS community is governed through collaborative channels including the MatSci.org forum (succeeding the lammps-users mailing list), issue trackers for bug reporting and feature requests, and workshops that facilitate and . These mechanisms ensure ongoing engagement, with workshops held roughly every two years in , to discuss advancements and user needs. Recent modernization efforts, detailed in a 2025 publication, have applied contemporary practices to LAMMPS as a code, emphasizing with 92 optional packages for extensibility and comprehensive testing suites. These include automated tests using GoogleTest (achieving about 80% file coverage and 45% line coverage), regression tests via the examples directory, and static tools like Coverity Scan and CodeQL, all integrated with systems such as Jenkins and GitHub runners. This refactoring promotes maintainability, with transitions to modern C++ standards ( since 2020 and planned for late 2025) and a CMake-based build system replacing legacy tools.

Core Architecture and Capabilities

Parallel Computing and Performance

LAMMPS utilizes a spatial-decomposition to enable efficient execution, dividing the simulation domain into rectangular subdomains assigned to individual MPI processes. This approach distributes atoms and computations across processors, with each process responsible for calculating forces on atoms within its subdomain, including interactions with neighboring subdomains via ghost atoms that extend the subdomain boundaries by a cutoff distance. The method minimizes communication overhead by localizing most computations and using MPI point-to-point messages for irregular data exchanges, such as atom migrations during time steps. This design, introduced in the original LAMMPS implementation, supports both and simulations and scales effectively with increasing processor counts. The code supports distributed-memory parallelism through the (MPI) standard, allowing simulations to run across thousands of processors on clusters. For shared-memory systems, LAMMPS incorporates threading to parallelize loops within each MPI process, particularly for force computations and neighbor list builds in supported styles from the OPENMP package. Hybrid parallelism combines MPI across nodes with threads per node, offering flexibility for multi-core architectures; for instance, configurations like 4 MPI tasks per node with 4 threads each can optimize performance on systems with limited interconnect . This hybrid mode is invoked via command-line options or input script commands, with benchmarks showing 5-20% speedups from single-threaded over serial styles in certain scenarios. To leverage accelerators, LAMMPS includes packages for GPU computing via CUDA for NVIDIA hardware, OpenCL for various GPUs, HIP for AMD GPUs, and SYCL for Intel GPUs, as well as support for Intel Xeon Phi co-processors through the INTEL package. The KOKKOS package provides performance portability by abstracting hardware-specific kernels into a single C++ codebase, enabling execution on CPUs, GPUs, and other devices without code modifications; it supports backends like CUDA, HIP, OpenMP, and SYCL. Integrations as of the 2025 releases (stable version 22 July 2025, with updates through November 2025) have enhanced KOKKOS for heterogeneous computing environments, including new features like accelerated fixes for electron stopping and improved multi-device utilization on modern supercomputers. LAMMPS demonstrates strong on exascale supercomputers, achieving parallel efficiencies exceeding 90% for weak (system size proportional to processors), with recent benchmarks (as of 2025) showing performance scaling to over 8,000 nodes on systems like . Load-balancing is addressed through the command, which dynamically adjusts subdomain sizes and shapes—using grid-based or recursive methods—to equalize particle counts or computational weights across processors, mitigating imbalances from uneven densities or hybrid interaction costs. This is particularly useful for interfaces or clustered systems, with rebalancing triggered when load variance exceeds a user-defined threshold, such as 20%. Overall, these optimizations enable LAMMPS to perform efficiently on petascale and exascale machines, with representative benchmarks showing sustained flop rates in the petaflops range for billion-atom systems.

Supported Particle Systems and Models

LAMMPS supports a wide range of particle representations through its atom_style command, enabling simulations of diverse physical systems at the atomic, molecular, and mesoscale levels. The core atomic style provides the minimal attributes for point particles, such as position, velocity, and force, suitable for modeling simple atomic systems like metals, semiconductors, and liquids where particles interact as point masses. For charged systems, the charge style extends this by including charge attributes, allowing simulations of ionic materials or electrolytes. Molecular systems are accommodated by styles like bond, which adds connectivity for bonded interactions in bead-spring polymer models, and molecular, which incorporates angles, dihedrals, and impropers for apolar or uncharged molecules such as hydrocarbons or polymers. The full style combines these with charges, supporting all-atom representations of biomolecules, proteins, and complex organic molecules in aqueous environments. Coarse-grained representations, such as the oxdna style for DNA and RNA strands or template for templated molecular systems, enable mesoscale modeling of larger biomolecular assemblies by reducing detail while capturing essential dynamics. Extended particle representations handle non-spherical or rigid bodies, including the sphere style for finite-size spherical particles with radius, density, and rotational degrees of freedom, commonly used in granular flows or colloidal suspensions. The ellipsoid style adds shape and orientation parameters for aspherical particles, while body allows arbitrary rigid or deformable bodies with internal degrees of freedom, such as polyhedral objects or integrated finite element models. Specialized 2D and 3D rigid body styles, like line for line segments and tri for triangulated surfaces, support simulations of meshed or polygonal particles in lower-dimensional or surface-based systems. Granular and systems are facilitated by granular variants of the sphere style, incorporating and for modeling powders, sands, or bonded particle media, and the style, which combines multiple sub-styles to simulate heterogeneous systems, such as metals interfaced with polymers or atomic regions coupled to coarse-grained domains. Additional extended styles include for point dipole particles in polarizable models, for magnetic spins in ferromagnetic materials, and for surface polarization effects. Mesoscopic methods feature styles like for dissipative particle dynamics in flows, for in fluids, and peri for peridynamic continuum damage modeling, all operating in classical frameworks without quantum mechanical treatments. LAMMPS operates in both and geometries, with particle interactions defined through pair, bond, and other potentials as detailed in subsequent sections.

Force Fields and Interatomic Potentials

LAMMPS supports a wide array of force fields and interatomic potentials to compute atomic forces in molecular dynamics simulations, ranging from simple pairwise interactions to complex many-body and reactive models. These potentials enable modeling of diverse materials, including metals, semiconductors, polymers, and biomolecules, by approximating the potential energy as a function of atomic positions. The implementation allows users to select appropriate styles via the pair_style command, with parameters specified through pair_coeff directives. Pairwise additive potentials in LAMMPS form the foundation for non-bonded interactions, treating forces between atom pairs independently. The Lennard-Jones (LJ) potential, a 12-6 form modeling van der Waals attractions and repulsions, is widely used for and simple fluids; it is implemented with cutoff options like lj/cut for efficiency. The , employing an exponential repulsion and inverse-power attraction, suits ionic solids and alkali halides, available as buck. The , with its exponential form for bond stretching, applies to diatomic molecules and surface interactions, via morse. Coulombic interactions, representing electrostatic forces, are handled pairwise with short-range cutoffs (coul/cut) or long-range summation using Ewald techniques (coul/long with kspace_style ewald) or particle-particle particle-mesh (PPPM) methods (pppm), which accelerate computations for periodic systems by solving in Fourier space. Many-body potentials extend beyond pairwise sums by incorporating environmental dependencies, capturing effects like metallic cohesion and covalent bonding. The Embedded Atom Method (EAM), implemented as eam/alloy or eam/fs, models metals by embedding an atom in the of neighbors, with the energy including a pairwise term and an function; it was developed for fcc metals like and . The Modified Embedded Atom Method (MEAM), via meam, adds angular terms to EAM for directional bonding in and hcp structures, enhancing accuracy for systems like . The Tersoff potential, using tersoff, employs bond-order terms dependent on local coordination for covalent materials such as and , balancing two- and three-body interactions. For reactive systems, ReaxFF (reaxff) simulates bond breaking and formation in hydrocarbons and organics through variable bond orders and charge equilibration, without predefined connectivity. Specialized potentials address coarse-grained or anisotropic systems. Dissipative Particle Dynamics (DPD), via dpd, models mesoscale hydrodynamics in soft matter like polymers by adding conservative, dissipative, and random forces to coarse-grained beads, preserving momentum. The Gay-Berne potential (gayberne) extends LJ for ellipsoidal particles, capturing orientational dependencies in liquid crystals through anisotropic attractions. Water models like TIP3P (tip3p) and SPC (spce) represent rigid three-site molecules with partial charges on hydrogens and oxygen, plus LJ on oxygen, for biomolecular simulations; TIP3P uses a smaller charge and geometry to match liquid properties. LAMMPS facilitates combining potentials through hybrid styles (pair_style hybrid), overlaying interactions like LJ with EAM for mixed systems, or using pair_style hybrid/overlay for additive contributions. Additionally, integration with the Open Knowledgebase of Interatomic Models (OpenKIM) via pair_style kim allows access to a repository of user-contributed, verified potentials, including classical and machine-learned models, by specifying KIM model IDs. Machine learning potentials, treated as advanced types in LAMMPS, include Atomic Cluster Expansion (), Gaussian Approximation Potentials (GAP), and Potentials (N2P2 or Behler-Parrinello), enabling high-fidelity predictions for complex materials without explicit functional forms.

Simulation Methods

Boundary Conditions, Ensembles, and Constraints

LAMMPS supports a variety of conditions to define the and particle interactions at its edges, enabling simulations in both two-dimensional () and three-dimensional () spaces. In simulations, conditions are specified independently for each pair of opposing faces (x, y, z directions) using the boundary command. The primary types include periodic boundaries (p), where particles exiting one face re-enter through the opposite face, allowing seamless interactions across the ; fixed boundaries (f), which maintain constant face positions and delete atoms that cross them (unless lost atoms are ignored via thermo_modify lost ignore); and shrink-wrapped boundaries (s), which dynamically adjust face positions to encompass all atoms, with a variant (m) enforcing a minimum distance based on the initial size to prevent collapse. For simulations, the z-dimension defaults to periodic boundaries to simulate a slab . LAMMPS also accommodates triclinic (non-orthogonal) es through tilt factors (xy, xz, yz), where periodic boundaries account for shear deformations, and shrink-wrapped boundaries apply to tilted faces, facilitating simulations of anisotropic systems like sheared fluids. Thermodynamic ensembles in LAMMPS control the simulation's conserved quantities and environmental coupling, implemented via "fix" commands that integrate with time-stepping algorithms. The microcanonical (NVE) ensemble, corresponding to constant number of particles (N), volume (V), and (E), uses the fix nve command to perform velocity-Verlet integration on atom positions and velocities without external thermostats or barostats, preserving total for isolated systems. The canonical (NVT) ensemble maintains constant N, V, and (T) using thermostats such as Nose-Hoover, implemented via fix nvt, which introduces an extended dynamical variable η to couple the system to a heat bath; the thermostat evolution follows \frac{d\eta}{dt} = \frac{T - T_\text{target}}{Q}, where T is the instantaneous temperature, T_target is the desired temperature, and Q is the thermostat mass parameter, typically set to allow damping over ~100 timesteps. Alternatively, the Langevin thermostat (fix langevin) adds stochastic forces and frictional drag to mimic viscous solvent effects, with damping parameter τ_damp controlling relaxation (e.g., 100 femtoseconds for water-like systems). The isothermal-isobaric (NPT) ensemble extends NVT by coupling to pressure (P) via barostats in fix npt, using Nose-Hoover chains to adjust box volume and shape anisotropically (aniso or tri keywords) while targeting a reference pressure, with damping times ~1000 timesteps for stability. Rigid body variants (e.g., fix rigid/nvt, fix rigid/npt) integrate these ensembles for constrained systems, accounting for removed degrees of freedom. Constraints in LAMMPS enforce physical restrictions on atomic motion, often to model molecular rigidity or confinement, applied through dedicated fix commands during dynamics or minimization. Bond, angle, and dihedral constraints are handled by fix shake or fix rattle, which iteratively solve for constraint forces to maintain specified lengths and angles (e.g., in molecules), allowing larger timesteps (up to 2 fs); SHAKE adjusts positions via Lagrange multipliers, while RATTLE additionally constrains velocities to avoid drift, both converging within a tolerance like 10^{-4} over 20 iterations. Rigid body constraints via fix rigid or fix rigid/small treat atom clusters as indivisible units, computing center-of-mass forces and torques for collective motion, compatible with NVE, NVT, and NPT ensembles by adjusting thermodynamic . Confinement is achieved with walls, such as planar (fix wall/reflect for elastic bounces or fix wall/lj93 for Lennard-Jones interactions) or spherical (fix wall/region with cylindrical/spherical regions), which bound particles and can move dynamically (e.g., oscillating or rotating) to simulate interfaces or pores. For non-equilibrium (NEMD), LAMMPS enables transport property calculations by applying external drives, such as shear via fix deform to strain the box at controlled rates, combined with SLLOD in fix nvt/sllod to the peculiar profile and compute viscosity from stress-strain relations. Thermal conductivity is assessed using fix thermal/conductivity for reverse NEMD, swapping velocities across slabs to impose . methods supplement MD for reactive or compositional sampling; fix atom/swap performs atom-type exchanges with a at specified , while fix bond/swap swaps s in polymers for equilibration, and fix gcmc enables grand canonical insertions/deletions of atoms or molecules, including reactions via template-based swaps in the REAX package. These integrate with MD timestepping for simulations, such as reactive force fields. As of the 22 July 2025 release, enhancements include fix hmc for and fix neighbor/swap for MD/kMC simulations.

Time Integration and Algorithms

LAMMPS employs the velocity-Verlet algorithm as its primary time integration scheme for simulations, implementing the velocity form of the Störmer-Verlet method to update atom positions and velocities while conserving energy in the . This integrator is invoked through fixes such as fix nve, which performs the updates during each timestep without additional thermodynamic manipulations. The algorithm proceeds in sub-steps per timestep: an initial half-step velocity update, a full position update using the half-step velocity, force computation from the new positions, and a final half-step velocity update. The core updates in the velocity-Verlet scheme are given by the following equations, where \mathbf{r}(t) is the position at time t, \mathbf{v}(t) is the , \mathbf{a}(t) is the derived from forces at time t, and \Delta t is the timestep size: \mathbf{v}(t + \Delta t/2) = \mathbf{v}(t) + \frac{\Delta t}{2} \mathbf{a}(t) \mathbf{r}(t + \Delta t) = \mathbf{r}(t) + \Delta t \cdot \mathbf{v}(t + \Delta t/2) (Forces and accelerations are then recomputed at the new positions to obtain \mathbf{a}(t + \Delta t), followed by) \mathbf{v}(t + \Delta t) = \mathbf{v}(t + \Delta t/2) + \frac{\Delta t}{2} \mathbf{a}(t + \Delta t) These equations ensure time-reversible dynamics and second-order accuracy, making the method suitable for a wide range of atomic and molecular systems. The full timestep cycle also involves clearing and recomputing forces from pairwise, bonded, and long-range interactions after the initial integration. As of the 22 July 2025 release, enhancements include new fix styles for bosonic path integral molecular dynamics. For overdamped systems, LAMMPS supports through the fix langevin command paired with fix nve, which adds frictional drag and random forces to model implicit , effectively neglecting inertial terms in Newton's equations. The drag is \mathbf{F}_f = -\gamma \mathbf{v}, where \gamma = m / \text{damp} and damp is a user-specified parameter, while the random scales with \sqrt{k_B T m / (\text{damp} \Delta t)} to maintain the target . integration is handled by fixes like fix rigid/nve, which apply specialized algorithms to treat clusters of atoms as rigid units, using methods such as those in Miller et al. (2002) for improved in constant-volume simulations. Energy minimization in LAMMPS relaxes atomic configurations to local energy minima using several algorithms specified via the min_style command. The conjugate gradient (cg) method employs the Polak-Ribiere , iteratively updating the search by combining the current with the previous , orthogonalizing when progress stalls. For damped dynamics approaches, quickmin applies a parameter based on the projection of velocities onto forces, initializing velocities to zero for steepest descent-like relaxation. The fire style extends this with a timestep and velocity rescaling to retain components parallel to forces, enhancing efficiency for complex energy landscapes, particularly in nudged elastic band calculations. To handle systems with disparate force timescales, LAMMPS implements the reversible reference-system propagator algorithm (rRESPA) via the run_style respa command, enabling multi-level hierarchical timestepping where inner loops use smaller timesteps for fast motions like bonds, and outer loops for slower interactions like non-bonded forces. Loop factors define the ratio of timesteps across levels, with defaults placing bonded interactions at the innermost level and pairwise/ at the outermost; this is based on the formulation in Tuckerman et al. (1992). Adaptive timestepping is available through fix dt/reset, which recomputes the timestep every N steps to cap the maximum atomic displacement at Xmax, using a conservative estimate from current velocities and forces, bounded by user-defined minimum and maximum values. The rerun mode, invoked by the rerun command, allows reprocessing of atom snapshots from dump files with updated force fields or parameters, effectively restarting dynamics without full simulation overhead by computing new forces on pre-stored trajectories. This facilitates diagnostics or potential changes mid-analysis, reading snapshots sequentially and triggering zero-timestep runs for force evaluations.

Atom Manipulation and Initialization

LAMMPS provides several mechanisms for initializing atomic configurations, allowing users to set up simulations with precise control over atom positions, types, and properties before dynamics commence. Initial setups can be achieved by reading pre-defined coordinates from input files or generating atoms programmatically within the simulation . These methods ensure compatibility with various particle models, such as or molecular systems. The primary method for importing atom coordinates is the read_data command, which loads data from an ASCII or gzipped file in LAMMPS's standard . This file specifies the simulation dimensions, atom types, and the "Atoms" section containing coordinates (x, y, z) along with properties like atom ID and type, depending on the chosen atom_style (e.g., or charge). Coordinates outside the are wrapped into it for periodic boundaries, enabling flexible initialization of complex structures. For formats like , external tools such as Atomsk are commonly used to convert files to LAMMPS-compatible data files before reading. The command supports multiple invocations with keywords like add append to incrementally build systems by appending atoms from additional files, adjusting IDs via offset, or shifting positions with shift. Atom creation without external files begins with the lattice command, which defines a periodic structure as a foundation for subsequent atom placement. Supported styles include simple cubic (sc), body-centered cubic (bcc), face-centered cubic (fcc), hexagonal close-packed (hcp), and custom lattices, each with a specified scale factor representing the in distance units or reduced density for Lennard-Jones units. For instance, lattice fcc 3.615 sets up an FCC with a spacing of 3.615 , suitable for metals like . Keywords like orient allow rotation of lattice vectors, while basis positions multiple atom types within the unit cell, facilitating the initialization of multi-component crystals. This is then used by other commands to populate the box. The create_atoms command leverages the defined lattice or other methods to insert atoms into specified regions of the simulation box. It supports styles such as box to fill the entire box with atoms, region to target a geometric volume (e.g., a or defined via the region command), random to place a specified number of atoms at random positions with overlap checks, or single for precise placement at given coordinates. For example, create_atoms 1 region disk adds type-1 atoms on the within the "disk" , with options like basis 1 0.0 0.0 0.0 to select specific positions. An overlap distance keyword prevents atom clashes during insertion, ensuring valid initial configurations. This command serves as an alternative to file-based input for generating uniform or patterned structures. To scale up small initial systems, the replicate command duplicates the current by factors nx, ny, nz in each dimension, multiplying the count accordingly (e.g., 2x2x2 yields 8 times more ). It preserves properties like velocities and bonds, reassigning IDs and partitioning the enlarged across processors. Keywords such as bbox optimize for large replications, making it ideal for extending periodic cells into larger simulation domains during setup. Post-creation manipulation refines the atomic arrangement using commands like displace_atoms, set, and delete_atoms. The displace_atoms command shifts a group of atoms via styles including move for uniform translation (e.g., displace_atoms all move 0.0 0.0 5.0), ramp for position-dependent displacement along a dimension, random for Gaussian perturbations with a seed, or rotate around a specified axis by an angle in degrees. Displacements are applied in lattice or box units and remap atoms into periodic boundaries, useful for introducing initial strains or randomizing lattice positions. The command assigns or modifies per-atom attributes, such as type, charge, or mass, targeting selections by atom ID range (e.g., *), type (e.g., type 1-3), group, region, or molecule ID. For initialization, set type 2 changes all atoms to type 2, altering interaction potentials, while set charge * 1.0 assigns a uniform charge; variables enable spatially varying values (e.g., set charge * v_myvar). Fraction-based setting, like set type/fraction 2 0.5 12345, randomly assigns types to a subset of atoms, supporting probabilistic setups. This command requires communication across processors for consistency in parallel runs. As of the 12 June 2025 update, a new fix set command has been added for dynamic attribute modifications during simulation. Atom removal is handled by delete_atoms, which eliminates specified atoms to create voids or eliminate overlaps. Styles include group to delete all in a group-ID, region to target a volume (with mol yes for entire molecules), overlap to remove one atom from close pairs within a cutoff (e.g., 1.0 Å), random to delete a fraction or count of atoms with a seed, or variable for conditional removal. Keywords like compress yes reassigns IDs sequentially, and bond yes breaks associated bonds, ensuring clean configurations after deletion. For example, delete_atoms overlap 0.5 all all resolves initial overlaps in dense packings. As of the 10 September 2025 update, a "condense" option has been added to further compress atom IDs. For meshing purposes, LAMMPS includes the compute voronoi/atom command, which performs a Voronoi tessellation of atom positions using the Voro++ library to divide space into cells closer to each atom than others. It outputs per-atom arrays with cell volume (in distance cubed units), number of faces (indicating neighbors), and optionally surface area, restricted to a group or all atoms. Options like radius adjust for polydisperse particles via atom-style variables. This computation aids in analyzing or meshing atomic structures by providing geometric decompositions, though it requires the VORONOI package. Dynamic modifications during allow ongoing addition via the fix deposit command, which inserts single s or molecules every M timesteps until N insertions, typically for deposition processes. Insertions occur in a specified (e.g., above a surface), with near R ensuring minimum from existing s, and ranges set via vxlo vxhi. For molecules, a template-ID defines the . Random seeds control placement attempts, with units in or box coordinates; failed insertions trigger warnings but continue. An example is fix dep all deposit 1000 1 10 12345 [region](/page/Region) above near 1.0, adding 1000 type-1 s over time. This fix integrates with timestepping without affecting computations.

Outputs and Analysis

Data Output Formats

LAMMPS provides several mechanisms for exporting simulation data during runs, enabling users to capture progress, atomic configurations, and state information for later or continuation. These outputs are controlled through input commands, with flexibility in , , and content to accommodate diverse computational needs. Log files serve as the primary record of simulation progress, outputting timestep-by-timestep summaries of key thermodynamic quantities such as total energy, , components (e.g., pairwise, bond, angle), , pressure, and volume. By default, LAMMPS writes this information to both the screen and a file named "log.lammps" in a human-readable text , with styles like "one" for a single line per timestep or "multi" for detailed multi-line breakdowns. The thermo command dictates the output (e.g., every N timesteps), and customization is achieved via the thermo_style custom option, which allows inclusion of user-defined quantities derived from compute or fix commands, such as specific stress tensor components or custom variables. Dump files capture detailed snapshots of the atomic system at specified intervals, preserving per-atom data like positions, velocities, forces, types, charges, and image flags (for unwrapping coordinates across periodic boundaries). The dump command supports a variety of formats tailored to different visualization and analysis tools: text-based options include XYZ for simple coordinate dumps compatible with molecular viewers, ATOM for extended per-atom properties, custom for user-selected attributes, and extxyz (added as of April 2025) for extended XYZ format with additional metadata; binary formats like DCD and XTC offer compact storage for trajectories; HDF5 (via h5md style) enables hierarchical data organization with metadata; and VTK facilitates volume rendering of grid-based data. Parallel I/O is integrated for scalability, using filename wildcards (e.g., "dump.%") to distribute output across processors, though not all formats (e.g., XYZ, VTK) support this natively. Output frequency is adjustable via the every keyword or variables, allowing irregular intervals based on simulation conditions. As of June 2025, LAMMPS also supports JSON format for structured input and output of simulation data. Restart files store the full simulation state in binary format, enabling seamless continuation of interrupted runs from exact timesteps. Generated by the restart command at multiples of a specified interval (e.g., every 1000 steps), these files include atom coordinates, velocities, forces, and simulation parameters like box dimensions and neighbor lists, but exclude certain dynamic elements (e.g., some fixes) that must be re-specified in the input script. Parallel I/O is supported through wildcards in filenames, with options to control the number of files (e.g., one per processor group) for efficient writing on large-scale systems. Compression enhances efficiency for voluminous outputs, with LAMMPS supporting (via .gz suffix) for text-based dump and restart files, and (Zstd, via .zstd) for high-ratio compression in modern formats. These options reduce storage demands without altering the core data structure, and variable output frequency further optimizes by triggering writes only when needed, such as after equilibration phases. Custom thermodynamic dumps, often integrated with dump files, leverage compute and fix outputs for specialized summaries like per-atom energies or stress profiles. Such formats are commonly used in post-processing workflows for trajectory analysis.

Diagnostics and Post-Processing

LAMMPS provides a suite of diagnostic tools for computing quantities during s, enabling users to monitor and analyze system properties without interrupting the primary dynamics. These tools include computes for calculating instantaneous values such as per-atom or global metrics, and fixes for applying time-dependent modifications to the . Additionally, commands allow querying the current state of the , while post-processing options facilitate of saved externally or through re-runs. Computes in LAMMPS calculate and store global, per-atom, local, or per-grid quantities derived from the atom positions, velocities, and forces. Per-atom computes produce values for individual atoms, such as the stress tensor via the compute stress/atom command, which computes the symmetric per-atom tensor with six components stored as a per-atom . Coordination numbers can be determined using the compute coord/atom command, which counts neighboring atoms within a specified cutoff distance for each atom in a group, yielding a per-atom vector. Global computes provide system-wide properties; for example, the compute rdf command calculates the (RDF) and coordination number for a group of particles by binning pairwise distances. Another key global compute is compute msd, which estimates the mean-squared displacement () of atoms in a group, accounting for periodic boundaries: \text{MSD} = \left\langle \left( \mathbf{r}(t) - \mathbf{r}(0) \right)^2 \right\rangle where the is taken over the atoms in the group and unwrapped trajectories to handle across boundaries. Fixes enable dynamic adjustments during the simulation, including time-dependent computations that modify or quantities. The fix ave/time command performs time averaging of global, per-atom, or local quantities from specified inputs, such as computes or thermodynamic data, outputting averaged values at regular intervals to the screen or a file. For instance, it can or over multiple timesteps to reduce noise in statistical data. The fix deform command applies straining to the simulation box, allowing controlled deformation such as uniaxial extension or , which is useful for studying responses under applied . Introspection in LAMMPS is supported through commands that query and report the internal state of the . The thermo_style command customizes the output of thermodynamic information printed during the run, specifying quantities like energy, temperature, or pressure in formats such as "one" for single-line summaries or "multi" for detailed multi-line reports. The info command provides detailed diagnostics on the current LAMMPS process, including details on active computes, fixes, variables, and parameters, aiding in and validation of input scripts. Post-processing in LAMMPS extends analysis beyond the initial run using external tools and built-in re-analysis capabilities. The Pizza.py toolkit, a Python 2-based collection developed at , offers utilities for visualization and data manipulation of LAMMPS outputs, including wrappers for integrating with molecular viewers like PyMOL for rendering atomic structures and VMD for real-time display of trajectories; a Python 3-compatible fork known as Pizza3 is available for modern environments. The rerun command allows re-processing of dump files from a previous without recomputing the , enabling the application of new computes or fixes to archived snapshots for efficient exploration of alternative analyses.

Extensions and Integrations

Coupling with Other Software

LAMMPS supports integration with external software through multiple interfaces, enabling hybrid simulations that combine molecular dynamics with other computational methods. These couplings facilitate , where LAMMPS handles atomic-scale interactions while interfacing with continuum or codes. The primary mechanisms include library embedding, message-passing standards, scripting wrappers, and dynamic plugins, allowing flexible incorporation without extensive code modifications. In library mode, LAMMPS can be compiled as a static or and embedded into larger applications using , , , or wrappers. This approach allows external codes to drive LAMMPS simulations by invoking its functions, such as executing commands via strings or files and extracting simulation data like atom positions and forces. The library API, defined in library.h, uses opaque handles for LAMMPS instances and supports thread-safe operations when using appropriate MPI communicators. wrappers leverage ISO_C_BINDING for seamless integration, while provides direct class access for advanced users. This mode is particularly useful for tightly coupled systems where LAMMPS serves as a computational engine within a application. The Driver Interface (MDI) provides a standardized for between LAMMPS and other codes, operating in a client-server model over MPI or sockets. LAMMPS can act as either a (client), sending requests for like forces or energies, or an engine (), responding to incoming queries. This enables hybrid simulations, such as quantum mechanics/ (QM/MM) setups, where LAMMPS computes classical forces on surrounding atoms while a quantum code handles a reactive region. Examples include direct interfaces with for and tools like PySCF or NWChem via wrappers included in the LAMMPS distribution. The MDI package in LAMMPS supports fixes like fix mdi/qm and fix mdi/qmmm to manage these interactions during timesteps. Python integration enhances LAMMPS's extensibility through the lammps module, which wraps the C library API using the ctypes module for dynamic loading. Users can instantiate a lammps object to run simulations from Python scripts, execute commands interactively, and access internal data via methods like extract_compute() for real-time analysis during runs. This supports scripting workflows, such as automating parameter sweeps or embedding LAMMPS within larger Python-based applications, and allows call-outs to external Python code mid-simulation using the python command. The module ensures compatibility with parallel execution via mpi4py, making it suitable for high-performance computing environments. Practical examples of these couplings include hybrid molecular dynamics-finite element method (MD-FEM) simulations, where atom positions from LAMMPS inform boundary conditions in a finite element solver, which in turn returns interpolated forces to LAMMPS atoms. Another application is via MDI, such as LAMMPS with quantum codes for concurrent atomistic-continuum simulations. Additionally, the VORONOI package demonstrates fix-based by integrating the Voro++ to compute Voronoi tessellations during LAMMPS runs. LAMMPS's plugin system allows users to extend functionality without recompiling the core executable by loading dynamic shared object (DSO) files at . The plugin command supports loading, unloading, listing, and clearing , which can add new styles for pairs, fixes, or commands. are loaded globally and persist across LAMMPS instances, with automatic discovery via the LAMMPS_PLUGIN_PATH . This mechanism is ideal for incorporating user-developed or third-party extensions, such as custom potentials, while maintaining binary compatibility with the PLUGIN package.

Machine Learning Features

LAMMPS supports a range of machine learning interatomic potentials (MLIPs) through dedicated interfaces, enabling the integration of advanced, data-driven models into molecular dynamics simulations for improved accuracy and efficiency over traditional empirical potentials. These interfaces facilitate the use of potentials such as the Atomic Cluster Expansion (ACE), Adaptive Gradient Neural Inference (AGNI), Gaussian Approximation Potential (GAP), Neural Network Potential package version 2 (N2P2) based on Behler-Parrinello neural networks, Polynomial Invariant Driver (POD), Rapid Artificial Neural Network (RANN), and Spectral Neighbor Analysis Potential (SNAP). A key enhancement in 2025 is the ML-IAP package's integration with via the Kokkos performance portability library, allowing scalable AI-driven on multi-GPU architectures. This framework supports general machine-learning , including PyTorch-based models, and requires the ML-SNAP package for installation, with 3.6+ and for the mliappy model coupling. For training and deployment, the chemtrain-deploy framework, released in July 2025, provides a parallel and scalable tool for developing and integrating machine learning potentials with LAMMPS, supporting any JAX-defined semi-local potential to enable million-atom simulations. LAMMPS incorporates tools for propagating uncertainties from MLIPs into simulations, particularly through interfaces like HIPPYNN, which offers ensemble-based uncertainty estimation and a unified MLIAP interface for LAMMPS, and ChIMES, which supports LAMMPS integration for physics-informed potentials with uncertainty handling. The 2025 LAMMPS Workshop and Symposium, held August 12-14, featured sessions on machine learning-accelerated simulations, including applications to high-throughput nanocarbon synthesis strategies and property prediction for industrial uses.

Applications

Materials Science and Beyond

LAMMPS has been extensively applied in for atomic and molecular simulations of diverse systems, enabling researchers to model complex interactions at the nanoscale. In metals, it facilitates studies of dislocation-mediated plasticity and mechanical alloying, such as in bulk systems with up to 2 billion atoms using the Embedded Atom Method (EAM). For semiconductors, LAMMPS supports potentials to investigate properties like phase transitions in . Polymer simulations leverage bead-spring models with finitely extensible nonlinear elastic (FENE) bonds to explore chain dynamics and melts, while nanocomposites are modeled for thermomechanical behavior. Beyond traditional solids, LAMMPS excels in granular simulations, capturing , packing, and in powders through pair granular styles that track history. These capabilities have been used to model packs with hundreds of thousands of particles. In biological contexts, LAMMPS performs all-atom simulations of and lipid membranes using biomolecular force fields like and HIPPO, as well as coarse-grained models for interactions. Energy-related applications highlight LAMMPS's role in simulating electrolytes and fuel cells, particularly with the reactive force field ReaxFF for dynamic chemical reactions. Emerging uses encompass nanocarbon synthesis and high-throughput polymer property prediction, accelerated by integrations, as demonstrated in recent workshops. Extending to and colloidal systems, LAMMPS models in and via coarse-grained approaches, alongside DLVO potentials for colloidal interactions and stratification in binary solvents. Recent applications include accelerating charge estimation in simulations for corrosive environments using reduced-order models (as of February 2025) and fine-tuning universal machine-learned for computational materials modeling (as of June 2025).

Validation and Benchmarks

LAMMPS incorporates an extensive built-in testing framework to ensure code correctness and functionality across its core features and optional packages. The unit test infrastructure, integrated into the source code distribution, includes automated scripts for , run, and legacy , maintained in a dedicated repository. These tests cover a wide range of capabilities, including over 40 optional packages, with nightly runs performed on multiple platforms to detect issues in new developments or builds. The tester tool, located in the tools/regression-tests subdirectory, launches LAMMPS binaries on predefined input scripts and compares outputs against reference data to validate consistency. Performance benchmarks in LAMMPS focus on scalability and efficiency, using standard test cases such as the Lennard-Jones (LJ) fluid for simple pairwise interactions and embedded atom method (EAM) potentials for metals like . These benchmarks demonstrate strong scaling on fixed-size systems, such as 32,000 atoms across increasing processor counts, and weak scaling on per-processor loads, like 32,000 atoms per core up to 1 billion atoms on 32,000 processors. Representative results show parallel efficiencies exceeding 50% for strong scaling and 80% for weak scaling on large supercomputers, with simulations handling up to 40 billion atoms on 64,000 cores in under 600 seconds. Such tests establish LAMMPS's capability for massive , with performance measured in seconds per atom per timestep (e.g., 7.02 × 10^{-7} sec/atom/step for LJ fluid). Weak scaling efficiency is quantified as \eta = \frac{T(N_0, p_0)}{T(N_0 \cdot p / p_0, p)} \cdot \frac{p}{p_0}, where T(N, p) is the runtime for N atoms on p processors, N_0 is the base problem size, and p_0 is the reference processor count; this metric highlights sustained performance as system size and processors scale proportionally. Verification of LAMMPS simulations emphasizes accuracy against known analytical solutions and standardized potential tests. For instance, computed virial coefficients from LJ fluid simulations are compared to analytical expressions to validate thermodynamic properties, with discrepancies typically below 1% in controlled tests. Integration with OpenKIM provides rigorous testing for interatomic potentials, including over 2,600 property tests (e.g., elastic constants, phonon dispersion) and 10 verification checks for implementation integrity, ensuring models predict physical properties within expected tolerances when run through LAMMPS. These checks help identify bugs in potential implementations and confirm transferability across material systems. For (MLIPs), integrated via the and MLIAP package, validation focuses on , where approaches like enable error estimation in predictions, maintaining DFT-level accuracy (e.g., <5 meV/atom RMSE) while quantifying uncertainties in out-of-distribution structures like silicon defects (as of August 2024).

References

  1. [1]
    LAMMPS Molecular Dynamics Simulator
    LAMMPS is a classical molecular dynamics code with a focus on materials modeling. It's an acronym for Large-scale Atomic/Molecular Massively Parallel Simulator.LAMMPS documentation · Download LAMMPS · LAMMPS Tutorials · Picture gallery
  2. [2]
    1.1. Overview of LAMMPS
    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, ...Missing: software | Show results with:software
  3. [3]
    LAMMPS – Center for Computing Research (CCR)
    LAMMPS, an acronym for Large-scale Atomic/Molecular Massively Parallel Simulator, is a classical molecular dynamics code with a focus on materials modeling.
  4. [4]
    LAMMPS History
    ### Summary of LAMMPS History
  5. [5]
    1.3. LAMMPS features
    General features · Particle and model types · Interatomic potentials (force fields) · Atom creation · Ensembles, constraints, and boundary conditions · Integrators.Missing: software | Show results with:software<|control11|><|separator|>
  6. [6]
    How to Modify LAMMPS: From the Prospective of a Particle Method ...
    LAMMPS is a powerful simulator originally developed for molecular dynamics that, today, also accounts for other particle-based algorithms such as DEM, SPH, ...
  7. [7]
    Fast Parallel Algorithms for Short-Range Molecular Dynamics
    Mar 1, 1995 · Three parallel algorithms for classical molecular dynamics are presented. The first assigns each processor a fixed subset of atoms.
  8. [8]
  9. [9]
    Releases · lammps/lammps - GitHub
    Aug 27, 2025 · This release starts the new development cycle of LAMMPS and implements some fundamental changes relative to the 22 July 2025 stable release:.Missing: history milestones<|separator|>
  10. [10]
    LAMMPS Workshop and Symposium - August 12-14, 2025
    Day 1: All-day LAMMPS Tutorial - Tuesday, August 12, 2025 · Day 2: General Session of technical talks - Wednesday, August 13, 2025 · Day 3: General Session of ...
  11. [11]
    LAMMPS supercomputer code developer earns special recognition
    Sandia National Laboratories researcher Steve Plimpton, who led development of a widely used computer code that models ...Missing: origins | Show results with:origins
  12. [12]
    LAMMPS: A Case Study For Applying Modern Software Engineering ...
    May 11, 2025 · The development of LAMMPS began in the mid-1990s under a cooperative research & development agreement (CRADA) between two DOE laboratories ( ...
  13. [13]
    Funding for LAMMPS
    LAMMPS development has been funded by the US Department of Energy (DOE), through its CRADA, LDRD, ASCI, ECP, and other programs.Missing: Sandia | Show results with:Sandia
  14. [14]
    Public development project of the LAMMPS MD software package
    This is the LAMMPS software package. LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel Simulator. Copyright (2003) Sandia Corporation.
  15. [15]
    LAMMPS forum on MatSci.org
    The forum replaces the lammps-users mailing list which was discontinued on June 30th, 2022. Ways to use the LAMMPS forum. Matsci.org hosts forums for dozens of ...Missing: governance trackers workshops
  16. [16]
    LAMMPS Workshops
    2025 LAMMPS Workshop · 2024 LAMMPS Developer Meeting · 2024 HPC LAMMPS Master Class · 2023 Virtual LAMMPS Workshop · 2022 LAMMPS Code Clinic · 2021 Virtual LAMMPS ...
  17. [17]
    Latest LAMMPS topics - Materials Science Community Discourse
    LAMMPS · LAMMPS Mailing List Mirror This category is a read-only mirror of the LAMMPS mailing list, made available for historical context and searching.Missing: governance trackers workshops
  18. [18]
    LAMMPS: A Case Study For Applying Modern Software Engineering ...
    May 11, 2025 · Abstract:We review various changes made in recent years to the software development process of the LAMMPS simulation software package and ...Missing: practices modular testing
  19. [19]
    4.4. Parallel algorithms - LAMMPS documentation
    LAMMPS is designed to enable running simulations in parallel using the MPI parallel communication standard with distributed data via domain decomposition.
  20. [20]
    9.4.4. OPENMP package - LAMMPS documentation
    This is because the MPI parallelization in LAMMPS is often more efficient than multi-threading as implemented in the OPENMP package. The parallel efficiency (in ...
  21. [21]
  22. [22]
    9.4.3. KOKKOS package — LAMMPS documentation
    ### Summary of Kokkos Library in LAMMPS
  23. [23]
    LAMMPS-KOKKOS: Performance Portable Molecular Dynamics ...
    We discuss how LAMMPS has adapted to the modern heterogeneous computing landscape by integrating the Kokkos performance portability library into ...
  24. [24]
    LAMMPS Benchmarks
    ### Summary of LAMMPS Scalability Benchmarks
  25. [25]
    balance command - LAMMPS documentation
    This command adjusts the size and shape of processor subdomains within the simulation box, to attempt to balance the number of atoms or particles and thus ...
  26. [26]
    atom_style command — LAMMPS documentation
    ### Summary of Supported Atom Styles in LAMMPS
  27. [27]
    pair_style command - LAMMPS documentation
    In LAMMPS, pairwise force fields encompass a variety of interactions, some of which include many-body effects, e.g. EAM, Stillinger-Weber, Tersoff, REBO ...Pair_style hybrid command · Pair_modify command · Lj/cut · Lj/cut/coul/cut
  28. [28]
    kspace_style command - LAMMPS documentation
    Jun 12, 2025 · The ewald/disp style adds a long-range dispersion sum option for 1 / r 6 potentials and is useful for simulation of interfaces (Veld). It also ...
  29. [29]
    pair_style kim command — LAMMPS documentation
    ### Summary of LAMMPS Integration with OpenKIM for Interatomic Models
  30. [30]
    OpenKIM · Knowledgebase of Interatomic Models · Interatomic ...
    OpenKIM is a curated repository of conventional and machine learning interatomic potentials that are compatible with many major simulation codes through a ...About OpenKIM · OpenKIM Query · KIM API · ModelsMissing: integration | Show results with:integration
  31. [31]
    boundary command - LAMMPS documentation
    The `boundary` command sets the style of boundaries for the simulation box, using `p` for periodic, `f` for fixed, `s` for shrink-wrapped, and `m` for shrink- ...
  32. [32]
    10.2.3. Triclinic (non-orthogonal) simulation boxes
    The boundary command sets the boundary conditions for the 6 faces of the box ... LAMMPS also allows simulations to be performed using triclinic (non ...<|control11|><|separator|>
  33. [33]
    fix nve command - LAMMPS documentation
    Description . Perform plain time integration to update position and velocity for atoms in the group each timestep. This creates a system trajectory ...
  34. [34]
    fix nvt command - LAMMPS documentation
    These commands perform time integration on Nose-Hoover style non-Hamiltonian equations of motion which are designed to generate positions and velocities.
  35. [35]
    10.2.4. Thermostats - LAMMPS documentation
    A recent (2017) book by (Daivis and Todd) discusses use of the SLLOD method and non-equilibrium MD (NEMD) thermostatting generally, for both simple and ...
  36. [36]
    fix langevin command — LAMMPS documentation
    ### Summary of Langevin Thermostat for NVT Ensemble in LAMMPS
  37. [37]
    fix rigid command - LAMMPS documentation
    The NVE/NVT/NPT/NHT versions belong to one of the two variants, as their style names indicate. Note. Not all of the bodystyle options and keyword/value options ...
  38. [38]
    fix shake command - LAMMPS documentation
    This command works by using the current forces on atoms to calculate an additional constraint force which when added will leave the atoms in positions that ...
  39. [39]
    10.2.6. Walls — LAMMPS documentation
    Walls in LAMMPS bound particle motion and can be rough (made of particles) or idealized (smooth or frictional). Idealized walls are created using fix commands.
  40. [40]
    10.2.7. NEMD simulations - LAMMPS documentation
    Non-equilibrium molecular dynamics or NEMD simulations are typically used to measure a fluid's rheological properties such as viscosity.
  41. [41]
    fix deform command - LAMMPS documentation
    Both these fixes can be used to perform non-equilibrium MD (NEMD) simulations of a continuously strained system. See the fix nvt/sllod and compute temp ...<|separator|>
  42. [42]
  43. [43]
    fix thermal/conductivity command - LAMMPS documentation
    This algorithm is sometimes called a reverse non-equilibrium MD (reverse NEMD) approach to computing thermal conductivity. This is because the usual NEMD ...
  44. [44]
    fix atom/swap command - LAMMPS documentation
    This fix performs Monte Carlo swaps of atoms of one given atom type with atoms of the other given atom types. The specified scaling temperature T is used in the ...
  45. [45]
    fix bond/swap command - LAMMPS documentation
    The `fix bond/swap` command attempts to swap bonds in polymer chains using Monte Carlo rules, typically to equilibrate the system more quickly.
  46. [46]
    fix gcmc command - LAMMPS documentation
    When using fix gcmc in combination with fix shake or fix rigid, only GCMC exchange moves are supported, so the argument M must be zero. When using fix gcmc ...<|separator|>
  47. [47]
    4.7. How a timestep works - LAMMPS documentation
    The velocity-Verlet method requires current forces be calculated before the first timestep, so these routines compute forces due to all atomic interactions ...
  48. [48]
    min_style cg command - LAMMPS documentation
    Style spin is a damped spin dynamics with an adaptive timestep. Style spin/cg uses an orthogonal spin optimization (OSO) combined to a conjugate gradient ...
  49. [49]
    run_style command - LAMMPS documentation
    Choose the style of time integrator used for molecular dynamics simulations performed by LAMMPS. ... The verlet/split style is also a velocity-Verlet integrator, ...
  50. [50]
    fix dt/reset command - LAMMPS documentation
    The `fix dt/reset` command resets the timestep size every N steps, ensuring no atom moves further than Xmax, based on current velocities and forces.
  51. [51]
    rerun command — LAMMPS documentation
    ### Summary of Rerun Command for Restarting with New Forces
  52. [52]
    create_atoms command - LAMMPS documentation
    It is an alternative to reading in atom coordinates explicitly via a read_data or read_restart command. To use this command a simulation box must already ...Syntax · Examples · Description
  53. [53]
    read_data command - LAMMPS documentation
    This command can be used multiple times to add new atoms and their properties to an existing system by using the add, offset, and shift keywords.Reading Multiple Data Files · Header Specification Of The... · Format Of The Body Of A Data...
  54. [54]
    Tutorial - LAMMPS - Atomsk
    Tutorial: working with LAMMPS files. This tutorial explains how to use Atomsk to produce data files for LAMMPS, and read LAMMPS output files.Missing: XYZ | Show results with:XYZ
  55. [55]
    lattice command - LAMMPS documentation
    In LAMMPS, a lattice is simply a set of points in space, determined by a unit cell with basis atoms, that is replicated infinitely in all dimensions.
  56. [56]
    replicate command - LAMMPS documentation
    Replicate the current system one or more times in each dimension. For example, replication factors of 2,2,2 will create a simulation with 8x as many atoms.Missing: insert | Show results with:insert
  57. [57]
    displace_atoms command - LAMMPS documentation
    Displace a group of atoms. This can be used to move atoms a large distance before beginning a simulation or to randomize atoms initially on a lattice.Missing: attributes charge type
  58. [58]
    set command - LAMMPS documentation
    The fix set command can be used with similar syntax to this command to reset atom properties once every N steps during a simulation using via atom-style ...Missing: displace | Show results with:displace
  59. [59]
    delete_atoms command - LAMMPS documentation
    This command can be used, for example, to carve out voids from a block of material or to delete created atoms that are too close to each other.Missing: insert | Show results with:insert
  60. [60]
    compute voronoi/atom command - LAMMPS documentation
    Nov 21, 2023 · Define a computation that calculates the Voronoi tessellation of the atoms in the simulation box. The tessellation is calculated using all atoms in the ...Missing: meshing | Show results with:meshing
  61. [61]
    fix deposit command - LAMMPS documentation
    Nov 21, 2023 · Insert a single atom or molecule into the simulation domain every M timesteps until N atoms or molecules have been inserted. This is useful for ...Syntax · Description · Restart, Fix_modify, Output...
  62. [62]
    10.3.1. Output from LAMMPS (thermo, dumps, computes, fixes ...
    This table summarizes the various commands that can be used for generating output from LAMMPS. Each command produces output data of some kind and/or writes ...
  63. [63]
    thermo_style command — LAMMPS documentation
    ### Summary of Thermodynamic Output in LAMMPS
  64. [64]
    6.3. Screen and logfile output - LAMMPS documentation
    As LAMMPS reads an input script, it prints information to both the screen and a log file about significant actions it takes to setup a simulation.
  65. [65]
    thermo_modify command - LAMMPS documentation
    May 4, 2022 · When you specify a thermo_style command, all thermodynamic settings are restored to their default values, including those previously reset by a ...<|control11|><|separator|>
  66. [66]
    dump command - LAMMPS documentation
    Many post-processing tools either included with LAMMPS or third-party tools can read this format, as does the rerun command.Dump_modify command · Dump atom/adios command · Dump image command
  67. [67]
    restart command - LAMMPS documentation
    Restart files are written in one (or both) of two modes as a run proceeds. If one filename is specified, a series of filenames will be created which include the ...Read_restart command · Write_restart command · Reset_timestep command
  68. [68]
    write_restart command - LAMMPS documentation
    Restart files can be read by a read_restart command to restart a simulation from a particular state. Because the file is binary (to enable exact restarts), it ...
  69. [69]
    compute command - LAMMPS documentation
    Computes calculate and store any of four styles of quantities: global, per-atom, local, or per-grid. A global quantity is one or more system-wide values.
  70. [70]
    fix command - LAMMPS documentation
    Set a fix that will be applied to a group of atoms. In LAMMPS, a “fix” is any operation that is applied to the system during timestepping or minimization.Unfix command · Echo command · Suffix command · 8.6. Fix stylesMissing: ensembles | Show results with:ensembles
  71. [71]
    info command - LAMMPS documentation
    Feb 7, 2024 · Print out information about the current internal state of the running LAMMPS process. This can be helpful when debugging or validating complex input scripts.
  72. [72]
    compute stress/atom command - LAMMPS documentation
    Define a computation that computes per-atom stress tensor for each atom in a group. In case of compute stress/atom, the tensor for each atom is symmetric ...Missing: coordination | Show results with:coordination
  73. [73]
    compute coord/atom command - LAMMPS documentation
    This compute performs calculations between neighboring atoms to determine a coordination value. The specific calculation and the meaning of the resulting value ...
  74. [74]
    compute rdf command - LAMMPS documentation
    Another workaround is to write a dump file, and use the rerun command to compute the RDF for snapshots in the dump file. The rerun script can use a ...
  75. [75]
    compute msd command - LAMMPS documentation
    Define a computation that calculates the mean-squared displacement (MSD) of the group of atoms, including all effects due to atoms passing through periodic ...Missing: coordination | Show results with:coordination
  76. [76]
    fix ave/time command - LAMMPS documentation
    The `fix ave/time` command averages global values over time, using input values every few time steps, and can output to a file.
  77. [77]
    5. Auxiliary tools - LAMMPS documentation
    Note that many users write their own setup or analysis tools or use other existing codes and convert their output to a LAMMPS input format or vice versa.
  78. [78]
    Pizza.py Toolkit - GitHub Pages
    (11/10) New vmd tool that is a wrapper on the popular "VMD visualization package", so that it can be driven by Python and display LAMMPS snapshots in real time.Missing: Pymol | Show results with:Pymol
  79. [79]
    10.1.6. Coupling LAMMPS to other codes
    LAMMPS can be coupled to other codes in at least 4 ways: using a fix/compute, a LAMMPS command, as a library, or client/server with MDI.
  80. [80]
    1. LAMMPS Library Interfaces — LAMMPS documentation
    ### Summary of Library Mode for Embedding LAMMPS
  81. [81]
    10.1.7. Using LAMMPS with the MDI library for code coupling
    LAMMPS uses the MDI library for client/server coupling, acting as a driver or engine. It can be a stand-alone or plugin engine, using MDI_Send() and MDI_Recv() ...
  82. [82]
    2.4. The lammps Python module
    The lammps class is the core of the LAMMPS Python interface. It is a wrapper around the LAMMPS C library API using the Python ctypes module and a shared ...
  83. [83]
    plugin command - LAMMPS documentation
    The plugin command allows to load (and unload) additional styles and commands into a LAMMPS binary from so-called dynamic shared object (DSO) files.Missing: system | Show results with:system
  84. [84]
    4.1. Package details - LAMMPS documentation
    The ML-PACE package provides an efficient implementation for running simulations with ACE potentials. Authors: This package was written by Yury Lysogorskiy ...
  85. [85]
    Enabling Scalable AI-Driven Molecular Dynamics Simulations
    Oct 20, 2025 · By integrating PyTorch-based MLIPs with LAMMPS via the ML-IAP-Kokkos interface, developers can achieve scalable and efficient MD simulations.
  86. [86]
    LAMMPS PyTorch integration speeds AI-driven simulations
    Oct 21, 2025 · LAMMPS PyTorch integration via ML-IAP-Kokkos enables GPU-scaled molecular dynamics with PyTorch MLIPs, accelerating open-source research.
  87. [87]
    chemtrain-deploy: A Parallel and Scalable Framework for Machine ...
    Jul 23, 2025 · chemtrain-deploy supports any JAX-defined semilocal potential, allowing users to exploit the functionality of LAMMPS and perform large-scale MLP ...
  88. [88]
    Parallel Computing Summer Workshop
    This project will develop the tools to pass uncertainties from MLIP models (such as HIPPYNN and ChIMES) into large atomistic simulations performed in LAMMPS.Projects · Uncertainty Quantification... · Efficient And Accurate...
  89. [89]
    Welcome to hippynn's documentation!
    hippynn includes many tools, such as an ASE calculator, a LAMMPS MLIAP interface, batched prediction and batched geometry optimization, automatic ensemble ...Missing: uncertainty propagation MLIP ChIMES
  90. [90]
    ChIMES in LAMMPS — chimes_calculator 0.0.1 documentation
    To compile LAMMPS with ChIMES, you must have C++11 and MPI compilers avillable. As with installation of the ChIMES Calculator itself, if you are on a HPC using ...Missing: propagation MLIP HIPPYNN
  91. [91]
    [PDF] Using machine-learning accelerated simulations to inform new ...
    @ the 2025 LAMMPS Workshop and Symposium. Using machine-learning accelerated simulations to inform new strategies for high throughput nanocarbon synthesis.Missing: polymer | Show results with:polymer
  92. [92]
    Predicting Polymer Properties for Industrial Applications
    Aug 13, 2025 · Predicting Polymer Properties for Industrial Applications · Wednesday, 13 Aug 2025 · 14:15 - 14:30 MDT.Missing: ML- accelerated nanocarbon synthesis
  93. [93]
  94. [94]
    4.12. Adding tests for unit testing - LAMMPS documentation
    This section discusses adding or expanding tests for the unit test infrastructure included into the LAMMPS source code distribution.
  95. [95]
    3.12. Development build options - LAMMPS documentation
    The scripts and inputs for integration, run, and legacy regression testing are maintained in a separate repository of the LAMMPS project on GitHub. A few tests ...
  96. [96]
    9.1. Benchmarks - LAMMPS documentation
    This is an easy way to test performance and either strong or weak scalability on your machine. The bench directory includes a few log.* files that show ...
  97. [97]
    Introduction to Verification Checks - OpenKIM
    KIM Verification Checks (VCs) are programs that explore the integrity of an interatomic model (IM) implementation (as opposed to the accuracy of its physical ...
  98. [98]
    Robust training of machine learning interatomic potentials with ...
    Feb 26, 2024 · The key advancement in AL is the efficient evaluation of the uncertainty of the MLIP on new structures without referring to the DFT PES, which ...
  99. [99]
    Uncertainty quantification in atomistic simulations of silicon using ...
    Aug 14, 2024 · The advent of machine learning interatomic potentials (MLIPs), trained on DFT or other high-accuracy data, explores the construction of ...Ii. Methodology · B. Bayesian Inverse Problems · Iii. ResultsMissing: LAMMPS | Show results with:LAMMPS