跳转至

18. 平面波基组 + 截断能(化简 8)

化简 7(布洛赫 + BZ)把波函数结构化成 \(\phi_{n,\vec{k}}(\vec{r}) = e^{i\vec{k}\cdot\vec{r}} u_{n,\vec{k}}(\vec{r})\),但 \(u_{n,\vec{k}}(\vec{r})\) 仍是一个周期连续函数,仍是无穷维自由度。这一步把它展开到一组有限基函数上,让 Kohn-Sham 方程变成一个有限维的矩阵特征值问题——这是从"PDE"走到"线性代数"的关键一跃,也是 ML/CS 读者最熟悉的一步。


1. 化简位置

12 步化简链中的第 8 步:平面波基组 + 截断能(plane-wave basis + cutoff energy)。

  • 前一步:化简 7 布洛赫定理把波函数写成 \(\phi_{n,\vec{k}}(\vec{r}) = e^{i\vec{k}\cdot\vec{r}} u_{n,\vec{k}}(\vec{r})\)\(u\) 是在原胞里的周期函数
  • 本步:把周期部分 \(u_{n,\vec{k}}(\vec{r})\) 用傅里叶级数(即平面波)展开,再截断高频
  • 下一步:化简 9(k 点采样)——布洛赫 k 是连续的,要离散采样

2. 上一步的困难

化简 7 之后,需要在每个 \(\vec{k}\) 上求解

\[\hat{H}_{KS} \phi_{n,\vec{k}}(\vec{r}) = \varepsilon_{n,\vec{k}} \phi_{n,\vec{k}}(\vec{r})\]

这是一个连续的偏微分方程(PDE)。即使利用了布洛赫定理把问题限制在一个原胞里,\(u_{n,\vec{k}}(\vec{r})\) 仍然是一个无穷维的函数空间元素。

想让计算机算,必须把它投影到有限维子空间。这就是"基组(basis set)"做的事:选一组基函数 \(\{\chi_\alpha\}\),写 \(u \approx \sum_{\alpha=1}^{N_b} c_\alpha \chi_\alpha\),然后求 \(\{c_\alpha\}\)

选什么基?这就是化简 8 的核心问题。


3. 引入的假设 / 近似

核心假设\(u_{n,\vec{k}}(\vec{r})\) 可以用有限个平面波近似展开,高频成分可以丢掉。

具体地,因为 \(u_{n,\vec{k}}(\vec{r})\) 是原胞周期的,它的傅里叶级数只含倒格矢 \(\vec{G}\) 的分量:

\[u_{n,\vec{k}}(\vec{r}) = \sum_{\vec{G}} c_{n,\vec{k},\vec{G}} \, e^{i\vec{G}\cdot\vec{r}}\]

代回 Bloch 形式:

\[\phi_{n,\vec{k}}(\vec{r}) = \sum_{\vec{G}} c_{n,\vec{k},\vec{G}} \, e^{i(\vec{k}+\vec{G})\cdot\vec{r}}\]

截断(cutoff):只保留动能小于阈值的平面波:

\[\frac{\hbar^2}{2m_e} \left|\vec{k} + \vec{G}\right|^2 < E_{\text{cut}}\]

这个 \(E_{\text{cut}}\) 就是 QE 的 ecutwfc(cutoff for the wavefunction)。

代价:截断引入数值误差,需要做收敛性测试(convergence test)验证结果对 ecutwfc 不再敏感。


4. 引入的新概念

4.1 平面波(plane wave)

定义:\(\chi_{\vec{G}}(\vec{r}) = \frac{1}{\sqrt{\Omega}} e^{i(\vec{k}+\vec{G})\cdot\vec{r}}\),其中 \(\Omega\) 是原胞体积。

