跳转至

19. k 点采样(化简 9)

化简 8 把波函数展开到有限平面波基,每个 \(\vec{k}\) 变成一个有限维矩阵特征值问题。但一个完整 DFT 计算要对整个布里渊区(BZ)做积分——物理量(总能量、密度、力)都是 BZ 上 \(\vec{k}\) 的积分。\(\vec{k}\) 本身仍是连续变量,必须离散化。这一步就是"用有限个 k 点近似连续积分"——和 ML 里蒙特卡洛采样 / quadrature 完全同构。


1. 化简位置

12 步化简链中的第 9 步:k 点采样(k-point sampling)。

  • 前一步:化简 8 把每个 \(\vec{k}\) 上的 KS 方程变成有限维矩阵特征值问题
  • 本步:对整个 BZ 的 \(\vec{k}\) 积分离散为有限点求和
  • 下一步:化简 10(对称性)——用空间群压缩 k 点网格到不可约 BZ

2. 上一步的困难

化简 7 后,任何"整体"物理量都是对 BZ 积分

\[\rho(\vec{r}) = \frac{2}{V_{\text{BZ}}} \sum_n \int_{\text{BZ}} f_{n,\vec{k}} \, |\phi_{n,\vec{k}}(\vec{r})|^2 \, d\vec{k}\]
\[E_{\text{band}} = \frac{2}{V_{\text{BZ}}} \sum_n \int_{\text{BZ}} f_{n,\vec{k}} \, \varepsilon_{n,\vec{k}} \, d\vec{k}\]

(因子 2 来自自旋求和;\(f_{n,\vec{k}}\) 是占据数:绝缘体 0 或 1,金属在费米面附近是分数)

连续积分不可计算。必须采样:选一组 k 点 \(\{\vec{k}_i\}\) 和权重 \(\{w_i\}\),用

\[\int_{\text{BZ}} f(\vec{k}) \, d\vec{k} \approx \sum_i w_i f(\vec{k}_i)\]

近似。问题是:怎么选 k 点?多少 k 点够?


3. 引入的假设 / 近似

3.1 主要方案:Monkhorst-Pack 网格

假设:BZ 上用均匀网格采样就够。定义 \(N_1 \times N_2 \times N_3\) 个点:

\[\vec{k}_{ijk} = \frac{n_1 + s_1}{N_1} \vec{b}_1 + \frac{n_2 + s_2}{N_2} \vec{b}_2 + \frac{n_3 + s_3}{N_3} \vec{b}_3\]

其中 \(\vec{b}_i\) 是倒格子基矢,\(n_i \in \{0, 1, ..., N_i - 1\}\)\((s_1, s_2, s_3)\) 是偏移向量。

代价: - 采样不足 → 能量、力、应力收敛不充分,结果随 k 密度变化 - 金属尤其敏感(费米面不连续需要密集采样才能积分准) - 需要做 k 点收敛性测试

3.2 副方案:shifted grid vs gamma-centered

  • offset = (0, 0, 0)gamma-centered:网格含 \(\Gamma\) 点(\(\vec{k}=0\)
  • offset = (1, 1, 1)half-shifted:网格偏移半个格距,不含 \(\Gamma\)
  • 六方(hexagonal)晶格有时 shifted 会破坏对称性,一般推荐 gamma-centered

3.3 金属的 smearing 近似

金属的费米面在 BZ 里是一个曲面;\(f_{n,\vec{k}}\) 从 1 跳到 0 是硬阈值,做数值积分时任何采样网格都会抖动。解决方案:"软化"费米分布,给部分占据:

\[f_{n,\vec{k}} = f\left(\frac{\varepsilon_{n,\vec{k}} - E_F}{\sigma}\right)\]

\(\sigma\)degauss)是 smearing 宽度。常见形式: - Fermi-Dirac:真实的有限温度分布 - Gaussian:数学简单 - Methfessel-Paxton (MP):高阶修正,对金属金标准 - cold / Marzari-Vanderbilt:适合金属弛豫


4. 引入的新概念

4.1 k 点、k-mesh、k-grid

  • k 点:BZ 里一个离散采样点
  • k-mesh / k-grid:多个 k 点组成的采样集合
  • 权重(weight):每个 k 点对 BZ 积分的贡献权重(对称压缩后不相等)

4.2 Monkhorst-Pack

1976 年 Monkhorst & Pack 证明:对均匀 \(N_1 \times N_2 \times N_3\) 网格,任何平滑周期函数的 BZ 积分误差随 \(N^{-2}\)(或更快)收敛。这是 k 点采样的理论基础。

