Atomate2 is a free, open-source software for performing complex materials science workflows using simple Python functions. Features of atomate2 include
A library of “standard” workflows to compute a wide variety of desired materials properties.
The ability scale from a single material, to 100 materials, or 100,000 materials.
Easy routes to modifying and chaining workflows together.
It can build large databases of output properties that you can query, analyze, and share in a systematic way.
It automatically keeps meticulous records of jobs, their directories, runtime parameters, and more.
Note: Atomate2 is primarily built to work with the VASP electronic structure software, but we are actively working on adding more codes.
Some of the workflows available in atomate2 are:
electronic band structures
elastic, dielectric, and piezoelectric tensors
one-shot electron-phonon interactions
electronic transport using AMSET
phonons using phonopy
defect formation energy diagrams
It is easy to customise and compose any of the above workflows.
Workflows in atomate2 are written using the jobflow library. Workflows are generated using
Maker objects which have a consistent API for modifying input settings and chaining
workflows together. Below, we demonstrate how to run a band structure workflow
(see the documentation for more details). In total, 4 VASP
calculations will be performed:
A structural optimisation.
A self-consistent static calculation on the relaxed geometry.
A non-self-consistent calculation on a uniform k-point mesh (for the density of states).
A non-self-consistent calculation on a high symmetry k-point path (for the line mode band structure).
from atomate2.vasp.flows.core import RelaxBandStructureMaker from jobflow import run_locally from pymatgen.core import Structure # construct a rock salt MgO structure mgo_structure = 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]], ) # make a band structure flow to optimise the structure and obtain the band structure bandstructure_flow = RelaxBandStructureMaker().make(mgo_structure) # run the flow run_locally(bandstructure_flow, create_folders=True)
Before the above code can run successfully, you’ll need to
tell pymatgen where to find your pseudopotential files
tell atomate2 where to find your VASP binary
(optionally) prepare an external database to store the job output
See the installation steps for details how to set all of this up.
In this example, we execute the workflow immediately. In many cases, you might want to perform calculations on several materials simultaneously. To achieve this, all atomate2 workflows can be run using the FireWorks software. See the documentation for more details.
Atomate2 is a Python 3.8+ library and can be installed using pip. Full installation and configuration instructions are provided in the installation tutorial.
The documentation includes comprehensive tutorials and reference information to get you started:
Track changes to atomate2 through the changelog.
Atomate2 is released under a modified BSD license; the full text can be found here.
Atomate2 was designed and developed by Alex Ganose.
A full list of all contributors can be found here.