\(\renewcommand{\AA}{\text{Å}}\)
LAMMPS Documentation (28 Mar 2023 version)¶
LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel Simulator.
LAMMPS is a classical molecular dynamics simulation code focusing on materials modeling. It was designed to run efficiently on parallel computers and to be easy to extend and modify. Originally developed at Sandia National Laboratories, a US Department of Energy facility, LAMMPS now includes contributions from many research groups and individuals from many institutions. Most of the funding for LAMMPS has come from the US Department of Energy (DOE). LAMMPS is open-source software distributed under the terms of the GNU Public License Version 2 (GPLv2).
The LAMMPS website has a variety of information about the code. It includes links to an online version of this manual, an online forum where users can post questions and discuss LAMMPS, and a GitHub site where all LAMMPS development is coordinated.
The content for this manual is part of the LAMMPS distribution. The online version always corresponds to the latest feature release version. If needed, you can build a local copy of the manual as HTML pages or a PDF file by following the steps on the Build the LAMMPS documentation page. If you have difficulties viewing the pages, please see this note.
The manual is organized into three parts:
The User Guide with information about how to obtain, configure, compile, install, and use LAMMPS,
the Programmer Guide with information about how to use the LAMMPS library interface from different programming languages, how to modify and extend LAMMPS, the program design, internal programming interfaces, and code design conventions,
the Command Reference with detailed descriptions of all input script commands available in LAMMPS.
After becoming familiar with LAMMPS, consider bookmarking this page, since it gives quick access to tables with links to the documentation for all LAMMPS commands.
User Guide¶
User Guide
- 1. Introduction
- 2. Install LAMMPS
- 3. Build LAMMPS
- 3.1. Build LAMMPS with CMake
- 3.2. Build LAMMPS with make
- 3.3. Link LAMMPS as a library to another code
- 3.4. Basic build options
- 3.5. Optional build settings
- 3.6. Include packages in build
- 3.7. Packages with extra build options
- 3.8. Build the LAMMPS documentation
- 3.9. Notes for building LAMMPS on Windows
- 3.10. Notes for saving disk space when building LAMMPS from source
- 3.11. Development build options
- 4. Run LAMMPS
- 5. Commands
- 5.1. LAMMPS input scripts
- 5.2. Parsing rules for input scripts
- 5.3. Input script structure
- 5.4. Commands by category
- 5.5. General commands
- 5.6. Fix commands
- 5.7. Compute commands
- 5.8. Pair_style potentials
- 5.9. Bond_style potentials
- 5.10. Angle_style potentials
- 5.11. Dihedral_style potentials
- 5.12. Improper_style potentials
- 5.13. KSpace solvers
- 5.14. Dump commands
- 5.15. Removed commands and packages
- 6. Optional packages
- 7. Accelerate performance
- 8. Howto discussions
- 9. Example scripts
- 10. Auxiliary tools
- 11. Errors
Programmer Guide¶
Programmer Guide
- 1. LAMMPS Library Interfaces
- 2. Use Python with LAMMPS
- 3. Modifying & extending LAMMPS
- 3.1. Overview
- 3.2. Submitting new features for inclusion in LAMMPS
- 3.3. LAMMPS programming style and requirements for contributions
- 3.4. Atom styles
- 3.5. Pair styles
- 3.6. Bond, angle, dihedral, improper styles
- 3.7. Compute styles
- 3.8. Fix styles
- 3.9. Input script command style
- 3.10. Dump styles
- 3.11. Kspace styles
- 3.12. Minimization styles
- 3.13. Region styles
- 3.14. Body styles
- 3.15. Granular Sub-Model styles
- 3.16. Thermodynamic output options
- 3.17. Variable options
- 4. Information for Developers
- 4.1. Source files
- 4.2. Class topology
- 4.3. Code design
- 4.4. Parallel algorithms
- 4.5. Communication patterns
- 4.6. How a timestep works
- 4.7. Writing new styles
- 4.8. Notes for developers and code maintainers
- 4.9. Notes for updating code written for older LAMMPS versions
- 4.10. Writing plugins
- 4.11. Adding tests for unit testing
- 4.12. C++ base classes
- 4.13. Platform abstraction functions
- 4.14. Utility functions
- 4.15. Special Math functions
- 4.16. Tokenizer classes
- 4.17. Argument parsing classes
- 4.18. File reader classes
- 4.19. Memory pool classes
- 4.20. Eigensolver functions
- 4.21. Communication buffer coding with ubuf
- 4.22. Use of distributed grids within style classes
Command Reference¶
Indices and tables¶
Web Browser Compatibility
The HTML version of the manual makes use of advanced features present in “modern” web browsers. This can lead to incompatibilities with older web browsers (released more than 4 years ago) and specific vendor browsers (e.g. Internet Explorer on Windows; Microsoft Edge works well though) where parts of the pages are not rendered as expected (e.g. the layout is broken or mathematical expressions not typeset). In that case we recommend to install/use a different/newer web browser or use the PDF version of the manual.