Sign inSign up

costrouc/lammps-cython

By costrouc

•Updated about 8 years ago

A high performance python LAMMPS wrapper

Image
0

6.0K

costrouc/lammps-cython repository overview

⁠lammps-cython

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 Releaselatest release
latest release
Package Statusstatus
Licenselicense
Build Status gitlab pipeline status ⁠
Binder Notebooksbinder notebooks

⁠Documentation

Full documentation can be found at lammps-cython⁠.

⁠Features

  • 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)

⁠Installation

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 gitlab 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.

⁠Conda Image

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

⁠Docker Image

The docker image costrouc/lammps-cython⁠ uses python3.5 and has the library preinstalled with the executables pylammps and lammps available.

⁠Tutorials

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

⁠Contributing

All contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas are welcome! These should be submitted at the Gitlab repository⁠. Github is only used for visibility.

Contributors:

⁠License

MIT

Tag summary

Content type

Image

Digest

Size

360.1 MB

Last updated

about 8 years ago

docker pull costrouc/lammps-cython