性质: - 正交归一(orthonormal)\(\int_\Omega \chi_{\vec{G}}^* \chi_{\vec{G}'} \, d\vec{r} = \delta_{\vec{G},\vec{G}'}\) - 非局域(non-local / delocalized):每个 \(\chi_{\vec{G}}\) 在整个空间非零(与高斯轨道相反) - 完备(complete)\(\{\chi_{\vec{G}}\}\) 对所有 \(\vec{G}\) 张满周期函数空间

4.2 截断能 ecutwfc

波函数截断能,单位 Ry(Rydberg,1 Ry ≈ 13.606 eV)。控制基组大小:

\[N_{\text{PW}} \approx \frac{\Omega}{6\pi^2} \left(\frac{2 m_e E_{\text{cut}}}{\hbar^2}\right)^{3/2}\]

——基组大小随 \(E_{\text{cut}}^{3/2}\) 增长。对典型原胞(几个原子),ecutwfc = 40 Ry 约产生 \(10^3\)\(10^4\) 个平面波。

4.3 密度截断能 ecutrho

电子密度 \(\rho(\vec{r}) = \sum_n |\phi_n(\vec{r})|^2\)波函数模平方,其傅里叶分量涉及 \(\vec{G} - \vec{G}'\)——可以出现最高到 \(2\vec{G}_{\max}\)。因此密度需要更大的截断:

\[E_{\text{cut}}^\rho \geq 4 E_{\text{cut}}^\psi\]

ecutrho >= 4 * ecutwfc。这是 norm-conserving 赝势的理论下界。

对 USPP(超软赝势)和 PAW 赝势,因为价态波函数"更柔"且增广项含高频补偿,实际需要 ecutrho / ecutwfc 比值达 8–12

4.4 KS 方程的矩阵形式

\(\phi_{n,\vec{k}} = \sum_{\vec{G}} c_{n,\vec{k},\vec{G}} \chi_{\vec{G}}\) 代入 \(\hat{H}_{KS} \phi = \varepsilon \phi\),两边左乘 \(\chi_{\vec{G}'}^*\) 积分,得到

\[\sum_{\vec{G}} H_{\vec{G}',\vec{G}}(\vec{k}) \, c_{n,\vec{k},\vec{G}} = \varepsilon_{n,\vec{k}} \, c_{n,\vec{k},\vec{G}'}\]

这是一个标准的矩阵特征值问题 \(\mathbf{H}(\vec{k}) \vec{c}_n = \varepsilon_n \vec{c}_n\),矩阵维度 = \(N_{\text{PW}}\)。因为平面波正交,没有重叠矩阵 \(\mathbf{S}\)(或者说 \(\mathbf{S} = \mathbf{I}\))。

对 USPP / PAW,投影增广项引入非平凡 \(\mathbf{S}\),变成广义特征值问题 \(\mathbf{H}\vec{c} = \varepsilon \mathbf{S} \vec{c}\)

4.5 FFT 网格

密度 \(\rho(\vec{r})\) 和势 \(V(\vec{r})\) 同时在实空间格点倒空间 \(\vec{G}\)表示;两者切换用 3D 快速傅里叶变换(FFT)。FFT 网格大小由 ecutrho 决定,通常 QE 会自动选到 \(2 \vec{G}_{\max}^\rho\) 对应的 \((N_1, N_2, N_3)\)

这就是为什么平面波 DFT 在 HPC 上跑得快:核心的两个操作——对角化 + FFT——都有成熟高效的库(ScaLAPACK、FFTW/cuFFT)。


5. 为什么选平面波(vs 其他基组)

基组 代表软件 优点 缺点
平面波(PW) QE, VASP, ABINIT 完备、系统可收敛、天然契合周期系统、FFT 高效 基组大(\(10^3\)\(10^5\))、描述局域态浪费、真空区也要填平面波
高斯型轨道 GTO(Gaussian-type orbitals) Gaussian, NWChem 基组小(几十到几百)、和原子轨道直觉对应 不完备、选基需经验、对周期体系支持较弱
数值原子轨道 NAO(Numerical Atomic Orbitals) FHI-aims, SIESTA 局域、线性标度、适合大体系 不完备、收敛性不系统
(L)APW WIEN2k, ELK 全电子、高精度(分"近核"和"间隙"区域分别处理) 计算开销大、实现复杂

为什么 QE / TritonDFT 用平面波

  1. 周期性契合:晶体是周期的,傅里叶级数是描述周期函数的自然基
  2. 系统性可收敛(systematic convergence):增大 ecutwfc 单调改善精度——这就是 ML 里 scaling law 那种"干净"的实验:一个超参调大就好
  3. FFT 让计算廉价:势能 \(V(\vec{r})\phi(\vec{r})\) 在实空间做乘法 \(O(N_r)\),动能 \(\frac{\hbar^2}{2m}|\vec{k}+\vec{G}|^2 \hat{\phi}(\vec{G})\) 在倒空间做乘法 \(O(N_G)\),两空间切换用 \(O(N \log N)\) 的 FFT——避免了 \(O(N^2)\) 的显式矩阵构造
  4. 无需"选基"的艺术:和分子化学家调 6-31G* vs aug-cc-pVTZ 那种"玄学"相比,PW 只有一个数字 ecutwfc

6. 对应 QE 字段

&SYSTEM 命名空间:

&SYSTEM
  ecutwfc = 40.0   ! 波函数截断能 (Ry)
  ecutrho = 320.0  ! 密度截断能 (Ry),此处为 8 * ecutwfc (PAW/USPP 典型)
/

其他相关: - nbnd:计算多少条能带(= 要对角化出多少个最小特征值)。金属和激发态计算时要大于价带占据数 - FFT 网格 nr1, nr2, nr3:可手动指定,通常交给 QE 自动决定

输出验证:SCF 开始前 QE 会打印类似

Number of Kohn-Sham states=           8
kinetic-energy cutoff     =      40.0000  Ry
charge density cutoff     =     320.0000  Ry
...
G cutoff =   359.1242  (    22751 G-vectors)     FFT dimensions: (  48,  48,  48)
——从 22751 G-vectors 可以反推基组大小。


7. 对应 benchmark 条目

7.1 输入设置

tritonDFT-src 中 agent 在 参数推断(info_query) 阶段会给每种材料选 ecutwfc / ecutrho。这是一个被优化空间——选小了不收敛,选大了浪费 CPU。

7.2 评分影响

evaluate/compare.py 的评分字段(a, b, c, alpha, beta, gamma 等)都间接依赖 ecutwfc

  • 截断能太低 → 能量面不准 → 弛豫到错位置 → 晶格常数偏离 ground truth
  • 截断能足够 → 结果对 ecutwfc 不再敏感(此时才算"收敛")

7.3 已知 bug:Ge 的 40 Ry

  • 现象:agent 给 Ge(半导体,\(Z=32\))选 ecutwfc = 40 Ry,对 PseudoDojo 的 Ge 赝势严重不够(应 \(\geq 60\) Ry)
  • 结果:计算数值不稳定,SCF 可能不收敛或收敛到错误能量面
  • 教训:LLM 参数推断需要知识,"默认 40 Ry 适用所有材料"的经验主义在重元素、过渡金属、某些主族(Ge、Sn、Sb)上会翻车
  • 属于化简 8 参数不当的典型例子

8. ML 类比

8.1 基组展开 = 傅里叶/DCT/小波压缩

  • 信号处理里把图像投影到 DCT 基,保留低频系数 → JPEG
  • DFT 把周期波函数投影到平面波基,保留 \(|\vec{k}+\vec{G}|^2 < E_{\text{cut}}\) 的系数
  • 完全同构:两者都是"选完备基 + 截断高频"

8.2 ecutwfc = 模型容量超参

  • 增大 ecutwfc → 基组更大 → 表示能力更强 → 更贴近真实解
  • 类似增大 hidden dim 或层数:单调提升,直到饱和
  • 和 NN 不同的是:DFT 里有明确的"真理"(精确 KS 方程)作为渐近极限,所以"够大 ecutwfc"是一个可以通过收敛曲线客观判定的事

8.3 系统性收敛 vs "选基艺术"

  • 高斯基组像手调 kernel:需要经验选 6-311G(d,p) 这类符号
  • 平面波像 scaling law:只有一个数字 ecutwfc,曲线光滑递减
  • ML 读者最熟悉的那种"把超参调大看曲线"直觉在这里完全适用

8.4 波函数 vs 密度截断的不对称

  • 想类比的话:\(\rho = |\phi|^2\) 在傅里叶域是卷积,分量从 \([0, G_{\max}]\) 扩到 \([0, 2G_{\max}]\)
  • 类似信号处理里,平方输入会使带宽翻倍——所以必须提高密度的 Nyquist(即 ecutrho
  • 这是一个"naive 默认会翻车"的坑,和 ML 里 BatchNorm 在小 batch 不稳那类"实现细节"有一比

8.5 FFT = 卷积的快速核

CNN 的卷积在大 kernel 下用 FFT 加速;DFT 里势函数乘波函数(实空间乘法)和动能作用(倒空间乘法)之间来回跳,同一个 FFT trick


9. 典型取值与常见坑

9.1 典型 ecutwfc(norm-conserving 或 PBE PseudoDojo 标准)

材料类型 ecutwfc 说明
主族元素、有机分子 (H, C, N, O) 40–50 Ry 标准起点
过渡金属 (Cu, Fe, Ni) 60–80 Ry d 电子局域性强
半导体含重元素 (Ge, Sn, GaAs) 60–80 Ry Ge 在 40 Ry 下明显不够
氧化物 (O 的 2p 电子) 60–80 Ry O 比较"硬"
极高精度(声子、弹性常数) 80–120 Ry 需要非常平滑的能量面

9.2 典型 ecutrho

  • Norm-conserving: ecutrho = 4 * ecutwfc(理论下界)
  • USPP: ecutrho = 8 * ecutwfc
  • PAW: ecutrho = 8–12 * ecutwfc

:QE 默认 ecutrho = 4 * ecutwfc 对 USPP/PAW 不够。必须显式设置。PseudoDojo 的 .upf 文件头部通常会给推荐值,可以脚本提取。

9.3 收敛性测试(convergence test)——最规范的做法

对某个代表材料(如 Si),扫描

ecutwfc ∈ {30, 40, 50, 60, 80} Ry

total_energy per atom vs ecutwfc,找到相邻两点能量差 < 1 meV/atom 的起点。更严格的可以用 0.1 meV/atom。

对弛豫、晶格常数、力,可能需要比总能量更严格的截断(能量是变分的,高阶收敛;力是一阶导数,收敛慢一截)。

9.4 常见坑列表

  1. ecutrho 默认不够:UPF 未显式设 → 用 ecutrho = 4*ecutwfc → USPP/PAW 下密度表示不准 → 力和应力异常
  2. Ge 和其他重主族:40 Ry 是"分子 DFT"习惯值,晶体 Ge 需 60+
  3. 金属对 ecutwfc 更敏感:费米面附近态密度高,任何基组不足都会在费米能级处放大
  4. FFT 网格不是 2 的幂:QE 会自动选,但部分集群的 FFT 实现在非 2 幂维度下更慢——可以手动设 nr1=48 等强制
  5. 单原胞复制成超胞后ecutwfc 不变(它是能量标度,不是基组大小),但基组数目 \(N_{\text{PW}}\) 随原胞体积线性增长

下一步阅读

  • 19-kpoints.md — 化简 9:k 点采样。把 BZ 积分离散化,和本篇的平面波截断一起决定一次 SCF 的计算量
  • 20-symmetry.md — 化简 10:空间群对称性,压缩 k 点
  • 21-scf-iteration.md — 化简 11:SCF 自洽迭代,解决 \(V_{\text{eff}} \leftrightarrow \rho\) 的循环依赖