4.3 gamma-centered vs shifted

  • gamma-centered:含 \(\Gamma\),对小原胞和高对称方向友好,对六方晶格必选
  • shifted:不含高对称点,有时能减少网格数(用对称压缩),但六方晶格需谨慎

4.4 倒易关系:原胞大小 ↔ BZ 大小 ↔ k 密度

核心直觉:原胞越大 → BZ 越小 → 需要的 k 点数越少。

  • 1 个原子的原胞(如 bcc Fe):BZ 大,需要 \(16^3 = 4096\) k 点
  • 超胞 \(2 \times 2 \times 2\)(8 倍大):BZ 是 1/8,\(8^3 = 512\) 就够
  • 分子放在 20 Å 立方盒子里:BZ 几乎是个点,\(\Gamma\) 点就行
  • 1 cm³ 宏观晶体:BZ 是一个几何点——\(\Gamma\) 点就够

这也是"分子计算"直接用 \(\Gamma\) 的原因。

4.5 smearing 相关

  • occupations='smearing':启用 smearing
  • smearing='mv' / 'gauss' / 'fd' / 'mp':选择方法
  • degauss:smearing 宽度 \(\sigma\),单位 Ry
  • 太小:SCF 不稳定
  • 太大:改变物理(等价于加温度)
  • 典型 0.005–0.02 Ry

4.6 tetrahedron 方法

另一种 BZ 积分:把 BZ 剖分成四面体,在每个四面体内用线性插值。适合高精度态密度(DOS) 和带隙计算。QE 用 occupations='tetrahedra''tetrahedra_opt'

4.7 非结构化采样

某些场景不用网格: - K_POINTS crystal:手动列出若干 k 点 + 权重 - K_POINTS crystal_b:指定 BZ 中的路径(用于能带结构计算) - K_POINTS gamma:单 \(\Gamma\) 点(专用优化路径,比 automatic 1 1 1 0 0 0 更快)


5. 对应 QE 字段

5.1 K_POINTS 卡片

K_POINTS automatic
  8 8 8 0 0 0    ! 8x8x8 gamma-centered Monkhorst-Pack

K_POINTS automatic
  8 8 8 1 1 1    ! 8x8x8 half-shifted

能带计算(非自洽):

K_POINTS crystal_b
  4
  0.0 0.0 0.0   20   ! Gamma, 20 points to next
  0.5 0.0 0.0   20   ! X
  0.5 0.5 0.0   20   ! M
  0.0 0.0 0.0    1   ! back to Gamma

5.2 金属相关 &SYSTEM 字段

&SYSTEM
  occupations = 'smearing'
  smearing    = 'mv'       ! Methfessel-Paxton order 1
  degauss     = 0.02       ! Ry
/

5.3 输出验证

SCF 开始前 QE 打印:

number of k points=    29
——这是对称性压缩后的不可约 k 点数。若未对称压缩,对 \(8 \times 8 \times 8\) 应为 512。


6. 对应 benchmark 条目

6.1 agent 参数推断

tritonDFT-src 中 agent 的 info_query 阶段为每种材料选 k 点网格。常见现象:

  • 统一默认 8 8 8 0 0 0:对半导体、典型原胞大概够;对金属不够(应 12 以上);对大超胞浪费
  • 未启用 smearing:对金属材料直接用绝缘体默认 → SCF 不收敛
  • 能带计算路径错误:不同晶系的 BZ 高对称点不同,路径要随 ibrav

6.2 评分影响

  • 弛豫晶格常数 a, b, c:k 点不收敛 → 能量面不准 → 弛豫坐标偏差
  • 能量:k 点决定 \(E_{\text{band}}\) 积分精度
  • 带隙:对 nscf 的 k 密度敏感(虽然 DFTBench 当前未评分带隙)

6.3 材料类别 × k 点策略

材料类别 典型 k 网格 备注
分子/团簇(大真空盒) 1 1 1 \(\Gamma\) 点就够
绝缘体(NaCl, SiO₂) 4 4 46 6 6 对称性好时更稀疏
半导体(Si, GaAs) 6 6 68 8 8 标准值
金属(Cu, Fe, Al) 12 12 1216 16 16 + smearing 费米面敏感
磁性金属(Fe, Ni) 16 16 16 + smearing + nspin=2 最难收敛
超胞 \(2\times2\times2\) 原 k 网格除以 2 倒易压缩

