Szabo and Ostlund book Modern quantum chemistry [1] is extremely useful to understand Hartree-Fock and post-Hartree-Fock methods. Not only it explains the theory behind such methods, but it is also oriented towards a practical implementation. Following this book I was able to implement an Hartree-Fock code from scratch in order to perform Born-Oppenheimer molecular dynamics.

Since I already work with software packages based on density functional theory (Gaussian09 for calculations in vacuum and QuantumESPRESSO for solid state systems), I would like to implement a simple DFT code in order to better understand what is going on inside the "black box". However, I would like perform this task using a plane wave basis set: this is somewhat more involved than using Gaussian basis sets since it involves periodic boundary conditions and pseudopotentials. In addition, I will have to take care of fast Fourier transforms everywhere and of the approximation of the exchange-correlation functional.

Supposing that I will be happy with the local density approximation, there is a book out there similar to Szabo's book for DFT? Notice that I am not interested in the basics of DFT but I am searching for a good book explaining in details the practical implementation using PW.

Here some comments on the books I already considered:

Martins [2]: This book contains a lot of informations and is oriented to solid-state electronic structure, therefore it explains plane waves and pseudopotentials. However I think that it works well as a reference but not as first reading to understand in details the concepts.

Giustino [3]: Very nice book with the goal of teaching DFT to undergrad students. For this reason is too simplistic and does not go into technical details.

[1] A. Szabo and N. S. Ostrlund, Modern Quantum Chemistry: Introduction to Advanced Electronic Structure Theory, Doever Publications, 1996.

[2] R. M. Martins, Electronic Structure: Basic theory and practical methods, Cambridge University Press, 2004.

[3] F. Giustino, Materials modelling using density functional theory, Oxford University Press, 2014.

  • $\begingroup$ I'm not confident enough to post this as an actual answer (might be too basic), but the CPMD folks cite v2, part 5 of Handbook of Molecular Physics and Quantum Chemistry, "Density Functional Theory: Basics, New Trends and Applications." Unfortunately, it looks terrifically expensive, though it's available in a few European libraries. $\endgroup$ – hBy2Py Jan 29 '16 at 14:49
  • $\begingroup$ Assuming LDA with no exact exchange and pseudopotentials the job is plain and simple search of minimum of a functional. Assuming plane-wave, the function in question is decomposed into a set of plane waves, so the job is minimaztion of a function over the decomposition coeffecients. $\endgroup$ – permeakra Jan 29 '16 at 15:29
  • $\begingroup$ Have you had a look at this question? Maybe you could comment on the sources that are referred there, to make it easier to not give duplicate answers. $\endgroup$ – Martin - マーチン Jan 30 '16 at 7:22
  • $\begingroup$ @Martin-マーチン I don't think the question is useful to me... In the comments you read " you are not even supposed to understand how DFT calculations are done step by step" or "everything you need to know about SCF is in Szabo & Ostlund". I would like to go a step further and implement a "simple" DFT code from scratch. S&O was extremely helpful to implement the HF method in a Gaussian basis set and I would like to find something similar for DFT. The books on which I studied DFT are extremely superficial and only explain the basic theory... $\endgroup$ – user23061 Jan 30 '16 at 12:29
  • 4
    $\begingroup$ Check out The ABC of DFT by Kieron Burke here. It's free and comes in at 104 pages. Also, see Kieron's group literature page for other gems here. $\endgroup$ – Todd Minehardt Feb 8 '16 at 15:39

I can recommend the book of Yang and Parr, although I am not sure it deals with plane wave bases at all. In principle, a DFT code is not really different from a HF code. In fact, you can use exactly identical codes, just replacing the Coulomb and exchange integrals by numerical integration of some functional. E.g., if you choose $X\alpha$-LDA, than your exchange functional is $$K = C_\alpha \left(\frac{3}{\pi}\right)^\frac{1}{3} \int \rho(\mathbf{r})^\frac{4}{3} \mathrm{d}\mathbf{r}$$ You can evaluate your density numerically, choose any numerical integration scheme and obtain the exchange energy. That works even, if you still calculate the Coulomb integrals the HF way. However, you wouldn't save much time since you still have the $\mathcal{O}(N^4)$ step in the Coulomb integrals, where $N$ is the number of basis functions. But once you integrate the Coulomb integrals numerically, you have basically a working DFT code.

There is a number of papers about choosing the correct grids and integration schemes for numerical integration. Once, I read one that compared the radial grids quite well, but sadly I don't remember the reference. But the buzz words would be e.g. Becke grid, (Treutler?-)Ahlrichs grid or simply Gauss quadrature for the radial integration (most of the grids are a form of Gauss quadrature, though). For the angular integration there is e.g. the Lebedev grid, but its calculation is a little more involved.

My suggestion, based on teaching experience, is to write first a HF code in a Gaussian basis. Then you pimp it with a numerical integration scheme and something like $X\alpha$. In the next step, you replace your Coulomb integrals. Lastly, you can switch from a Gaussian basis to the basis of plane waves. The last step only changes your matrix elements but not the algorithm (HF/DFT) itself. Since you first implemented a HF code for a Gaussian basis, you can always check your algorithm before going into uncharted waters.


Two of the books that I found close to your needs (i.e. not a basic intro but a detailed implementation including programming and algorithm) are the following:

  1. Ab initio molecular dynamics by Marx and Hutter (published by Cambridge Uni Press) - This has some info on the implementation of algorithms in CPMD code. Some flow charts of the algorithms.

  2. A chapter (Ch 6) in the book "Computational Physics" by Thijssen (also by Cambridge Uni Press) comes with a short computer program (downloadable from the companion site written by the author of the book).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy