DFTK.jl: The density-functional toolkit.
The density-functional toolkit, DFTK for short, is a library of Julia routines for playing with plane-wave density-functional theory (DFT) algorithms. In its basic formulation it solves periodic Kohn-Sham equations. The unique feature of the code is its emphasis on simplicity and flexibility with the goal of facilitating methodological development and interdisciplinary collaboration. In about 7k lines of pure Julia code we support a sizeable set of features. Our performance is of the same order of magnitude as much larger production codes such as Abinit, Quantum Espresso and VASP. DFTK's source code is publicly available on github.
Found a bug, missing a feature? Look for an open issue or create a new one. Want to contribute? See our contributing notes.
Getting started
First, new users should take a look at the Installation and tutorial sections. There is a General Tutorial for researchers familiar with plane-wave DFT as well as a Mathematical Tutorial for mathematical researchers new to DFT simulations. After the tutorial make your way through the various examples. A good starting point are the Examples on basic DFT calculations.
If you are new to density-functional theory or plane-wave methods, see also our notes on Periodic problems and our collection of Introductory resources.
In the documentation we use very rough convergence parameters to be able to automatically generate this documentation very quickly. Therefore results are far from converged. Tighter thresholds and larger grids should be used for more realistic results. See also the example on Performing a convergence study.
If you have an idea for an addition to the docs or see something wrong, please open an issue or pull request!