From ESL
Jump to: navigation, search

Source authors:
Miguel Marques, Institut Lumière Matière, France
Micael Oliveira, University of Liège, Belgium
Tobias Burnus, Forschungszentrum Jülich, Germany

License: LGPL

Download: Project page and Launchpad mirror

Links to other ESL entries


Data standards:

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 DFT codes.


In Libxc you can find different types of functionals: LDA, GGA, hybrids, and mGGA (experimental). 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^{\rm LDA}_{\rm xc} = E^{\rm LDA}_{\rm xc}[n(\vec{r})]\,,

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

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

  E^{\rm mGGA}_{\rm xc} = E^{\rm mGGA}_{\rm 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. Higher-order derivatives are available for some functionals.


The library is described in detail in the following paper[1].



Libxc is written in C, so a C compiler is required. The library also provides an optional Fortran 90 interface, so a Fortran compiler must be available if one wishes to compile it. Note that because of the idiosyncrasies of the Fortran modules, you need to use the same Fortran compiler for Libxc and for the codes that are going to link against it.


Download the latest stable release from the download page, untar it, and then enter the root directory of the package:

$ tar xzf libxc-2.2.0.tar.gz
$ cd libxc-2.2.0

Libxc uses the autotools, therefore one just needs to follow the standard procedure to compile it:

$ ./configure
$ make
$ make install

The configure script has several options to fine tune the details of the compilation and installation. To get a comprehensive list of the available options, just type:

$ ./configure --help


The library contains a testsuite that can be used to check the compilation and to perform regression testing. It can be executed by doing:

$ make check

Programming interface

A complete list of routines and types provided by the library can be found in the Doxygen documentation:


  1. M.A.L. Marques, M.J.T. Oliveira, and T. Burnus Libxc: a library of exchange and correlation functionals for density functional theory, Comput. Phys. Commun. 183, 2272 (2012). DOI: [1] arXiv: [2]