1.4. LAMMPS non-features
LAMMPS is designed to be a fast, parallel engine for molecular dynamics (MD) simulations. It provides only a modest amount of functionality for setting up simulations and analyzing their output.
Specifically, LAMMPS does not:
- run thru a GUI
- build molecular systems
- assign force-field coefficients automagically
- perform sophisticated analyses of your MD simulation
- visualize your MD simulation interactively
- plot your output data
Here are suggestions on how to perform these tasks:
- GUI: LAMMPS can be built as a library and a Python wrapper that wraps the library interface is provided. Thus, GUI interfaces can be written in Python (or C or C++ if desired) that run LAMMPS and visualize or plot its output. Examples of this are provided in the python directory and described on the Python doc page.
- Builder: Several pre-processing tools are packaged with LAMMPS. Some of them convert input files in formats produced by other MD codes such as CHARMM, AMBER, or Insight into LAMMPS input formats. Some of them are simple programs that will build simple molecular systems, such as linear bead-spring polymer chains. The moltemplate program is a true molecular builder that will generate complex molecular models. See the Tools doc page for details on tools packaged with LAMMPS. The Pre/post processing page of the LAMMPS website describes a variety of 3rd party tools for this task.
- Force-field assignment: The conversion tools described in the previous bullet for CHARMM, AMBER, and Insight will also assign force field coefficients in the LAMMPS format, assuming you provide CHARMM, AMBER, or Accelerys force field files.
- Simulation analyses: If you want to perform analyses on-the-fly as your simulation runs, see the compute and fix doc pages, which list commands that can be used in a LAMMPS input script. Also see the Modify doc page for info on how to add your own analysis code or algorithms to LAMMPS. For post-processing, LAMMPS output such as dump file snapshots can be converted into formats used by other MD or post-processing codes. Some post-processing tools packaged with LAMMPS will do these conversions. Scripts provided in the tools/python directory can extract and massage data in dump files to make it easier to import into other programs. See the Tools doc page for details on these various options.
- Visualization: LAMMPS can produce JPG or PNG snapshot images on-the-fly via its dump image command. For high-quality, interactive visualization there are many excellent and free tools available. See the Other Codes page page of the LAMMPS website for visualization packages that can use LAMMPS output data.
- Plotting: See the next bullet about Pizza.py as well as the Python doc page for examples of plotting LAMMPS output. Scripts provided with the python tool in the tools directory will extract and massage data in log and dump files to make it easier to analyze and plot. See the Tools doc page for more discussion of the various tools.
- Pizza.py: Our group has also written a separate toolkit called Pizza.py which can do certain kinds of setup, analysis, plotting, and visualization (via OpenGL) for LAMMPS simulations. It thus provides some functionality for several of the above bullets. Pizza.py is written in Python and is available for download from this page.