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-lammps
To install from source:
git clone https://github.com/aiidaplugins/aiida-lammps.git
pip install -e aiida-lammps
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 aLammpsPotentialData
node.
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 -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"
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
The aiida-lammps
plugin package is released under the MIT license. See the LICENSE
file for more details.