LAMMPS is a molecular dynamics simulation software tool. It is a parallel computing system that you can create and use on a laptop or computer. It can run in serial and parallel mode on any machine that supports the MPI message-passing library. Shared-memory boxes, distributed-memory clusters, and supercomputers all fall within this category. LAMMPS supports OpenMP multithreading, vectorization, and GPU acceleration. It is built to be flexible enough to add additional features like force fields, atom kinds, boundary conditions, and diagnostics.
LAMMPS integrates Newton's equations of motion for the collection of interacting particles. An atom, molecule, electron, a coarse-grained cluster of atoms, a mesoscopic particle, or microscopic clump of material can all be considered single particles. The interaction models contained in LAMMPS are generally short-range in nature, with a few long-range models thrown in for good measure. LAMMPS uses message-passing techniques and spatial decomposition of the simulation domain to run on single processors or in parallel. LAMMPS also allows for rapid coupling of spin and molecular dynamics. LAMMPS is also linked to a variety of analysis tools and engines.
LAMMPS Container Features
- LAMMPS is a GPLv2 licensed open-source distribution that runs on a single processor or in parallel distributed memory message-passing parallelism (MPI).
- Shared memory multithreading parallelism (OpenMP)
- Spatial decomposition of simulation domain for MPI parallelism
- Particle decomposition inside of spatial decomposition for OpenMP and GPU parallelism
- C++-11 modular code with the most functionality in optional packages.
- Rely on the MPI library for basic parallel capability and the MPI stub for serial compilation. All other libraries are optional and only necessary for specific packages.
- Many code features are supported by GPU, Intel Xeon Phi, and OpenMP, making it easy to add new features and capabilities.
- Runs based on an input script
- Variables and formulae: syntax for declaring and using variables and formulas
- Looping overruns and breaking out of loops syntax
- Invoke LAMMPS through the library interface or provided Python wrapper or SWIG-based wrappers.
- Coupled with other codes: Other code calls LAMMPS, and LAMMPS calls other code. Both LAMMPS and umbrella codes are used.
LAMMPS Ensembles, Constraints, and Boundary Conditions
- 2d or 3d systems
- Orthogonal or non-orthogonal simulation domains
- Options for atoms' groups and geometric regions to be thermostated
- Pressure control in 1 to 3 dimensions through Nose or Berendsen barostatting
- Deformation of a simulation box (tensile and shear)
- Rigid body constraints are imposed via the harmonic (umbrella) constraint.
- Manifold surface motion restrictions
- Bond breaking, formation, swapping, template-based reaction modeling
- Several types of atom/molecule insertion and deletion barriers
- Static and moving non-equilibrium molecular dynamics (NEMD), and
- several other boundary conditions and limitations
Particle and Model Types
- Atoms
- Particles with a coarse granularity (for example, bead-spring polymers)
- Organic compounds or polymers with a single atom
- Polymers with all atoms, organic compounds, proteins, and DNA metals
- Granular materials
- Coarse-grained mesoscale models
- Stiff collections of n particles
- Hybrid combinations of these finite-size spherical and ellipsoidal particles
- Finite-size line segment (2d) and triangle (3d) particles
- Finite-size rounded polygons (2d) and polyhedra (3d) particles
LAMMPS Open-Source License
GPL Version
LAMMPS is a free open-source program distributed under the terms of the GNU Public License Version 2 (GPLv2). It means you can use or adjust the program however you want for your purposes. But you must follow some rules when redistributing it - especially in binary form - or distributing software derived from it or containing parts of it. LAMMPS containers are sold without any warranty.
LGPL Version
This version removes all the Non-LGPL compatible files and is only available upon request. Users can link non-GPL compatible software to the (otherwise unmodified) LAMMPS library or dynamically load it at runtime as a result of this. Any modifications to the LAMMPS code must be provided under the same open-source terms as LAMMPS itself, even if the LGPL license version is used.
Final Words