JuliaCon DFTK workshop: A mathematical look at electronic structure theory

Electronic structure theory is a fascinating interdisciplinary field. Physics, chemistry, materials science, mathematics, high-performance computing ... they're all in it. Rooted at the quantum-mechanical description of electrons it is the backbone for quite a few simulation methods in the chemical and physical sciences. Here we'll focus on the numerical tools required to solve standard problems in the field like density-functional theory and use the density-functional toolkit (DFTK) to implement solution algorithms and investigate their convergence. Along the lines this shows how DFTK allows to unlock the power of the greater Julia package ecosystem for DFT methods, pointing out ways to integrate arbitrary floating-point arithmetic, automatic differentiation or Julia's range of optimisation toolkits with DFTK.

Material

The workshop material is available on github.

Recording

In case you missed the original workshop a recording of the workshop is available on youtube.

When and where?

The workshop will be streamed live at Juliacon 2021 on Thursday 22nd July at 14:00 UTC (== 16:00 MESZ).

Content

I'll briefly introduce the setting of density-functional theory (DFT), in particular show the equation system and its mathematical structure. With that we are in good shape to tackle the main part of the workshop, which will be devoted to discussing the numerical techniques used for solving it.

Our main tool in this workshop will be the density-functional toolkit (DFTK), a state-of-the-art DFT code written in Julia (of course ;)). This code will allow us to consider a number of reduced problems, where things are more tractable if you wish to interactively explore, visualise and understand. In particular we will use DFTK to inspect what's going on while the DFT problem is being solved. With that knowledge at hand we'll try to code up some simple DFT solvers on our own. Due to the scaffolding DFTK provides this is a fairly manageable task and (as a small bonus) the resulting algorithms could be directly applied to cutting edge problems (if we're careful with performance issues).

Depending on how our progress is I plan to cover the following topics: