15-xc-functional 问答笔记¶
Q1:既然 \(E_{xc}\) 不存在解析表达式,这些各阶算法的依据是什么?怎么知道是对的?是靠实验验证吗?¶
原文:"Jacob's ladder"(LDA → GGA → meta-GGA → Hybrid → RPA)
这是最核心的方法论问题。答案是:泛函设计有两大哲学流派(非经验派 + 经验派),验证靠"物理约束 + benchmark 对比 + 系统偏差规律",不只是实验。
两大设计哲学¶
流派 A:非经验派(Perdew 学派)¶
核心原则:基于物理上已知的精确极限和约束,不拟合经验数据。
所有非经验泛函都必须满足若干"精确约束"——这些约束是从一般物理原理严格导出的,任何真正的 \(E_{xc}\) 都必须满足。代表:LDA、PBE、PBEsol、SCAN。
流派 B:经验派(Becke 学派)¶
核心原则:写一个带若干可调参数的泛函形式,用已知实验/高精度数据拟合参数。
代表:B3LYP(化学界经典,参数由 56 个小分子性质拟合而来)。
混合流派(当下主流)¶
用理论骨架 + 少量经验参数校准。代表:HSE06、TPSS。
每阶泛函具体的设计依据¶
LDA(1965):来自均匀电子气的精确解¶
均匀电子气(jellium)是一个可以精确求解的模型系统:
- 交换部分 \(\varepsilon_x^{hom}\):Dirac 1930 年解析算出 \(\varepsilon_x^{hom}(\rho) \propto -\rho^{1/3}\)
- 关联部分 \(\varepsilon_c^{hom}\):Ceperley-Alder 1980 年用量子 Monte Carlo(QMC)数值精确算出;PW92 / PZ81 做解析拟合
LDA 的假设:真实系统的局部 \(\varepsilon_{xc}\) 等同于该处密度下均匀电子气的值。
物理依据: 1. 在密度变化平缓的体系(金属、简单固体),局部均匀近似合理 2. 满足若干精确约束:均匀极限、缩放关系 3. "误差抵消"机制:LDA 的 \(E_x\) 和 \(E_c\) 各自偏差约 10%,但符号相反,总 \(E_{xc}\) 精度比任一单项更好(~1–2%)——这个发现让 Parr & Yang 1989 称 LDA "paradoxically accurate"
怎么知道 LDA 对:已知精确答案的均匀电子气(QMC),加上对真实体系的 benchmark 验证。
GGA / PBE(1996):从精确约束构造¶
Perdew-Burke-Ernzerhof 写下 PBE 时,要求泛函满足 6 条已知的精确约束:
- 均匀电子气极限(→ LDA)
- 慢变密度的梯度展开恢复二阶项
- 电子气的线性响应函数
- 缩放关系(electron gas scaling)
- Lieb-Oxford 下限(\(E_{xc} \geq -1.6784 \int \rho^{4/3} d^3r\))
- 密度梯度驱动的增强因子行为
PBE 是这些约束的"最简形式"——没有任何参数是从实验拟合的。
PBEsol 是 PBE 的变种(Perdew et al. 2008),微调一个无量纲参数让它更适合固体(密度变化比分子慢)——这个微调用的是"密度梯度展开二阶项的严格物理值",不是实验拟合。
meta-GGA / SCAN(2015):17 条约束的"终极非经验泛函"¶
Sun, Ruzsinszky, Perdew 证明:存在 17 条已知的精确约束,任何 \(E_{xc}\) 泛函都应满足。
LDA 满足其中 ~5 条;PBE 满足 ~11 条;SCAN 满足全部 17 条——这就是 "S" (Strongly Constrained) 的含义。"A.N." (Appropriately Normed) 指用少量参考系统(原子、二聚体)校准函数形状。
依据:更多精确约束 → 理论上更可靠。
Hybrid / HSE06(2003):物理动机 + 半经验¶
观察:LDA/GGA 系统性低估带隙,根源是自相互作用误差(SIE)。
HF 精确交换恰好没有 SIE。所以混入一部分 HF 交换理论上能修正 SIE。
HSE06 = 25% 精确 HF 交换(近程)+ 75% PBE 交换 + PBE 关联。
25% 的选择: - 来自 "adiabatic connection formula"(理论推导 25% 是合适起点) - 加上对一组实验带隙 / 化学键能的半经验验证
近程 vs 长程:HSE06 把 HF 交换截断在几 Å 外(避免金属里长程库仑发散 + 计算更快)。
RPA(第五阶):直接算相关能¶
Random Phase Approximation:用真实 KS 轨道直接计算非局域关联能。完全从第一原理,没有拟合。精度最高但计算量是 Hybrid 的 10 倍以上。
经验派的代表:B3LYP¶
Becke 三参数 + LYP 关联(1988 + 1994):
参数来源:三个参数 \((a, b, c)\) 通过拟合 56 种小分子的实验键能、几何、电子亲和力确定。
优点:对有机小分子(化学主战场)精度惊人——几乎是"化学的事实标准"。
缺点: - 拟合数据以外的体系(固体、过渡金属、强关联)表现可能差 - 物理依据弱——其他分子家族要重新拟合
B3LYP 在化学界流行,但物理/材料界更偏爱非经验派(PBE, SCAN)——因为后者可预测、可系统改进。
怎么"知道是对的"——三层验证¶
层 1:数学精确约束¶
可以理论证明泛函是否满足某个极限。比如证明 PBE 满足 Lieb-Oxford 下限。这不需要实验。
层 2:benchmark 对比¶
用大规模 benchmark 测试集验证:
| Benchmark | 测试什么 | 参考值来源 |
|---|---|---|
| GMTKN55 | 55 类化学反应能(1500+ 反应) | CCSD(T) 高精度参考 |
| MB15 | 15 种分子键长 | 实验 + 高精度 |
| TMS55 | 55 种过渡金属反应 | CCSD(T) + 实验 |
| SOL62 | 62 种固体(金属/半导体/绝缘体) | 实验晶格、体模量 |
| S66 | 66 种分子间相互作用(氢键、vdW) | CCSD(T) |
结果统计显示: - 晶格常数:PBEsol < SCAN < PBE < LDA(从好到差,偏差从 0.3% 到 2%) - 反应能:SCAN < PBE < LDA - 带隙:HSE06 >> PBE ≈ LDA(都严重低估) - vdW:SCAN 远好于 PBE;但全面不如 +D3 修正
"对"的定义是"泛函在这个 benchmark 集上的系统偏差小"——不同泛函对不同类型体系最优。
层 3:系统性偏差规律¶
知名的规律(不靠单次实验): - LDA 倾向于低估晶格常数 ~1–2%(过度束缚) - PBE 倾向于高估晶格常数 ~1%(欠束缚) - PBEsol 晶格偏差 < 0.5% - LDA/PBE 低估半导体带隙 30–50% - LDA 倾向于高估原子化能;PBE 偏差减半
这些规律让实验者在看到 DFT 结果时能预判偏差方向和量级——算出来的晶格常数比文献偏小 1%,知道用的是 LDA。
总结:"依据"和"对"是什么意思¶
| 维度 | 答案 |
|---|---|
| 构造依据 | 物理约束 + 已知精确极限(非经验);或实验拟合(经验) |
| 验证方式 | 数学证明(满足约束)+ benchmark 对比 + 系统偏差分析 |
| "对"的含义 | 在目标应用领域的 benchmark 上系统偏差小、可预测 |
| 实验的角色 | 经验派直接拟合;非经验派只作最终验证 |
ML 类比¶
这和 ML 里不同类型的模型设计哲学完全对应:
| DFT 泛函 | ML 对应 |
|---|---|
| LDA(均匀电子气基础) | 线性回归(简单基准模型,强归纳偏置) |
| PBE(精确约束派) | 满足物理约束的 equivariant NN(EGNN/SE(3)-Transformer) |
| B3LYP(经验拟合派) | 大规模 instruction tuning 调出的模型 |
| SCAN(17 约束,最严) | Geometric Deep Learning 严格等变架构 |
| Hybrid(理论+经验混合) | 预训练大模型 + 下游任务微调 |
验证: - ML:test set accuracy + OOD 泛化 + 归纳偏置满足度 - DFT:benchmark accuracy + 精确约束满足数 + 系统偏差规律
所以 DFT 的泛函设计不是"瞎猜 + 实验验证"——而是一个有理论框架、数学约束、大规模 benchmark 的系统性科学方法。
TritonDFT benchmark 中的具体影响¶
不同泛函对不同材料类别最优:
| 材料类型 | 推荐泛函 | 原因 |
|---|---|---|
| 金属(Al, Cu) | PBE / PBEsol | 固体优化 |
| 半导体几何(Si, GaAs) | PBE 或 PBEsol | 晶格准 |
| 半导体带隙 | HSE06 | 带隙准(如果算得起) |
| 氧化物铁电 | PBEsol | 对 O-2p / metal-d 混合更好 |
| 强关联氧化物(NiO, MnO) | PBE + DFT+U | SIE 太严重,Hybrid 也救不了 |
| 范德华体系 | PBE + D3 | 标准泛函无色散 |
TritonDFT 默认用 PBE——折衷选择,对大多数固体合理。agent 能识别特殊情况并升级泛函(如 NiO 建议 DFT+U)是 benchmark 考查的"元能力"。
Q2:赝势文件不应该决定赝势吗?为什么决定了 XC 泛函的选择¶
原文:"QE 里 XC 泛函主要由赝势文件决定"
这句话听起来有点别扭,澄清一下:赝势文件的确是决定"赝势"的——但由于赝势和 XC 泛函必须匹配(生成时就绑定了),选择了赝势文件就等于间接选择了 XC 泛函。
为什么赝势和 XC 泛函强绑定¶
看赝势的生成过程:
- 选一个参考原子(如 Si)+ 一个 XC 泛函(如 PBE)
- 用全电子 DFT(配同一 PBE 泛函)精确求解这个 Si 原子的全电子波函数
- 设计一个赝势,使得:
- 在截断半径 \(r_c\) 以外:赝势等于"真实核 + 内层电子的有效势"
- 赝波函数在 \(r_c\) 外:等于真实价电子波函数
- 在 \(r_c\) 内:赝势和赝波函数都被人工光滑化
- 把这个赝势存到
.upf文件,header 里标注functional="PBE"
所以 PBE 赝势 "内禀地" 绑定了 PBE 泛函——它的构造参考的就是 PBE 的真实电子结构。
如果赝势和泛函不匹配会怎样¶
比如 PBE 赝势 + LDA 泛函:
- 赝势外层(\(r > r_c\))是按"PBE 真实波函数"拟合的
- 整个 SCF 计算用 LDA 算动能、\(V_{xc}\)
- 结果:内层(赝势覆盖的)PBE 和外层(真实电子)LDA 的拼接不自洽
这种"张冠李戴"导致: - 能量误差可达 ~10–100 meV/atom - 晶格常数偏差额外 ~0.5–1% - 有些体系甚至 SCF 不收敛
QE 的做法¶
QE 把"赝势-泛函匹配"当成必须维护的一致性:
- 默认:QE 读取赝势文件 header 里的
<PP_HEADER functional="...">,自动用这个泛函作为计算的 XC - 用户指定
input_dft:可以强制覆盖,但 QE 会输出警告:
Warning: XC functional in pseudopotential file differs from input
pseudo functional = PBE
input_dft = PBESOL
- 强制不一致的后果:结果精度下降(具体影响见上)
TritonDFT 里的体现¶
TritonDFT 提供三套赝势库:
PseudoDojo/
├── SR_v0.4.1/
│ ├── LDA_standard/ ← LDA 泛函的赝势
│ ├── PBE_standard/ ← PBE 泛函的赝势
│ └── PBEsol_standard/ ← PBEsol 泛函的赝势
└── FR_v0.4/ ← 全相对论版本(含 SOC)
config.yaml:
pseudo:
LDA: /.../PseudoDojo/SR_v0.4.1/LDA_standard
PBE: /.../PseudoDojo/SR_v0.4.1/PBE_standard
PBEsol: /.../PseudoDojo/SR_v0.4.1/PBEsol_standard
Agent 的任务:
- 从 prompt ("Use PBE pseudopotentials") 识别要用 PBE
- 设置 pseudo_dir 指向 PBE_standard 目录
- 这样所有 .upf 文件都是 PBE 赝势,整个计算的 XC 自动也是 PBE
换泛函的正确方式:换赝势目录(不是只改 input_dft)。
"赝势文件决定赝势"还是"决定泛函"——都对¶
你的疑问本质是语义问题。让我明确:
| 职责 | 归属 |
|---|---|
| 决定赝势的技术参数(\(r_c\)、投影算符、非局域性) | ✅ 赝势文件 |
| 决定赝势关联的 XC 泛函 | ✅ 赝势文件(通过 header 的 functional 字段) |
| 决定整个 SCF 计算的 XC | ✅ 赝势文件(默认)或 input_dft(显式覆盖,但会不一致) |
赝势文件同时决定"赝势"和"与之绑定的 XC 泛函"——这是因为两者必须一致。
一个例外情况:Hybrid 泛函的特殊处理¶
Hybrid 泛函(HSE06 等)包含一部分 HF 精确交换,这部分不能靠赝势提供——必须显式打开:
&SYSTEM
input_dft = 'hse' ! 显式打开 Hybrid
exx_fraction = 0.25 ! HF 交换比例
screening_parameter = 0.2 ! HSE 的近程截断
ecutfock = 160 ! HF 交换的平面波截断(通常 = ecutrho)
/
这时赝势通常用 PBE 赝势(Hybrid 的 "base" 部分)+ 外挂 HF 交换。用户需要同时管两件事:
- pseudo_dir 指向 PBE 赝势
- input_dft = 'hse' 显式开启 Hybrid
这也是 Hybrid 算起来更复杂的原因之一。
总结¶
- "赝势文件决定赝势":对(赝势的技术细节 \(r_c\)、投影等都在文件里)
- "赝势文件决定泛函":也对(因为赝势和泛函强绑定)
- 两者不矛盾——赝势文件一次性决定了两件事
- 原文的表达方式是从 "LLM 如何选泛函" 的视角说的:换赝势目录 = 换泛函(因为赝势自带泛函信息)
本轮 2 个问题速览¶
| # | 主题 | 核心 |
|---|---|---|
| Q1 | 泛函设计依据是什么?怎么验证? | 两大流派:非经验派(物理约束 + 精确极限,如 LDA/PBE/SCAN)+ 经验派(实验拟合,如 B3LYP);验证三层:数学证明 + benchmark 对比 + 系统偏差规律;不是"瞎猜 + 实验" |
| Q2 | 赝势文件为什么决定泛函 | 赝势生成时参考某个 XC 泛函的全电子结构,两者强绑定;赝势文件 header 标注 functional;换泛函 = 换赝势目录;Hybrid 是例外(需要额外 input_dft='hse') |