19-kpoints 问答笔记¶
源文件:19-kpoints.md
Q1:按傅里叶级数,周期信号的谱只在 \(n\omega_0\) 上非零,那晶体周期性下为什么还要连续采样 \(\vec{k}\)?为什么不直接选 \(n\omega_0\)?¶
原文:"问题是:怎么选 k 点?多少 k 点够?"
这是个深刻的追问——你的傅里叶直觉对,但混淆了两类不同的对象。关键:周期信号的"离散谱"定理适用于"单个周期函数",不适用于"一族带标签的准周期函数"。晶体里两者都出现了。
先澄清两种对象¶
晶体里有两类物理量:
对象 A:严格周期的单个函数
典型:势场 \(V_{ext}(\vec{r})\)、电子密度 \(\rho(\vec{r})\)、某个 \(|\phi_{n,\vec{k}}(\vec{r})|^2\)
满足 \(f(\vec{r}+\vec{R}) = f(\vec{r})\)。
对这种对象,傅里叶谱确实只在离散倒格点 \(\vec{G}\) 非零:
这就是你的傅里叶直觉——完全正确。
对象 B:一族带 \(\vec{k}\) 标签的准周期波函数
典型:KS 轨道 \(\phi_{n,\vec{k}}(\vec{r})\)
每个 \(\vec{k}\) 对应一个独立的波函数。它不是严格周期的,而是准周期的:
(挪一个原胞差一个相位 \(e^{i\vec{k}\cdot\vec{R}}\),不是完全相等)
对每个固定的 \(\vec{k}\),傅里叶展开在 \(\vec{k}+\vec{G}\) 离散:
但是 \(\vec{k}\) 本身可以在 BZ 里连续取值——因为它是波函数的标签(身份证),不是"信号的频率"。
核心区别:\(\vec{k}\) 不是"单个周期信号的频率"¶
傅里叶级数定理说的是:"一个固定的周期信号,其谱在倍频离散"。
晶体电子的完整描述不是一个信号,而是一族无穷多的信号(每个 \(\vec{k}\) 一个)。
让你的直觉正确的范围: - 对单个 \(\vec{k}\) 固定的波函数 \(\phi_{n,\vec{k}}\) → 谱在 \(\vec{k}+\vec{G}\) 离散 ✅ - 对单个实空间周期量 \(\rho(\vec{r})\) → 谱在 \(\vec{G}\) 离散 ✅
你的直觉不适用: - \(\vec{k}\) 本身不是某个信号的频率——它是区分不同波函数的标签 ❌
两种频率再次对照¶
| 离散在哪 | 为什么 | |
|---|---|---|
| \(\vec{G}\)(倒格点) | 离散(格点上) | "单个周期函数"的傅里叶展开 |
| \(\vec{k}\)(BZ 内) | 连续(采样才变离散) | 波函数族的标签,每个 \(\vec{k}\) 独立态 |
为什么需要采样 BZ 内的 \(\vec{k}\)¶
不是为了"找非零频率"——而是对所有独立态求和。
计算 \(\rho(\vec{r})\) 的公式:
这里每一项 \(|\phi_{n,\vec{k}}(\vec{r})|^2\) 是一个实空间周期函数(对象 A,谱在 \(\vec{G}\)),但是不同 \(\vec{k}\) 的 \(|\phi|^2\) 是不同的周期函数——它们不能合并成一个单一周期信号。
所以要对所有 \(\vec{k}\) 积分,把所有独立"子信号"的贡献加起来。
类比:合唱团¶
想象一个合唱团有无穷多位歌手,每位唱一个不同"音"(准周期波): - 每位歌手的声音:一个周期波,谱离散在自己基频的倍频(\(\vec{G}\) 对应倍频) - 不同歌手用 \(\vec{k}\) 编号:第 \(\vec{k}\) 位歌手有自己的基频和泛音 - 整个合唱团的总声波:所有歌手声音的叠加
要算总声波强度 \(\rho(\vec{r})\)(类比),不能只算一位歌手——必须对所有歌手求和。这个"所有歌手"就是 BZ 内所有 \(\vec{k}\)。
你的直觉"周期信号谱离散"只对单个歌手的音成立。但晶体里的"真实物理量"(总电子密度、总能量)是所有歌手贡献的叠加,所以需要 BZ 上的积分。
为什么 \(\vec{k}\) 不能像 \(n\omega_0\) 那样离散取值¶
考虑有限晶体(\(N_1 \times N_2 \times N_3\) 个原胞,\(N_i \to \infty\) 是热力学极限):
- \(\vec{k}\) 的允许值(Born-von Kármán 边界条件):
- 总共 \(N_1 N_2 N_3\) 个 \(\vec{k}\) 点——不是倍频!
- 而且数量 ~晶体体积
- 当 \(N_i \to \infty\)(宏观晶体),\(\vec{k}\) 就变成连续变量
所以 \(\vec{k}\) 的"离散"不是"倍频离散",而是"密度正比于晶体体积的准连续"。热力学极限下就是连续的。
这和傅里叶级数里"时间周期 \(T\) → 频率倍频 \(n\omega_0\)"的离散本质不同: - 傅里叶倍频:一个周期决定一组离散频率 - 晶体 \(\vec{k}\):总晶体大小决定 k 点密度——宏观晶体下是连续的
数学对比¶
| 傅里叶级数 | 晶体 \(\vec{k}\) 采样 | |
|---|---|---|
| 周期尺度 | 单个周期 \(T\) | 原胞 \(\vec{a}\) + 晶体尺寸 \(N\vec{a}\) |
| 离散的频率间距 | \(\omega_0 = 2\pi/T\)(大) | \(\Delta k = 2\pi/(N\vec{a})\)(小,\(N\to\infty\) 变连续) |
| 频率范围 | 0 到 ∞(原则上) | 限制在 BZ 内(大小 \(\sim 2\pi/\vec{a}\)) |
| 离散点数 | 无穷 | \(N^3\)(随晶体体积增长) |
关键:傅里叶倍频的间距大(\(\omega_0 = 2\pi/T\)),因为周期 \(T\) 有限。晶体 \(\vec{k}\) 的间距小(\(\Delta k = 2\pi/N\vec{a}\)),因为晶体尺寸 \(N\vec{a}\) 很大,所以趋于连续。
完整回答你的问题¶
"为什么不直接选取 \(n\omega_0\) 呢?"
因为 \(\vec{k}\) 不是"一个周期信号的频率"——没有单一的 \(\omega_0\) 让 \(\vec{k}\) 取倍数。\(\vec{k}\) 是区分不同独立电子态的标签,在 BZ 内本质连续(对无限晶体)。
"选 k 点"是积分的数值近似(类似对连续函数做数值积分的采样),不是"找非零谱"。离散 Monkhorst-Pack 采样的间距可以任意小(取足够密的网格),这是为了收敛积分值,不是因为物理上只有离散非零点。
与 \(\vec{G}\) 的对比¶
你的直觉在 \(\vec{G}\) 上成立:
- 平面波基组展开 \(\phi_{n,\vec{k}}(\vec{r}) = \sum_{\vec{G}} c_{n,\vec{k}}(\vec{G}) e^{i(\vec{k}+\vec{G})\cdot\vec{r}}\)
- 这里 \(\vec{G}\) 确实是倒格点(离散),因为波函数相对原胞准周期
- ecutwfc 截断高频 \(\vec{G}\)
- 这是化简 8 平面波基组的内容
所以: - 化简 8 的 \(\vec{G}\) 截断 = 你傅里叶直觉的正确落脚点(周期函数的倍频离散) - 化简 9 的 \(\vec{k}\) 采样 ≠ 傅里叶倍频(是数值积分的采样)
简洁总结¶
| 你的直觉 | 对的吗 | 原因 |
|---|---|---|
| 周期信号的谱离散在倍频 | ✅ | 傅里叶级数定理 |
| 推广到晶体 → 用倒格点 \(\vec{G}\) 表示实空间周期量 | ✅ | 对象 A:单个周期函数 |
| 推广到 \(\vec{k}\) → \(\vec{k}\) 也应该离散在倍频 | ❌ | \(\vec{k}\) 不是"单个信号的频率",是"一族本征态的标签" |
| \(\vec{k}\) 采样是为了找非零谱 | ❌ | 是数值积分的采样,本质连续 |
核心:周期性让你"省一个原胞之内"(\(\vec{G}\) 离散)——但不会让你省"BZ 内的 \(\vec{k}\)"(\(\vec{k}\) 是本征态的标签,每个 \(\vec{k}\) 是一个独立物理态)。
Q2:为什么会有这么多不同的波函数?原胞都一样,为什么电子波函数不一样?¶
原文:"每个 \(\vec{k}\) 对应一个独立的波函数"
这是晶体物理最核心的概念分水岭——你混淆了"环境的周期性"和"电子态的多样性"。这两件事完全独立。
立即澄清两个混淆¶
你的隐含假设 1:"原胞重复 → 电子只有一种波函数"
❌ 错。
类比氢原子:氢原子只有一个势场(核库仑),但电子可以处于: - \(1s\):球对称基态 - \(2s, 2p_x, 2p_y, 2p_z\):第二壳层 - \(3s, 3p, 3d_{xy}, 3d_{yz}, ...\):第三壳层 - ……无穷多个不同轨道
虽然势场只有一个,电子的可能状态有无穷多种——每种有不同的能量、形状、对称性。
晶体推广这个直觉: - 一个晶体的势场固定(周期) - 电子的可能状态有更多——因为多了 \(\vec{k}\) 这个连续标签 - 每个态用 \((n, \vec{k})\) 编号 - \(n\) = 能带指标(类比原子的 \(1s/2s/2p\)) - \(\vec{k}\) = BZ 内的连续标签(晶体特有)
总态数 = \(N_{bands} \times N_{\vec{k}}\)(无穷多)
你的隐含假设 2:"不同原胞里电子的波函数不同"
❌ 不准确。
对一个固定的态 \(\phi_{n,\vec{k}}\): - 在不同原胞里模平方完全一样:\(|\phi(\vec{r}+\vec{R})|^2 = |\phi(\vec{r})|^2\) - 这就是周期性的体现! - 但相位不同:\(\phi(\vec{r}+\vec{R}) = e^{i\vec{k}\cdot\vec{R}} \phi(\vec{r})\)
所以"不同波函数"不是按"哪个原胞"区分的——而是按"它属于哪个量子态 \((n, \vec{k})\)"区分。
用城市国家类比¶
想象一个国家有 1 亿个完全相同的城市(每座城市的建筑、街道布局都一样):
| 类比 | 含义 |
|---|---|
| 每座城市内容相同 | 原胞内容相同(周期性) |
| 国家里有 10 亿个市民 | 晶体里有大量电子态 |
| 市民有不同年龄/性别/职业 | 电子态有不同 \((n, \vec{k})\) 标签 |
| 市民"分布在所有城市"(流动) | Bloch 态布满整个晶体(不归属某个原胞) |
关键:市民不是"住在不同城市才不同"——他们本来就是不同的人。电子态的多样性来自量子态空间,不是来自空间位置。
正弦波类比(最直接)¶
考虑一个无限长的纯正弦波 \(\sin(kx)\):
- 每个周期"内容相同"——周期函数
- 但每个周期的相位不一样
- \(\sin(kx + 2\pi) = \sin(kx)\) 模平方相同 ✓
- 但 \(\sin(kx)\) 在每个周期取的具体值不同(因为 \(x\) 不同)
现在问: 1. 同一个 \(\sin(kx)\) 在不同周期是不是同一个东西? - 形状一样,模平方一样 - 但具体函数值(含相位)不同 2. 不同 \(k\) 的 \(\sin\) 是不是同一个东西? - \(\sin(k_1 x)\) 和 \(\sin(k_2 x)\) 是完全不同的函数(不同周期、不同节点)
晶体 Bloch 态完全类比: - 同一个 \(\phi_{n,\vec{k}}\) 在不同原胞 → 形状一样,相位不同 - 不同 \((n, \vec{k})\) 的 \(\phi\) → 完全不同的函数
关键概念:每个 Bloch 态"布满整个晶体"¶
一个 Bloch 态 \(\phi_{n,\vec{k}}(\vec{r})\) 不住在某个原胞——它遍及整个晶体!
- \(\phi_{n,\vec{k}}(\vec{r})\) 在每个原胞都有非零幅度(除了节点)
- 它的"相位"在不同原胞按 \(e^{i\vec{k}\cdot\vec{R}}\) 变化
- 它的"形态"(\(|\phi|^2\))在每个原胞一样
形象比喻:一个 Bloch 态就像一片"无限延伸的电子云",在每个原胞里看上去都一样(同样的形状),但携带跨原胞的相位信息。
不同 \((n, \vec{k})\) 的 Bloch 态都是这种"无限延伸的电子云",每个云都布满整个晶体——只是形状和相位变化方式不同。
物理类比:管风琴的多个音¶
想象一根无限长的弦或管子(晶体):
- 环境:管子结构固定(类比晶体周期势)
- 可能的振动模式:基音、第一泛音、第二泛音、第三泛音 ...
- 每个模式遍及整根管子(不局限于某段)
- 不同模式有不同的频率、节点位置、波长
| 模式特征 | 类比 |
|---|---|
| 频率 | 能量 \(\varepsilon_n(\vec{k})\) |
| 模式编号 | 能带指标 \(n\) |
| 模式之间的"相位变化率" | \(\vec{k}\) |
| 同一模式在不同位置 | \(\phi_{n,\vec{k}}\) 在不同原胞 |
晶体里所有这些振动模式同时存在(每个对应一个量子态),最低能的几个被电子填满(Fermi 海以下),剩下的空着。总电子密度 = 所有占据模式的叠加。
数字举例:Si 原胞¶
| 数量 | 值 |
|---|---|
| Si 原胞原子数 | 2 |
| 每 Si 价电子 | 4 |
| 每原胞总价电子 | 8 |
| 计算用的 nbnd | ~12(含 4 条空带 buffer) |
| k 点数(Monkhorst-Pack 8×8×8) | 512(不可约后约 60) |
| 总独立态数 | \(12 \times 60 \approx 720\) |
| 占据态数 | \(4 \times 60 = 240\)(每条价带 × 每 k 点) |
240 个独立的 Bloch 态,每个 \(|\phi|^2\) 在每个原胞都一样,但 240 个态彼此完全不同(不同 \((n, \vec{k})\))。
电子密度 \(\rho(\vec{r})\) = 240 个 \(|\phi|^2\) 加权求和——每个原胞看到的 \(\rho\) 都一样(周期性体现),但这个 \(\rho\) 由 240 个不同 Bloch 态叠加而成。
总结回答你的两个假设¶
| 你的假设 | 正确性 | 说明 |
|---|---|---|
| "原胞重复 → 电子只有一种波函数" | ❌ | 类比氢原子有无穷多轨道;晶体有更多(多了 \(\vec{k}\) 标签) |
| "不同原胞里电子波函数不同" | ❌ | 同一个态在每个原胞模平方一样;多样性来自不同 \((n, \vec{k})\) 标签,不来自空间位置 |
| 正确理解 | ✅ | 晶体里有无穷多 Bloch 态 \(\phi_{n,\vec{k}}\),每个布满整个晶体;每个态在原胞间形态相同、相位差 \(e^{i\vec{k}\cdot\vec{R}}\) |
一句话核心¶
晶体里"原胞重复"是关于势场和密度的,不是关于电子态的。势场虽周期,但容许的电子态有无穷多种(量子态空间)。每种态都布满整个晶体(不归属某个原胞),不同种态之间用 \((n, \vec{k})\) 标签区分。
电子态的多样性 ≠ 空间位置的多样性——这是核心。
本轮 2 个问题速览¶
| # | 主题 | 核心 |
|---|---|---|
| Q1 | 为什么 \(\vec{k}\) 不能像 \(n\omega_0\) 那样离散取值 | 混淆了"单个周期函数(谱离散在 \(\vec{G}\))"和"一族准周期波函数(用 \(\vec{k}\) 标记,BZ 内连续)";\(\vec{k}\) 不是信号的频率而是本征态的标签;BZ 采样是数值积分的近似 |
| Q2 | 原胞重复,为什么有这么多不同的波函数 | 混淆"环境的周期性"和"电子态的多样性";类比氢原子势场一个但有无穷多轨道;晶体里电子态用 \((n, \vec{k})\) 标记,每个态布满整个晶体(不归某个原胞);多样性来自量子态空间不来自空间位置 |
Q3:\(\vec{k}\) 是 Bloch 波的身份证号,我们对 \(\vec{k}\) 离散采样然后积分——那 \(\vec{k}\) 和 Bloch 波之间是不是有函数关系?不然怎么积分?¶
完全正确。\(\vec{k}\) 到 Bloch 波的映射是严格的连续(几乎处处光滑)函数关系——正是这个连续性让 BZ 数值积分成为可能。你的直觉抓到了数值分析最核心的一条:积分必须作用在某个函数上。
映射关系的精确陈述¶
给定 \(\vec{k}\),有数学上唯一的方式得到 Bloch 波和能量:
-
构造 \(\vec{k}\)-依赖的 KS 算符: $\(\hat{H}_{KS}(\vec{k}) = \frac{1}{2}(-i\nabla + \vec{k})^2 + V_{eff}(\vec{r})\)$ (用 \(u_{n,\vec{k}} = e^{-i\vec{k}\cdot\vec{r}}\phi_{n,\vec{k}}\) 的形式把 \(\vec{k}\) 显式暴露出来)
-
解本征值问题: $\(\hat{H}_{KS}(\vec{k}) \, u_{n,\vec{k}}(\vec{r}) = \varepsilon_n(\vec{k}) \, u_{n,\vec{k}}(\vec{r})\)$
-
得到一组确定的 \((u_{n,\vec{k}}, \varepsilon_n(\vec{k}))\)——这就是 \(\vec{k}\) 到 Bloch 波的函数关系
所以:
这个映射是确定的(不随机)、连续的(可做数值积分)、几乎处处光滑的(小扰动可控)。
连续性的数学依据¶
KS 算符 \(\hat{H}_{KS}(\vec{k})\) 作为 \(\vec{k}\) 的函数是光滑的——因为 \(\vec{k}\) 只是以参数形式进入(平方项 \((-i\nabla + \vec{k})^2\))。
光滑算符族的本征值/本征态在大多数点也光滑(扰动理论结论): - 本征值 \(\varepsilon_n(\vec{k})\):\(\vec{k}\) 的连续函数(可微,几乎处处) - 本征态 \(u_{n,\vec{k}}\):\(\vec{k}\) 的光滑函数(有规范选择自由) - \(|\phi_{n,\vec{k}}(\vec{r})|^2\) 也连续依赖 \(\vec{k}\)
这就是能带图!¶
\(\varepsilon_n(\vec{k})\) 作为 \(\vec{k}\) 的函数画出来就是能带图(band structure)——你在 DFT 输出里见到的那种图:
↑ ε
│
│ ___ ___
│ / \ / \ ← 导带 (n=5,6,...)
│ / \____/ \
│____________________
│ 导带底 CBM
│
│─────────────────── E_F(费米能级)
│
│ 价带顶 VBM
│ __________________
│ \ /
│ \ __ / ← 价带 (n=1,2,3,4)
│ \___/ \____/
│
└──────────────────→ k
Γ X W L K
- 每条曲线 = 一条能带 \(\varepsilon_n(\vec{k})\)(\(n\) 固定,\(\vec{k}\) 沿 BZ 路径扫)
- 曲线连续 ✓——这正是 \(\vec{k}\) 到 Bloch 能量的连续函数关系的可视化
- Si 的间接带隙:价带顶在 Γ,导带底在 X 附近——VBM 和 CBM 在不同 \(\vec{k}\),但两者都是 \(\vec{k}\) 的连续函数
波函数 \(\phi_{n,\vec{k}}\) 也是 \(\vec{k}\) 的连续函数——只不过它是 3D 复函数,不好画图,所以通常只画能带 \(\varepsilon_n(\vec{k})\)。
为什么连续性对数值积分关键¶
数值积分的基本前提是被积函数"规矩"(连续、有限变化率):
| 积分方法 | 前提 |
|---|---|
| 梯形法则 | 连续 |
| Simpson 法则 | 二阶光滑 |
| Gauss 求积 | 解析 |
| Monte Carlo | 有限方差 |
| Monkhorst-Pack 网格 | \(f(\vec{k})\) 在 BZ 上光滑 |
BZ 积分: $\(\rho(\vec{r}) = \sum_n \int_{BZ} f_{n,\vec{k}} |\phi_{n,\vec{k}}(\vec{r})|^2 \, \frac{d\vec{k}}{(2\pi)^3}\)$
被积函数 \(f_{n,\vec{k}} |\phi_{n,\vec{k}}|^2\):
- \(f\) 是占据数(绝缘体阶跃,金属用 smearing 软化)
- \(|\phi|^2\) 是 \(\vec{k}\) 的连续函数(由上述映射光滑性)
- 对绝缘体,\(f\) 是 0 或 1,整个被积函数光滑(只对占据带积分)
- 对金属,\(f\) 有跳变 → 用 smearing 软化(这就是为什么金属需要 smearing!详见 19-kpoints.md 的 §3.3)
追问:采样积分的"收敛"是什么意思?是用基函数通过采样点拟合吗?
你的直觉方向部分对——某些高级方法确实用基函数拟合(下面会讲)。但Monkhorst-Pack 标准做法更简单:就是"均匀网格 + 加权求和"。"收敛"的意思是随着采样点增加,估算值越来越接近真实积分。
"收敛"的数学定义¶
设想真实 BZ 积分为 \(I\)(未知),用 \(N\) 个 k 点估算得 \(\tilde{I}_N\):
"收敛"的意思:
- N 越大,\(\tilde{I}_N\) 离 \(I\) 越近
- 实际判据:\(|\tilde{I}_N - \tilde{I}_{N+1}| < \epsilon\)(如 1 meV/atom)就算"收敛到精度 \(\epsilon\)"
操作层面:典型收敛测试¶
DFT 里 k 点收敛测试是这样跑的——固定 ecutwfc 不变,增加 k 点数:
| k 网格 | k 点总数 | 不可约 | 总能量(Ry) |
|---|---|---|---|
| 4×4×4 | 64 | 8 | -16.9212 |
| 6×6×6 | 216 | 10 | -16.9235 |
| 8×8×8 | 512 | 29 | -16.9251 |
| 10×10×10 | 1000 | 47 | -16.9252 |
| 12×12×12 | 1728 | 72 | -16.9252 |
从 10³ 开始能量变化 < 1 meV → 认为收敛在 8×8×8 到 10×10×10 之间。选 8×8×8(精度够 + 省算力)。
这就是"采样 ~\(10^3\) 个 k 点就能收敛"的操作含义。
Monkhorst-Pack = 多维矩形法则¶
数学上 Monkhorst-Pack 就是最简单的均匀网格加权求和,等价于数值分析里的矩形法则 / 梯形法则在 BZ 上的多维推广:
(简化版,实际对称性压缩后权重不全相等)
- 每个 k 点分担 BZ 一小块(体积 \(V_{BZ}/N\))
- 用该 k 点上的 \(f(\vec{k}_i)\) 值代表整小块的贡献
- 所有 k 点贡献加起来
不需要拟合函数——直接在采样点评估 \(f\) 后加权求和。
和"拟合"的区别¶
| 拟合(fitting) | 数值积分(quadrature) | |
|---|---|---|
| 输入 | 数据点 \(\{(\vec{k}_i, y_i)\}\) | 能评估的函数 \(f(\vec{k})\) |
| 输出 | 一个函数 \(g_\theta(\vec{k})\) | 一个标量(积分值) |
| 中间步骤 | 最小化 \(\sum (g - y)^2\) | 加权求和 \(\sum w_i f(\vec{k}_i)\) |
| 作用 | 在任意 \(\vec{k}\) 处预测 | 算整个区域的"总和" |
Monkhorst-Pack 是直接求和,不显式拟合函数。它只需要: 1. 在每个 \(\vec{k}_i\) 上评估 \(f\)(解一次 KS 方程) 2. 加权求和
你猜的"用基函数拟合"——某些方法确实这样做¶
虽然 Monkhorst-Pack 不拟合,但 DFT 里有些高级数值方法确实用了你说的思路:
1. Tetrahedron 方法(BZ 积分的一种改进): - 把 BZ 切成四面体 - 在每个四面体内线性插值 \(\varepsilon_n(\vec{k})\) - 对插值后的线性函数解析积分 - 对 DOS 计算比 Monkhorst-Pack 更准(尤其金属费米面附近)
2. Wannier 插值: - 用少量 k 点(如 8×8×8)做 DFT 计算 - 构造 Wannier 函数(一种局域化基函数) - 用 Wannier 基插值到任意 k 点 - 可以在无限密的 k 网格上算能带 / DOS / Berry phase 等
3. Gauss 求积(高阶精度积分法): - 用正交多项式(Legendre、Chebyshev)作为基 - 选择特殊采样点 + 对应权重 - 对光滑函数收敛极快(\(N \log N\) → 指数收敛)
这些是"拟合+积分"的结合——但不是 QE 默认方法。默认的 Monkhorst-Pack 就是直接采样求和。
为什么 \(\sim 10^3\) 个 k 就够¶
收敛速度取决于被积函数的光滑性:
| 函数特性 | 收敛率(误差 vs \(N\)) |
|---|---|
| 光滑(可微到任意阶) | \(O(1/N^p)\),\(p\) 随方法增加 |
| 连续但有不可微点 | \(O(1/N^{1.5})\) 左右 |
| 有阶跃(金属 Fermi 面) | \(O(1/N)\)——很慢! |
典型 Si(绝缘体): - \(|\phi|^2\) 光滑 → 收敛快 - 8×8×8 ≈ 500 k 点已经精度 1 meV - 再加密收益递减
典型 Cu(金属): - Fermi 面有跳变 → 收敛慢 - 需要 16×16×16 ~ 4000 k 点 - 或者用 smearing 软化跳变 → 恢复快收敛
ML 类比¶
拟合思路(不是 Monkhorst-Pack 的做法): - 训练一个 NN \(g_\theta(\vec{k})\) 拟合 \(\varepsilon_n(\vec{k})\) - 用 NN 预测任意 k 点 - 解析积分 NN
Monkhorst-Pack 思路(标准做法): - 在有限几个 k 点直接评估真实 \(\varepsilon_n(\vec{k})\) - 加权求和 - 不需要函数式
类似: - 估计 \(\mathbb{E}[f(X)]\) 可以直接 Monte Carlo 采样 \(f(X_i)\) 加平均 - 也可以先拟合 \(f\) 的代理模型,再在代理上积分 - 前者简单直接,后者更精确但复杂
简洁总结¶
"收敛"的意思:增加 k 点数时,估算的积分值 \(\tilde{I}_N\) 单调趋近真实值 \(I\),变化量最终小于某个阈值(如 1 meV/atom)。
Monkhorst-Pack 做法:均匀网格加权求和,不显式拟合。
你的猜测适用的范围:Tetrahedron、Wannier 插值等高级方法确实用了"拟合+积分"思路,但这些是补充,不是默认。
为什么能收敛快:被积函数光滑(\(|\phi|^2\) 是 \(\vec{k}\) 的光滑函数,来自 Q3 证明的映射连续性)+ 积分区域有限(BZ 不是无穷)。
采样 ~\(10^3\) 个 k 点就能收敛 → 就是因为函数光滑 + 积分区域小(BZ)。
简并点:连续性的例外¶
大部分地方函数是光滑的,但有简并点(degeneracy points)——两条能带在某些 \(\vec{k}\) 交叉:
- 交叉处:\(\varepsilon_n(\vec{k}_0) = \varepsilon_{n+1}(\vec{k}_0)\)
- 函数在该点不可微(V 型交叉或锥型 Dirac 点)
- 不影响积分(可数测度为零)
- 但波函数可能有规范选择自由(Berry phase、拓扑)
例子: - 石墨烯的 Dirac 点 - 拓扑绝缘体 Bi\(_2\)Se\(_3\) 表面的 Dirac 锥 - Weyl 半金属(Cd\(_3\)As\(_2\)、TaAs)的 Weyl 点
这些地方处理需要更精细的数值方法(tetrahedron 插值、更密网格)。
对应你的比喻——"身份证号"的精确含义¶
"\(\vec{k}\) 是 Bloch 波的身份证号"——补充细化:
| 误解 | 纠正 |
|---|---|
| 身份证号随机映射 | ❌ 不是查表,是光滑函数 |
| 身份证号对应一个人 | ⚠️ 每个 \(\vec{k}\) 对应一组 \((\phi_{n,\vec{k}}, \varepsilon_n)\),不只是一个 |
| 身份证号连续变化→人也连续变化 | ✅ 精确 |
更贴切的比喻:\(\vec{k}\) 像温度。物理系统是温度的连续函数——温度变化 1 度,所有物理量都只小幅变化。所以可以"按温度离散采样"估计温度平均的物理量。
一个具体数字例子¶
以 Si 原胞,第 1 条能带(最低价带)在 \(\Gamma\) 附近的能量:
- \(\varepsilon_1(\Gamma) \approx -12\) eV
- \(m^*_1 \approx 0.2 m_e\)(有效质量)
- \(\varepsilon_1\) 是 \(k^2\) 的光滑函数——可以用几个 k 点拟合这条抛物线
在 \(\Gamma\) 邻域,\(|\phi_{1,\vec{k}}|^2\) 也平滑变化: - \(\vec{k} = \Gamma\):形状 A - \(\vec{k} = (0.01, 0, 0)/a\):形状 ≈ A + 小扰动 - \(\vec{k} = (0.1, 0, 0)/a\):形状 B(稍不同) - 连续变化
这种光滑性是 \(8 \times 8 \times 8 = 512\) 个 k 点就能收敛的原因。
和 ML 的类比¶
这和 ML 里非常熟悉的一个情境同构:
| ML | 晶体 DFT |
|---|---|
| 训练好的 NN \(f_\theta(x)\) | Bloch 映射 \(\vec{k} \mapsto (\phi, \varepsilon)\) |
| 输入 \(x\) 是连续变量 | \(\vec{k}\) 是连续变量 |
| \(f_\theta\) 是 \(x\) 的连续函数 | Bloch 波是 \(\vec{k}\) 的光滑函数 |
| 估计期望 \(\mathbb{E}_x[f_\theta(x)]\) 用 Monte Carlo / quadrature | 估计 BZ 积分用 Monkhorst-Pack |
| 连续性保证有限样本收敛 | 光滑性保证有限 k 点收敛 |
完整回答¶
你的直觉链:
- ✅ "\(\vec{k}\) 是身份证号" → 正确,\(\vec{k}\) 标记唯一的 Bloch 态
- ✅ "要积分就要有函数关系" → 正确,积分的前提是函数
- ✅ "\(\vec{k}\) 和 Bloch 波之间有函数关系" → 正确且连续光滑
严格的陈述:
- \(\vec{k} \mapsto \hat{H}_{KS}(\vec{k})\) 光滑(显式参数依赖)
- \(\hat{H}_{KS}(\vec{k})\) 的本征值 \(\varepsilon_n(\vec{k})\) 连续(几乎处处可微)
- 本征态 \(u_{n,\vec{k}}\) 光滑(有规范自由)
- 这保证了 BZ 上的被积函数光滑
- 所以 Monkhorst-Pack 有限 k 点采样能收敛到真实积分
一句话总结¶
\(\vec{k}\) 不仅是"编号",而是 Bloch 波的"连续控制参数"——就像控制旋钮一样,旋得越大 \(\vec{k}\) 越大,Bloch 波也跟着连续变化。能带图就是这个连续函数的直观图示。积分能成立正是因为函数连续——这和你用数值积分估计 \(\int \sin(x) dx\) 的道理完全相同。
本轮 4 个问题速览¶
| # | 主题 | 核心 |
|---|---|---|
| Q1 | \(\vec{k}\) 为什么不能像 \(n\omega_0\) 离散取值 | \(\vec{k}\) 不是信号的频率而是本征态的标签;BZ 采样是数值积分而非"找非零谱" |
| Q2 | 原胞重复,为什么有多种波函数 | "环境周期"≠"电子态多样";类比氢原子势场一个但轨道无穷多;多样性来自量子态空间不来自空间位置 |
| Q3 | \(\vec{k}\) 和 Bloch 波之间有函数关系吗 | ✅ 连续光滑函数关系;能带图就是可视化;BZ 积分由此有意义 |
| Q4 | 采样积分"收敛"是什么意思?是拟合吗? | 不是拟合——是"\(N\) 增加 → 估算值趋近真实积分";Monkhorst-Pack = 均匀网格求和(直接评估不拟合);高级方法(tetrahedron/Wannier)才用拟合思路;\(\sim 10^3\) 个 k 点够用是因为函数光滑 |