7. ML 类比

7.1 k 点采样 = 数值积分的 quadrature

  • 想算 \(\int f(x) dx\),不可能连续积分 → 采样 + 加权 = Simpson / Gauss-Legendre / Monte Carlo
  • k 点采样就是 3D BZ 上的 quadrature;Monkhorst-Pack 是"均匀网格的梯形规则"
  • 收敛阶:\(O(N^{-2})\) 对平滑函数;金属费米面附近不平滑 → 收敛慢得多 → 所以金属要更多 k 点

7.2 smearing = 硬阈值的温度软化

  • 金属的"在费米面上硬截断"对应 ML 里"Heaviside 阈值"
  • Fermi-Dirac smearing 就是给这个阈值加温度,数学上是 sigmoid-like 函数
  • softmax 的温度一个味道:温度 → 0 回到 argmax(硬),温度 > 0 平滑可导
  • 也像 label smoothing:把 0/1 标签软化成 \((1-\epsilon)/K\),让梯度更稳定

7.3 对称性压缩 k 点 = 共享计算

  • 对称性让许多 k 点物理等价(点群作用后映射到同一 Bloch 态)
  • 只在不可约 BZ 算,其他用对称恢复——相当于 CNN 用平移不变减参数、计算共享
  • 详见 20-symmetry.md

7.4 倒易关系 = 频域 Nyquist

  • 实空间周期越大 → 倒空间越密 → 采样网格越稀疏就够
  • 和数字信号处理的 Nyquist 定理:信号带宽越窄,采样率可以越低——同构

7.5 k 点收敛测试 = ablation 扫超参

就是 ML 里的超参扫描:固定其他参数(ecutwfc 已收敛),变 k 密度,画曲线看何处平台。收敛曲线形状像 loss vs training_steps——后期单调递减到渐近。


8. 典型取值与常见坑

8.1 典型 k 点网格

情境 k-mesh
分子 / 大超胞(> 15 Å) 1 1 1 0 0 0 (或 K_POINTS gamma)
标准小原胞半导体 6 6 6 0 0 08 8 8 0 0 0
金属小原胞 12 12 12 0 0 016 16 16
磁性金属 16 16 16 + smearing + spin
六方晶系(graphene 等) gamma-centered 必选,8 8 1
二维材料(真空方向) 真空方向 k = 1,面内 \(N \times N\)
能带计算 路径上 20–40 点 per segment

8.2 典型 smearing 参数

金属:smearing='mv'degauss=0.010.02 Ry,occupations='smearing'

8.3 常见坑

  1. k 点不收敛:能量随 k 密度抖动 > 几 meV/atom,说明要加 k
  2. 金属漏 smearing:用 occupations='fixed' → SCF 在费米面附近反复抖 → 不收敛或锁死到错能量
  3. degauss 太大:例如 0.05 Ry 对纯金属相当于 ~800 K 温度 → 改变电子结构、低估带隙、改变磁矩
  4. 六方用 shifted\(8 \times 8 \times 8\) offset 1 1 1 在六方 BZ 可能错过对称等价点,对称性压缩失败
  5. 超胞忘了减 k\(2 \times 2 \times 2\) 超胞仍用 \(8 \times 8 \times 8\) → 等效 \(16 \times 16 \times 16\),浪费 8 倍算力
  6. 二维材料真空方向给了 k:z 方向真空 20 Å,给 8 8 8 是在"真空里采样",只要 8 8 1
  7. 能带路径错:不同 ibrav 的高对称点名字、坐标不同,路径要按晶格类型查(通常用 seekpathaflow 生成)
  8. 忘记 nbnd:金属 smearing 需要多几条空带(nbnd > n_occupied),否则费米面附近占据不能展开

8.4 benchmark 中的 k 点问题

  • agent 常对所有材料套用 8 8 8 → 对金属不够、对大超胞浪费
  • 判断准则:若材料是金属类(category: 'Metal''Magnetic'),自动加 k + smearing
  • 未来优化方向:让 agent 根据 category 和原胞大小自适应选 k 网格

下一步阅读

  • 20-symmetry.md — 化简 10:空间群对称性。利用对称性把本篇的 k 点网格压缩到不可约 BZ
  • 21-scf-iteration.md — 化简 11:SCF 自洽迭代。每个 k 点上的本征值问题要和 \(\rho\) 自洽
  • 22-bfgs-relax.md — 化简 12:外层 BFGS 结构优化