Functionals¶
XC functionals are resolved through libxc
at runtime. Any functional name libxc accepts works: short names
("LDA", "PBE", "B3LYP") and libxc XC_… identifiers both work.
Common choices¶
Name |
Type |
HF-exchange |
Notes |
|---|---|---|---|
|
LDA |
0 % |
Slater + VWN5. Fast sanity check. |
|
GGA |
0 % |
Workhorse for solid state. |
|
GGA |
0 % |
Classic molecular GGA. |
|
hybrid |
25 % |
PBE + Fock exchange. |
|
hybrid |
20 % |
de-facto for organics. |
|
range-sep hybrid |
25 % short-range |
Needs range-separated Coulomb (coming later). |
Accessing HF-exchange fraction¶
from vibeqc import Functional
fn = Functional("PBE0")
print(fn.hf_exchange_fraction()) # 0.25
print(fn.kind()) # XCKind.GGA
Custom functional strings¶
libxc supports composition via ,:
fn = Functional("XC_LDA_X,XC_LDA_C_VWN") # explicit Slater + VWN
fn = Functional("XC_GGA_X_PBE,XC_GGA_C_PBE") # PBE made of separate components