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:
-
lammps.base: A workflow that can be used to submit any single stage LAMMPS calculation. -
lammps.relax: A workflow to submit a structural relaxation using LAMMPS. -
lammps.md: A workflow to submit a molecular dynamics calculation using LAMMPS.
To install a stable version from pypi:
pip install aiida-lammpsTo install from source:
git clone https://github.com/aiidaplugins/aiida-lammps.git
pip install -e aiida-lammpsThe 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_coeffin the input file, e.g Born, Lennard-Jones and Yukawa. These parameters should be written into a file that is then stored into aLammpsPotentialDatanode.
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.
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 -vThe 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_mpiYou can specify a different executable name for LAMMPS with:
tox -e 3.9-aiida_lammps -- --lammps-exec lmp_execTo output the results of calcjob executions to a specific directory:
pytest --lammps-workdir "test_workdir"The code is formatted and linted using pre-commit, so that the code conform to the standard:
cd aiida-lammps
pre-commit run --allor to automate runs, triggered before each commit:
pre-commit installThe aiida-lammps plugin package is released under the MIT license. See the LICENSE file for more details.