\(\renewcommand{\AA}{\text{Å}}\)

# LAMMPS Documentation (Development version)

## About LAMMPS and this manual

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 in its doc directory.

- The version of the manual on the LAMMPS website corresponds to the latest LAMMPS feature release. It is available at: https://docs.lammps.org/.

- A version of the manual corresponding to the latest LAMMPS stable release (state of the stable branch on GitHub) is available online at: https://docs.lammps.org/stable/

- A version of the manual with the features most recently added to LAMMPS (state of the develop branch on GitHub) is available at: https://docs.lammps.org/latest/

If needed, you can build a copy on your local machine of the manual (HTML pages or PDF file) for the version of LAMMPS you have downloaded. Follow the steps on the Build the LAMMPS documentation page.

If you have difficulties viewing the HTML pages, please see this note about compatibility with web browsers.

The manual is organized into three parts:

1. The User Guide with information about how to obtain, configure, compile, install, and use LAMMPS,

2. 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,

3. 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
  - 1.1. Overview of LAMMPS
  - 1.2. What does a LAMMPS version mean
  - 1.3. LAMMPS features
  - 1.4. LAMMPS non-features
  - 1.5. LAMMPS portability and compatibility
  - 1.6. LAMMPS open-source license
  - 1.7. Authors of LAMMPS
  - 1.8. Citing LAMMPS
  - 1.9. Additional website links
- 2. Install LAMMPS
  - 2.1. Download an executable for Linux
  - 2.2. Download an executable for macOS
  - 2.3. Download an executable for Windows
  - 2.4. Download an executable for Linux or macOS via Conda
  - 2.5. Download source and documentation as a tarball
  - 2.6. Download the LAMMPS source with git
- 3. Build LAMMPS
  - 3.1. Prerequisites
  - 3.2. Build LAMMPS with CMake
  - 3.3. Build LAMMPS with make
  - 3.4. Link LAMMPS as a library to another code
  - 3.5. Basic build options
  - 3.6. Optional build settings
  - 3.7. Include packages in build
  - 3.8. Packages with extra build options
  - 3.9. Build the LAMMPS documentation
  - 3.10. Notes for building LAMMPS on Windows
  - 3.11. Notes for saving disk space when building LAMMPS from source
  - 3.12. Development build options
- 4. Run LAMMPS
  - 4.1. Basics of running LAMMPS
  - 4.2. Command-line options
  - 4.3. Screen and logfile output
  - 4.4. Error message output
  - 4.5. File formats used by LAMMPS
  - 4.6. Running LAMMPS on Windows
- 5. Errors
  - 5.1. Common issues that are often regarded as bugs
  - 5.2. Errors and warnings details
  - 5.3. Reporting bugs
  - 5.4. Debugging crashes
  - 5.5. Debugging when LAMMPS appears to be stuck
  - 5.6. Error messages
  - 5.7. Warning messages
- 6. Commands
  - 6.1. LAMMPS input scripts
  - 6.2. Parsing rules for input scripts
  - 6.3. Input script structure
  - 6.4. Commands by category
  - 6.5. General commands
  - 6.6. Fix styles
  - 6.7. Compute styles
  - 6.8. Pair styles
  - 6.9. Bond styles
  - 6.10. Angle styles
  - 6.11. Dihedral styles
  - 6.12. Improper styles
  - 6.13. KSpace styles
  - 6.14. Dump styles
  - 6.15. Removed commands and packages
- 7. Accelerate performance
  - 7.1. Benchmarks
  - 7.2. Measuring performance
  - 7.3. General tips
  - 7.4. Accelerator packages
  - 7.5. Comparison of various accelerator packages
- 8. Optional packages
  - 8.1. Package details
- 9. Auxiliary tools
  - 9.1. Pre-processing tools
  - 9.2. Post-processing tools
  - 9.3. Miscellaneous tools
  - 9.4. Tool descriptions
- 10. Howto discussions
  - 10.1. General howto
  - 10.2. Settings howto
  - 10.3. Analysis howto
  - 10.4. Force fields howto
  - 10.5. Packages howto
  - 10.6. Tutorials howto
- 11. Example scripts
  - 11.1. Lowercase directories
  - 11.2. Uppercase directories

## Programmer Guide

Programmer Guide

- 1. LAMMPS Library Interfaces
  - 1.1. LAMMPS C Library API
  - 1.2. LAMMPS Python API
  - 1.3. LAMMPS Fortran API
  - 1.4. LAMMPS C++ API
- 2. Use Python with LAMMPS
  - 2.1. Overview
  - 2.2. Installation
  - 2.3. Run LAMMPS from Python
  - 2.4. The `lammps` Python module
  - 2.5. Extending the Python interface
  - 2.6. Calling Python from LAMMPS
  - 2.7. Output Readers
  - 2.8. Example Python scripts
  - 2.9. Using LAMMPS in IPython notebooks and Jupyter
  - 2.10. Handling LAMMPS errors
  - 2.11. Troubleshooting
- 3. Modifying & extending LAMMPS
  - 3.1. Overview
  - 3.2. Submitting new features for inclusion in LAMMPS
  - 3.3. Requirements for contributions to LAMMPS
  - 3.4. LAMMPS programming style
  - 3.5. Atom styles
  - 3.6. Pair styles
  - 3.7. Bond, angle, dihedral, improper styles
  - 3.8. Compute styles
  - 3.9. Fix styles
  - 3.10. Input script command style
  - 3.11. Dump styles
  - 3.12. Kspace styles
  - 3.13. Minimization styles
  - 3.14. Region styles
  - 3.15. Body styles
  - 3.16. Granular Sub-Model styles
  - 3.17. Thermodynamic output options
  - 3.18. Variable options
- 4. Information for Developers
  - 4.1. Source files
  - 4.2. Class topology
  - 4.3. Code design
  - 4.4. Parallel algorithms
  - 4.5. Accessing per-atom data
  - 4.6. Communication patterns
  - 4.7. How a timestep works
  - 4.8. Writing new styles
  - 4.9. Notes for developers and code maintainers
  - 4.10. Notes for updating code written for older LAMMPS versions
  - 4.11. Writing plugins
  - 4.12. Adding tests for unit testing
  - 4.13. C++ base classes
  - 4.14. Platform abstraction functions
  - 4.15. Utility functions
  - 4.16. Special Math functions
  - 4.17. Tokenizer classes
  - 4.18. Argument parsing classes
  - 4.19. File reader classes
  - 4.20. Type label support
  - 4.21. Memory pool classes
  - 4.22. Eigensolver functions
  - 4.23. Communication buffer coding with ubuf
  - 4.24. Internal Styles
  - 4.25. Use of distributed grids within style classes

## Command Reference

Command Reference

- Commands
- Fix Styles
- Compute Styles
- Pair Styles
- Bond Styles
- Angle Styles
- Dihedral Styles
- Improper Styles
- Dump Styles
- Bibliography

## Indices and tables

- Index

- Search Page

Web Browser Compatibility

The HTML version of the manual makes use of advanced features present in “modern” web browsers. This leads to incompatibilities with older web browsers and specific vendor browsers (e.g. Internet Explorer on Windows) 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.

The following web browser versions have been verified to work as expected on Linux, macOS, and Windows where available:

- Safari version 11.1 and later

- Firefox version 54 and later

- Chrome version 54 and later

- Opera version 41 and later

- Edge version 80 and later

Also Android version 7.1 and later and iOS version 11 and later have been verified to render this website as expected.