Introduction
Improvements in computing power along with highly optimized software have enabled the generation of increasingly large amounts of computed data. Data management and reproducibility are keys to quality scientific research, especially as more data and calculation techniques become available.
This page will collect available software tools for DFT calculations that enable any combination of
- Workflow management and scripting (e.g. writing input files for a DFT software, performing sequences of calculations with control flow)
- Data management (parsing calculation inputs and outputs, entering data into databases)
A basic requirement to prevent these lists from becoming too unwieldy is that the software should be developed by or used by a community of DFT practitioners. Do not put software here that does not have documentation and could not be reasonably used by someone who doesn’t know the developers.
Note that this is not a collection of DFT packages, even if some level of automation is available within the packages. Wikipedia has a comprehensive list of DFT packages.
Software
If a software you use or know of is not on this list, please add it.
In alphabetic order:
Software | License | Language | Brief description of major features | Supported software | Link to website and/or paper |
---|---|---|---|---|---|
AiiDA | MIT | Python | High-throughput workflows and data provenance management. Uses a plugin system. | About 10 available in 05/2018. See plugin registry. | website doi:10.1016/j.commatsci.2015.09.013 |
ASE | GPL | Python | Scripting and introducing control flow in calculations. Abstracts away the software into ‘calculators’. | Over 30 supported calculators. | website doi:10.1088/1361-648X/aa680e |
atomate | BSD | Python | Manage high-level workflows and data for high-throughput property calculations. | VASP. Some initial support for Q-Chem and LAMMPS | website doi:10.1016/j.commatsci.2017.07.030 |
custodian | MIT | Python | Designed specifically to run software and recover from errors. Software such as pymatgen needed to write inputs/parse outputs. | Supports NWChem, Q-Chem and VASP. | website doi:10.1016/j.commatsci.2012.10.028 |
pyiron | BSD | Python | Designed around workflow management, analysis and scripting in a Jupyter notebook. | Supports VASP and LAMMPS. | website paper in preparation |
Note on “high-throughput”
“High-throughput” has quickly become a buzzword in several fields. Since all of the software tools on this page have to do with making calculations easier, faster, highly parallelized, and more reproducible, we must define what we mean by high-throughput.
On this page, high-throughput means to have essentially a black box calculator for properties. Given a structure and a target property (e.g. bandstructure) all the user has to do is push “RUN” and the software will take care of running multiple calculation steps with automatic dependency management and post-processing (mostly by defining graphs of computation and processing steps).