Tools for the pace-mdgroup project.
Project description
The workbook contains the code and notebook to run PACE (Precise and Accurate Configuration Evaluation).
PACE identifies stable ground-state base–adsorbate configurations through a multistep approach. It begins by performing single-point MLIP calculations on adsorbates placed at predefined grid points within the unit cell, where grid resolution (number of subdivisions along each axis) controls the density of possible adsorption sites.
After ranking the resulting configurations based on single-point MLIP energy predictions, the most promising candidates undergo MLIP structure optimization, followed by first-principles DFT optimization of the MLIP-predicted ground state.
🚀 Environment Setup
-
System requirements: The package is designed to run on a standard Linux system equipped with a GPU that supports CUDA version 10 or higher and at least 2 GB of RAM. It has been tested on NVIDIA V100 SXM2. For GPUs with CUDA versions below 10, you will need to adjust the PyTorch and CUDA versions specified in the environment.yml file
-
We’ll use conda to manage dependencies and configure the environment on an NVIDIA GPU-enabled system.
-
It’s recommended to install Miniconda using the official installer.
-
Once conda is installed, add
mambato your base environment for faster and more reliable package management.conda install mamba -n base -c conda-forge
-
Then create a conda environment and install the dependencies:
mamba env create -f environment.yml
Activate the conda environment with
conda activate pace-env. -
Alternative:
mamba env create -n pace-env
Install from the requirements.txt file
pip install -r requirements.txt
⚙️ Installation
pip install pace-mdgroup
if PyPI installation fails or you need the latest main branch commits, you can install from source:
pip install git+https://github.com/dixitmudit/PACE.git
🧪 Getting Started
1. Direct Usage
After placing the VASP files of the base and adsorbate in the current working directory, the main.py file can be executed as follows:
python main.py --model /path/to/your/mace/model.model --metals Fe-Ru Fe-Mo --adsorbates Li2S Li2S2 --device cuda
2. Example notebook
The following is an example workflow to carry out experiments with the PACE algorithm.
3. PACE class implementation
You can directly import PACE into your current workflow assuming you are using ase and MLIPs
from pace import PACE
from ase.io import read, write
from mace.calculators import MACECalculator
mace_calc = MACECalculator('/path/to/model/here')
base = read('/path/to/base.vasp')
adsorbate = read('/path/to/base.vasp')
# Setup PACE:
pace = PACE(base=base, adsorbate=adsorbate, division=5, z_levels=[1.35, 1.75]) # z_levels: distance of adsorbate from base in Angstroms
# Screen conformations
results = pace.screen(calculator=mace_calc, fig_save_at='/your/path/here', mlip_optimization=3)
# if mlip_optimization > 0, it will initate mlip optimization of top `input: integer` (by_default: 20) structures.
optmised_structure = results['screened_structures'][0]
🌈 Acknowledgements
M.D. and S.K. gratefully acknowledge the financial support provided by the CSIR, India, which facilitated the completion of this work. A.M.K.R. acknowledges the Department of Atomic Energy and UM-DAE-Centre for Excellence in Basic Sciences,
We express our gratitude to the National Supercomputing Mission (NSM) for granting access to the computing resources of the Param Porul HPC System. This system is implemented by C-DAC and is supported by the Ministry of Electronics and Information Technology (MeitY) and the Department of Science and Technology (DST), Government of India.
This code repo is based on several existing repositories and MLIPs:
📝 Citation
If you find our work useful, please consider citing it:
@misc{https://doi.org/10.48550/arxiv.2510.15397,
doi = {10.48550/ARXIV.2510.15397},
url = {https://arxiv.org/abs/2510.15397},
author = {Kumar, Sahil and R, Adithya Maurya K and Dixit, Mudit},
keywords = {Materials Science (cond-mat.mtrl-sci), FOS: Physical sciences, FOS: Physical sciences},
title = {Unravelling the Catalytic Activity of Dual-Metal Doped N6-Graphene for Sulfur Reduction via Machine Learning-Accelerated First-Principles Calculations},
publisher = {arXiv},
year = {2025},
copyright = {Creative Commons Attribution 4.0 International}
}
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pace_mdgroup-0.1.1.tar.gz.
File metadata
- Download URL: pace_mdgroup-0.1.1.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7462dc7cbc0351ce7999c8f13596987b394d29b978db740621d09ff6fc0a746
|
|
| MD5 |
9708b6cfca46284a0ea4e87bd3d15516
|
|
| BLAKE2b-256 |
167acb857f74977d9f77bdc8ddd784bcfd50a97843928966c3f91d2bc310a37a
|
Provenance
The following attestation bundles were made for pace_mdgroup-0.1.1.tar.gz:
Publisher:
python-publish.yml on dixitmudit/PACE
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pace_mdgroup-0.1.1.tar.gz -
Subject digest:
b7462dc7cbc0351ce7999c8f13596987b394d29b978db740621d09ff6fc0a746 - Sigstore transparency entry: 629875598
- Sigstore integration time:
-
Permalink:
dixitmudit/PACE@e09ac47ce79b4499c79d4fd58972721d84ec5912 -
Branch / Tag:
refs/tags/0.1.1 - Owner: https://github.com/dixitmudit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@e09ac47ce79b4499c79d4fd58972721d84ec5912 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pace_mdgroup-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pace_mdgroup-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fa39017d3e6064c30970addb4335be1589919bf72b8877637d78ba2b392098e
|
|
| MD5 |
59434ba3798915341052a916724bfe3e
|
|
| BLAKE2b-256 |
b3547579ffa79ff96f6ffc5e85326c4d81ced14da4e8de1dae53eeffceb9e8c1
|
Provenance
The following attestation bundles were made for pace_mdgroup-0.1.1-py3-none-any.whl:
Publisher:
python-publish.yml on dixitmudit/PACE
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pace_mdgroup-0.1.1-py3-none-any.whl -
Subject digest:
0fa39017d3e6064c30970addb4335be1589919bf72b8877637d78ba2b392098e - Sigstore transparency entry: 629875600
- Sigstore integration time:
-
Permalink:
dixitmudit/PACE@e09ac47ce79b4499c79d4fd58972721d84ec5912 -
Branch / Tag:
refs/tags/0.1.1 - Owner: https://github.com/dixitmudit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@e09ac47ce79b4499c79d4fd58972721d84ec5912 -
Trigger Event:
release
-
Statement type: