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

We recommend installing uv for dependency management when developing for aiida-mlip:

  1. Install uv
  2. Install aiida-mlip with dependencies in a virtual environment:
git clone https://github.com/stfc/aiida-mlip
cd aiida-mlip
uv sync  # Create a virtual environment and install dependencies
source .venv/bin/activate
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