It’s said that LAMMPS is a versatile Molecular Dynamics (MD) code that can interface with a variety of other MD codes, pre- and post-processors, analysis tools, etc., and that it can even be built as a library itself. Can anyone provide a brief overview of its capabilities?
LAMMPS is an open-source molecular dynamics code developed and hosted by Sandía National Laboratories. The website is lammps.sandia.gov. The documentation pages provide an extensive guide to the many performance enhancements it gains through its ability to integrate with existing software. Most of the summary information provided below is pulled from these pages (I’ve included specific links where appropriate), and combined with personal experience!
As described in the LAMMPS documentation, one aim the developers have is to keep the LAMMPS kernel simple and as efficient as they considered feasible; thus LAMMPS’ ability to interface with other applications (rather than re-create already-existing functionality). LAMMPS’ role is to simulate systems of interacting particles using Newton’s equations of motion; based on certain specific input parameters, calculations involving atomic systems can be computed by LAMMPS itself; for geometries of higher complexity and molecular systems, it’s recommended that a user either generate the input using a code of her own, or another existing code, then convert that result into LAMMPS format. Commercial codes such as CHARMM and AMBER can be used to create the input parameters for large, elaborate structures, which again can be reformatted for LAMMPS. (see http://lammps.sandia.gov/doc/Section_start.html).
The format of LAMMPS output files is similarly simple, allowing users to prepare these files for post-processing by a fairly wide range of commercial options, as well as via user-designed tools. LAMMPS also includes some post-processing tools of their own; see: http://lammps.sandia.gov/doc/Section_tools.html.
Importantly, too, the LAMMPS distribution includes several packages, both developer-created and user-created, that expand on the kernel to offer certain features. While these packages are part of LAMMPS, many still need to be built prior to implementation. But, they can be added one at a time, and they do broaden the range of simulations LAMMPS can run, while still maintaining the advantages of a simple kernel. Details are found at:
http://lammps.sandia.gov/doc/Section_intro.html#lammps-features and
https://lammps.sandia.gov/doc/Section_packages.html.
In another display of agility, LAMMPS can be built as a library; static or shared. This is discussed well at http://lammps.sandia.gov/doc/Section_start.html#building-lammps-as-a-library; in short, these forms allow another application or a scripting language to call LAMMPS libraries and invoke the associated functionalities.
An amusing outcome produced by post-processing output from the lmp_png and lmp_mpi executables is the creation of the LAMMPS logo (which is, of course, extendable and/or modifiable to represent one’s own institution, or …). My boss enjoyed working out the display of some ‘Mines’ logos… !
In summary, LAMMPS does interface well with both pre- and post- processing applications, commercial or otherwise, and can be built as a library, static or shared. It is also a source of creative diversion.
lammps.sandia.gov