Software tools

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

  1. Workflow management and scripting (e.g. writing input files for a DFT software, performing sequences of calculations with control flow)
  2. 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).