跳转至

15-xc-functional 问答笔记

源文件:15-xc-functional.md


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 条已知的精确约束

  1. 均匀电子气极限(→ LDA)
  2. 慢变密度的梯度展开恢复二阶项
  3. 电子气的线性响应函数
  4. 缩放关系(electron gas scaling)
  5. Lieb-Oxford 下限(\(E_{xc} \geq -1.6784 \int \rho^{4/3} d^3r\)
  6. 密度梯度驱动的增强因子行为

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):

\[E_{xc}^{B3LYP} = (1-a) E_x^{LDA} + a E_x^{HF} + b \Delta E_x^{B88} + c E_c^{LYP} + (1-c) E_c^{VWN}\]

参数来源:三个参数 \((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 泛函强绑定

看赝势的生成过程:

  1. 选一个参考原子(如 Si)+ 一个 XC 泛函(如 PBE)
  2. 全电子 DFT(配同一 PBE 泛函)精确求解这个 Si 原子的全电子波函数
  3. 设计一个赝势,使得:
  4. 在截断半径 \(r_c\) 以外:赝势等于"真实核 + 内层电子的有效势"
  5. 赝波函数在 \(r_c\):等于真实价电子波函数
  6. \(r_c\):赝势和赝波函数都被人工光滑化
  7. 把这个赝势存到 .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 把"赝势-泛函匹配"当成必须维护的一致性:

  1. 默认:QE 读取赝势文件 header 里的 <PP_HEADER functional="...">自动用这个泛函作为计算的 XC
  2. 用户指定 input_dft:可以强制覆盖,但 QE 会输出警告:
Warning: XC functional in pseudopotential file differs from input
pseudo functional = PBE
input_dft       = PBESOL
  1. 强制不一致的后果:结果精度下降(具体影响见上)

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'