Skip to main content

MaterialsFramework

License: GPL-3.0-or-later Python Platforms

Tests Lint

DOI

MaterialsFramework provides a single, uniform API for 20+ machine learning interatomic potentials (MLIPs), covering single-point calculations, structure relaxation, and molecular dynamics, plus the property analyzers and structure-generation tools that build on them. Swapping one MLIP for another, or for the licensed VASPCalculator, means changing one line of code.

Report a Bug | Request a Feature | Documentation


Key Features

  • Run single-point calculations and structure relaxations across 20+ ML interatomic potentials through one shared BaseCalculator interface, or swap in the licensed VASPCalculator without changing calling code
  • Accept ase.Atoms, pymatgen.Structure, and pymatgen.Molecule interchangeably as calculator input
  • Run molecular dynamics with NVE and a broad set of NVT/NPT thermostats and barostats on calculators that support it
  • Compute formation energy, elastic constants, phonons, stacking faults, surface/binding energies, and reaction barriers with 14 property analyzers, each paired with a transformation that generates the structures it needs
  • Generate special quasirandom structures, cluster expansion models, phase-field simulations, and stability maps with the built-in tools
  • Look up calculators, analyzers, transformations, and tools by name, without importing every MLIP backend at once

Supported MLIPs

MLIP Extra Package API Repository Paper
ALIGNN alignn alignn API Repo Paper
Allegro allegro nequip-allegro API Repo Paper
AlphaNet alphanet msc-alphanet API Repo Paper
CHGNet chgnet chgnet API Repo Paper
DeePMD deepmd deepmd-kit API Repo Paper
EqNorm eqnorm eqnorm API Repo N/A
EquFlash N/A GGNN (git-only) API Repo Paper
EqV2 eqv2 fairchem-core API Repo Paper
eSEN esen fairchem-core API Repo Paper
GPTFF N/A gptff (git-only) API Repo Paper
GRACE grace tensorpotential API Repo Paper
HIENet hienet hienet API Repo Paper
M3GNet matgl matgl API Repo Paper
MACE mace mace-torch API Repo Paper
MatRIS matris matris API Repo Paper
MatterSim mattersim mattersim API Repo Paper
MEGNet matgl matgl API Repo Paper
NequIP nequip nequip API Repo Paper
Nequix nequix nequix API Repo Paper
NewtonNet newtonnet newtonnet API Repo Paper
ORB orb orb-models API Repo Paper
PetMad petmad upet API Repo Paper
PosEGNN N/A N/A API Repo N/A
SevenNet sevennet sevenn API Repo Paper
TACE tace TACE API Repo Paper
UMA uma fairchem-core API Repo Paper

Non-MLIP calculators: RandomCalculator (dependency-free testing stub) and VASPCalculator (external licensed VASP backend).


Property Analyzers

Analyzer Description
ANNNIStackingFaultAnalyzer ANNNI-based intrinsic and extrinsic stacking fault energies
BainPathAnalyzer Energy along the FCC-to-BCC Bain transformation path
CTEAnalyzer Coefficient of thermal expansion from NPT-MD volume trends
CubicElasticConstantsAnalyzer Cubic elastic constants and derived moduli (B, G, E, ν)
ElasticConstantsAnalyzer Full elastic tensor and Voigt-Reuss-Hill averages
EOSAnalyzer Equation-of-state curve fitting from E-V data
FormationEnergyAnalyzer Formation energy per atom
HSolubilityAnalyzer Hydrogen insertion and solution energies
NEBAnalyzer Nudged elastic band minimum energy path and reaction barrier
PhonopyAnalyzer Total/projected phonon DOS and thermal properties
Phono3pyAnalyzer Anharmonic force constants and lattice thermal conductivity
SBEAnalyzer Surface binding energies, a first-principles proxy for sputtering resistance
SurfaceAnalyzer Slab surface energies for a given Miller index
USFEAnalyzer Generalized stacking fault energy curves and unstable SFE

Tools

Tool Description
BondLatticeParameter Lattice parameter estimation from bond lengths for FCC/BCC/HCP alloys
ClusterExpansion Cluster expansion model construction and fitting
CoherentStabilityMap Stability map generation with a coherent-elastic correction to the Gibbs energy Hessian
PhaseFieldModel Cahn-Hilliard phase-field simulations
Sqs2tdb Converts SQS output files to TDB format for CALPHAD workflows (PhaseForge)
SqsGenerator Special quasirandom structure generation
StabilityMap Composition-temperature stability map generation
TrajectoryObserver Records energies, forces, stresses, and trajectory frames during relaxation or MD

Installation

We recommend uv for dependency management, though a plain pip install also works. Use the Extra column in the Supported MLIPs table above to pick which MLIP extras to add. Some backends require additional installation steps documented in the full installation guide.

uv

uv add materialsframework

Add one or more compatible MLIP extras:

# Single MLIP
uv add "materialsframework[chgnet]"

# Compatible multi-MLIP stack
uv add "materialsframework[chgnet,matgl,sevennet]"

pip

pip install materialsframework

Add an MLIP extra the same way:

pip install "materialsframework[chgnet]"

See the installation guide for full setup instructions and MLIP Conflicts for conflict and optional-dependency details.


Quickstart

Calculators

Every calculator except MEGNetCalculator accepts ase.Atoms or pymatgen.Structure and exposes the same relax()/calculate() interface, regardless of which MLIP backs it.

from ase.build import bulk
from materialsframework.calculators import MACECalculator

structure = bulk("Cu", crystalstructure="fcc", a=3.6, cubic=True)
calc = MACECalculator()

result = calc.relax(structure)
print(result["final_structure"])
print(result["energy"])

calculate() evaluates the same properties on the structure exactly as given, with no relaxation step:

result = calc.calculate(structure)
print(result["energy"])
print(result["forces"])

Molecular Dynamics

Calculators that subclass BaseMDCalculator add a run() method for NVE and multiple NVT/NPT thermostats and barostats.

from ase.build import bulk
from materialsframework.calculators import CHGNetCalculator

structure = bulk("Fe", crystalstructure="bcc", a=2.87, cubic=True)
calc = CHGNetCalculator(ensemble="nvt_nose_hoover", temperature=300)

result = calc.run(structure, steps=1000)
print(result["final_structure"])

Property Analyzers

Analyzers pair with a transformation of the same name: the transformation generates the structures a calculation needs, and the analyzer orchestrates the calculator calls and combines the results.

from ase.build import bulk
from materialsframework.analysis import FormationEnergyAnalyzer
from materialsframework.calculators import CHGNetCalculator

structure = bulk("NaCl", crystalstructure="rocksalt", a=5.64)
analyzer = FormationEnergyAnalyzer(calculator=CHGNetCalculator())

result = analyzer.calculate(structure, is_relaxed=True)
print(result["formation_energy"])

Tools

Standalone utilities such as special quasirandom structure generation, cluster expansion, and phase-field modeling live in materialsframework.tools.

from materialsframework.tools import SqsGenerator

generator = SqsGenerator(iterations=1000)
result = generator.generate("Fe0.5Co0.5", crystal_structure="bcc", supercell_size=(2, 2, 2))
print(result["structure"])
print(result["objective"])

Registries

Look up calculators, analyzers, transformations, and tools by name to swap in a new backend without importing every MLIP dependency up front.

from materialsframework.calculators import get_calculator

calc = get_calculator("chgnet")

License

Distributed under the GPL-3.0-or-later License. See GPL-3.0 for details.


Citation

If you use MaterialsFramework in your research, please cite:

Sarıtürk, D., & Arroyave, R. (2025). MaterialsFramework. Zenodo. https://doi.org/10.5281/zenodo.15731044

@software{sariturk_2025_15731044,
  author    = {Sarıtürk, Doğuhan and Arroyave, Raymundo},
  title     = {MaterialsFramework},
  month     = jun,
  year      = 2025,
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.15731044},
  url       = {https://doi.org/10.5281/zenodo.15731044},
}

Download files

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

Source Distribution

materialsframework-1.0.0.tar.gz (115.6 kB view details)

Uploaded Source

Built Distribution

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

materialsframework-1.0.0-py3-none-any.whl (170.9 kB view details)

Uploaded Python 3

File details

Details for the file materialsframework-1.0.0.tar.gz.

File metadata

  • Download URL: materialsframework-1.0.0.tar.gz
  • Upload date:
  • Size: 115.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for materialsframework-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fe5bb77950ba4421158ce73c9f9a694359a4654560e48111e0cec1532a8c2285
MD5 12bb4560304b759ac2db95e7159bfe60
BLAKE2b-256 746c0766ff020a01ba9ead636f789a5a236d6ad10a47de6dbd39a59fc5326770

See more details on using hashes here.

Provenance

The following attestation bundles were made for materialsframework-1.0.0.tar.gz:

Publisher: release.yml on dogusariturk/MaterialsFramework

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

File details

Details for the file materialsframework-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for materialsframework-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a2c776c4f5c58577d4f953aad48379888ccb9e949367acc10cb3f661800fcf6
MD5 fdd27aa9562c645b58962a20d3d18e09
BLAKE2b-256 022773b86354c31709c3c1253073991acaa0566add953f10a95cfa64d70549b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for materialsframework-1.0.0-py3-none-any.whl:

Publisher: release.yml on dogusariturk/MaterialsFramework

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