Overview

The libGridXC library started life as SiestaXC, a collection of modules within Siesta to compute the exchange-correlation energy and potential in DFT calculations for atomic and periodic systems. The ''grid'' part of the name refers to the discretization for charge density and potential used in those calculations. The original code included a set of low-level routines to compute and at a point for LDA and GGA functionals (i.e., a subset of the functionality now offered by LibXC), and two high-level routines to handle the computations in the whole domain, with radial or 3D-periodic grids), including any needed computations of gradients, integrations, etc.

In addition, SiestaXC pioneered the implementation of efficient and practical algorithms for support of van der Waals functionals, which are typically the sum of three pieces: an exchange energy from a suitable GGA functional, an LDA correlation energy, and a non-local correlation term

The last term is a double integral over a kernel function :

whose computation was made affordable by the techniques described in the work by Roman-Perez and Soler.

The current libGridXC retains most of the SiestaXC functionality, and enhances it by offering an interface to LibXC that supports a much wider selection of XC functionals. The code has been streamlined and re-packaged into a proper stand-alone library, with an automatic build-system.