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 积分:
(因子 2 来自自旋求和;\(f_{n,\vec{k}}\) 是占据数:绝缘体 0 或 1,金属在费米面附近是分数)
连续积分不可计算。必须采样:选一组 k 点 \(\{\vec{k}_i\}\) 和权重 \(\{w_i\}\),用
近似。问题是:怎么选 k 点?多少 k 点够?
3. 引入的假设 / 近似¶
3.1 主要方案:Monkhorst-Pack 网格¶
假设:BZ 上用均匀网格采样就够。定义 \(N_1 \times N_2 \times N_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 是硬阈值,做数值积分时任何采样网格都会抖动。解决方案:"软化"费米分布,给部分占据:
\(\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':启用 smearingsmearing='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 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 字段¶
5.3 输出验证¶
SCF 开始前 QE 打印:
——这是对称性压缩后的不可约 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 4 到 6 6 6 |
对称性好时更稀疏 |
| 半导体(Si, GaAs) | 6 6 6 到 8 8 8 |
标准值 |
| 金属(Cu, Fe, Al) | 12 12 12 到 16 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 0 或 8 8 8 0 0 0 |
| 金属小原胞 | 12 12 12 0 0 0 到 16 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.01–0.02 Ry,occupations='smearing'
8.3 常见坑¶
- k 点不收敛:能量随 k 密度抖动 > 几 meV/atom,说明要加 k
- 金属漏 smearing:用
occupations='fixed'→ SCF 在费米面附近反复抖 → 不收敛或锁死到错能量 degauss太大:例如 0.05 Ry 对纯金属相当于 ~800 K 温度 → 改变电子结构、低估带隙、改变磁矩- 六方用 shifted:\(8 \times 8 \times 8\) offset
1 1 1在六方 BZ 可能错过对称等价点,对称性压缩失败 - 超胞忘了减 k:\(2 \times 2 \times 2\) 超胞仍用 \(8 \times 8 \times 8\) → 等效 \(16 \times 16 \times 16\),浪费 8 倍算力
- 二维材料真空方向给了 k:z 方向真空 20 Å,给
8 8 8是在"真空里采样",只要8 8 1 - 能带路径错:不同
ibrav的高对称点名字、坐标不同,路径要按晶格类型查(通常用seekpath或aflow生成) - 忘记
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 点网格压缩到不可约 BZ21-scf-iteration.md— 化简 11:SCF 自洽迭代。每个 k 点上的本征值问题要和 \(\rho\) 自洽22-bfgs-relax.md— 化简 12:外层 BFGS 结构优化