Skip to content

PhasesResearchLab/dfttk

Repository files navigation

DFTTK

DFTTK Logo

GitHub Actions Documentation Status

Overview

Over the years, many tools have been developed to help set up and/or automate DFT calculations with VASP, as well as provide various post-processing features, such as atomate2, quacc, AFLOW, AiiDA, pyiron, and VASPKIT. The Density Functional Theory ToolKit (DFTTK) is another addition to this space, with a philosophy of keeping the interface between the user and VASP as minimal as possible and making the automation and post-processing steps easy to see and understand.

DFTTK workflows use Custodian for job management. The usefulness of Custodian is that it allows many VASP jobs to be chained together and includes various self-correction strategies for handling VASP errors.

Current key features are listed below.

Key Features

Enumeration of Configurations

  • Enumerates unique collinear magnetic configurations for a given structure.

VASP Workflows

  • Performs convergence tests for:
    • Cutoff energy (ENCUT)
    • k-points grid density (kppa)
  • Computes contributions to the Helmholtz energy, $F_k = E_k + F_{k,\text{vib}} + F_{k,\text{el}}$:
    • $E_k$ — Energy–volume curves
    • $F_{k,\text{vib}}$ — Phonons (post-processed with YPHON)
    • $F_{k,\text{el}}$ — From the electronic DOS

Post-processing

  • $E_k$ — Fit energy–volume curves using an EOS
  • $F_{k,\text{vib}}$:
    • Debye–Grüneisen model
    • Phonons (via YPHON)
  • $F_{k,\text{el}}$ — From the electronic DOS

Configuration Class

The Configuration class orchestrates VASP workflows to compute contributions to $F_k$, along with post-processing and storing results in MongoDB.

Installation

It is recommended first to set up a virtual environment using Conda:

conda create -n dfttk python=3.12      
conda activate dfttk

Clone the main branch of the repository:

git clone https://github.com/PhasesResearchLab/dfttk.git

Or clone a specific branch:

git clone -b <branch_name> https://github.com/PhasesResearchLab/dfttk.git

Then move to dfttk directory and install in editable (-e) mode.

cd dfttk
pip install -e .

Note: A PyPI release is currently under development.

Example Notebooks

Click the badge below to open the project in GitHub Codespaces.
Then, browse the examples folder to explore and run the example notebooks:

Open in GitHub Codespaces

Notebooks Description
DebyeGruneisen Compute and plot vibrational contributions to the Helmholtz energy using the Debye–Grüneisen model for Al
ThermalElectronic Compute and plot thermal electronic contributions to the Helmholtz energy for Al using Fermi–Dirac statistics and the electronic DOS
Configuration Orchestrate VASP workflows to compute all contributions to $F_k$, with post-processing, plotting, and MongoDB storage for Al and Fe3Pt

Documentation

For a comprehensive description of DFTTK and its capabilities, please refer to the Official Documentation.

Note: The documentation is currently under construction. Some sections may be incomplete or subject to change.

Citing DFTTK

If you use DFTTK in your work, please cite the following publication:

N. Hew et al.,
Density Functional Theory ToolKit (DFTTK) to automate first-principles thermodynamics via the quasiharmonic approximation, Computational Materials Science, Volume 258, 2025, 114072, ISSN 0927-0256.
https://doi.org/10.1016/j.commatsci.2025.114072 (View on ScienceDirect)

About

DFTTK automates VASP workflows and post-processing with a minimal, transparent approach.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors