Skip to main content

A universal interatomic potential for advanced materials modeling

Project description

Figure

[!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.4 of 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()

For DOS calculations, you can use the PETMADDOSCalculator:

  from upet.calculator import PETMADDOSCalculator
  from ase.build import bulk

  atoms = bulk("Si", cubic=True, a=5.43, crystalstructure="diamond")
  calculator = PETMADDOSCalculator(version="latest", device="cpu")
  results = pet_mad_dos_calculator.calculate(atoms)

where results is a dictionary and the keys include dos_raw, dos_denoised, fermi_leveland bandgap. Each key corresponds to its output quantitiy, eg. dos_denoised is the denoised DOS obtained by applying a denoising algorithm on the raw predicted DOS. The DOS has units of states/eV and is projected on an energy grid with intervals of 0.05 eV. The bandgap and Fermi level has units of eV.

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:

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

upet-0.2.5.tar.gz (29.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

upet-0.2.5-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file upet-0.2.5.tar.gz.

File metadata

  • Download URL: upet-0.2.5.tar.gz
  • Upload date:
  • Size: 29.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for upet-0.2.5.tar.gz
Algorithm Hash digest
SHA256 ca05a84c7cf8facd5b50a518a51928eeb8001bd271f98efa267a641a598cc3fa
MD5 0d4f15be54248e625b9af64387fe9bb4
BLAKE2b-256 b5262bb534eb39d8593b86d6cc622ad05dd792a40ad0b8f64504c9474f65a6ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for upet-0.2.5.tar.gz:

Publisher: release.yml on lab-cosmo/upet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file upet-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: upet-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 28.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for upet-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 058cbf5dca34eb7fac618cec9542d135aee106428586682e81c52e8e253fdf2b
MD5 38bdbe83e72cb6a08a0324a3a76da109
BLAKE2b-256 782618c83189975e67b8e7019fb38948fa8bbc9fb1b1d5ceb3fefee8dae77fc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for upet-0.2.5-py3-none-any.whl:

Publisher: release.yml on lab-cosmo/upet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page