Skip to content

stfc/aiida-mlip

Repository files navigation

Build Status Coverage Status Docs status PyPI version License DOI

aiida-mlip

logo

machine learning interatomic potentials aiida plugin

Features (in development)

  • Supports multiple MLIPs
    • MACE
    • M3GNET
    • CHGNET
  • Single point calculations
  • Geometry optimisation
  • Molecular Dynamics:
    • NVE
    • NVT (Langevin(Eijnden/Ciccotti flavour) and Nosé-Hoover (Melchionna flavour))
    • NPT (Nosé-Hoover (Melchiona flavour))
  • Training MLIPs
    • MACE
  • Fine tuning MLIPs
    • MACE
  • MLIP descriptors
    • MACE

The code relies heavily on janus-core, which handles mlip calculations using ASE.

Installation

pip install aiida-mlip
verdi quicksetup  # better to set up a new profile
verdi plugin list aiida.calculations

The last command should show a list of AiiDA pre-installed calculations and the aiida-mlip plugin calculations (mlip.opt, mlip.sp)

Registered entry points for aiida.calculations:
* core.arithmetic.add
* core.templatereplacer
* core.transfer
* mlip.opt
* mlip.sp
* mlip.md
* mlip.train
* mlip.descriptors

Usage

The example folder provides scripts to submit calculations in the calculations folder, and tutorials in jupyter notebook format in the tutorials folder.

A quick demo of how to submit a calculation using the provided example files:

verdi daemon start     # make sure the daemon is running
cd examples/calculations
verdi run submit_singlepoint.py "janus@localhost" --struct "path/to/structure" --architecture mace --model "/path/to/model"    # run singlepoint calculation
verdi run submit_geomopt.py "janus@localhost" --struct "path/to/structure" --model "path/to/model" --steps 5 --opt_cell_fully True # run geometry optimisation
verdi run submit_md.py "janus@localhost" --struct "path/to/structure" --model "path/to/model" --ensemble "nve" --md_dict_str "{'temp':300,'steps':4,'traj-every':3,'stats-every':1}" # run molecular dynamics

verdi process list -a  # check record of calculation

Models can be trained by using the Train calcjob. In that case the needed inputs are a config file containig the path to train, test and validation xyz file and other optional parameters. Running

verdi run submit_train.py

a model will be trained using the provided example config file and xyz files (can be found in the tests folder)

Development

  1. Install poetry
  2. (Optional) Create a virtual environment
  3. Install aiida-mlip with dependencies:
git clone https://github.com/stfc/aiida-mlip
cd aiida-mlip
pip install --upgrade pip
poetry install --with pre-commit,dev,docs  # install extra dependencies
pre-commit install  # install pre-commit hooks
pytest -v  # discover and run all tests

See the developer guide for more information.

Repository contents

License

BSD 3-Clause License

Funding

Contributors to this project were funded by

PSDI ALC CoSeC