A high-performance cython wrapper around LAMMPS. Lammps is a great
molecular dynamics package that has an unmatched set of potentials and
fixes. This package offers unique features such as minimizing I/O by
allowing direct access to thermostats and atom properties and allowing
interactive lammps within python interpreters such a ipython
. The
goal of this project is to put an opinionated wrapper around LAMMPS
(the good parts) and allow the user to easily extend it's
functionality in python. The api should feel very similar to
HOOMD and is being actively
developed.
Latest Release | |
Package Status | |
License | |
Build Status | |
Binder Notebooks | |
Documentation | documentation |
Full documentation can be found at lammps-cython.
- Full MPI support
- Pythonic API inspired by HOOMD
- Supports Python 2 and 3
- Heavily documented and tested
- Elimination of unnecessary file I/O for thermostats and atoms properties
A neat feature of the wrapper is that lammps can be run regularly
using the following script (use "-i" instead of stdin). This is the
command pylammps
when the package is installed.
from lammps import Lammps
import sys
Lammps(args=sys.args)
lammps-cython
has several options for installation. The easiest way
is using the provided docker containter image
costrouc/lammps-cython
or conda install
.There is no plan to support pip wheels. Other
methods require manual installation of lammps. Detailed installation
are provieded in the
documentation. If
you have any issues with installation be submit an issue at the
github repository.
- conda:
conda install -c costrouc -c conda-forge lammps-cython
- docker:
docker pull costrouc/lammps-cython:latest
Otherwise the general path to installation is install LAMMPS as a
shared
library then
edit ~/.config/lammps-site.cfg
to include the paths of necissary
libraries. See example below.
[lammps]
lammps_include_dir = /usr/local/include/lammps/
lammps_library_dir = /usr/local/lib/
# true library filename is liblammps.so notice lib and .so are removed
lammps_library = lammps
# use mpic++ -showme to list libraries and includes
[mpi]
mpi_include_dir = /usr/lib/x86_64-linux-gnu/openmpi/include
mpi_library_dir = /usr/lib/x86_64-linux-gnu/openmpi/lib
# no necissarily needed (default are mpi, mpi_cxx)
mpi_library = mpi
Then pip install lammps-cython
should just work.
The conda image is built only for linux and python versions (3.5,
3.6). There is no plan to support Windows due to MPI
being a
dependency. However, if OSX is needed please raise an issue.
conda install -c costrouc -c conda-forge lammps-cython
The docker image
costrouc/lammps-cython
uses python3.5
and has the library preinstalled with the executables
pylammps
and lammps
available.
Work is being done to show how to use the features of lammps-cython
for now just visit the tutorial page.
These will turn to links when the tutorial exists.
- basic usage
- modify atom positions
- get forces and velocity for each atom and compute potential energy
All contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas are welcome! These should be submitted at the Github repository.
Contributors:
- Chris Ostrouchov (maintainer)
MIT