Libxc:manual
From OctopusWiki
Contents |
An example
Probably the best way to explain the usage of libxc is through an example. The following small program calculates the xc energy for a given functional for several values of the density; the available C bindings can be found in header file xc.h (show).
#include <stdio.h>
#include <xc.h>
int main()
{
xc_func_type func;
double rho[5] = {0.1, 0.2, 0.3, 0.4, 0.5};
double sigma[5] = {0.2, 0.3, 0.4, 0.5, 0.6};
double zk[5];
int i, func_id = 1;
if(xc_func_init(&func, func_id, XC_UNPOLARIZED) != 0){
fprintf(stderr, "Functional '%d' not found\n", func_id);
return 1;
}
switch(func.info->family)
{
case XC_FAMILY_LDA:
xc_lda_exc(&func, 5, rho, zk);
break;
case XC_FAMILY_GGA:
case XC_FAMILY_HYB_GGA:
xc_gga_exc(&func, 5, rho, sigma, zk);
break;
}
for(i=0; i<5; i+=1){
printf("%lf %lf\n", rho[i], zk[i]);
}
xc_func_end(&func);
}
The functionals are divided in families (LDA, GGA, etc.). Given a functional identifier, xc.func_id, the functional is initialized by xc_func_init, and evaluated by xc_XXX_exc, which returns the energy per unit volume (zk). Finally the functions xc_func_end cleans up.
Fortran 90 bindings are also included in libxc. These can be found in the file libxc_master.F90 (show). In general, calling libxc from Fortran is as simple as from C. Here is the previous example in Fortran:
program lxctest
use xc_f90_types_m
use xc_f90_lib_m
implicit none
TYPE(xc_f90_pointer_t) :: xc_func
TYPE(xc_f90_pointer_t) :: xc_info
real(8) :: rho(5) = (/0.1, 0.2, 0.3, 0.4, 0.5/)
real(8) :: sigma(5) = (/0.2, 0.3, 0.4, 0.5, 0.6/)
real(8) :: zk(5)
integer :: i, func_id = 1
call xc_f90_func_init(xc_func, xc_info, func_id, XC_UNPOLARIZED)
select case (xc_f90_info_family(xc_info))
case(XC_FAMILY_LDA)
call xc_f90_lda_exc(xc_func, 5, rho(1), zk(1))
case(XC_FAMILY_GGA, XC_FAMILY_HYB_GGA)
call xc_f90_gga_exc(xc_func, 5, rho(1), sigma(1), zk(1))
end select
do i = 1, 5
write(*,"(F8.6,1X,F9.6)") rho(i), zk(i)
end do
call xc_f90_func_end(xc_func)
end program lxctest
The info structure
For each functional there is a structure that holds several pieces of information. The relevant part of this structure for the end user is defined as
/* flags that can be used in info.flags */
#define XC_FLAGS_HAVE_EXC (1 << 0) /* 1 */
#define XC_FLAGS_HAVE_VXC (1 << 1) /* 2 */
#define XC_FLAGS_HAVE_FXC (1 << 2) /* 4 */
#define XC_FLAGS_HAVE_KXC (1 << 3) /* 8 */
#define XC_FLAGS_HAVE_LXC (1 << 4) /* 16 */
#define XC_FLAGS_1D (1 << 5) /* 32 */
#define XC_FLAGS_2D (1 << 6) /* 64 */
#define XC_FLAGS_3D (1 << 7) /* 128 */
#define XC_FLAGS_STABLE (1 << 9) /* 512 */
#define XC_FLAGS_DEVELOPMENT (1 << 10) /* 1024 */
typedef struct{
int number; /* indentifier number */
int kind; /* XC_EXCHANGE or XC_CORRELATION */
char *name; /* name of the functional, e.g. "PBE" */
int family; /* type of the functional, e.g. XC_FAMILY_GGA */
char *refs; /* references */
int flags; /* see above for a list of possible flags */
...
} xc_func_info_type;
For example, for the Slater exchange functional, this structure is defined as
const XC(func_info_type) XC(func_info_lda_x) = {
XC_LDA_X,
XC_EXCHANGE,
"Slater exchange",
XC_FAMILY_LDA,
"PAM Dirac, Proceedings of the Cambridge Philosophical Society 26, 376 (1930)"
"F Bloch, Zeitschrift fuer Physik 57, 545 (1929)",
XC_FLAGS_3D | XC_FLAGS_HAVE_EXC | XC_FLAGS_HAVE_VXC | XC_FLAGS_HAVE_FXC | XC_FLAGS_HAVE_KXC,
...
};
Note that the references are separated by a newline. The user of the library can access the information in the following way:
#include <stdio.h>
#include <xc.h>
int main()
{
xc_func_type func;
xc_func_init(&func, XC_GGA_X_B88, XC_UNPOLARIZED);
printf("The functional '%s' is defined in the reference(s):\n%s\n", func.info->name, func.info->refs);
xc_func_end(&func);
}
Several routines are available to access the information about the functional from Fortran. You can take a look at the following example for help
program lxctest
use xc_f90_types_m
use xc_f90_lib_m
implicit none
TYPE(xc_f90_pointer_t) :: xc_func
TYPE(xc_f90_pointer_t) :: xc_info
integer :: i
character(len=120) :: s1, s2
type(xc_f90_pointer_t) :: str
call xc_f90_func_init(xc_func, xc_info, XC_GGA_C_PBE, XC_UNPOLARIZED)
select case(xc_f90_info_kind(xc_info))
case(XC_EXCHANGE)
write(*, '(a)') 'Exchange'
case(XC_CORRELATION)
write(*, '(a)') 'Correlation'
case(XC_EXCHANGE_CORRELATION)
write(*, '(a)') 'Exchange-correlation'
end select
call xc_f90_info_name(xc_info, s1)
select case(xc_f90_info_family(xc_info))
case (XC_FAMILY_LDA); write(s2,'(a)') "LDA"
case (XC_FAMILY_GGA); write(s2,'(a)') "GGA"
case (XC_FAMILY_HYB_GGA); write(s2,'(a)') "Hybrid GGA"
case (XC_FAMILY_MGGA); write(s2,'(a)') "MGGA"
case (XC_FAMILY_LCA); write(s2,'(a)') "LCA"
end select
write(*, '(4a)') trim(s1), ' (', trim(s2), ')'
i = 0
call xc_f90_info_refs(xc_info, i, str, s1)
do while(i >= 0)
write(*, '(a,i1,2a)') '[', i, '] ', trim(s1)
call xc_f90_info_refs(xc_info, i, str, s1)
end do
call xc_f90_func_end(xc_func)
end program lxctest
xc_family_from_id
If you have the identifier of a functional (that was read, for example from an input file), and want to find out to which family it belongs to, you can use the routine
int xc_family_from_id(int functional); input: functional: identifier of the functional returns: XC_FAMILY_UNKNOWN: could not find the family XC_FAMILY_LDA, XC_FAMILY_GGA, etc.
Analogously for Fortran:
integer function xc_family_from_id (functional)
Initialization
A functional is initialized by the routine
int xc_func_init(xc_func_type *p, int functional, int nspin); input: functional: which functional do we want? nspin: either XC_UNPOLARIZED or XC_POLARIZED output: p: structure that holds our functional returns: 0 (OK) or -1 (ERROR)
There are some functionals that require extra information. These parameters are set by default to some value and changing them is done using the xc_XXX_set_params routines. For example, by default the non-relativistic LDA exchange is used. To use the relativistic version, one should do:
xc_lda_x_set_params(&func, XC_RELATIVISTIC);
Evaluation
The routines that should be used depend on the functional family.
LDA
This is done by the routines
void xc_lda_exc(xc_lda_type *p, int np, double *rho, double *exc); void xc_lda_vxc(xc_lda_type *p, int np, double *rho, double *vxc); void xc_lda_vxc_exc(xc_lda_type *p, inp np, double *rho, double *exc, double *vxc); void xc_lda_fxc(xc_lda_type *p, int np, double *rho, double *fxc); void xc_lda_kxc(xc_lda_type *p, int np, double *rho, double *kxc); void xc_lda(xc_lda_type *p, int np, double *rho, double *exc, double *vxc, double *fxc, double *kxc); input: p: structure obtained from calling xc_func_init np: number of points rho[]: the density output: exc: the energy per unit particle vxc[]: first derivative of the energy per unit volume fxc[]: second derivative of the energy per unit volume kxc[]: third derivative of the energy per unit volume
The derivatives are defined as
where ε is the energy per unit volume.
If the functional was initialized with nspin=XC_UNPOLARIZED, the spin indices should be dropped from the previous expressions. Otherwise, the parameters have dimensions rho[2], vxc[2], fxc[3] and kxc[4]. The components of fxc are
and the ones of kxc are
GGA
This is done by the routines
void xc_gga_exc(xc_func_type *p, double *rho, double *sigma, double *exc) void xc_gga_vxc(xc_func_type *p, double *rho, double *sigma, double double *vrho, double *vsigma) void xc_gga_exc_vxc(xc_func_type *p, double *rho, double *sigma, double *exc, double *vrho, double *vsigma) void xc_gga_fxc(xc_func_type *p, double *rho, double *sigma, double *v2rho2, double *v2rhosigma, double *v2sigma2) void xc_gga(xc_func_type *p, double *rho, double *sigma, double *exc, double *vrho, double *vsigma, double *v2rho2, double *v2rhosigma, double *v2sigma2) input: p: structure obtained from calling xc_func_init np: number of points rho[]: the density sigma[]: contracted gradients of the density output: exc: the energy per unit particle vrho[]: first partial derivative of the energy per unit volume in terms of the density vsigma[]: first partial derivative of the energy per unit volume in terms of sigma v2rho2[]: second partial derivative of the energy per unit volume in terms of the density v2rhosigma[]: second partial derivative of the energy per unit volume in terms of the density and sigma v2sigma2[]: second partial derivative of the energy per unit volume in terms of sigma
The derivatives are defined as
where ε is the energy per unit volume.
If the functional was initialized with nspin=XC_UNPOLARIZED, the spin indices should be dropped from the previous expressions. Otherwise, the parameters have dimensions rho[2], vxc[2], sigma[3], vsigma[3], v2rho2[3], v2rhosigma[4]. The components of sigma are
Hybrid GGA
In this case the evaluation of the functional is done in the same way as the GGAs. Furthermore, there is a routine that returns the mixing parameter of the hybrid
double xc_hyb_gga_exx_coef(xc_func_type *p);
MetaGGA
This is done by the routines
void xc_mgga_exc(xc_func_type *p, int np, double *rho, double *sigma, double *lapl_rho, double *tau, double *zk)
void xc_mgga_vxc(xc_func_type *p, int np, double *rho, double *sigma, double *lapl_rho, double *tau, double *vrho, double *vsigma, double *vlapl_rho, double *vtau)
void xc_mgga_exc_vxc(xc_func_type *p, int np, double *rho, double *sigma, double *lapl_rho, double *tau,
double * zk, double *vrho, double *vsigma, double *vlapl_rho, double *vtau)
void xc_mgga_fxc(xc_func_type *p, int np, double *rho, double *sigma, double *lapl_rho, double *tau,
double *v2rho2, double *v2rhosigma, double *v2sigma2, double *v2rhotau, double *v2tausigma, double *v2tau2)
void xc_mgga(xc_func_type *p, int np, double *rho, double *sigma, double *lapl_rho, double *tau,
double *zk, double *vrho, double *vsigma, double *vlapl_rho, double *vtau,
double *v2rho2, double *v2rhosigma, double *v2sigma2, double *v2rhotau, double *v2tausigma, double *v2tau2)
input:
p: structure obtained from calling xc_func_init
np: number of points
rho[]: the density
sigma[]: contracted gradients of the density
lapl_rho[]: the laplacian of the density
tau[]: the kinetic energy density
output:
zk: energy density per unit particle
vrho[]: first partial derivative of the energy per unit volume in terms of the density
vsigma[]: first partial derivative of the energy per unit volume in terms of sigma
vlapl_rho[]: first partial derivative of the energy per unit volume in terms of the laplacian of the density
vtau[]: first partial derivative of the energy per unit volume in terms of the kinetic energy density
The derivatives are defined as
Note that the kinetic energy density is defined without the 1/2 factor
Destruction
If you no longer need your xc functional, you should destruct it with the routine
void xc_func_end (xc_func_type *p); input: p: structure holding the functional to destroy
Available functionals
This is a list of the functionals the library currently knows about. Exc, Vxc, Fxc and Kxc implementation audit status.
LDA Functionals
LDA Exchange
- XC_LDA_X: Exchange
- XC_LDA_X_2D: Slater exchange in 2D
- XC_LDA_X_1D: Exchange in 1D
- Unpublished
LDA Correlation
- XC_LDA_C_WIGNER: Wigner parametrization
- EP Wigner, Trans. Faraday Soc. 34, 678 (1938)
- XC_LDA_C_RPA: Random Phase Approximation
- M Gell-Mann and KA Brueckner, Phys. Rev. 106, 364 (1957)
- XC_LDA_C_HL: Hedin & Lundqvist
- L. Hedin and B.I. Lundqvist, J. Phys. C 4, 2064 (1971)
- XC_LDA_C_GL: Gunnarson & Lundqvist
- O Gunnarsson and BI Lundqvist, Phys. Rev. B 13, 4274 (1976)
- XC_LDA_C_XALPHA: Slater's Xα (X-alpha)
- XC_LDA_C_VWN: Vosko, Wilk, & Nussair
- SH Vosko, L Wilk, and M Nusair, Can. J. Phys. 58, 1200 (1980)
- XC_LDA_C_VWN_RPA: Vosko, Wilk, & Nussair (RPA)
- SH Vosko, L Wilk, and M Nusair, Can. J. Phys. 58, 1200 (1980)
- XC_LDA_C_PZ: Perdew & Zunger
- Perdew and Zunger, Phys. Rev. B 23, 5048 (1981)
- XC_LDA_C_PZ_MOD: Perdew & Zunger (Modified)
- Perdew and Zunger, Phys. Rev. B 23, 5048 (1981)
- Modified to improve the matching between the low and high rs parts
- XC_LDA_C_OB_PZ: Ortiz & Ballone (PZ)
- G Ortiz and P Ballone, Phys. Rev. B 50, 1391 (1994)
- G Ortiz and P Ballone, Phys. Rev. B 56, 9970(E) (1997)
- Perdew and Zunger, Phys. Rev. B 23, 5048 (1981)
- XC_LDA_C_PW: Perdew & Wang
- JP Perdew and Y Wang, Phys. Rev. B 45, 13244 (1992)
- XC_LDA_C_PW_MOD: Perdew & Wang (Modified)
- JP Perdew and Y Wang, Phys. Rev. B 45, 13244 (1992)
- Added extra digits to some constants as in the PBE routine (http://dft.uci.edu/pubs/PBE.asc)
- XC_LDA_C_OB_PW: Ortiz & Ballone (PW)
- G Ortiz and P Ballone, Phys. Rev. B 50, 1391 (1994)
- G Ortiz and P Ballone, Phys. Rev. B 56, 9970(E) (1997)
- JP Perdew and Y Wang, Phys. Rev. B 45, 13244 (1992)
- XC_LDA_C_2D_AMGB: AMGB (for 2D systems)
- C Attacalite et al, Phys. Rev. Lett. 88, 256601 (2002)
- C Attacalite, PhD thesis
- XC_LDA_C_PRM: PRM08 (for 2D systems)
- S Pittalis, E Rasanen, and MAL Marques, Phys. Rev. B 78, 195322 (2008). OAI: arXiv:0807.0276
- XC_LDA_C_vBH: von Barth & Hedin
- U von Barth and L Hedin, J. Phys. C: Solid State Phys. 5, 1629 (1972)
- XC_LDA_C_1D_CSC: Casula, Sorella & Senatore (only for 1D, untested)
- M Casula, S Sorella, and G Senatore, Phys. Rev. B 74, 245427 (2006)
- XC_LDA_C_ML1: Modified LSD (version 1) of Proynov and Salahub
- EI Proynov and D Salahub, Phys. Rev. B 49, 7874 (1994)
- XC_LDA_C_ML2: Modified LSD (version 2) of Proynov and Salahub
- EI Proynov and D Salahub, Phys. Rev. B 49, 7874 (1994)
LDA Exchange-Correlation
- XC_LDA_XC_TETER93: Teter 93
- S Goedecker, M Teter, J Hutter, Phys. Rev B 54, 1703 (1996)
GGA Functionals
GGA Exchange
- XC_GGA_X_PBE: Perdew, Burke & Ernzerhof exchange
- JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 77, 3865 (1996)
- JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 78, 1396(E) (1997)
- XC_GGA_X_PBE_R: Perdew, Burke & Ernzerhof exchange (revised)
- JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 77, 3865 (1996)
- JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 78, 1396(E) (1997)
- Y Zhang and W Yang, Phys. Rev. Lett 80, 890 (1998)
- XC_GGA_X_MPBE: Adamo & Barone modification to PBE
- C Adamo and V Barone, J. Chem. Phys., 116, 5933 (2002)
- XC_GGA_X_XPBE: Extended PBE by Xu & Goddard III
- X. Xu and WA Goddard III, J. Chem. Phys., 121, 4068 (2004)
- XC_GGA_X_B86: Becke 86 Xalfa,beta,gamma
- AD Becke, J. Chem. Phys 84, 4524 (1986)
- XC_GGA_X_B86_R: Becke 86 Xalfa,beta,gamma (reoptimized)
- AD Becke, J. Chem. Phys 84, 4524 (1986)
- AD Becke, J. Chem. Phys 107, 8554 (1997)
- XC_GGA_X_B86_MGC: Becke 86 Xalfa,beta,gamma (with mod. grad. correction)
- AD Becke, J. Chem. Phys 84, 4524 (1986)
- AD Becke, J. Chem. Phys 85, 7184 (1986)
- XC_GGA_X_B88: Becke 88
- AD Becke, Phys. Rev. A 38, 3098 (1988)
- XC_GGA_X_G96: Gill 96
- PMW Gill, Mol. Phys. 89, 433 (1996)
- XC_GGA_X_PW86: Perdew & Wang 86
- JP Perdew and Y Wang, Phys. Rev. B 33, 8800 (1986)
- XC_GGA_X_PW91: Perdew & Wang 91
- JP Perdew, JA Chevary, SH Vosko, KA Jackson, MR Pederson, and C Fiolhais, Phys. Rev. B 46, 6671 (1992)
- XC_GGA_X_OPTX: Handy & Cohen OPTX 01
- NC Handy and AJ Cohen, Mol. Phys. 99, 403 (2001)
- XC_GGA_X_DK87_R1: dePristo & Kress 87 (version R1)
- AE DePristo and JD Kress, J. Chem. Phys. 86, 1425 (1987)
- XC_GGA_X_DK87_R2: dePristo & Kress 87 (version R2)
- AE DePristo and JD Kress, J. Chem. Phys. 86, 1425 (1987)
- XC_GGA_X_LG93: Lacks & Gordon 93
- DJ Lacks and RG Gordon, Phys. Rev. A 47, 4681 (1993)
- XC_GGA_X_FT97_A: Filatov & Thiel 97 (version A)
- M Filatov and W Thiel, Mol. Phys. 91, 847 (1997)
- XC_GGA_X_FT97_B: Filatov & Thiel 97 (version B)
- M Filatov and W Thiel, Mol. Phys. 91, 847 (1997)
- XC_GGA_X_PBE_SOL: Perdew, Burke & Ernzerhof exchange (solids)
- JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 77, 3865 (1996)
- JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 78, 1396(E) (1997)
- JP Perdew, et al, Phys. Rev. Lett. 100, 136406 (2008). arXiv:0707.2088v1
- XC_GGA_X_RPBE: Hammer, Hansen & Norskov (PBE-like)
- B Hammer, LB Hansen and JK Nørskov, Phys. Rev. B 59, 7413 (1999)
- XC_GGA_X_WC: Wu & Cohen
- Z Wu and RE Cohen, Phys. Rev. B 73, 235116 (2006)
- XC_GGA_X_AM05: Armiento & Mattsson 05 exchange
- R Armiento and AE Mattsson, Phys. Rev. B 72, 085108 (2005)
- AE Mattsson, R Armiento, J Paier, G Kresse, JM Wills, and TR Mattsson, J. Chem. Phys. 128, 084714 (2008)
- XC_GGA_X_PBEA: Madsen 07
- G Madsen, Phys. Rev. B 75, 195108 (2007)
- XC_GGA_X_mPW91: mPW91 of Adamo & Barone
- C Adamo and V Barone, J. Chem. Phys. 108, 664 (1998)
- XC_GGA_X_2D_B86_MGC: Becke 86 with modified gradient correction for 2D
- S Pittalis, E Rasanen, JG Vilhena, and MAL Marques, Phys. Rev. A 79, 012503 (2009)
- AD Becke, J. Chem. Phys 85, 7184 (1986)
- XC_GGA_X_BAYESIAN: Bayesian best fit for the enhancement factor
- JJ Mortensen, K Kaasbjerg, SL Frederiksen, JK Nørskov, JP Sethna, and KW Jacobsen, Phys. Rev. Lett. 95, 216401 (2005)
- XC_GGA_X_PBE_JRGX: Reparametrized PBE by Pedroza, Silva & Capelle
- LS Pedroza, AJR da Silva, and K. Capelle, Phys. Rev. B 79, 201106(R) (2009). arxiv:0905.1925 (2009)
- XC_GGA_X_2D_B86: Becke 86 in 2D
- G Vilhena and MAL Marques, unpublished
- AD Becke, J. Chem. Phys 84, 4524 (1986)
- XC_GGA_X_2D_B88: Becke 88
- G Vilhena, MAL Marques, unpublished
- AD Becke, Phys. Rev. A 38, 3098 (1988)
- XC_GGA_X_2D_PBE: Perdew, Burke & Ernzerhof in 2D
- G Vilhena and MAL Marques, unpublished
- JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 77, 3865 (1996)
- JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 78, 1396(E) (1997)
- XC_GGA_X_OPTB88_VDW: opt-Becke 88 for vdW
- J Klimes, DR Bowler, and A Michaelides, J. Phys.: Condens. Matter 22, 022201 (2010), arxiv:0910.0438
- XC_GGA_X_PBEK1_VDW: Reparametrized PBE for vdW
- J Klimes, DR Bowler, and A Michaelides, J. Phys.: Condens. Matter 22, 022201 (2010), arxiv:0910.0438
- XC_GGA_X_OPTPBE_VDW: Reparametrized PBE for vdW
- J Klimes, DR Bowler, and A Michaelides, J. Phys.: Condens. Matter 22, 022201 (2010), arxiv:0910.0438
- XC_GGA_X_RGE2: Regularized PBE
- A Ruzsinszky, GI Csonka, and G Scuseria, J. Chem. Theory Comput. 5, 763 (2009)
GGA Correlation
- XC_GGA_C_PBE: Perdew, Burke & Ernzerhof correlation
- JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 77, 3865 (1996)
- JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 78, 1396(E) (1997)
- XC_GGA_C_XPBE: Extended PBE by Xu & Goddard III
- X. Xu and WA Goddard III, J. Chem. Phys., 121, 4068 (2004)
- XC_GGA_C_LYP: Lee, Yang & Parr
- C Lee, W Yang and RG Parr, Phys. Rev. B 37, 785 (1988)
- B Miehlich, A Savin, H Stoll and H Preuss, Chem. Phys. Lett. 157, 200 (1989)
- XC_GGA_C_P86: Perdew 86
- JP Perdew, Phys. Rev. B 33, 8822 (1986)
- XC_GGA_C_PBE_SOL: Perdew, Burke & Ernzerhof correlation SOL
- JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 77, 3865 (1996)
- JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 78, 1396(E) (1997)
- JP Perdew, et al, Phys. Rev. Lett. 100, 136406 (2008). arXiv:0707.2088v1
- XC_GGA_C_PW91: Perdew & Wang 91
- JP Perdew, JA Chevary, SH Vosko, KA Jackson, MR Pederson, DJ Singh, and C Fiolhais, Phys. Rev. B 46, 6671 (1992)
- JP Perdew, JA Chevary, SH Vosko, KA Jackson, MR Pederson, DJ Singh, and C Fiolhais, Phys. Rev. B 48, 4978(E) (1993)
- XC_GGA_C_AM05: Armiento & Mattsson 05 correlation
- R Armiento and AE Mattsson, Phys. Rev. B 72, 085108 (2005)
- AE Mattsson, R Armiento, J Paier, G Kresse, JM Wills, and TR Mattsson, J. Chem. Phys. 128, 084714 (2008)
- XC_GGA_C_LM: Langreth & Mehl
- DC Langreth and MJ Mehl, Phys. Rev. Lett. 47, 446 (1981)
- XC_GGA_C_PBE_JRGX: Reparametrized PBE by Pedroza, Silva & Capelle
- LS Pedroza, AJR da Silva, and K. Capelle, Phys. Rev. B 79, 201106(R) (2009). arxiv:0905.1925 (2009)
- XC_GGA_C_RGE2: Regularized PBE
- A Ruzsinszky, GI Csonka, and G Scuseria, J. Chem. Theory Comput. 5, 763 (2009)
GGA Exchange-Correlation
- XC_GGA_XC_LB: van Leeuwen & Baerends
- R van Leeuwen and EJ Baerends, Phys. Rev. A. 49, 2421 (1994)
- XC_GGA_XC_HCTH_93: HCTH functional fitted to 93 molecules
- FA Hamprecht, AJ Cohen, DJ Tozer, and NC Handy, J. Chem. Phys. 109, 6264 (1998)
- XC_GGA_XC_HCTH_120: HCTH functional fitted to 120 molecules
- AD Boese, NL Doltsinis, NC Handy, and M Sprik, J. Chem. Phys. 112, 1670 (2000)
- XC_GGA_XC_HCTH_147: HCTH functional fitted to 147 molecules
- AD Boese, NL Doltsinis, NC Handy, and M Sprik, J. Chem. Phys. 112, 1670 (2000)
- XC_GGA_XC_HCTH_407: HCTH functional fitted to 147 molecules
- AD Boese, and NC Handy, J. Chem. Phys. 114, 5497 (2001)
- XC_GGA_XC_EDF1: Empirical functional from Adamson, Gill, and Pople
- RD Adamson, PMW Gill, and JA Pople, Chem. Phys. Lett. 284, 6 (1998)
- XC_GGA_XC_XLYP: XLYP functional
- X Xu and WA Goddard, III, PNAS 101, 2673 (2004)
- XC_GGA_XC_B97: Becke 97
- AD Becke, J. Chem. Phys. 107, 8554-8560 (1997)
- XC_GGA_XC_B97_1: Becke 97-1
- FA Hamprecht, AJ Cohen, DJ Tozer, and NC Handy, J. Chem. Phys. 109, 6264 (1998)
- XC_GGA_XC_B97_2: Becke 97-2
- PJ Wilson, TJ Bradley, and DJ Tozer, Chem. Phys. 115, 9233 (2001)
- XC_GGA_XC_B97_D: Becke 97-D (Grimme functional to be used with C6 vdW term)
- S Grimme, J. Comput. Chem. 27, 1787 (2006)
- XC_GGA_XC_B97_K: Becke 97-K (Boese-Martin for Kinetics)
- AD Boese and JML Martin, J. Chem. Phys. 121, 3405 (2004)
- XC_GGA_XC_B97_3: Becke 97-3
- TW Keal and DJ Tozer, J. Chem. Phys. 123, 121103 (2005)
- XC_GGA_XC_PBE1W: PBE1W (functional fitted for water)
- EE Dahlke and DG Truhlar, J. Phys. Chem. B 109, 15677 (2005)
- XC_GGA_XC_MPWLYP1W: mPWLYP1w (functional fitted for water)
- EE Dahlke and DG Truhlar, J. Phys. Chem. B 109, 15677 (2005)
- XC_GGA_XC_PBELYP1W: PBELYP1W (functional fitted for water)
- EE Dahlke and DG Truhlar, J. Phys. Chem. B 109, 15677 (2005)
- XC_GGA_XC_SB98_1a: SB98 (1a)
- HL Schmider and AD Becke, J. Chem. Phys. 108, 9624 (1998)
- XC_GGA_XC_SB98_1b: SB98 (1b)
- HL Schmider and AD Becke, J. Chem. Phys. 108, 9624 (1998)
- XC_GGA_XC_SB98_1c: SB98 (1c)
- HL Schmider and AD Becke, J. Chem. Phys. 108, 9624 (1998)
- XC_GGA_XC_SB98_2a: SB98 (2a)
- HL Schmider and AD Becke, J. Chem. Phys. 108, 9624 (1998)
- XC_GGA_XC_SB98_2b: SB98 (2b)
- HL Schmider and AD Becke, J. Chem. Phys. 108, 9624 (1998)
- XC_GGA_XC_SB98_2c: SB98 (2c)
- HL Schmider and AD Becke, J. Chem. Phys. 108, 9624 (1998)
Hybrid Functionals
- XC_HYB_GGA_XC_B3PW91: The original hybrid proposed by Becke
- AD Becke, J. Chem. Phys. 98, 5648 (1993)
- XC_HYB_GGA_XC_B3LYP: The (in)famous B3LYP
- PJ Stephens, FJ Devlin, CF Chabalowski, MJ Frisch, J. Phys. Chem. 98, 11623 (1994)
- XC_HYB_GGA_XC_B3P86: Perdew 86 hybrid similar to B3PW91
- Defined through Gaussian implementation
- XC_HYB_GGA_XC_O3LYP: hybrid using the optx functional
- AJ Cohen, NC Handy, Mol. Phys. 99, 607 (2001)
- XC_HYB_GGA_XC_PBEH: PBEH (PBE0)
- M. Ernzerhof, G. E. Scuseria, J. Chem. Phys. 110, 5029 (1999)
- XC_HYB_GGA_XC_X3LYP: X3LYP
- X Xu, WA Goddard, III, PNAS 101, 2673 (2004)
- XC_HYB_GGA_XC_B1WC: B1WC
- DI Bilc, R Orlando, R Shaltaf, G-M Rignanese, J Iniguez, and Ph Ghosez, Phys. Rev. B 77, 165107 (2008)
- XC_HYB_GGA_XC_B97: Becke 97
- AD Becke, J. Chem. Phys. 107, 8554 (1997)
- XC_HYB_GGA_XC_B97_1: Becke 97-1
- FA Hamprecht, AJ Cohen, DJ Tozer, and NC Handy, J. Chem. Phys. 109, 6264 (1998)
- XC_HYB_GGA_XC_B97_2: Becke 97-2
- PJ Wilson, TJ Bradley, and DJ Tozer, J. Chem. Phys. 115, 9233 (2001)
- XC_HYB_GGA_XC_B97_K: Becke 97-K, Boese-Martin for Kinetics
- AD Boese and JML Martin, J. Chem. Phys. 121, 3405 (2004)
- XC_HYB_GGA_XC_B97_3: Becke 97-3
- TW Keal and DJ Tozer, J. Chem. Phys. 123, 121103 (2005)
- XC_HYB_GGA_XC_B1LYP: B1LYP
- C. Adamo, V. Barone, Chem. Phys. Lett. 274, 242 (1997)
- XC_HYB_GGA_XC_B1PW91: B1PW91
- C. Adamo, V. Barone, Chem. Phys. Lett. 274, 242 (1997)
- XC_HYB_GGA_XC_mPW1PW: mPW1PW
- C. Adamo, V. Barone, J. Chem. Phys. 108, 664 (1998)
- XC_HYB_GGA_XC_mPW3PW: mPW3PW of Adamo & Barone
- C Adamo and V Barone, J. Chem. Phys. 108, 664 (1998)
- XC_HYB_GGA_XC_mPW3LYP: mPW3LYP
- Y Zhao and DGJ Truhlar, J. Phys. Chem. A 108, 6908 (2004)
- XC_HYB_GGA_XC_SB98_1a: SB98 (1a)
- HL Schmider and AD Becke, J. Chem. Phys. 108, 9624 (1998)
- XC_HYB_GGA_XC_SB98_1b: SB98 (1b)
- HL Schmider and AD Becke, J. Chem. Phys. 108, 9624 (1998)
- XC_HYB_GGA_XC_SB98_1c: SB98 (1c)
- HL Schmider and AD Becke, J. Chem. Phys. 108, 9624 (1998)
- XC_HYB_GGA_XC_SB98_2a: SB98 (2a)
- HL Schmider and AD Becke, J. Chem. Phys. 108, 9624 (1998)
- XC_HYB_GGA_XC_SB98_2b: SB98 (2b)
- HL Schmider and AD Becke, J. Chem. Phys. 108, 9624 (1998)
- XC_HYB_GGA_XC_SB98_2c: SB98 (2c)
- HL Schmider and AD Becke, J. Chem. Phys. 108, 9624 (1998)
- XC_HYB_GGA_XC_mPW1K: mPW1K
- BJ Lynch, PL Fast, M Harris, DGJ Truhlar, J. Phys. Chem. A 104, 4811 (2000)
TODO
- XC_HYB_GGA_B97_1_REV
MetaGGA Functionals
MetaGGA Exchange
- XC_MGGA_X_LTA: Local tau approximation
- M Ernzerhof and G Scuseria, J. Chem. Phys. 111, 911 (1999)
- XC_MGGA_X_TPSS: Perdew, Tao, Staroverov & Scuseria exchange
- JP Perdew, J Tao, VN Staroverov and GE Scuseria, Phys. Rev. Lett. 91, 146401 (2003)
- JP Perdew, J Tao, VN Staroverov and GE Scuseria, J. Chem. Phys. 120, 6898 (2004)
- XC_MGGA_X_TAU_HCTH: Tau HCTH
- AD Boese and NC Handy, J. Chemical Physics 116, 9559 (2002)
- XC_MGGA_X_GVT4: GVT4 (exchange part of VSXC)
- T Van Voorhis and GE Scuseria, J. Chem. Phys. 109, 400 (1998)
- XC_MGGA_X_M06L: M06-L
- Y Zhao and DG Truhlar, J Chem. Phys. 125, 194101 (2006)
- Y Zhao and DG Truhlar, Theor. Chem. Accounts 120, 215 (2008)
- XC_MGGA_X_BR89: Becke-Roussel 89
- AD Becke and MR Roussel, Phys. Rev. A 39, 3761 (1989)
- XC_MGGA_X_BJ06: Becke & Johnson 06
- AD Becke and ER Johnson, J. Chem. Phys. 124, 221101 (2006)
- XC_MGGA_X_TB09: Tran & Blaha 89
- F Tran and P Blaha, Phys. Rev. Lett. 102, 226401 (2009)
- XC_MGGA_X_RPP09: Rasanen, Pittalis & Proetto 09
- E Rasanen, S Pittalis & C Proetto, J. Chem. Phys. 132, 044112 (2010), arXiv:0909.1477 (2009)
- XC_MGGA_X_2D_PRHG07: Pittalis-Rasanen-Helbig-Gross 2010
- S. Pittalis, E. Rasanen, N. Helbig, and E. K. U. Gross, Phys. Rev. B 76, 235314 (2007)
- XC_MGGA_X_2D_PRHG07_PRP10: Pittalis-Rasanen-Helbig-Gross 2010
- S. Pittalis, E. Rasanen, N. Helbig, and E. K. U. Gross, Phys. Rev. B 76, 235314 (2007)
- S. Pittalis, E. Rasanen, C.R. Proetto, Phys. Rev. B. 81, 115108 (2010)
MetaGGA Correlation
- XC_MGGA_C_TPSS: Perdew, Tao, Staroverov & Scuseria correlation
- JP Perdew, J Tao, VN Staroverov and GE Scuseria, Phys. Rev. Lett. 91, 146401 (2003)
- JP Perdew, J Tao, VN Staroverov and GE Scuseria, J. Chem. Phys. 120, 6898 (2004)
- XC_MGGA_C_VSXC: VSXC (correlation part)
- T Van Voorhis and GE Scuseria, J. Chem. Phys. 109, 400 (1998)
LCA Functionals
- XC_LCA_OMC: Orestes, Marcasso & Capelle
- E Orestes, T Marcasso and K Capelle, Phys. Rev. A 68, 022105 (2003)
- XC_LCA_LCH: Lee, Colwell & Handy
- AM Lee, SM Colwell and NC Handy, Chem. Phys. Lett. 229, 225 (1994)
- AM Lee, SM Colwell and NC Handy, J. Chem. Phys. 103, 10095 (1995)
Back to libxc

