99. 自测题¶
本篇是学习过 11–31 篇笔记后的自测清单。目标是验收:能否独立解释 DFTBench 每个字段、每种材料类别、以及每个 QE 参数的物理含义?
使用方式: - 对每道题先自己用 1-2 句话口述答案 - 然后翻到参考答案对照 - 答不上来就回到对应笔记重读
评估标准: - ≥ 80% 能流利口述 → 通过阶段 D 验收,可以开始设计类 DFTBench - 60–80% → 标记不熟悉的题目,重点回读对应笔记 - < 60% → 建议从头按化简链顺序再过一遍
第 A 部分:量子力学与化简链基础(10 题)¶
A1¶
Q:为什么 N 电子问题不能直接数值求解?具体"维度爆炸"发生在什么物理量上?
A
多体波函数 $\Psi(\vec{r}_1, ..., \vec{r}_N)$ 是 $3N$ 维连续函数。若每个方向离散化 100 格点,存储需要 $100^{3N}$ 个复数。N=10 就是 $10^{60}$ 级——无法存储。**详见 `10-qm-basics.md` 和 `00-simplification-chain.md`**。A2¶
Q:Hohenberg-Kohn 第一定理说了什么?它给 DFT 的合法性带来什么?
A
基态电子密度 $\rho_0(\vec{r})$(3 维)唯一决定外势 $V_{ext}$(差常数),进而唯一决定基态波函数和一切可观测量。**合法性**:DFT 用 3 维密度代替 3N 维波函数"信息无损",但这只是存在性证明,没给出算法。**详见 `13-hk-theorem.md`**。A3¶
Q:Kohn-Sham 方程本质是什么?它解决了什么 HK 定理没解决的问题?
A
KS 引入一个虚构的非相互作用电子系统,密度等于真实系统。**解决**:HK 定理没给 $E[\rho]$ 的形式,KS 通过映射到 N 个单粒子方程让 $E[\rho]$ 可评估(动能 $T_s$ 可算,电-核 $V_{ext}$ 可算,电-电 Hartree 可算,剩余未知部分都并入 $E_{xc}$)。**详见 `14-kohn-sham.md`**。A4¶
Q:SCF 迭代是什么的解法?类比 ML 里哪个算法?
A
KS 方程中 $V_{eff}$ 依赖 $\rho$,$\rho$ 又由 KS 解出——鸡生蛋。SCF 是固定点迭代解法。**ML 类比:EM 算法**(E 步对角化给定 $V_{eff}$ 求 $\phi_i$,M 步算新 $\rho$ 更新 $V_{eff}$,混合 ≈ 学习率)。**详见 `21-scf-iteration.md`**。A5¶
Q:XC 泛函是什么?为什么必须近似?列出 4 个代表泛函。
A
$E_{xc}[\rho]$ = 交换-关联泛函,是 $E[\rho]$ 中唯一未知的项。**必须近似是因为**:HK 定理没给出它的显式形式。**4 个代表**:LDA(局域)、PBE(GGA,固体事实标准)、PBEsol(PBE for solids,晶格更准)、SCAN(meta-GGA,更精确但贵)、HSE06(杂化,带隙好但贵 10-100×)。**详见 `15-xc-functional.md`**。A6¶
Q:Slater 行列式为什么"自动满足"泡利不相容?
A
行列式性质:交换任意两行(或两列)变号。把 N 个单电子轨道填入行,N 个电子填入列 → 交换两电子(两列)让波函数变号,正好符合费米子反对称要求。**详见 `12-slater-determinant.md`**。A7¶
Q:Born-Oppenheimer 近似的物理依据是什么?有什么代价?
A
**依据**:质子质量 ≈ 1836 × 电子质量,电子运动比核快得多 → 可把核位置当参数(固定)求电子基态。**代价**:忽略核量子效应(如氢原子的隧穿、零点运动、重原子的非绝热效应)。**详见 `11-born-oppenheimer.md`**。A8¶
Q:为什么 DFT 系统性低估半导体带隙?
A
**两个原因**:(1) DFT 本质是基态理论,带隙是激发态之间的差,严格来说不在 DFT 的正确适用范围内;(2) LDA/GGA 泛函的 self-interaction error 和 derivative discontinuity 缺失使计算带隙系统性偏小。**典型偏差**:Si 实验 1.17 eV → PBE ~0.6 eV(低估 ~50%)。HSE06 之类杂化泛函能部分修正。**详见 `15-xc-functional.md` 和 `30-observables.md` 组 2**。A9¶
Q:如果让你排序 12 步化简链对"最终精度"的影响由大到小,怎么排?
A
参考排序(大致,具体依赖体系): 1. **化简 5 XC 泛函**(LDA vs PBE vs SCAN vs HSE06 差异可达 30%+,影响晶格 ~1%,带隙 ~50%) 2. **化简 6 赝势**(不同赝势库/类型可导致几 % 能量差、几十 meV/atom) 3. **化简 8 ecutwfc** 和 **化简 9 k 点**(截断不够直接让结果失效,像 Ge 案例) 4. **化简 11 SCF 阈值**(conv_thr 太松导致力/应力不准) 5. **化简 12 BFGS 阈值**(forc_conv_thr、press_conv_thr) 6. **化简 10 对称性**(正确处理对称性能改善收敛,但一般不影响最终精度) 7. **化简 1 BO**、**化简 2 Slater**、**化简 3 HK**、**化简 4 KS**、**化简 7 Bloch**(是理论框架,只要你用 KS-DFT 就是固定的) **详见所有笔记的末尾"典型取值与坑"节**。A10¶
Q:化简 8(平面波基组)与化简 9(k 点采样)的区别是什么?
A
- **化简 8**:在**每个 k 点内部**,用有限个平面波展开 KS 轨道(`ecutwfc` 控制)。 - **化简 9**:在**整个布里渊区**上,用有限个 k 点代替连续积分(`K_POINTS` 控制)。 - 前者是"单个 k 点解的表达精度",后者是"BZ 积分的采样密度"——两个维度的离散化。**详见 `18` 和 `19`**。第 B 部分:QE 字段的物理含义(15 题)¶
B1¶
Q:ibrav=2、ibrav=4、ibrav=0 分别表示什么?
A
- `ibrav=2`:面心立方(FCC)——只需要 `celldm(1)=a` - `ibrav=4`:六方(Hexagonal)——需要 `celldm(1)=a`, `celldm(3)=c/a` - `ibrav=0`:自定义——必须显式给出 `CELL_PARAMETERS` 三行 **详见 `17-bloch-bz.md`**。B2¶
Q:ecutwfc 和 ecutrho 的物理区别?比值应该是多少?
A
- `ecutwfc`:波函数 $\phi$ 的平面波截断能。保留 $|\vec{G}|^2 < 2 E_{cut}/(\hbar^2/2m)$ 的平面波。 - `ecutrho`:密度 $\rho = \sum |\phi_i|^2$ 的平面波截断能。因 $\rho$ 含两倍波矢量分量,高频项更多。 - **比值**:norm-conserving 至少 4×;USPP/PAW 通常 8-12×。**详见 `18-plane-wave-basis.md`**。B3¶
Q:K_POINTS automatic 8 8 8 0 0 0 和 8 8 8 1 1 1 的区别?
A
两者都是 Monkhorst-Pack 8×8×8 网格。 - `0 0 0`:**gamma-centered**,网格包含 Γ 点 (0,0,0) - `1 1 1`:**half-shifted**(Monkhorst-Pack 原始偏移),网格偏离 Γ 点半个格距 对大多数立方晶格两者差别小;对六方晶格 gamma-centered 通常更好;对存在 Γ 点特殊物理(如超导)必须 gamma-centered。**详见 `19-kpoints.md`**。B4¶
Q:conv_thr = 1.0e-8 的单位是什么?意味着什么?
A
单位是 **Ry**(里德伯)。是 SCF 的电子能量收敛阈值——两次迭代能量差小于这个值就认为收敛。典型值:粗 `1e-6` Ry、标准 `1e-8` Ry、严格 `1e-10` Ry。严格阈值对 BFGS 弛豫很重要(松了会使力和应力不准)。**详见 `21-scf-iteration.md`**。B5¶
Q:forc_conv_thr 和 etot_conv_thr 在 vc-relax 中各自的作用是什么?
A
- `forc_conv_thr`:所有原子受力 |F_I| < 阈值(Ry/bohr)时认为原子位置收敛。 - `etot_conv_thr`:两次 BFGS 步间总能量变化 < 阈值(Ry)时认为能量收敛。 两个条件必须同时满足 BFGS 才停止。对 vc-relax 还要加 `press_conv_thr`(kbar)。**详见 `22-bfgs-relax.md`**。B6¶
Q:pseudo_dir 指向什么?为什么 agent 跑 vc-relax 时相对路径会失效?
A
指向赝势文件(`.upf`)所在目录。失效原因:DFTAgent 在 `tmp/B7¶
Q:nspin=1 vs nspin=2 的区别?什么情况下必须用 nspin=2?
A
- `nspin=1`:非自旋极化(spin-restricted),所有电子成对占据 - `nspin=2`:自旋极化(spin-unrestricted),显式分 up/down 两套 **必须用 `nspin=2`**:磁性材料(Fe, Co, Ni, NiO 等)、有未配对电子的原子(奇数电子体系)。通常配合 `starting_magnetization(i) = 0.5` 初始化。**详见 `14-kohn-sham.md` 和 `31-material-categories.md` 第 6 节**。B8¶
Q:smearing='mv' 是什么?什么时候要用?
A
Methfessel-Paxton smearing(MV,冷 smearing 的一种)。为**金属**用——费米面附近占据数用光滑函数代替 0/1 阶跃,让 SCF 稳定收敛。其他选项:`gaussian`、`fd`(Fermi-Dirac)、`mp`。典型 `degauss=0.01-0.02` Ry。绝缘体不用(会改变物理结果)。**详见 `19-kpoints.md`**。B9¶
Q:ATOMIC_POSITIONS crystal 和 ATOMIC_POSITIONS angstrom 的区别?
A
- `crystal`:分数坐标,即原子位置是晶格向量的线性组合系数(每个分量 0-1) - `angstrom`:笛卡尔坐标(Å 单位) - 其他:`bohr`(笛卡尔 bohr),`alat`(以 celldm(1) 为单位的笛卡尔) 变胞弛豫(vc-relax)推荐用 `crystal`——因为晶格会变,分数坐标保持原子之间的相对位置稳定。**详见 `17-bloch-bz.md`**。B10¶
Q:calculation='scf', 'nscf', 'bands' 三者的关系?
A
- `scf`:自洽求电子基态密度和能量 - `nscf`:**非自洽**,用已收敛的 `scf` 密度,在**更密集或更细致的 k 点**上算本征值(不再更新密度) - `bands`:类似 `nscf`,但 k 点沿 BZ 高对称路径(用于画能带图) 流程:`scf` → `nscf`(算 DOS)或 `bands`(画能带)。**详见 `17-bloch-bz.md` 和 `30-observables.md`**。B11¶
Q:cell_dofree='all' 和 'xyz' 有什么区别?
A
- `all`:所有 6 个晶格自由度可变(3 长度 + 3 角度) - `xyz`:只允许晶格长度变化,角度固定 - 其他:`'x'`、`'y'`、`'z'`、`'2Dxy'`(二维)、`'shape'`、`'ibrav'`(保持 Bravais 类型) 立方材料选 `'ibrav'` 可减少自由度(保持对称性);层状材料选 `'2Dxy'` 固定层间距。**详见 `22-bfgs-relax.md`**。B12¶
Q:mixing_beta 设多大合适?调它的信号是什么?
A
- 绝缘体:0.7(激进) - 普通金属:0.3-0.5 - 磁性/强关联:0.1-0.3 - 信号:SCF 能量震荡不收敛 → 降 `mixing_beta`;SCF 平稳但慢 → 可适度提高 **详见 `21-scf-iteration.md`**。B13¶
Q:lspinorb=.true. 什么时候用?会引入什么额外要求?
A
开启自旋轨道耦合(SOC)。必要场合:**拓扑材料**(Bi, Bi₂Se₃, SnTe 等)、**重原子**(Pb, Au)的精细能带、**磁晶各向异性**。要求:(1) 用**全相对论(FR)赝势**,如 PseudoDojo 的 `FR_v0.4/`;(2) 通常配 `noncolin=.true.`(非共线磁性)。**详见 `31-material-categories.md` 第 8 节**。B14¶
Q:输出 number of k points = 29 表示什么?
A
QE 检测空间群对称性后,把完整的 $8 \times 8 \times 8 = 512$ 个 k 点压缩到 29 个**不可约 k 点**(irreducible k-points)。只需在这 29 个点上解 KS 方程,其他 483 个由对称操作生成。对 FCC 晶体对称压缩比通常 48×。**详见 `20-symmetry.md`**。B15¶
Q:QE 输出的 ! total energy = -16.92 Ry 中的感叹号 ! 是什么意思?
A
`!` 是 QE 的标记,表示这是**最终收敛**的总能量(区别于 SCF 迭代中间步的 `total energy = ...`)。grep `! total energy` 可以快速提取最终能量值。**详见 `21-scf-iteration.md`**。第 C 部分:DFTBench 设计逻辑(10 题)¶
C1¶
Q:DFTBench 评分的 10 个字段(compare.py 的 COMPARISON_RULES)分别来自 12 步化简链的哪一步?
A
- `a, b, c, α, β, γ`(relative)← 化简 12 BFGS 输出的 `CELL_PARAMETERS` - `space_group, space_group_number, point_group, crystal_system`(exact)← 化简 10 对称性分析(pymatgen SpacegroupAnalyzer 作用于弛豫后的结构) **详见 `99-dftbench-terms.md` C 节**。C2¶
Q:benchmark 有 10 类材料,为什么磁性类的 LLM agent 通过率最低(论文 <6%)?
A
**多重难点叠加**: 1. 必须显式设 `nspin=2`——agent 可能忘 2. 必须设 `starting_magnetization(i)` 破缺对称性——agent 可能忘 3. SCF 收敛困难(震荡、小 `mixing_beta`、大 `electron_maxstep`) 4. 反铁磁需要超胞(原胞翻倍),原子位置翻倍,增加复杂度 5. DFT+U 对 NiO、MnO 等强关联氧化物几乎必须——agent 难自动选 U 值 **详见 `31-material-categories.md` 第 6 节**。C3¶
Q:为什么 benchmark/questions/ 里有 vc_relax_low_acc、_medium_acc、_high_acc 三档?
A
对应能量精度档:20 meV/atom(low)、10 meV/atom(medium)、1 meV/atom(high)。**意义**:1 meV/atom 需要严格参数(高 `ecutwfc`、密 k 点、严 `conv_thr`),**大多数 LLM agent 都只能满足 low 档**。这是 benchmark 区分能力的关键设计。**详见 `22-bfgs-relax.md`**。C4¶
Q:benchmark 的 ground_truth 字段为什么全空?这对评分意味着什么?
A
作者在 2026-02 代码重构时丢失了参考值(详见 `doc/reports/report_ground_truth.md`),之后 30+ 提交都没恢复。后果:`compare_evaluation(gt={}, eval=...)` 在相对误差计算时分母 = `max(|0|, 1e-12)`,导致 `max_rel_error = inf`;exact 字段 gt 是 None,`str(None) != str(eval)` → `all_exact_match = False`。**一切评分无意义**。这正是我们要自制类 DFTBench 的原因。C5¶
Q:DFTBench 里 Si 的 space_group=Fd-3m 是怎么来的?agent 跑 vc-relax 后如何"得到"这个字段?
A
材料 JSON 的 `info.space_group` 是**预先标注的已知值**(来自文献或 Materials Project)。agent 跑 vc-relax 后:QE 输出弛豫后的 `CELL_PARAMETERS` 和 `ATOMIC_POSITIONS` → DFTAgent 用 pymatgen 的 SpacegroupAnalyzer 分析结构 → 得到 `space_group` 字符串 → 与 ground truth 比较(exact match)。**详见 `20-symmetry.md`**。C6¶
Q:一个典型的 vc_relax prompt 长什么样?其中哪些部分是 LLM agent 要自动决定的?
A
For formula=Si structure=diamond atoms_per_primitive_cell=2 space_group=Fd-3m,
perform a variable-cell relaxation (vc-relax) calculation. Set use a gamma-centered grid,
make a educated guess for etot_conv_thr, forc_conv_thr, conv_thr, ecutwfc, k-point sampling.
Use PBE pseudopotentials. Return the fully relaxed structure (atomic parameters).
C7¶
Q:为什么 benchmark 里半导体类用 structure=diamond/zinc blende/hexagonal 而不是直接给 QE 的 ibrav?
A
**抽象层设计**:晶体原型(diamond, zinc blende...)是**物理/材料科学术语**,一个原型可以对应多个数据库中的晶胞表示方式。给 `ibrav` 会让 benchmark 和 QE 耦合太深。LLM agent 需要**从原型推断 `ibrav`**——这是 benchmark 考查"参数推断"能力的一部分。**详见 `17-bloch-bz.md`**。C8¶
Q:一个好的 ground_truth 应该怎么生成?
A
**理想流程**: 1. 选择高精度参数(ecutwfc 做收敛性测试取收敛值、密 k 点、严 conv_thr、高精度泛函) 2. 跑 vc-relax 到完全收敛 3. 记录最终的 CELL_PARAMETERS(提取 a,b,c,α,β,γ)和 pymatgen 分析的空间群 4. 对每个材料独立做,保留原始输入/输出文件以便复现 5. 可以用 Materials Project 已有数据做交叉验证 **注意**:LDA vs PBE 值不同;同一泛函不同赝势库也有差异。ground_truth 必须标明"用什么参数生成"。**详见 `15-xc-functional.md` 和 `16-pseudopotential.md`**。C9¶
Q:如果你要把 benchmark 的 10 类精简到 3 类做快速评估,选哪 3 类?为什么?
A
建议: 1. **金属**(Cu, Al)—— 验证 smearing + 密 k 点 2. **半导体**(Si, GaAs)—— 标准测试,数据最全 3. **磁性**(Fe, NiO)—— 压力测试(区分度最大) **跳过**:铁电、拓扑、超导、热电(需要特殊后处理不在评分核心),绝缘体(简单冗余),光学/压电(评分字段不涵盖)。**详见 `31-material-categories.md`**。C10¶
Q:如果让你设计一个新的评分字段,你会加什么?为什么?
A
**候选**: 1. **总能量**(`total_energy_ev_per_fu`)—— `required_ground_truth` 已有但 `compare.py` 未实现;相对误差评分可行(前提:泛函和赝势指定统一) 2. **带隙**(`band_gap_ev`)—— 半导体/绝缘体区分能力核心;但 DFT 带隙低估系统性存在,ground_truth 应该按 PBE 而非实验值给 3. **体模量 B**(`bulk_modulus_gpa`)—— 力学性质,需要 E-V 扫描 4. **声子虚频**(`has_imaginary_freq`)—— 结构稳定性二值判断 不要加:HOMO/LUMO(分子概念)、磁矩(材料相关,难一刀切) **详见 `30-observables.md` 和 `doc/reports/report_ground_truth.md`**。第 D 部分:实战 debug 题(5 题)¶
D1¶
Q:你的 Ge vc-relax 算出晶格常数 4.75 Å(参考值 5.66 Å,偏差 17%)。先看哪个参数?
A
**先看 `ecutwfc`**。Ge 的 3d 半芯态需要 60+ Ry,40 Ry 基组不完备导致能量面失真。**其次检查**:赝势是否是 PBE(LDA 会低估 ~2%)、k 点是否足够(Ge 是半导体,6×6×6 通常够)。**详见 `16-pseudopotential.md` 和 `18-plane-wave-basis.md`**。D2¶
Q:SCF 跑 200 步还没收敛,能量在小幅震荡。怎么办?
A
1. 降低 `mixing_beta`(从 0.7 → 0.3 → 0.1) 2. 增大 `mixing_ndim`(4 → 8 → 16) 3. 换 `mixing_mode='TF'` 或 `'local-TF'` 4. 若是金属,检查有没有 smearing 5. 若是磁性,检查 `starting_magnetization` 是否合理 6. 检查初始结构是否合理(原子距离太近会让势能发散) **详见 `21-scf-iteration.md`**。D3¶
Q:BFGS 弛豫后 space_group 与 ground truth 不符,但晶格常数差异 < 1%。可能原因?
A
**可能原因**: 1. 弛豫过程对称性轻微破缺(数值噪声)——pymatgen `symprec` 容忍度太小 2. 原子位置有微小偏差(< 0.01 Å)未能识别成完美对称 3. 变胞自由度太大让晶格从立方变到近立方——应考虑用 `cell_dofree='ibrav'` 保持对称性 4. 若真是真实的对称性破缺(如铁电相变),ground truth 可能本来就错了 **修复**:试 `symm_tol` 放宽到 1e-3,或后处理时放宽 `symprec`。**详见 `20-symmetry.md`**。D4¶
Q:你跑 calculation='bands',但是想要的能带路径 Γ→X→L 的 L 点位置不对。问题在哪?
A
L 点是**倒格矢空间**的高对称点,坐标依赖于晶格类型(FCC: L=(0.5, 0.5, 0.5) 的倒晶格坐标; BCC 不同)。常见错误: 1. 用错 `K_POINTS crystal_b`(需要相对倒格矢)vs `tpiba_b`(笛卡尔,单位 $2\pi/\text{alat}$) 2. 没用正确的 ibrav 对应的 BZ 路径 **修复**:用 `seekpath`(Python 库)自动生成正确的高对称路径。**详见 `17-bloch-bz.md`**。D5¶
Q:你为 Fe 设 nspin=2 和 starting_magnetization(1)=0.5,但输出 total magnetization = 0.000。为什么?
A
**可能原因**: 1. `starting_magnetization` 设置太小,SCF 收敛到非磁解(全局极小可能是磁性,但局部极小可能是非磁) 2. 对称性强制 up/down 等量——检查是否有 `nosym=.false.`(默认)导致禁止磁性破缺 3. 计算的初始电荷/自旋密度叠加不对——试 `starting_magnetization(1)=1.0` 4. 如果是超胞,可能需要 `starting_magnetization` 在不同原子位上给相反符号(反铁磁) **修复**:加大初始磁矩至接近实验值(Fe 约 2.2 μ_B),检查输出里有没有 "symm. ops" 过多的警告。**详见 `31-material-categories.md` 第 6 节**。第 E 部分:综合题(2 题,大题)¶
E1¶
Q:请用 2-3 分钟的时间,向一个不懂 DFT 但懂 ML 的同事解释 DFT 计算是在做什么。
提纲
**30 秒框架**:给一堆原子,算能量/结构/电子性质。因为电子是量子粒子,N 电子是 3N 维问题,超高维爆炸。 **1 分钟展开**: - 第一个关键洞察:HK 定理证明"3 维电子密度"能代替"3N 维波函数"——类似无损降维的理论存在性证明 - 第二个关键洞察:Kohn-Sham 映射把"N 体耦合"变成"N 个单体 + 共享环境"——类似 mean-field 分解 - 计算本身:SCF 自洽迭代 ≈ EM 算法;每次迭代用 Davidson 对角化 ≈ 求主成分 - 外层:BFGS 调整原子位置 ≈ bilevel 优化;用 Hellmann-Feynman 定理(envelope theorem)免去对 SCF 求导的麻烦 **1 分钟收尾**: - 不完美的部分:XC 泛函要近似(LDA/PBE/SCAN/HSE06)——像不同 backbone 网络 - 工程问题:赝势(预训练 backbone)、平面波基组(Fourier features)、k 点(数值积分采样) - 这套东西每个材料组只要几秒-几分钟在 CPU 上,支撑了整个 Materials Project、催化、电池、半导体工业 **详见 `00-simplification-chain.md`**。E2¶
Q:你现在要为自制的 DFTBench 生成 10 种半导体材料的 ground_truth,请列出完整的参数选择决策表。
提纲
**泛函**:PBE(固体事实标准,与原 benchmark 对齐) **赝势**:PseudoDojo PBE stringent(.upf, norm-conserving ONCVPSP)——stringent > standard 精度档 **对每种材料 ecutwfc 做收敛性测试**:扫 30, 40, 50, 60, 80 Ry,找能量差变化 < 1 meV/atom 的最小值 - Si, GaAs, InP, ZnS, ZnSe, CdTe, AlP, BN(hex):预计 50-60 Ry - Ge, C(diamond):Ge 需要 60+(3d 半芯),C 需要 80+(小芯体积) **ecutrho**:4×ecutwfc(norm-conserving) **k 点**:所有 8×8×8(半导体原胞通常够);可以对个别材料做收敛性测试验证 **conv_thr**:1e-10 Ry(严格,确保力/应力精度) **vc-relax 参数**: - `etot_conv_thr = 1e-5 Ry`(~0.1 meV/atom) - `forc_conv_thr = 1e-5 Ry/bohr` - `press_conv_thr = 0.1 kbar`(严格) - `cell_dofree = 'all'`(让对称性保持由结构自己决定) - `cell_factor = 2.0`(应力准确度) **初始结构**:从 Materials Project 或 Crystallography Open Database 取实验/高精度 DFT 结构作初始(避免 BFGS 陷入错误极小) **验证**: - 跑两个不同 ecutwfc 看 lattice constant 差异 < 0.01 Å - 用 pymatgen 检查空间群是否与 ground_truth.info 一致 - 和 Materials Project PBE 数据交叉验证 **保留**:完整的 QE 输入/输出文件,以备复现和 debug **详见 `15-xc-functional.md`, `16-pseudopotential.md`, `18-plane-wave-basis.md`, `22-bfgs-relax.md`, `31-material-categories.md`**。评分与下一步¶
完成所有题目后,统计你能流利口述的比例:
- ≥ 90%:扎实掌握,可以进入
diy-bench.md的 3.2 分析现有实现 - 80–90%:个别概念需要回读,但整体到位
- 60–80%:重点复习不熟章节,标记疑问点
- < 60%:建议从
00-simplification-chain.md开始按顺序重读
回到源仓库的 todo/dft-literacy.md 勾选阶段 D 的完成情况。