Introduction to plane-wave DFT and DFTK
These lecture notes provide a brief introduction into plane-wave density-functional theory (DFT) and the density-functional toolkit (DFTK). Some familiarity with electronic structure theory is assumed, but no in-depth knowledge is required.
The material has been prepared for the Mathematical Aspects of Computational Chemistry lecture in summer semester 2022 at RWTH Aachen and works best with DFTK 0.5 and Julia 1.7. A great deal of the material has also been discussed in the 3-hour workshop A mathematical look at electronic structure theory at JuliaCon 2021. You can find the recording of this workshop on youtube.
Software and material
Working with these notes requires:
- Julia 1.7
- Python installation with ASE
- Jupyter and IJulia.jl
- This repository of workshop materials
- All required dependencies (Julia packages) for the workshop
RWTH Aachen Jupyter lab
If you are a student at RWTH Aachen and want to use the Julia-Jupyter setup RWTH provides, please see the respective section in the 1_Installation notebook.
Getting Julia
For following the course you will need at least Julia 1.7. Julia can be easily obtained in binary form from Julia downloads.
Getting all the rest
To get the remaining files and dependencies
start up julia
and in the resulting REPL shell,
copy and paste the following:
import Downloads
script = Downloads.download("https://raw.githubusercontent.com/mfherbst/aachen_introduction_dftk/master/install.jl")
include(script)
This downloads the install.jl script and runs it from julia. Follow the instructions on the screen and start the Jupyter notebook server with the command that will be printed.
As an alternative you can also also run the following commands manually
(this requires to have git
and julia
available from the commandline):
git clone https://github.com/mfherbst/aachen_introduction_dftk
cd aachen_introduction_dftk
julia install-manual.jl
Troubleshooting
If you are facing issues, check out
the great troubleshooting section
from the WorkshopWizard package by Carsten Bauer (which install.jl
is using).
Check everything works
There is a section in the 1_Installation notebook with a few quick commands to check everything works as expected.
Working with these notes online (Beta)
Click on the
badge to work with these notes online (without a local Julia installation).
However, for working on the exercises
the computational performance available on binder will probably not be sufficient.