DFControl

Introduction

The goal of DFControl is to alleviate some of the tedious day to day busy-work that material's scientists using DFT codes encounter. It aids in the creation, execution, monitoring, management, and post-processing of DFT jobs. The core framework is code-agnostic, however, most of the convenience features are so far only implemented for Quantum-Espresso and Wannier90. ABINIT and ELK support is highly experimental and incomplete.

Philosophy

DFControl is aimed to be user friendly first and foremost, with features being added as time progresses without changing this core value. On the other hand, a core requirement has always been that power users that know all the ins and outs of the codes that they run should be able to have all the control they want without incurring friction from the library. DFControl therefore should never be a barrier to DFT code functionality, just a tool to increase efficiency of its users.

In light of this DFControl is structured to mimic the often adopted strategy of a linear submission script that specifies which input files are ran with which DFT codes producing which outputs. Everything revolves around the Job that holds a collection of Calculations which will be ran sequentially in the job's directory, on the job's crystal Structure. A Job is therefore identified with a specific directory. Using the script that is created upon saving or submitting a job, a Job can be easily reloaded at a later stage to continue the investigation where left off.

Highlighted features