Introductory resources
This page collects a bunch of articles, lecture notes, textbooks and recordings related to density-functional theory (DFT) and DFTK. These serve as an introduction to DFT and its implementation in DFTK.
Since DFTK aims for an interdisciplinary audience the level and scope of the referenced works varies. They are roughly ordered from beginner to advanced. For a list of articles dealing with novel research aspects achieved using DFTK, see Publications.
A good starting point is going through a first Julia tutorial, and through the lecture notes from the DFTK school 2022 referenced below.
Julia resources
Since DFTK is written and meant to be used in Julia, learning the basics of the language will be useful.
There are tons of great resources for learning Julia on the internet. For a comprehensive overview see the JuliaLang learning website.
Condensed introductions are also provided in Michael's numerical analysis course or the programming for mathematical applications class at UC Berkeley.
Workshop material and tutorials
- DFTK school 2022: Numerical methods for density-functional theory simulations: Summer school centred around the DFTK code and modern approaches to density-functional theory. See the programme and lecture notes, in particular:
DFT in a nutshell by Kieron Burke and Lucas Wagner: Short tutorial-style article introducing the basic DFT setting, basic equations and terminology. Great introduction from the physical / chemical perspective.
Workshop on mathematics and numerics of DFT: Two-day workshop at MIT centred around DFTK by M. F. Herbst, in particular the summary of DFT theory.
DFTK documentation resources
See also these pages from the Theoretical Background section of the DFTK docs:
- Periodic problems and plane-wave discretizations: periodic operators, Bloch's theorem, $k$-points, Brillouin zone, plane waves, band structures.
- Comparing discretization techniques: finite differences vs. plane waves.
- Modelling atomic chains: a simple atomic chain model.
- Introduction to density-functional theory: the basic DFT equations – a nonlinear eigenvalue problem known as the Kohn-Sham equations – and how they can be solved.
- Self-consistent field methods: expanding upon the previous tutorial, more details on the fixed-point problem that is typically solved in DFT.
Textbooks and reviews
Density Functional Theory edited by Eric Cancès and Gero Friesecke (Springer, 2023): Up to date textbook accessible to an interdisciplinary audience with contributions by mathematicians and application researchers. Particularly relevant are:
Electronic Structure: Basic theory and practical methods by R. M. Martin (Cambridge University Press, 2004): Standard textbook introducing most common methods of the field (lattices, pseudopotentials, DFT, ...) from the perspective of a physicist.
DFT Exchange: Sharing Perspectives on the Workhorse of Quantum Chemistry and Materials Science (2022): Discussion-style review articles providing insightful viewpoints of many researchers in the field (physics, chemistry, maths, applications).
A Mathematical Introduction to Electronic Structure Theory by L. Lin and J. Lu (SIAM, 2019): Monograph attacking DFT from a mathematical angle. Covers topics such as DFT, pseudos, SCF, response, ...
Recordings
Algorithmic differentiation (AD) for plane-wave DFT by M. F. Herbst: 45-min talk at the Institute for Pure and Applied Mathematics (IPAM) at UCLA discussing the algorithmic differentiation techniques in DFTK.
DFTK.jl: 5 years of a multidisciplinary electronic-structure code by M. F. Herbst: 30-min talk at JuliaCon 2024 providing the state of DFTK 5 years after the project was started. Slides, Pluto notebook
Julia for Materials Modelling by M. F. Herbst (from 2023): One-hour talk providing an overview of materials modelling tools for Julia. Key features of DFTK are highlighted as part of the talk. Starts to become a little outdated Pluto notebooks
Juliacon 2021 DFT workshop by M. F. Herbst: Three-hour workshop session at the 2021 Juliacon providing a mathematical look on DFT, SCF solution algorithms as well as the integration of DFTK into the Julia package ecosystem. Material starts to become a little outdated. Workshop material