Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

dftk logo

Density-functional toolkit

Documentation Build Status License

The density-functional toolkit, DFTK for short, is a collection of Julia routines for experimentation with plane-wave density-functional theory (DFT). The unique feature of this code is its emphasis on simplicity and flexibility with the goal of facilitating algorithmic and numerical developments as well as interdisciplinary collaboration in solid-state research.

Having started in 2019 we already support a sizeable set of features. Within the system size currently accessible to our code (ca. 1000 electrons) our performance is of the same order of magnitude as more established packages such as Abinit or Quantum Espresso.

For getting started with DFTK, see our documentation:

Note that at least Julia 1.6 is required.

Support and citation

DFTK is mostly developed as part of academic research. Parts of DFTK have also been discussed in published papers. If you use our code as part of your research, teaching or other activities, we would be grateful if you cite them as appropriate. See the CITATION.bib in the root of this repo for relevant references. The current DFTK reference paper to cite is DOI.


This project has received funding from the Institute of computing and data sciences (ISCD, Sorbonne Université), École des Ponts ParisTech, Inria Research Centre Paris, RWTH Aachen University, and from the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation program (grant agreement No 810367).


If you stumble across issues in using DFTK or have suggestions for future developments we are more than happy to hear about it. In this case please open an issue or contact us (@mfherbst and @antoine-levitt) directly.

Contributions to the code in any form is very welcome, just submit a pull request on github. If you want to contribute but are unsure where to start, take a look at the list of issues tagged good first issue (relatively easy tasks suitable for newcomers) or help wanted (more sizeable but well-defined and isolated). Don't hesitate to ask for help, through github, email or the JuliaMolSim zulip chat.