Skip to content

Repository files navigation

DFTTK

DFTTK Logo

GitHub ActionsDocumentation 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

The Configuration examples involve running VASP workflows. These require a system with VASP installed (typically an HPC environment) and cannot be executed in GitHub Codespaces.

NotebooksDescription
DebyeGruneisenCompute and plot vibrational contributions to the Helmholtz energy using the Debye–Grüneisen model for Al
ThermalElectronicCompute and plot thermal electronic contributions to the Helmholtz energy for Al using Fermi–Dirac statistics and the electronic DOS
ConfigurationOrchestrate VASP workflows to compute all contributions to $F_k$, with post-processing, plotting, and MongoDB storage for Al and Fe3Pt

Documentation

For a more 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

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - PhasesResearchLab/dfttk: DFTTK automates VASP workflows and post-processing with a minimal, transparent approach. · GitHub
Skip to content

Repository files navigation

DFTTK

DFTTK Logo

GitHub ActionsDocumentation 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

The Configuration examples involve running VASP workflows. These require a system with VASP installed (typically an HPC environment) and cannot be executed in GitHub Codespaces.

NotebooksDescription
DebyeGruneisenCompute and plot vibrational contributions to the Helmholtz energy using the Debye–Grüneisen model for Al
ThermalElectronicCompute and plot thermal electronic contributions to the Helmholtz energy for Al using Fermi–Dirac statistics and the electronic DOS
ConfigurationOrchestrate VASP workflows to compute all contributions to $F_k$, with post-processing, plotting, and MongoDB storage for Al and Fe3Pt

Documentation

For a more 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

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - PhasesResearchLab/dfttk: DFTTK automates VASP workflows and post-processing with a minimal, transparent approach. · GitHub
Skip to content

Repository files navigation

DFTTK

DFTTK Logo

GitHub ActionsDocumentation 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

The Configuration examples involve running VASP workflows. These require a system with VASP installed (typically an HPC environment) and cannot be executed in GitHub Codespaces.

NotebooksDescription
DebyeGruneisenCompute and plot vibrational contributions to the Helmholtz energy using the Debye–Grüneisen model for Al
ThermalElectronicCompute and plot thermal electronic contributions to the Helmholtz energy for Al using Fermi–Dirac statistics and the electronic DOS
ConfigurationOrchestrate VASP workflows to compute all contributions to $F_k$, with post-processing, plotting, and MongoDB storage for Al and Fe3Pt

Documentation

For a more 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

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - PhasesResearchLab/dfttk: DFTTK automates VASP workflows and post-processing with a minimal, transparent approach. · GitHub
Skip to content

Repository files navigation

DFTTK

DFTTK Logo

GitHub ActionsDocumentation 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

The Configuration examples involve running VASP workflows. These require a system with VASP installed (typically an HPC environment) and cannot be executed in GitHub Codespaces.

NotebooksDescription
DebyeGruneisenCompute and plot vibrational contributions to the Helmholtz energy using the Debye–Grüneisen model for Al
ThermalElectronicCompute and plot thermal electronic contributions to the Helmholtz energy for Al using Fermi–Dirac statistics and the electronic DOS
ConfigurationOrchestrate VASP workflows to compute all contributions to $F_k$, with post-processing, plotting, and MongoDB storage for Al and Fe3Pt

Documentation

For a more 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

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - PhasesResearchLab/dfttk: DFTTK automates VASP workflows and post-processing with a minimal, transparent approach. · GitHub
Skip to content

Repository files navigation

DFTTK

DFTTK Logo

GitHub ActionsDocumentation 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

The Configuration examples involve running VASP workflows. These require a system with VASP installed (typically an HPC environment) and cannot be executed in GitHub Codespaces.

NotebooksDescription
DebyeGruneisenCompute and plot vibrational contributions to the Helmholtz energy using the Debye–Grüneisen model for Al
ThermalElectronicCompute and plot thermal electronic contributions to the Helmholtz energy for Al using Fermi–Dirac statistics and the electronic DOS
ConfigurationOrchestrate VASP workflows to compute all contributions to $F_k$, with post-processing, plotting, and MongoDB storage for Al and Fe3Pt

Documentation

For a more 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

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - PhasesResearchLab/dfttk: DFTTK automates VASP workflows and post-processing with a minimal, transparent approach. · GitHub
Skip to content

Repository files navigation

DFTTK

DFTTK Logo

GitHub ActionsDocumentation 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

The Configuration examples involve running VASP workflows. These require a system with VASP installed (typically an HPC environment) and cannot be executed in GitHub Codespaces.

NotebooksDescription
DebyeGruneisenCompute and plot vibrational contributions to the Helmholtz energy using the Debye–Grüneisen model for Al
ThermalElectronicCompute and plot thermal electronic contributions to the Helmholtz energy for Al using Fermi–Dirac statistics and the electronic DOS
ConfigurationOrchestrate VASP workflows to compute all contributions to $F_k$, with post-processing, plotting, and MongoDB storage for Al and Fe3Pt

Documentation

For a more 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

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - PhasesResearchLab/dfttk: DFTTK automates VASP workflows and post-processing with a minimal, transparent approach. · GitHub
Skip to content

Repository files navigation

DFTTK

DFTTK Logo

GitHub ActionsDocumentation 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

The Configuration examples involve running VASP workflows. These require a system with VASP installed (typically an HPC environment) and cannot be executed in GitHub Codespaces.

NotebooksDescription
DebyeGruneisenCompute and plot vibrational contributions to the Helmholtz energy using the Debye–Grüneisen model for Al
ThermalElectronicCompute and plot thermal electronic contributions to the Helmholtz energy for Al using Fermi–Dirac statistics and the electronic DOS
ConfigurationOrchestrate VASP workflows to compute all contributions to $F_k$, with post-processing, plotting, and MongoDB storage for Al and Fe3Pt

Documentation

For a more 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

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - PhasesResearchLab/dfttk: DFTTK automates VASP workflows and post-processing with a minimal, transparent approach. · GitHub
Skip to content

Repository files navigation

DFTTK

DFTTK Logo

GitHub ActionsDocumentation 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

The Configuration examples involve running VASP workflows. These require a system with VASP installed (typically an HPC environment) and cannot be executed in GitHub Codespaces.

NotebooksDescription
DebyeGruneisenCompute and plot vibrational contributions to the Helmholtz energy using the Debye–Grüneisen model for Al
ThermalElectronicCompute and plot thermal electronic contributions to the Helmholtz energy for Al using Fermi–Dirac statistics and the electronic DOS
ConfigurationOrchestrate VASP workflows to compute all contributions to $F_k$, with post-processing, plotting, and MongoDB storage for Al and Fe3Pt

Documentation

For a more 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

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages