atomate2
atomate2 is a library of materials science workflows
Decision gist · record as of 2026-08-14
Yes. Atomate2 is actively maintained, production-stable, permissively licensed, and solves a real problem for materials scientists: automating repetitive DFT workflows at scale. Install friction is low and there are no known security vulnerabilities. The main prerequisite is having VASP and its pseudopotentials configured—a non-trivial setup that the documentation addresses, but not a fault of the package itself.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11+, VASP binary installed and configured, pseudopotential files accessible to pymatgen, and optionally an external database for job output storage.
- Low friction to install as a pure Python wheel.
- Requires 11 runtime dependencies including pymatgen, jobflow, and custodian.
License · maintenance · safety
BSD-3-Clause-LBNL (permissive) — Released under BSD-3-Clause-LBNL (permissive), allowing commercial and private use with minimal restrictions beyond attribution and liability disclaimers.
last release 2026-07-13 (32 days) · last repo commit 2026-08-14 · 338 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 106,625 downloads/mo, #12,645 on PyPI
Alternatives
Verify before relying
pip install atomate2
from atomate2.vasp.flows.core import RelaxBandStructureMaker
from jobflow import run_locally
from pymatgen.core import Structure
mgo = Structure(
lattice=[[0, 2.13, 2.13], [2.13, 0, 2.13], [2.13, 2.13, 0]],
species=["Mg", "O"],
coords=[[0, 0, 0], [0.5, 0.5, 0.5]],
)
flow = RelaxBandStructureMaker().make(mgo)
run_locally(flow, create_folders=True)- Whether the package supports materials properties beyond those explicitly listed (elastic, dielectric, piezoelectric tensors, phonons, defects, band structures, electron-phonon, transport).
- Scalability limits when running 100,000 materials workflows and resource requirements for that scale.
- Integration requirements and compatibility with jobflow-remote versus FireWorks for distributed execution.
What it is and what it does
Atomate2 is a Python library that automates complex materials science computational workflows, primarily for density functional theory (DFT) calculations using VASP. It builds on pymatgen, custodian, and jobflow to provide a collection of pre-configured workflows for computing materials properties—band structures, elastic and dielectric tensors, phonons, defect formation energies, and bonding analysis—while handling job orchestration, error recovery, and result tracking.
Workflows are composed using Maker objects with a consistent API, allowing users to modify input parameters and chain calculations together. Atomate2 can scale from single-material studies to high-throughput campaigns, automatically maintaining detailed records of jobs, directories, and runtime parameters. Results can be stored in external databases for systematic querying and analysis. Workflows run either locally via jobflow or distributed through jobflow-remote or FireWorks.
Use it for
- Compute band structures and electronic properties for a series of candidate materials in a single Python script.
- Generate elastic and piezoelectric tensor data for materials screening without writing individual VASP input files.
- Build a searchable database of calculated phonon properties and defect formation energies across hundreds of materials.
- Chain multiple calculations (e.g., structure relaxation followed by band structure) with automatic error handling and resubmission.
- Scale from testing a workflow on one material to running it across thousands in a distributed computing environment.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Atomate2 is actively maintained, production-stable, permissively licensed, and solves a real problem for materials scientists: automating repetitive DFT workflows at scale. Install friction is low and there are no known security vulnerabilities. The main prerequisite is having VASP and its pseudopotentials configured—a non-trivial setup that the documentation addresses, but not a fault of the package itself.
Install
atomate2 on PyPI
Before you install
Low friction to install as a pure Python wheel. Requires 11 runtime dependencies including pymatgen, jobflow, and custodian. Active maintenance with a recent release 32 days ago and ongoing commits.
Requires Python 3.11+, VASP binary installed and configured, pseudopotential files accessible to pymatgen, and optionally an external database for job output storage.
License in practice
Released under BSD-3-Clause-LBNL (permissive), allowing commercial and private use with minimal restrictions beyond attribution and liability disclaimers.
Quickstart
pip install atomate2
from atomate2.vasp.flows.core import RelaxBandStructureMaker
from jobflow import run_locally
from pymatgen.core import Structure
mgo = Structure(
lattice=[[0, 2.13, 2.13], [2.13, 0, 2.13], [2.13, 2.13, 0]],
species=["Mg", "O"],
coords=[[0, 0, 0], [0.5, 0.5, 0.5]],
)
flow = RelaxBandStructureMaker().make(mgo)
run_locally(flow, create_folders=True)
Verify before relying
- Whether the package supports materials properties beyond those explicitly listed (elastic, dielectric, piezoelectric tensors, phonons, defects, band structures, electron-phonon, transport).
- Scalability limits when running 100,000 materials workflows and resource requirements for that scale.
- Integration requirements and compatibility with jobflow-remote versus FireWorks for distributed execution.
Package facts
| License | BSD-3-Clause-LBNL permissive |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 11 packagesPyYAMLclickcustodianemmet-corejobflowmontynumpypydantic-settingspydanticpymatgenpymongo |
| Maintenance | Actively maintained 32 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 106,625 / month, #12,645 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: Information TechnologyIntended Audience :: Science/ResearchIntended Audience :: System AdministratorsOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: Other/Nonlisted TopicTopic :: Scientific/Engineering |
Evidence: atomate2-0.1.5-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “dft calculation automation”
- atomate2Atomate2 provides a library of pre-built materials science workflows…
- pymatgen-io-validationValidates VASP electronic structure calculation inputs and outputs…
- pymatgen-corepymatgen-core provides core data structures and I/O for materials…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also jobflow · vasprun-xml · pymatgen · dpdata · pymatgen-core · phonopy · emmet-core · pymatgen-io-validation · chgnet · pyxtal