A universal interatomic potential for advanced materials modeling
Project description
[!NOTE] The PET-MAD-1.5 models trained for 102 elements at the r2SCAN level of theory are now available! These models are more robust, more accurate and faster than the previous PET-MAD models. We highly recommend using these models for all applications, especially molecular dynamics simulations. Try them out and let us know what you think!
from upet.calculator import UPETCalculator
calculator = UPETCalculator(model="pet-mad-s", version="1.5.0", device="cuda")
[!NOTE] Are you here to try our Matbench model? Here's all you need. This model is excellent for convex hull energies, geometry optimization and phonons, but we highly recommend the lighter and more universal PET-MAD for molecular dynamics!
from upet.calculator import UPETCalculator
calculator = UPETCalculator(model="pet-oam-xl", version="1.0.0", device="cuda")
[!WARNING] This repository is a successor of the PET-MAD repository, which is now deprecated. The package has been renamed to UPET to reflect the broader scope of the models and functionalities provided, that go beyond the original PET-MAD model. Please use version
1.4.4of PET-MAD package if you want to use the old API. The migration guide and the older version of the README are available in the repository.
UPET: Universal Models for Advanced Atomistic Simulations
UPET is a family of universal interatomic potentials for advanced materials modeling across the periodic table. These models are based on the Point Edge Transformer (PET) architecture trained on various popular atomistic datasets, and they are capable of predicting energies and forces in complex atomistic workflows. The package also ships PET-MAD-DOS, a universal model for predicting the electronic density of states (DOS) of materials and molecules, as well as their Fermi levels and bandgaps.
📖 Full documentation: https://lab-cosmo.github.io/upet/latest/
Installation
Install UPET from PyPI:
pip install upet
Or directly from the GitHub repository:
pip install upet@git+https://github.com/lab-cosmo/upet.git
See the installation guide
for additional methods (specific versions, uv, etc.).
Quick start
Run a single-point evaluation with the ASE-compatible UPETCalculator:
from upet.calculator import UPETCalculator
from ase.build import bulk
atoms = bulk("Si", cubic=True, a=5.43, crystalstructure="diamond")
calculator = UPETCalculator(model="pet-mad-s", version="1.5.0", device="cpu")
atoms.calc = calculator
energy = atoms.get_potential_energy()
forces = atoms.get_forces()
The first call downloads the checkpoint from the
HuggingFace repository and caches it
locally, so subsequent calls are fast. If version is omitted, the latest
available version is used.
To list available models, sizes, and versions:
from upet import list_upet
list_upet(model="pet-mad", size="s")
list_upet(model="pet-mad")
list_upet()
Pre-trained models
UPET ships several pre-trained model families (PET-MAD, PET-OAM, PET-OMat, PET-OMATPES, PET-SPICE) at multiple sizes. The full table with supported elements, training sets, and recommended use cases is in the models documentation. All checkpoints are available on the HuggingFace repository.
Going further
The documentation covers the complete feature surface:
- ASE workflows: non-conservative forces, uncertainty quantification, rotational averaging, dispersion corrections, and PET-MAD-DOS for DOS / Fermi levels / bandgaps.
- Batched evaluation with metatrain.
- LAMMPS (including KOKKOS GPU support), i-PI, TorchSim, and GROMACS interfaces.
- Fine-tuning and example gallery.
- FAQ and known issues.
- FAQ and known issues.
More worked examples for ASE, i-PI, and LAMMPS are also available in the Atomistic Cookbook.
Citing UPET Models
If you found our models useful, please cite the corresponding articles. The full list with copy-pasteable BibTeX is also available in the documentation.
PET-MAD-1.5:
@misc{PET-MAD-1.5-2026,
title={High-quality, high-information datasets for universal atomistic machine learning},
author={Cesare Malosso and Filippo Bigi and Paolo Pegolo and Joseph W. Abbott and Philip Loche and Mariana Rossi and Michele Ceriotti and Arslan Mazitov},
year={2026},
eprint={2603.02089},
archivePrefix={arXiv},
primaryClass={cond-mat.mtrl-sci},
url={https://arxiv.org/abs/2603.02089},
}
Current UPET architecture, PET-OAM, PET-OMat, PET-OMAD, PET-OMATPES, PET-SPICE:
@misc{pushing-unconstrained-2026,
title={Pushing the limits of unconstrained machine-learned interatomic potentials},
author={Filippo Bigi and Paolo Pegolo and Arslan Mazitov and Michele Ceriotti},
year={2026},
eprint={2601.16195},
archivePrefix={arXiv},
primaryClass={physics.chem-ph},
url={https://arxiv.org/abs/2601.16195},
}
PET-MAD:
@misc{PET-MAD-2025,
title={PET-MAD as a lightweight universal interatomic potential for advanced materials modeling},
author={Mazitov, Arslan and Bigi, Filippo and Kellner, Matthias and Pegolo, Paolo and Tisi, Davide and Fraux, Guillaume and Pozdnyakov, Sergey and Loche, Philip and Ceriotti, Michele},
journal={Nature Communications},
volume={16},
number={1},
pages={10653},
year={2025},
url={https://doi.org/10.1038/s41467-025-65662-7},
}
PET-MAD-DOS:
@misc{PET-MAD-DOS-2025,
title={A universal machine learning model for the electronic density of states},
author={Wei Bin How and Pol Febrer and Sanggyu Chong and Arslan Mazitov and Filippo Bigi and Matthias Kellner and Sergey Pozdnyakov and Michele Ceriotti},
year={2025},
eprint={2508.17418},
archivePrefix={arXiv},
primaryClass={physics.chem-ph},
url={https://arxiv.org/abs/2508.17418},
}
For a general citation for the PET architecture, you can use
@misc{PET-ECSE-2023,
title = {Smooth, Exact Rotational Symmetrization for Deep Learning on Point Clouds},
journal = {Advances in {{Neural Information Processing Systems}}},
author = {Pozdnyakov, Sergey and Ceriotti, Michele},
year = 2023,
volume = {36},
pages = {79469--79501},
}
Maintainers
This project is maintained by @abmazitov and @frostedoyster, who will reply to issues and pull requests opened on this repository as soon as possible. You can mention them directly if you have not received an answer after a couple of days.
Project details
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 upet-0.2.3.tar.gz.
File metadata
- Download URL: upet-0.2.3.tar.gz
- Upload date:
- Size: 25.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df2a6c3a936f4718b5c39fc3ef9e5654c769ca849ff84216fc42cd0dfa613904
|
|
| MD5 |
9c1b2545ff18e72a2a782a9525ee1548
|
|
| BLAKE2b-256 |
74045b5e139526b7009991effb7183506392e7940620ae2e12cb3da3564f2e5f
|
Provenance
The following attestation bundles were made for upet-0.2.3.tar.gz:
Publisher:
release.yml on lab-cosmo/upet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
upet-0.2.3.tar.gz -
Subject digest:
df2a6c3a936f4718b5c39fc3ef9e5654c769ca849ff84216fc42cd0dfa613904 - Sigstore transparency entry: 1437416173
- Sigstore integration time:
-
Permalink:
lab-cosmo/upet@1f0b65c9efeb31abcfb9a14ca5859f0b3ce45e78 -
Branch / Tag:
refs/tags/v0.2.3 - Owner: https://github.com/lab-cosmo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1f0b65c9efeb31abcfb9a14ca5859f0b3ce45e78 -
Trigger Event:
push
-
Statement type:
File details
Details for the file upet-0.2.3-py3-none-any.whl.
File metadata
- Download URL: upet-0.2.3-py3-none-any.whl
- Upload date:
- Size: 24.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44dda3c9854bbb60c1b075aa58b0f5113583df756b698f2ec4dcc41925c0f281
|
|
| MD5 |
ec6525d3d0290e1c13a6cd0be6d06794
|
|
| BLAKE2b-256 |
4f6e62c2f8cb1f05dcba23527e937947a8a37d92f3828b69846b63a75a0c1d6c
|
Provenance
The following attestation bundles were made for upet-0.2.3-py3-none-any.whl:
Publisher:
release.yml on lab-cosmo/upet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
upet-0.2.3-py3-none-any.whl -
Subject digest:
44dda3c9854bbb60c1b075aa58b0f5113583df756b698f2ec4dcc41925c0f281 - Sigstore transparency entry: 1437416223
- Sigstore integration time:
-
Permalink:
lab-cosmo/upet@1f0b65c9efeb31abcfb9a14ca5859f0b3ce45e78 -
Branch / Tag:
refs/tags/v0.2.3 - Owner: https://github.com/lab-cosmo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1f0b65c9efeb31abcfb9a14ca5859f0b3ce45e78 -
Trigger Event:
push
-
Statement type: