31 KiB
Libxc Tree of Knowledge: A Categorical Index of Exchange–Correlation Functionals by Shared Analytic Kernel
TL;DR
- Libxc's 600+ functional entries collapse to roughly 50–70 distinct analytic enhancement-factor kernels; the great majority of "different" functionals are the same math kernel with a different parameter tuple (e.g. ~30+ PBE-type exchange functionals share one rational
Fx(s)form), so a clean-room reimplementation needs only the small kernel set as code plus a parameter database. - The tree has four rungs (LDA → GGA → meta-GGA, plus kinetic-energy K functionals), each split into X / C / XC, with hybrids and range-separation treated as a thin recipe layer of mixing coefficients (α, β, ω) over the semilocal kernels — exact exchange is host-supplied, never a kernel to implement.
- The irreducible "long tail" is small: genuinely unique forms include Becke–Roussel (BR89) exchange-hole inversion, LYP correlation, the VWN/PW92 Padé-and-log local-correlation parametrizations, OPTX, AM05, the B97 power series, and the SCAN/TPSS iso-orbital meta-GGA interpolations.
Key Findings
-
The compression ratio is dramatic. MolSSI's official page states: "The library currently implements over 600 density functional approximations, and is used by over 30 electronic structure programs ranging from atomic structure calculations to large quantum chemistry and materials modeling programs." The original 2012 implementation (Marques, Oliveira & Burnus, Comput. Phys. Commun. 183, 2272) contained "around 180" functionals, while Marques' own estimate of the total number of known approximations at that time was "of the order of 250–300" (quoted in Lehtola's GPAW-2021 talk). Today's 600+ entries reduce to ~50–70 distinct analytic kernels because parameter-only variants dominate. The single largest family — PBE-type GGA exchange — alone subsumes dozens of functionals through the (κ, μ) tuple.
-
The PBE rational enhancement
Fx(s) = 1 + κ − κ/(1 + μ·s²/κ)is the workhorse kernel. It originated as Becke's B86 form and is shared verbatim (in libxc'smaple/gga_x_pbe.mpl, where it readspbe_f0 := s -> 1 + kappa*(1 - kappa/(kappa + mu*s^2))) by PBE, PBEsol, revPBE, xPBE, APBE, PBEmol, PBEfe, PBEint, PBE_TCA, and the lambda family. The TPSS and SCAN meta-GGAs reuse the same rational shell with a more complex argumentxreplacingμ·s². -
Local correlation is dominated by two parametrization forms: the VWN Padé-in-√rs log/arctan form and the Perdew–Wang 1992
G(rs) = −2A(1+α₁·rs)·ln[1 + 1/(2A(β₁·rs^½+…))]form. PW92 (lda_c_pw) is the LDA base of nearly all GGA/mGGA correlation (PBE, PW91, TPSS, SCAN). -
The B97 power series
u(x) = γx²/(1+γx²)withΣ cᵢ·uⁱis a second universal kernel, spanning B97, B97-1, B97-2, HCTH (all variants), ωB97, ωB97X, B97-D and the meta-GGA B97M extensions — they differ only in the cᵢ coefficient vectors and the γ values. -
Meta-GGA exchange splits into three kernel lineages: (a) TPSS/revTPSS/SCAN/rSCAN/r2SCAN — the PBE rational shell with an iso-orbital argument built from
z = τW/τorα = (τ−τW)/τunif; (b) Minnesota (M06-L, M05, M06, M08, M11, MN15) — PBE/PW86 exchange times a kinetic-energy power seriesf(w)plus a VS98-style term; (c) Becke–Roussel BR89 exchange-hole inversion (used by BR89, B00, and underlying the MVS, TM, and mBJ potentials).
Details — The Tree
RUNG 0 — Variable dependencies (top-level split)
- LDA: ε depends on ρ (and ζ = spin polarization) only.
- GGA: adds σ = |∇ρ|². Reduced gradient
s = |∇ρ|/(2(3π²)^(1/3)ρ^(4/3)), orx = |∇ρ|/ρ^(4/3); notes = x/(2(3π²)^(1/3)). - meta-GGA: adds τ (kinetic energy density) and/or ∇²ρ (Laplacian). Key dimensionless ingredients:
z = τW/τ,α = (τ−τW)/τunif, whereτW = |∇ρ|²/(8ρ),τunif = (3/10)(3π²)^(2/3)ρ^(5/3). - Each rung × {X exchange, C correlation, XC combined, K kinetic}.
LDA RUNG
Kernel L-X1: Dirac–Slater exchange
- Variables: ρ. Reference: Dirac/Slater (
LDA_X). - Form: εx = −(3/4)(3/π)^(1/3) ρ^(1/3) per particle; spin via εx[ρ↑,ρ↓] = ½(εx[2ρ↑]+εx[2ρ↓]).
- Members / parameters:
LDA_X(canonical Cx),LDA_X_REL(relativistic correction factor),LDA_X_2D,LDA_X_1D_SOFT/_EXPONENTIAL,XALPHA(Slater Xα, adjustable α default 0.7),LDA_X_RAE,LDA_X_SLOC(a=1.67, b=0.3),LDA_X_YUKAWA/_ERF(screened). Variation = the prefactor Cx and the dimension. - Citation: Dirac, Proc. Camb. Phil. Soc. 26, 376 (1930); Slater, Phys. Rev. 81, 385 (1951).
Kernel L-C1: VWN Padé log/arctan local correlation
- Variables: ρ, ζ. Reference: Vosko–Wilk–Nusair 1980 (
LDA_C_VWN). - Form:
ec(rs,ζ) = ec^P + [ec^F − ec^P]·fc(ζ)ζ⁴ + (fc(ζ)/fc''(0))(1−ζ⁴)αc(rs), each of ec^P, ec^F, αc parametrized byG(y) = A{ln(y²/X(y)) + (2b/Q)arctan(Q/(2y+b)) − (b·y0/X(y0))[ln((y−y0)²/X(y)) + (2(b+2y0)/Q)arctan(Q/(2y+b))]}, withy = √rs,X(y) = y²+by+c,Q = √(4c−b²),fc''(0) = 4/[9(2^(1/3)−1)]. Paramagnetic channel constants: A = 0.0310907, b = 3.72744, c = 12.9352, x0 = −0.10498. - Members:
LDA_C_VWN(=VWN5),LDA_C_VWN_RPA,LDA_C_VWN_1,_2,_3,_4— variants differ in (A,b,c,x0) tuples and whether the RPA or Ceperley–Alder fit is used. VWN3 and VWN5 are the historically confused pair (VWN3 = RPA-fit body parametrization; VWN5 = Table-5 Monte-Carlo parametrization). - Citation: Vosko, Wilk & Nusair, Can. J. Phys. 58, 1200 (1980), doi:10.1139/p80-159.
Kernel L-C2: Perdew–Wang 1992 G(rs) local correlation
-
Variables: ρ, ζ. Reference: PW92 (
LDA_C_PW). -
Form:
G(rs) = −2A(1+α₁·rs)·ln[1 + 1/(2A(β₁·rs^(1/2) + β₂·rs + β₃·rs^(3/2) + β₄·rs^(p+1)))], spin-interpolated with the von Barth–Hedin fc(ζ). -
Parameter table (three channels: ec0 paramagnetic, ec1 ferromagnetic, αc spin-stiffness):
param ec0 ec1 αc A 0.031091 0.015545 0.016887 α₁ 0.21370 0.20548 0.11125 β₁ 7.5957 14.1189 10.357 β₂ 3.5876 6.1977 3.6231 β₃ 1.6382 3.3662 0.88026 β₄ 0.49294 0.62517 0.49671 p = 1 for
LDA_C_PW; p = 3/4 forLDA_C_PW_RPA;LDA_C_PW_MODuses higher-precision A (0.0310907…). -
Members:
LDA_C_PW,LDA_C_PW_RPA,LDA_C_PW_MOD,LDA_C_OB_PW(Ortiz–Ballone refit). -
Citation: Perdew & Wang, Phys. Rev. B 45, 13244 (1992).
Kernel L-C3: PZ81 piecewise (high/low-density) correlation
- Form: for rs ≥ 1,
ec = γ/(1+β₁√rs+β₂·rs); for rs < 1,ec = A·ln rs + B + C·rs·ln rs + D·rs. Members:LDA_C_PZ,LDA_C_PZ_MOD,LDA_C_OB_PZ. Citation: Perdew & Zunger, Phys. Rev. B 23, 5048 (1981). Stability note: second-derivative discontinuity at rs = 1.
Kernel L-C4: Chachiyo single-formula correlation
- Form:
ec = a·ln(1 + b/rs + b/rs²)-type closed two-parameter expression. Members:LDA_C_CHACHIYO,LDA_C_CHACHIYO_MOD,GGA_C_CHACHIYO(gradient extension). Citation: Chachiyo, J. Chem. Phys. 145, 021101 (2016).
Kernel L-C5: Wigner / small-rational one-offs
LDA_C_WIGNER(ec = −a/(rs+b)),LDA_C_RPA,LDA_C_HL(Hedin–Lundqvist),LDA_C_GL(Gunnarsson–Lundqvist),LDA_C_vBH,LDA_C_RC04,LDA_C_W20,LDA_C_GOMBAS— each a distinct small rational/log form; mostly irreducible.- Warm-dense-matter / finite-T XC:
LDA_XC_KSDT,LDA_XC_GDSMFB,LDA_XC_CORRKSDT— temperature-dependent Padé parametrizations (shared form, different fits). - Electron–proton (NEO):
LDA_C_EPC17,_17_2,_18_1,_18_2— implemented via the spin-channel trick (electron density as "up", proton density as "down").
Kernel L-K1: Thomas–Fermi kinetic
- Form:
τ = CF·ρ^(5/3),CF = (3/10)(3π²)^(2/3). Members:LDA_K_TF,LDA_K_LP(Lee–Parr Gaussian),LDA_K_ZLP. Citation: Thomas (1927), Fermi (1928).
GGA RUNG — EXCHANGE
Kernel G-X1: PBE-type rational enhancement (THE big family)
-
Variables: ρ, σ. Reference: PBE (
GGA_X_PBE); form first from Becke B86. -
Form (libxc
maple/gga_x_pbe.mpl):Fx(s) = 1 + κ − κ/(1 + μ·s²/κ), εx = εx^LDA·Fx(s). Gradient expansionFx = 1 + μ·s² + O(s⁴). -
Member / parameter table:
Functional κ μ GGA_X_PBE0.804 0.2195149727645171 GGA_X_PBE_SOL(PBEsol)0.804 10/81 = 0.12345679 GGA_X_PBE_R(revPBE)1.245 0.2195149727645171 GGA_X_XPBE(Xu–Goddard)0.91954 0.23889 GGA_X_APBE0.804 0.260 GGA_X_PBE_MOL0.804 ≈0.27583 GGA_X_PBEFE0.437 0.346 GGA_X_PBE_TCA1.227 0.2195149727645171 GGA_X_PBEINT0.804 μ(s) interpolating 10/81→0.21951, α=0.197 GGA_X_LAMBDA_{LO,CH,OC2}_NN-dependent κ (tightened Lieb–Oxford) 0.2195149727645171 Also share this rational shell (refit params):
GGA_X_PBE_JSJR,PBE_GAUSSIAN,mPBE(Adamo–Barone), and vdW reparametrizations (PBEK1_VDW,OPTPBE_VDW). The VASP wiki documents the PBE→PBEsol move concisely: PBE's "μ=0.21951 in exchange and β=0.066725 in correlation are changed to μ=10/81≈0.12345679 and β=0.046 to get the PBEsol functional." -
Citation: Perdew, Burke & Ernzerhof, PRL 77, 3865 (1996); Becke, J. Chem. Phys. 84, 4524 (1986).
Kernel G-X2: RPBE exponential enhancement
- Form:
Fx(s) = 1 + κ(1 − exp(−μ·s²/κ)). Same (κ, μ) = (0.804, 0.21951) as PBE but a distinct functional form (exponential, not rational), hence a separate kernel. - Members:
GGA_X_RPBE; relatedGGA_X_PBEpow. Citation: Hammer, Hansen & Nørskov, Phys. Rev. B 59, 7413 (1999).
Kernel G-X3: B88 arcsinh exchange
- Variables: ρ, σ. Form:
Fx = 1 + (β/Cx)·x²/(1 + γ·β·x·arcsinh(x)),x = |∇ρ|/ρ^(4/3), γ = 6. - Member / parameters:
GGA_X_B88(β = 0.0042),GGA_X_B88_6311G(β = 0.0051),GGA_X_OPTB88_VDW,GGA_X_MB88,GGA_X_EB88(excogitated β≈0.0050),GGA_X_B88M, LRC variants (β = 0.323). All differ only in β (and γ for some). - Citation: Becke, Phys. Rev. A 38, 3098 (1988). Stability note: arcsinh is well-behaved; the asymptotic exchange potential is unbounded (the −1/(2r) energy-density decay is designed-in).
Kernel G-X4: B86 / B86b family
- Form:
Fx = 1 + (μ s²)/(1 + γ s²)^pwith p ∈ {1, 4/5}. Members:GGA_X_B86,GGA_X_B86_MGC,GGA_X_B86_R,GGA_X_OPTB86B_VDW. (A close cousin of the PBE rational shell with the added power p.) - Citation: Becke, J. Chem. Phys. 84, 4524 (1986); 85, 7184 (1986).
Kernel G-X5: PW91 exchange (sinh-based rational)
- Form:
Fx = (1 + a₁·s·arcsinh(a₂·s) + (a₃ + a₄·exp(−b·s²))s²)/(1 + a₁·s·arcsinh(a₂·s) + a₅·s⁴). Members:GGA_X_PW91,GGA_X_MPW91(Adamo–Barone),GGA_X_PW91_MOD. Citation: Perdew et al., Phys. Rev. B 46, 6671 (1992).
Kernel G-X6: OPTX (sum-of-rational-squared)
- Form:
Fx = a₁ + a₂·(γx²/(1+γx²))²,x = |∇ρ|/ρ^(4/3). Parameters: a₁ = 1.05151, a₂ = 1.43169, γ = 0.006. - Members:
GGA_X_OPTX,GGA_X_ITYH_OPTX(short-range erf recipe). Citation: Handy & Cohen, Mol. Phys. 99, 403 (2001).
Kernel G-X7: G96 (Gill 1996)
- Form: Fx with an x^(3/2) gradient term, simpler than B88. Member:
GGA_X_G96. Citation: Gill, Mol. Phys. 89, 433 (1996).
Kernel G-X8: AM05 (Airy-gas / subsystem interpolation)
- Form: interpolation between LDA and Airy-gas (Laplacian-level) limits with a Langreth–Vosko-style index. Members:
GGA_X_AM05,GGA_X_AIRY,GGA_X_LAG. Citation: Armiento & Mattsson, Phys. Rev. B 72, 085108 (2005). Largely irreducible.
Kernel G-X9: Asymptotically-corrected potentials (LB94/LBα)
- Form: modeled on the potential (not energy):
vx = −β x²/(1+3β x·arcsinh(x))added to the LDA potential. Members:GGA_X_LB94,GGA_X_LBM,GGA_X_FD_LB94. Potential-only — flag as a special case (no consistent εx).
Kernel G-X10: HJS screened exchange-hole models
- Form: error-function-screened exchange-hole integral, parametrized per base functional. Members:
GGA_X_HJS_PBE,_PBE_SOL,_B88,_B97X,_B88_V2— same HJS machinery, parameters per base. Citation: Henderson, Janesko & Scuseria, J. Chem. Phys. 128, 194105 (2008). Underlies HSE / range-separated builds.
Misc one-off GGA exchange (irreducible long tail)
GGA_X_WC(Wu–Cohen; PBE rational withx = 10/81·s² + (μ−10/81)s²·e^(−s²) + ln(1+c·s⁴)),GGA_X_SOGGA/SOGGA11(two-term second-order GGA),GGA_X_C09X,GGA_X_HTBS(switches between RPBE & PBEsol),GGA_X_EV93(Engel–Vosko rational poly in s²),GGA_X_AK13,GGA_X_KT1,GGA_X_FT97_A/B,GGA_X_BAYESIAN,GGA_X_BCGP, theGGA_X_2D_*2D forms, and the Tozer–Handy XC forms.
GGA RUNG — CORRELATION
Kernel G-C1: PBE/PW91 correlation H(t) gradient correction
-
Variables: ρ, σ, ζ. Reference: PBE correlation (
GGA_C_PBE). -
Form:
εc = εc^LDA(PW92) + H(rs,ζ,t), withH = γφ³·ln[1 + (β/γ)t²·(1+At²)/(1+At²+A²t⁴)],A = (β/γ)[exp(−εc^LDA/(γφ³))−1]^(−1),φ = ((1+ζ)^(2/3)+(1−ζ)^(2/3))/2, t = scaled gradient. -
Member / parameters:
Functional β γ GGA_C_PBE0.06672455060314922 (1−ln2)/π² ≈ 0.0310906909 GGA_C_PBE_SOL0.046 (1−ln2)/π² GGA_C_PBEFE0.043 (1−ln2)/π² GGA_C_PBE_JRGX3μ^GE/π² ≈ 0.0375 (1−ln2)/π² GGA_C_PBELOC,GGA_C_SG4,GGA_C_PBEINTβ = β(rs,t) density-dependent — Members (all H(t) form, parameter-only):
GGA_C_PBE,PBE_SOL,XPBE,PBEFE,PBE_MOL,PBE_JRGX,APBE,PBEINT,PBELOC,SG4,REGTPSS,ZPBESOL. -
Citation: Perdew, Burke & Ernzerhof, PRL 77, 3865 (1996); PW91: Perdew et al., PRB 46, 6671 (1992).
Kernel G-C2: LYP correlation (Colle–Salvetti-derived)
- Variables: ρ, σ (originally ∇²ρ, eliminated by parts). Form (Miehlich):
εc = −a·(4/(1+d·ρ^(−1/3)))·(ρ↑ρ↓/ρ) − a·b·ω(ρ)·[...gradient and ρ^(8/3) terms...],ω(ρ) = exp(−c·ρ^(−1/3))/(1+d·ρ^(−1/3))·ρ^(−11/3). - Parameters (libxc
gga_c_lyp_set_params): a = 0.04918, b = 0.132, c = 0.2533, d = 0.349. - Members:
GGA_C_LYP, plus refits used in OLYP, XLYP, MOHLYP, PBELYP1W. Citation: Lee, Yang & Parr, Phys. Rev. B 37, 785 (1988); Miehlich et al., Chem. Phys. Lett. 157, 200 (1989). Irreducible kernel.
Kernel G-C3: P86 (Perdew 1986) gradient correlation
- Form:
εc = εc^LDA + e^(−Φ)·C(rs)·|∇ρ|²/ρ^(4/3)over a spin factor d(ζ); C(rs) is a Rasolt–Geldart rational. Members:GGA_C_P86,GGA_C_P86VWN,GGA_C_P86VWN_FT,GGA_C_P86_FT. Differ by underlying LDA (PZ vs VWN5) and the ftilde constant. Citation: Perdew, Phys. Rev. B 33, 8822 (1986).
Kernel G-C4: Wilson–Levy type
- Form:
εc = √(1−ζ²)·(a+b·x)/(c+d(x↑+x↓)+rs). Members:GGA_C_WL(a=−0.74860, b=0.06001, c=3.60073, d=0.90000),GGA_C_WI,GGA_C_WI0. Citation: Wilson & Levy, Phys. Rev. B 41, 12930 (1990).
Misc GGA correlation one-offs
GGA_C_AM05(paired with AM05-X),GGA_C_OPTC(Cohen–Handy),GGA_C_W94(Wilson 94),GGA_C_CS1,GGA_C_BMK,GGA_C_CCDF,GGA_C_SOGGA11,GGA_C_GAPC,GGA_C_TCA.
GGA RUNG — KINETIC ENERGY (orbital-free)
Kernel G-K1: TF–λ–vW linear combination
- Form:
T = λ·TW + γ·TTF. Members (by λ):GGA_K_VW(pure von Weizsäcker),GGA_K_GE2(λ=1/9),GGA_K_GOLDEN(λ=13/45),GGA_K_YT65(λ=1/5),GGA_K_BALTIN(λ=5/9),GGA_K_TFVW. Parameter-only (the λ coefficient). Citation: von Weizsäcker, Z. Phys. 96, 431 (1935).
Kernel G-K2: PBE-type kinetic enhancement (reuses the G-X1 shell)
- Form:
Ft(s) = 1 + κ − κ/(1+μs²/κ)applied to τTF. Members:GGA_K_APBE,GGA_K_APBEINT,GGA_K_REVAPBE,GGA_K_LC94,GGA_K_PERDEW,GGA_K_TW1–4(Tran–Wesolowski),GGA_K_LLP,GGA_K_THAKKAR,GGA_K_OL1/OL2,GGA_K_FR_PW86,GGA_K_DK(DePristo–Kress rational),GGA_K_VSK,GGA_K_VJKS,GGA_K_ERNZERHOF. Most are PBE/B88-shell forms refit for the kinetic energy. Citation: Constantin et al., PRL 106, 186406 (2011) (APBE).
META-GGA RUNG — EXCHANGE
Kernel M-X1: TPSS-type rational shell with iso-orbital argument
- Variables: ρ, σ, τ. Reference: TPSS (
MGGA_X_TPSS). - Form:
Fx = 1 + κ − κ²/(κ + x(s,z,α)), where x is a long polynomial in s,z = τW/τ,α = (τ−τW)/τunif, and the reduced-Laplacian mimicq̃b = (9/20)(α−1)/√(1+b·α(α−1)) + (2/3)s². - Member / parameters:
MGGA_X_TPSS(κ=0.804, μGE=10/81, μPBE=0.21951, b=0.40, c=1.59096, e=1.537),MGGA_X_REVTPSS(μ=0.14, c=2.35203946, e=2.16769874, f=3),MGGA_X_TPSSLOC,MGGA_X_BLOC,MGGA_X_REGTPSS,MGGA_X_PKZB(precursor),MGGA_X_MBEEF,MGGA_X_TM(Tao–Mo),MGGA_X_REVTM. Citation: Tao, Perdew, Staroverov & Scuseria, PRL 91, 146401 (2003).
Kernel M-X2: SCAN-type iso-orbital interpolation
- Variables: ρ, σ, τ (via α). Reference: SCAN (
MGGA_X_SCAN). - Form:
Fx(s,α) = {h1x(s,α) + fx(α)[h0x − h1x]}·gx(s), withh0x = 1.174 = 1+κ0,h1x = 1 + k1 − k1/(1 + x/k1),gx(s) = 1 − exp(−a1·s^(−1/2)),fx(α) = exp(−c1x·α/(1−α))·θ(1−α) − dx·exp(c2x/(1−α))·θ(α−1). - Parameters: SCAN: μGE=10/81, k1=0.065, c1x=0.667, c2x=0.8, dx=1.24, a1=4.9479, with b1, b2≈0.12083, b3=0.5, b4 fixed by GE4. revSCAN: c1x=0.607, c2x=0.7, dx=1.37. r2SCAN regularizes via
α̃with floor η=10^(−3): per Furness et al. (2020), "the constants Cη = 20/27 + 5η/3, depending on the α̅ regularization parameter η = 10⁻³, and C2x ≈ −0.162742 eliminate erroneous contributions from dfx(α̅)/dα̅ at α̅ → 1." The damping constant is dp2 = 0.361 — note the original paper's main text printed 0.316, corrected to 0.361 in the published Correction (J. Phys. Chem. Lett. 11, 9248). rSCAN replaces the θ-step switches with smooth polynomials. - Members:
MGGA_X_SCAN,MGGA_X_RSCAN,MGGA_X_R2SCAN,MGGA_X_R2SCAN01,MGGA_X_R4SCAN,MGGA_X_SCANL(deorbitalized, Laplacian instead of τ),MGGA_X_REVSCAN,MGGA_X_TASK,MGGA_X_RPPSCAN. Citation: Sun, Ruzsinszky & Perdew, PRL 115, 036402 (2015); Furness, Kaplan, Ning, Perdew & Sun, J. Phys. Chem. Lett. 11, 8208 (2020), doi:10.1021/acs.jpclett.0c02405 (r2SCAN). Stability note: SCAN'sfx(α)step switches are highly grid-sensitive near α≈1; rSCAN/r2SCAN explicitly regularize this (α̃with the η floor in density tails where τW/τ diverges).
Kernel M-X3: Minnesota (M06/M11/MN) PBE×power-series + VS98 term
- Variables: ρ, σ, τ. Reference: M06-L (
MGGA_X_M06_L). - Form:
εx = Σσ [εx^PBE(ρσ,∇ρσ)·f(wσ) + εx^UEG(ρσ)·hx(xσ,zσ)], withf(wσ) = Σ_{i=0}^{11} aᵢ·wσⁱa power series inwσ = (t−1)/(t+1),t = τLSDA/τ; hx is the VS98 inhomogeneity rational. - Members / parameters: the aᵢ vectors (and the VS98 a,b,c constants) differ per functional:
MGGA_X_M06_L,M06,M06_2X,M06_HF,M06_SX,M05,M05_2X,M08_HX,M08_SO,M11,M11_L,MN12_L,MN15_L,MN12_SX,MN15. Parent:MGGA_X_VS98; alsoMGGA_X_GVT4. Citation: Zhao & Truhlar, J. Chem. Phys. 125, 194101 (2006); Van Voorhis & Scuseria, J. Chem. Phys. 109, 400 (1998). Stability note: Minnesota Fx shape is basis-set-dependent and slowly grid-convergent (Mardirossian & Head-Gordon, JCTC 9, 4453 (2013));MGGA_X_MK00has aτ−υ/4denominator that can vanish or go negative.
Kernel M-X4: Becke–Roussel exchange-hole inversion
- Variables: ρ, σ, τ (and ∇²ρ). Form: models the spherically-averaged exchange hole as a displaced exponential, solving a transcendental relation
x·e^(−x)/… = (curvature)for the nonlinear hole parameter; energy density= −(1−e^(−x)−½x·e^(−x))/b. Requires a Newton root-find per grid point (or the analytic Proynov approximation). - Members:
MGGA_X_BR89,MGGA_X_BR89_EXPLICIT(Proynov–Gan–Kong 2008 analytic refit, γ usually 0.8 or 1.0),MGGA_X_BR89_EXPLICIT_1,MGGA_X_B00,MGGA_X_MBR, and the mBJ (Tran–Blaha modified Becke–Johnson) potentialMGGA_X_TB09/MBJ(potential-only). Citation: Becke & Roussel, Phys. Rev. A 39, 3761 (1989); Proynov et al., Chem. Phys. Lett. 455, 103 (2008). Stability note: the explicit refit raises quadrature noise ~3 orders of magnitude vs the iterative BR89 (Lehtola et al., arXiv:2206.14062); needs the Laplacian and is affected by libxc's Fermi-hole-curvature handling (--disable-fhc).
Kernel M-X5: MVS / MS (made-simple) interpolation
- Form: PBE-rational h-function interpolated via a rational fx(α) (no step functions). Members:
MGGA_X_MS0,MS1,MS2,MS2B,MVS,MGGA_X_MVSB. Citation: Sun et al., J. Chem. Phys. 137, 051101 (2012); Sun, Perdew & Ruzsinszky, PNAS 112, 685 (2015).
meta-GGA exchange one-offs
MGGA_X_PKZB,MGGA_X_2D_PRHG07,MGGA_X_GX/PBE_GX(Loos; step-function, numerically ill-behaved per Lehtola 2022),MGGA_X_TLDA,MGGA_X_EDMGGA,MGGA_X_MK00/MK00B,MGGA_X_RTPSS,MGGA_X_JK.
META-GGA RUNG — CORRELATION
Kernel M-C1: TPSS/revTPSS correlation (self-interaction-corrected PBE)
- Form:
εc^TPSS = εc^revPKZB·[1 + 2.8·z³·εc^revPKZB], withεc^revPKZB = εc^PBE[1+C(ζ,ξ)z²] − [1+C(ζ,ξ)]z²·Σσ (ρσ/ρ)·max(εc^PBE,σ, εc^PBE),z = τW/τ. Members:MGGA_C_TPSS(enforces z = τW/τ ≤ 1),MGGA_C_REVTPSS,MGGA_C_TPSSLOC,MGGA_C_BLOC. Citation: Tao–Perdew–Staroverov–Scuseria, PRL 91, 146401 (2003). Stability note: libxc applies aτW/τ ≤ 1clamp; a historical factor-of-½-in-τ interface bug caused NaNs in some host codes (QE issue).
Kernel M-C2: SCAN correlation
- Form:
εc = εc^1 + fc(α)[εc^0 − εc^1], interpolating a single-orbitalεc^0(revised PW92-based) and a slowly-varyingεc^1(PBE-like with β(rs)); fc(α) analogous to the exchange switch. Members:MGGA_C_SCAN,MGGA_C_RSCAN,MGGA_C_R2SCAN,MGGA_C_R2SCAN01,MGGA_C_SCANL,MGGA_C_REVSCAN,MGGA_C_R2SCAN_VV10(composition with VV10 NL). Citation: Sun et al., PRL 115, 036402 (2015).
Kernel M-C3: M06-L / Minnesota correlation (BC95-derived)
- Form: opposite-spin + same-spin components each
= εc^UEG·g(x)(a B97 power series in x) times a τ-dependent factor (1 − τW/τfor same-spin self-correlation removal), built on the BC95 (Becke 1995) τ-correlation. Members:MGGA_C_M06_L,M06,M06_2X,M06_HF,M05,M05_2X,M08_HX/SO,M11,M11_L,MN12_L,MN15_L,MN15,MGGA_C_BC95(parent),MGGA_C_VSXC. Citation: Becke, J. Chem. Phys. 104, 1040 (1996); Zhao & Truhlar.
Kernel M-C4: Colle–Salvetti / B94 τ-correlation
- Members:
MGGA_C_CS(Colle–Salvetti, the parent of LYP),MGGA_C_B94,MGGA_C_KCIS,MGGA_C_TPSSLOC. Distinct from LYP only in retaining τ.
meta-GGA correlation one-offs
MGGA_C_PKZB,MGGA_C_M12C,MGGA_C_TM,MGGA_C_REVTM,MGGA_C_HLTAPW,MGGA_C_RREGTM.
meta-GGA kinetic
MGGA_K_PC07(Perdew–Constantin Laplacian-level),MGGA_K_CSK,MGGA_K_PGSL025— Laplacian + τ kinetic functionals.
HYBRID & RANGE-SEPARATED LAYER (thin recipe layer — mixing data only)
Exact exchange is host-supplied; libxc only stores the mixing coefficients and the semilocal kernel composition. The CAM/Ewald range partition convention is:
1/r₁₂ = [α + β·erf(ωr₁₂)]/r₁₂ (long-range) + [1 − α − β·erf(ωr₁₂)]/r₁₂ (short-range),
so EX = α·EX^HF(full) + β·EX^HF(LR,erf) + (1−α)EX^DFA(SR) + …. As r₁₂→0 the HF fraction = α; as r₁₂→∞ the HF fraction = α+β.
-
Global hybrids (single α):
HYB_GGA_XC_PBEH/PBE0 (α=0.25, PBE X+C),HYB_GGA_XC_B3LYP(α=0.20 HF; 0.08 LDA-X + 0.72 B88-X; 0.81 LYP-C + 0.19 VWN-C — note the VWN_RPA vs VWN5 ambiguity: B3LYP uses VWN3/RPA in Gaussian/ORCA/PySCF≥2.3, VWN5 inB3LYP5),HYB_GGA_XC_B3LYP3(VWN3),B3LYP5(VWN5),BHANDH(α=0.5),BHANDHLYP,B3PW91,B3P86,X3LYP,O3LYP,PBE0_13(α=1/3);HYB_MGGA_XC_TPSSH(α=0.10),revTPSSH,SCAN0(α=0.25); MGGA hybridsB86B95/B88B95(Becke τ-correlation, α per functional), and the M05/M06/M08/M11/MN15 hybrid members (HF % from 10% to 54%, and 100% for M06-HF). -
Range-separated (α, β, ω):
Functional α β ω (bohr⁻¹) convention HYB_GGA_XC_CAM_B3LYP0.19 0.46 0.33 CAM LC-ωPBE ( LRC_WPBE)0 1.0 ~0.4 LC LC-ωPBEh ( LRC_WPBEH)0.20 0.80 ~0.2 CAM HSE03/HSE060.25 (SR) −0.25 0.11 (HSE06) screened (HF SR, DFA LR) ωB970 1.0 0.40 LC + B97 series ωB97X0.157706 (SR) →1.0 0.30 CAM + B97 series ωB97X-V/ωB97M-Vas ωB97X + VV10 NL correlation CAMY-B3LYP/LCY-*per Yukawa Yukawa screening (not erf) Historical libxc bugs to be aware of:
LC_BLYPused ω=0.3 vs intended 0.33;CAM_QTP_01had 81/19 vs intended 80/20 LYP/VWN5;CAP0had 75% vs intended 25% HF. -
Yukawa range separation (screening
exp(−ωr)/rinstead of erf): the CAMY / LCY / LC-Yukawa family — a different attenuation kernel, same mixing-data treatment. -
Composition (recipe, not kernel): many
_XCentries are literally an X-kernel + C-kernel glued together: BLYP = B88 + LYP, BP86 = B88 + P86, OLYP = OPTX + LYP, PBE = PBE-X + PBE-C. These are recipes (two kernel references + coefficients), not new kernels.
Compression Summary
- 600+ libxc entries → ~50–70 distinct analytic kernels. Rough kernel counts by rung: LDA ≈ 12 (Dirac-X + relativistic/dim variants; VWN, PW92, PZ, Chachiyo, Wigner, HL/GL, finite-T KSDT/GDSMFB, EPC, TF-kinetic); GGA-X ≈ 12–15 (PBE-rational, RPBE-exp, B88, B86, PW91, OPTX, G96, AM05, LB-potential, HJS, WC, SOGGA, EV93, AK13); GGA-C ≈ 6 (PBE-H, LYP, P86, Wilson–Levy, AM05, one-offs); GGA-K ≈ 2 (TF-λ-vW, PBE-kinetic-shell); mGGA-X ≈ 6 (TPSS, SCAN, Minnesota, BR89, MVS/MS, one-offs); mGGA-C ≈ 5 (TPSS, SCAN, Minnesota/BC95, CS/B94); hybrids/RSH = 0 new kernels (pure mixing data).
- The single biggest win: the PBE rational shell
Fx = 1+κ−κ/(1+μs²/κ)plus its argument-substitution descendants (TPSS, SCAN h1x) covers well over 100 functional entries across GGA-X, GGA-K and mGGA-X with parameter/argument changes only.
Recommendations (for the JAX clean-room reimplementation)
- Stage 1 — implement the high-coverage kernels first. In priority order by functional count: (a) Dirac–Slater LDA-X, (b) PW92 + VWN local correlation, (c) PBE rational exchange shell, (d) PBE H(t) correlation, (e) B88 + LYP (gets you BLYP/B3LYP), (f) the B97 u-power series. These six kernels plus their parameter tables already cover the majority of production functionals (PBE, PBEsol, revPBE, RPBE, BLYP, B3LYP, PBE0, the B97/HCTH family).
- Stage 2 — meta-GGA shells: TPSS rational-with-iso-orbital, SCAN/r2SCAN interpolation (implement r2SCAN's regularized
α̃first — it is the numerically robust default; use dp2 = 0.361), Minnesota PBE×power-series. Defer BR89 (it needs a per-point Newton root-find for the exchange-hole parameter — implement as a custom-JVP-wrapped solver). - Represent parameters as a database, kernels as pure functions. Schema per leaf:
{functional_id, kernel_family_id, param_tuple, base_LDA_ref, family/kind tags, citation/DOI}. Hybrids/RSH get an extra mixing record{alpha, beta, omega, screening_convention ∈ {erf, yukawa}, component_kernel_refs}. - Encode the numerical guards from libxc source as kernel-level config: density floor (
dens_threshold), s→∞ saturation (PBE rational saturates naturally; RPBE/B88 need overflow-safe exp/arcsinh), τ iso-orbital boundaries (α near 1 for SCAN — use r2SCAN regularization; z ≤ 1 clamp for TPSS correlation), and the Laplacian/Fermi-hole-curvature handling for the BR89 class (replicate--disable-fhcbehavior). - Validate against libxc reference data per functional (energies + up to 4th derivatives), since libxc's Maple-generated code is the de-facto numerical standard. Mismatches usually trace to (i) the VWN3/VWN5 ambiguity, (ii) the τ factor-of-½ convention, or (iii) the (3π²) vs (6π²) reduced-gradient constants.
Thresholds that change the plan: if you only need the ~20 most-used functionals, Stages 1–2 minus BR89/Minnesota suffice (~10 kernels). If you need full libxc parity including the long tail, budget for ~60–70 kernels and the transcendental BR89 solver; the marginal cost per additional functional then drops to a single database row.
Caveats
- Parameter precision: three values were corroborated from the peer-reviewed Tran–Lehtola–Pittalis–Marques review (arXiv:2602.17333, 2026) and program docs rather than read verbatim from the
.mpl/.csource blobs — specificallyGGA_X_XPBE(κ=0.91954, μ=0.23889),GGA_X_PBE_MOL(μ≈0.27583), and theGGA_X_LAMBDA_OC2_NN-dependent κ. Cross-check these directly againstmaple/gga_x_xpbe.mpl,gga_x_pbe.c, andgga_x_lambda*.mplbefore committing to a database. (GitLab raw blobs render via JavaScript and were not directly fetchable during this research.) The PBE/PBEsol/B88/LYP/PW92/SCAN/r2SCAN constants are confirmed (PBEsol μ=10/81, β=0.046 corroborated by the VASP wiki; r2SCAN dp2=0.361 per the published Correction to Furness 2020). - Kernel count is approximate and depends on how finely you split "same form, different power p" cases (e.g. B86 p=1 vs p=4/5, or treating RPBE-exponential as distinct from PBE-rational). The 50–70 figure treats distinct analytic expressions as distinct; collapsing near-identical rationals would push it lower.
- Potential-only functionals (LB94, mBJ/TB09) do not derive from an energy expression and must be flagged specially — they return a vxc directly and have no consistent εxc; libxc lists them but they cannot be used in energy-only or post-SCF energy evaluations.
- Version drift: functional definitions and even default parametrizations change between libxc releases (the changelog documents corrected parameters for KCIS, OPTC, CAM_QTP_01, LC_BLYP ω, and others). Pin to a specific libxc version (devel as of mid-2026) when building the parameter database.
- VWN3/VWN5 and PZ/PW92 LDA-base ambiguity is the single most common source of cross-code disagreement; record the exact LDA-correlation base for every GGA/mGGA correlation functional and every hybrid explicitly.
- Combined-XC vs split functionals: in libxc, most functionals are split into separate
_Xand_Centries that the host combines; a minority (LYP-based, Tozer–Handy, the_XCMinnesota and range-separated forms) are delivered as monolithic XC. Your database should mark each leaf as exchange-only, correlation-only, or combined-XC to drive the composition layer correctly.