machine learning interatomic potentials aiida plugin
Project description
aiida-mlip
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 ML potentials (MACE only planned)
- Fine tunning MLIPs (MACE only planned)
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
Usage
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 --fully_opt 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
- Install poetry
- (Optional) Create a virtual environment
- 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
.github/
: Github Actions configurationci.yml
: runs tests, checks test coverage and builds documentation at every new commitpublish-on-pypi.yml
: automatically deploy git tags to PyPI - just generate a PyPI API token for your PyPI account and add it to thepypi_token
secret of your github repositorydocs.yml
: builds and deploys the documentation
aiida_mlip/
: The main source code of the plugin packagedata/
: PluginData
classesmodel.py
ModelData
class to save mlip models as AiiDA data types
calculations/
: PluginCalcjob
classesbase.py
: BaseCalcjob
class for other calculationssinglepoint.py
:Calcjob
class to run single point calculations using mlipsgeomopt.py
:Calcjob
class to perform geometry optimization using mlipsmd.py
:Calcjob
class to perform molecular dynamics using mlips
parsers/
:Parsers
for the calculationsbase_parser.py
: BaseParser
for all calculations.sp_parser.py
:Parser
forSinglepoint
calculation.opt_parser.py
:Parser
forGeomopt
calculation.md_parser.py
:Parser
forMD
calculation.train_parser.py
:Parser
forTrain
calculation.
helpers/
:Helpers
to run calculations.
docs/
: Code documentationapidoc/
: API documentationdeveloper_guide/
: Documentation for developersuser_guide/
: Documentation for usersimages/
: Logos etc used in the documentation
examples/
: Examples for submitting calculations using this plugincalculations/
: Scripts for submitting calculationssubmit_singlepoint.py
: Script for submitting a singlepoint calculationsubmit_geomopt.py
: Script for submitting a geometry optimisation calculationsubmit_md.py
: Script for submitting a molecular dynamics calculationsubmit_train.py
: Script for submitting a train calculation.
tests/
: Basic regression tests using the pytest framework (submitting a calculation, ...). Installpip install -e .[testing]
and runpytest
.conftest.py
: Configuration of fixtures for pytestcalculations/
: Calculationstest_singlepoint.py
: TestSinglePoint
calculationtest_geomopt.py
: TestGeomopt
calculationtest_md.py
: TestMD
calculationtest_train.py
: TestTrain
calculation
data/
:ModelData
test_model.py
: TestModelData
typetest_config.py
: TestJanusConfigfile
type
.gitignore
: Telling git which files to ignore.pre-commit-config.yaml
: Configuration of pre-commit hooks that sanitize coding style and check for syntax errors. Enable viapip install -e .[pre-commit] && pre-commit install
LICENSE
: License for the pluginREADME.md
: This filetox.ini
: File to set up toxpyproject.toml
: Python package metadata for registration on PyPI and the AiiDA plugin registry (including entry points)
License
Funding
Contributors to this project were funded by
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file aiida_mlip-0.2.1.tar.gz
.
File metadata
- Download URL: aiida_mlip-0.2.1.tar.gz
- Upload date:
- Size: 20.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca0d2b47ae0118128a8c1a079d63d92ff5fc33d72180db8ed787743865644c3c |
|
MD5 | 58390701e7fbb3fb4bf916358ae7415d |
|
BLAKE2b-256 | ebdd54dd6bc2ffcbd991b4260aa5e589bfc8f59dc64cdbfbd2b7fed522305165 |
File details
Details for the file aiida_mlip-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: aiida_mlip-0.2.1-py3-none-any.whl
- Upload date:
- Size: 28.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d0bd59084d2e81d111da122698d675d0d4779a150de2269e1a2bb09d14fba24 |
|
MD5 | 2ad4815cd85c0a9aa88a7b5c31a6b0ff |
|
BLAKE2b-256 | 8bf835dd82dde0f6e599ab99e5b1fa085e69db45041a5b7e7db3bd6807c2585f |