Libxc is a library of exchange-correlation functionals for density-functional theory. The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals that can be used by all the ETSF codes and also other codes.

In Libxc you can find different types of functionals: LDA, GGA, hybrids, and mGGA. These functionals depend on local information, in the sense that the value of the potential at a given point depends only on the values of the density – and the gradient of the density and the kinetic energy density, for the GGA and mGGA cases – at a given point:

$$ E^\mathrm{LDA}_\mathrm{xc} = E^\mathrm{LDA}_\mathrm{xc}[n(\vec{r})]\,, $$

$$ E^\mathrm{GGA}_\mathrm{xc} = E^\mathrm{GGA}_{xc}[n(\vec{r}), \vec{\nabla}n(\vec{r})]\,, $$

$$ E^\mathrm{Hyb}_\mathrm{xc} = a_x E^\mathrm{EXX} + E^\mathrm{GGA}_\mathrm{xc}[n(\vec{r}), \vec{\nabla}n(\vec{r})]\,, $$

$$ E^\mathrm{mGGA}_\mathrm{xc} = E^\mathrm{mGGA}_\mathrm{xc}[n(\vec{r}), \vec{\nabla}n(\vec{r}), \nabla^2 n(\vec{r}), \tau(\vec{r})]\,. $$

It can calculate the functional itself and its derivative; for most functionals, higher-order derivatives are available.

Libxc is written in C and has Fortran and Python bindings. It is released under the MPL license (v. 2.0). Contributions are welcome.

At the moment, Libxc is used in the following codes (in alphabetical order):

To cite Libxc, you can use the following reference

Questions about the library can be sent to the Libxc mailing list. Bug reports and patches should be submitted over gitlab.