- Notifications
You must be signed in to change notification settings - Fork110
atomate2 is a library of computational materials science workflows
License
materialsproject/atomate2
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Atomate2 is a free, open-source software for performing complex materials scienceworkflows using simple Python functions. Features of atomate2 include
- It is built on open-source libraries:pymatgen,custodian,jobflow, andjobflow-remote orFireWorks.
- A library of "standard" workflows to compute a wide variety of desired materialsproperties.
- 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, andshare in a systematic way.
- It automatically keeps meticulous records of jobs, their directories, runtimeparameters, and more.
Some of the workflows available in atomate2 are:
- electronic band structures
- elastic, dielectric, and piezoelectric tensors
- one-shot electron-phonon interactions
- electronic transport usingAMSET
- phonons usingphonopy
- defect formation energy diagrams
- Lobster bonding analysis withlobsterpy
It is easy to customise and compose any of the above workflows.
Workflows in atomate2 are written using thejobflow library. Workflows are generated usingMaker
objects which have a consistent API for modifying input settings and chainingworkflows together. Below, we demonstrate how to run a band structure workflow(see thedocumentation for more details). In total, 4 VASPcalculations 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 ofstates).
- A non-self-consistent calculation on a high symmetry k-point path (for the line modeband structure).
fromatomate2.vasp.flows.coreimportRelaxBandStructureMakerfromjobflowimportrun_locallyfrompymatgen.coreimportStructure# construct a rock salt MgO structuremgo_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 structurebandstructure_flow=RelaxBandStructureMaker().make(mgo_structure)# run the flowrun_locally(bandstructure_flow,create_folders=True)
Before the above code can run successfully, you'll need to
- tell pymatgen where tofind your pseudopotential files
- tell atomate2 where to find your VASP binary
- (optionally) prepare an external database to store the job output
See theinstallation steps for details how to set all of this up.
In this example, we execute the workflow immediately. In many cases, you might wantto perform calculations on several materials simultaneously. To achieve this, allatomate2 workflows can be run using thejobflow-remote orFireWorks software. See thejobflow-remote-specific documentation orfireworks-specific documentation for more details.
Atomate2 is a Python 3.10+ library and can be installed using pip. Full installationand configuration instructions are provided in theinstallation tutorial.
The documentation includes comprehensive tutorials and reference information to get youstarted:
- Introduction to running workflows
- Using atomate2 with FireWorks
- Overview of key concepts
- List of VASP workflows
- Executable tutorials for different workflows
In March 2025, the first dedicated school on atomate2 (including the workflow language jobflow and the workflow manager jobflow-remote) took place, and one can access the video material here:
- Jobflow and Jobflow-remote
- atomate2
- Advanced Workflows in atomate2: Part 1
- Advanced Workflows in atomate2: Part 2
Ask questions about atomate2 on theatomate2 support forum.If you've found an issue with atomate2, please submit a bug report onGitHub Issues.
Track changes to atomate2 through thechangelog.
We greatly appreciate any contributions in the form of a pull request.Additional information on contributing to atomate2 can be foundhere.We maintain a list of all contributorshere.
Atomate2 is released under a modified BSD license; the full text can be foundhere.
The development of atomate2 has benefited from many people across several research groups.A full list of contributors can be foundhere.
A journal submission ofatomate2
is undergoing peer review. In the meantime, please cite theChemRxiv preprint:
@article{ganose2025_atomate2,title ={Atomate2: Modular Workflows for Materials Science}, author = {Ganose, Alex M. and Sahasrabuddhe, Hrushikesh and Asta, Mark and Beck, Kevin and Biswas, Tathagata and Bonkowski, Alexander and Bustamante, Joana and Chen, Xin and Chiang, Yuan and Chrzan, Daryl and Clary, Jacob and Cohen, Orion and Ertural, Christina and Gallant, Max and George, Janine and Gerits, Sophie and Goodall, Rhys and Guha, Rishabh and Hautier, Geoffroy and Horton, Matthew and Kaplan, Aaron and Kingsbury, Ryan and Kuner, Matthew and Li, Bryant and Linn, Xavier and McDermott, Matthew and Mohanakrishnan, Rohith Srinivaas and Naik, Aakash and Neaton, Jeffrey and Persson, Kristin and Petretto, Guido and Purcell, Thomas and Ricci, Francesco and Rich, Benjamin and Riebesell, Janosh and Rignanese, Gian-Marco and Rosen, Andrew and Scheffler, Matthias and Schmidt, Jonathan and Shen, Jimmy-Xuan and Sobolev, Andrei and Sundararaman, Ravishankar and Tezak, Cooper and Trinquet, Victor and Varley, Joel and Vigil-Fowler, Derek and Wang, Duo and Waroquiers, David and Wen, Mingjian and Yang, Han and Zheng, Hui and Zheng, Jiongzhi and Zhu, Zhuoying and Jain, Anubhav},year =2025,journal ={ChemRxiv},url ={https://chemrxiv.org/engage/chemrxiv/article-details/678e76a16dde43c9085c75e9},urldate ={2025-01-22},}
About
atomate2 is a library of computational materials science workflows