The density-functional toolkit, DFTK for short, is a library of Julia routines for experimentation with plane-wave density-functional theory (DFT), as implemented in much larger production codes such as Abinit, Quantum Espresso and VASP.
The unique feature of this code is its emphasis on simplicity and flexibility with the goal of facilitating methodological development and interdisciplinary collaboration. In about 5k lines of pure Julia code we already support a sizeable set of features, after just about two years of development. Our performance is of the same order of magnitude as established packages.
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. If you like our work please consider starring this repository as such metrics may help us to secure funding in the future. 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. As a software DFTK can also be cited via .
This project has received funding from the Institute of computing and data sciences (ISCD, Sorbonne Université), École des Ponts ParisTech, Inria Research Centre Paris 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 gitter chat.