LAMMPS engine for SimPhoNy¶
The SimPhoNy engine for LAMMPS is available in the SimPhoNy through the engine plugin named lammps
After installation, the user should be able to import the lammps
engine plugin module:
from simphony.engine import lammps
engine = lammps.LammpsWrapper()
Interface to LAMMPS¶
The SimPhoNy LAMMPS engine (see LammpsWrapper
) can be configured to
interface with LAMMPS in two separate ways:
- FILE-IO - input and output files are used to configure and run LAMMPS engine
- INTERNAL - the LAMMPS library interface is used to run LAMMPS and access the internal state.
Despite performance differences, it should not matter whether the user is using the File-IO or the INTERNAL interface as the API is the same.
# wrapper defaults to FILE-IO
from simphony.engine import lammps
engine = lammps.LammpsWrapper()
# or use INTERNAL wrapper
from simphony.engine import lammps
engine = lammps.LammpsWrapper(use_internal_interface=true)
Installation of LAMMPS¶
This engine-wrapper uses LAMMPS Molecular Dynamics Simulator. A recent stable
version (10 Aug 2015, tagged r13864) of LAMMPS is supported and has been
tested. See install_lammps.sh
for an example installation instructions.
For general LAMMPS install information, see http://lammps.sandia.gov/index.html
The installation of LAMMPS differs depending on what interface is used:
- FILE-IO: There needs to be an executable called “lammps” that can be found in the PATH.
- INTERNAL: The LAMMPS-provided Python wrapper to LAMMPS needs to be installed.Instructions on building LAMMPS as a shared library and installing the Python wrapper can be found on LAMMPS website (http://lammps.sandia.gov/doc/Section_python.html#py_3)
Limitations of the INTERNAL interface¶
- The following are known limitations when using the INTERNAL interface to LAMMPS:
- Currently an upper limit of particle types (CUBA.MATERIAL_TYPE) is set due to the fact that LAMMPS only allows the number of types be configured at start (and not changed later) (https://github.com/simphony/simphony-lammps-md/issues/66)
- No notification is provided to the user when an internal error occurs in the LAMMPS shared library as the library calls exit(1) and the process immediately exists (without an exception or writing to standard output/error). (https://github.com/simphony/simphony-lammps-md/issues/63)