Exchange Correlation Functionals

for helium version of Exciting

Purpose: In this tutorial, you will learn how to use the different exchange-correlation functionals included in libxc and perform exciting calculations in order to compare them.


We assume you are already familiar with the ideas and the scripts shown in the tutorial Equation of State for Elemental Crystals. Here, we will use these scripts to compare two or more exchange functionals. The comparison of results obtained for the equilibrium volume and bulk modulus for different exchange-correlation functionals gives information on the validity and applicability of the functionals.

In order to add the libxc functional to the parameters of the calculation the params list may be extended with the keywords xc or exchange and correlation. The parameters are defined as a list of strings which specify the functionals that should be tested.


  • Not every functional may give stable results. For more details on the validity and applicability of the different functionals, please look at the tables shown here.
  • Further details concerning the different functionals can be found in the libxc wiki.


        'param': {
                  'scale' : {
                             'azero': 7.65,
                             'da': 0.08,
                             'steps': 5},
                  'rmt': [2.0],
                  'rgkmax': [6],
                  'ngridk' : [8],
                  'swidth': [0.01],
                  'covera' :{
                             'coverazero': 1.6,
                             'dcovera': 1.6/50,
                             'steps': 7 }
                   ,'exchange':["XC_GGA_X_PBE"  ],
         'species': 'Al',
         'mod': 'eos',
         'calculate' : 'True'}

The exchange and correlation keywords have the same meaning as described in Input Reference. Furthermore, the elements template also supports the xc keyword for combined exchange-correlation functionals.

After performing exciting calculations with the above setup, one gets results that can be summarized in the following plots:


Excercise 1

Take the beryllium example from the tutorial Equation of State for Elemental Crystals and start a new calculation using libxc functionals. Set the keyword exchange to only one functional (check before its validity here) and define the keyword correlation to be a list of two functionals. Before starting, think about how to reduce the parameter space in order to save computation time, taking into account the results of the tutorial Equation of State for Elemental Crystals. Repeat all for different combination of functionals.

Excercise 2

We want to recreate the graph of the errors of bulk modulus and lattice parameter. Therefor use this Bulkmodulus and lattice parameter error page to record the error percentages (signed). Get the crystal information from

use this three configurations:

,'exchange':["XC_LDA_X"  ],
,'exchange':["XC_GGA_X_PBE"  ],
,'exchange':["XC_GGA_X_PBE_SOL"  ],
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License