Skip to content

JPchico/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.

About

LAMMPS plugin for AiiDA

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%