Skip to content

aiidaplugins/aiida-lammps

Repository files navigation

CI Status Coverage Status PyPI Code style: black Docs status

AiiDA LAMMPS plugin

An AiiDA plugin for the classical molecular dynamics code LAMMPS.

This plugin contains 2 types of calculations:

  • lammps.base: Calculation making use of parameter based input generation for single stage LAMMPS calculations.
  • lammps.raw: Calculation making use of a pre-made LAMMPS input file.

The lammps.base is also used to handle three workflows:

Installation

To install a stable version from pypi:

pip install aiida-lammps

To install from source:

git clone https://github.com/aiidaplugins/aiida-lammps.git
pip install -e aiida-lammps

Built-in Potential Support

The lammps.base calculation and associated workflows make use of the LammpsPotentialData data structure which is created by passing a potential file, plus some labelling parameters to it.

This data structure can be used to handle the following potential types:

  • Single file potentials: Any potential that can be stored in a single file, e.g. EAM, MEAM, Tersoff and ReaxFF.
  • Directly parametrized potentials: Potentials whose parameters are directly given via pair_coeff in the input file, e.g Born, Lennard-Jones and Yukawa. These parameters should be written into a file that is then stored into a LammpsPotentialData node.

Examples

More example calculations are found in the folder /examples as well as in the documentation. The examples touch some common cases for the usage of LAMMPS for a single stage calculation.

Development

Running tests

The test suite can be run in an isolated, virtual environment using tox (see tox.ini in the repo):

pip install tox
tox -e 3.9-aiida_lammps -- tests/

or directly:

pip install .[testing]
pytest -v

The tests require that both PostgreSQL and RabbitMQ are running. If you wish to run an isolated RabbitMQ instance, see the docker-compose.yml file in the repo.

Some tests require that a lammps executable be present.

The easiest way to achieve this is to use Conda:

conda install lammps==2019.06.05
# this will install lmp_serial and lmp_mpi

You can specify a different executable name for LAMMPS with:

tox -e 3.9-aiida_lammps -- --lammps-exec lmp_exec

To output the results of calcjob executions to a specific directory:

pytest --lammps-workdir "test_workdir"

Pre-commit

The code is formatted and linted using pre-commit, so that the code conform to the standard:

cd aiida-lammps
pre-commit run --all

or to automate runs, triggered before each commit:

pre-commit install

License

The aiida-lammps plugin package is released under the MIT license. See the LICENSE file for more details.