JDFTx 浏览器本机 DFT 的实现与数值验证
双精度平面波 JDFTx 的浏览器实现:六组固定体系的原生对照、原子与 Al 晶胞优化、能量导数检查,以及数据复核和计算复现条件。
Felix Fei
JDFTx 浏览器本机 DFT 的实现与数值验证
双精度平面波 JDFTx 的浏览器实现:六组固定体系的原生对照、原子与 Al 晶胞优化、能量导数检查,以及数据复核和计算复现条件。
2026-10-12 · Mol2Mat · Felix Fei · revision 1
摘要
平面波赝势密度泛函理论为分子与周期材料的电子结构、原子力和晶胞应力提供统一的计算框架。本文研究 JDFTx 双精度计算在浏览器中的实现及数值表现,涉及电子自洽求解、原子优化和晶胞优化。H₂O、NH₄⁺、金刚石 Si、岩盐 MgO、fcc Al 与自旋极化 bcc Fe 分别覆盖中性与带电分子、共价与离子晶体、金属及自旋自由度;同条件原生计算用于评估能量、力、应力与优化轨迹的一致性。
六组原生/浏览器对照包含 28 对输出帧,逐帧检查原子身份、晶胞、能量分解、力、应力、电子数、占据和占据态本征值。总能量、内能和自由能等汇总量的最大差为 Ha,力分量最大差为 Ha bohr⁻¹,应力分量最大差为 Ha bohr⁻³。H₂O、NH₄⁺、Si 和 MgO 完成固定晶胞的原子优化;Al 完成晶胞优化,并将末态晶胞交给新的执行实例作独立单点复核。
从分子到金属的计算配置
平面波展开把分子与晶体纳入同一电子结构框架。周期体系采用 Bloch 波函数,以原子单位表示,动能截断决定进入基组的倒空间分量:
本次计算使用 PBE 交换关联泛函;分子采用 SG15 ONCV 赝势,周期晶体采用 GBRV 超软赝势。JDFTx、SG15 和 GBRV 的原始方法分别见文末来源 1–3。
H₂O 与 NH₄⁺分别放在边长 18 和 20 bohr 的显式孤立晶胞中,以截断库仑相互作用描述有限体系。NH₄⁺的物理电荷为 +1,价电子数为 8;坐标、电荷、嵌入中心与赝势随输入一起固定。有限网格上的电子密度积分及靠近边界的壳层积分补充检查电荷局域性。周期体系则固定原胞、分数坐标与 点网格,保留每个 点和自旋通道的权重。
下表列出六类体系的计算条件。所有电子自洽块要求末尾连续两轮密度残差低于 。原子优化的力阈值为 Ha bohr⁻¹,晶胞优化的应力阈值为 Ha bohr⁻³。分子采用单个化学式单元;周期输入覆盖所列原胞及已定义的局部几何邻域,计算详情保存实际输入和采样条件。
代表性采样加密给出独立的能量尺度:NH₄⁺将波函数截断从 50 提高到 80 Ha 后,能量变化为 0.246 meV/atom,最大力变化为 0.000433 eV Å⁻¹;MgO 将 160 提高到 200 Ha 后,能量变化为 0.577 meV/atom,应力变化为 0.0110 GPa;Fe 对应变化为 0.495 meV/atom 和 0.0143 GPa。三组均达到预设 1 meV/atom、0.005 eV Å⁻¹ 和适用时 0.05 GPa 的比较尺度。原始记录另外保留 点、密度网格和孤立晶胞尺寸的加密对照。
| 体系 | 边界与赝势 | 截断 / Ha | k 网格 | 电子态 | 完成任务 |
|---|---|---|---|---|---|
| H₂O | 孤立 · SG15 | 50 / 320 | 1×1×1 | 中性 · 8 e · 无自旋 | 单点、原子优化 |
| NH₄⁺ | 孤立 · SG15 | 50 / 320 | 1×1×1 | +1 · 8 e · 无自旋 | 单点、原子优化 |
| Si | 金刚石原胞 · GBRV | 20 / 100 | 12×12×12 | 8 e · 无自旋 | 单点、固定晶胞原子优化 |
| MgO | 岩盐原胞 · GBRV | 160 / 800 | 6×6×6 | 16 e · 无自旋 | 单点、固定晶胞原子优化 |
| Al | fcc 原胞 · GBRV | 20 / 100 | 20×20×20 | 3 e · 8 带 · Fermi 0.01 Ha | 单点、晶胞优化、独立复核 |
| Fe | bcc 原胞 · GBRV Fe v1.5 | 160 / 800 | 16×16×16 | 16 e · 13 带 · 初始自旋 +3 | 共线自旋单点 |
完整数组的原生/浏览器对照
原生参考与浏览器执行使用匹配的源码组成、输入及赝势,参考过程另记录实际加载的 JDFTx 与 LAPACK 库。比较直接读取双精度 JSONL 输出;总能量、各能量分量、所有原子的三维力、九项应力及电子态数组按原有单位逐项对齐。图 1 中的值取整条已记录轨迹的最大绝对差,虚线表示测试开始前固定的比较阈值。
| 体系 / 帧对 | 总能量等 / Ha | 分解分量 / Ha | 力 / Ha·bohr⁻¹ | 应力 / Ha·bohr⁻³ | 占据态能级 / Ha |
|---|---|---|---|---|---|
| H₂O / 7 | 不适用 | ||||
| NH₄⁺ / 4 | 不适用 | ||||
| Si / 5 | |||||
| MgO / 5 | |||||
| Al / 5 | |||||
| Fe / 2 |
H₂O 的七帧与 NH₄⁺的四帧同时检验分子结构变化;Si 和 MgO 各有五帧,Al 有五帧,Fe 单点有两帧。末态摘要与中间几何均参与核对,因此力、晶胞和电子态的对应关系贯穿优化过程。占据态本征值最大差为 Ha;动能、Hartree 能、交换关联能和赝势能等分解分量的最大差为 Ha。 汇总能量由分解分量求和,分量差可以相互抵消;两项最大差分别反映汇总量与单独分量的一致性。
这组误差量化的是相同方法的跨运行时数值一致性。后续的采样检查与能量导数检查分别检验基组、网格和物理量的数值质量;三种证据共同构成计算结果的依据。金属的本征值比较取至少一侧占据大于 的态,保留其余能级原始输出供后续专门分析。
电子求解精度与收敛验证
电子求解精度通过固定输入的残差、总能量和完整力数组评价。对照覆盖接近收敛的迭代区间,并按预先规定的数值容差逐项比较原生与浏览器结果。
针对同一 MgO 原胞的单变量实验固定 20/100 Ha 截断、4×4×4 点、赝势、初始状态和 密度残差门槛。修复前运行到 200 轮,末两轮残差为 和 ;修复后在 38 轮结束,末两轮为 和 。能量停止规则、能级锁定和迭代上限沿用原设置,这个对照把改善定位到扩展方向的截断。
验证随后覆盖分子、晶体、金属与自旋体系,并结合力和应力差分、优化轨迹及完整场数据检查。资源测量分别记录网格规模、线性内存与执行时间。
自洽收敛、金属占据与自旋
六类体系的首个电子自洽块如图 3。每个点来自实际迭代事件;原生与浏览器都从初始密度开始求解,曲线保留各自的迭代数及非单调变化。H₂O、NH₄⁺及两种晶体的原子优化进一步要求每个几何处的电子自洽块通过同一残差检查。
Al 与 Fe 使用宽度 0.01 Ha 的 Fermi 占据,分别采用 20×20×20 与 16×16×16 点网格。金属优化以 Helmholtz 自由能为变分量:
输出同时保存内能、电子熵项和自由能;占据权重重建电子数,最高能带的占据与加权电子尾部参与检查。这里的展宽是电子占据参数,晶胞条件由结构输入给出。
bcc Fe 的初始自旋电子不平衡为 +3,并允许共线自旋在求解中弛豫。收敛后的 为 2.2598006043,每个单原子原胞对应约 2.2598 μB 的自旋磁矩;原生与浏览器差为 个电子。该值由本次 PBE/GBRV、自旋初值和晶胞共同定义,电子数同样通过占据积分复核。
从电子自洽到原子优化
结构优化把力作为下一步几何更新的依据,因此它同时检验电子态、原子索引与坐标传递。图 4 中四条计算链从实际初始几何开始,每一步保留收敛电子态和对应原子力;原生与浏览器轨迹逐帧比较,最终最大原子力都达到既定 Ha bohr⁻¹ 阈值。
H₂O 的最终最大力为 Ha bohr⁻¹,NH₄⁺为 ,Si 为 ,MgO 为 。四种优化分别输出 6、3、4、4 个几何步记录,另有各自的最终摘要帧。分子孤立晶胞和晶体固定晶胞两种条件在同一记录结构中保持各自的物理含义。
力与应力的独立能量导数检查
原子力以中心差分核查;应力以固定分数坐标下的指定应变路径核查。对晶格矩阵 ,
其中 ,采用能量对应变导数为正的应力约定,V 为参考体积。本文 Al、MgO 的 00 检查取 Q₀₀=1,其余分量为零;Fe 各向同性检查取 Q=I,对应应力迹。分子与绝缘体取 ,金属取 。
| 体系与导数 | 步长 | 解析值 | 中心差分 | 绝对差 |
|---|---|---|---|---|
| NH₄⁺ · 力 / Ha·bohr⁻¹ | 0.01 | |||
| NH₄⁺ · 力 / Ha·bohr⁻¹ | 0.005 | |||
| MgO · 力 / Ha·bohr⁻¹ | 0.01 | |||
| MgO · 力 / Ha·bohr⁻¹ | 0.005 | |||
| Al · 应力 / Ha·bohr⁻³ | 0.002 | |||
| Al · 应力 / Ha·bohr⁻³ | 0.001 | |||
| Fe · 应力 / Ha·bohr⁻³ | 0.002 | |||
| Fe · 应力 / Ha·bohr⁻³ | 0.001 | |||
| H₂O · 力 / Ha·bohr⁻¹ | 0.005 | |||
| MgO · 应力 / Ha·bohr⁻³ | 0.002 | |||
| MgO · 应力 / Ha·bohr⁻³ | 0.001 |
NH₄⁺和 MgO 各用 0.01 与 0.005 bohr 两个原子位移。步长减半后,NH₄⁺误差由 降至 Ha bohr⁻¹,MgO 由 降至 ,均约缩小四倍,与中心差分的二阶截断特征相符。H₂O 的 0.005 bohr 检查误差为 Ha bohr⁻¹。
应力检查使用 0.002 和 0.001 两个应变幅度。Al 的 00 分量误差为 和 Ha bohr⁻³;MgO 的 00 分量为 和 ;Fe 各向同性应变为 和 。这些值均通过预先固定的 Ha bohr⁻³ 阈值。完整差分数据保留两种步长、解析导数、正负扰动能量与实际计算配置。
Al 晶胞优化后的独立单点复核
fcc Al 把验证链延伸到晶胞自由度。工作台计算记录原胞体积由 122.4653854 bohr³ 调整到 111.8697285 bohr³,对应常规立方晶格常数 4.047547845 Å。优化结束后,工作流从末帧提取真实晶胞和坐标,创建新的单点任务及新的 Worker;优化记录和复核记录分别保存输入、方法、结果引用和执行身份。
| 物理量 | 浏览器计算结果 | 原生/浏览器绝对差 |
|---|---|---|
| 自由能 / Ha | -2.1033764923615754 | |
| 最大应力分量 / Ha·bohr⁻³ | ||
| 占据态能级 / Ha | 完整加权电子态数组 | |
| 原胞体积 / bohr³ | 111.8697284950 | 与优化末帧晶胞一致 |
独立浏览器单点的自由能为 −2.1033764923615754 Ha,最大应力分量为 Ha bohr⁻³。将这次浏览器单点输入原样交给原生程序重新计算,自由能差为 Ha,应力分量差为 Ha bohr⁻³,占据态本征值差为 Ha。复核同时通过电子数、占据尾部、力和原晶胞优化应力门槛。
优化末帧的自由能为 −2.1033769126596926 Ha,新的单点结果与其相差 Ha。优化路径与独立单点各自保留实际 FFT 网格和基组设置,这个差值与原生/浏览器移植误差分别统计。独立复核的意义在于:最终晶胞经一次全新的电子求解,仍满足原定的力与应力条件。
工作台中的计算与结果复用
Mol2Mat 工作台提供 DFT 单点、原子优化和晶胞优化三个入口。分子坐标与周期晶胞从结构输入进入计算,运行时可查看电子自洽进度,结束后可读取三维结构、优化轨迹和数值结果。中间帧或最终帧可以用于新的单点计算,派生记录保存父任务、帧索引和方法信息,使优化后的结构与后续电子求解保持可追溯的联系。
工作台流程检查包括 H₂O 原子优化、NH₄⁺/Si/MgO 单点,以及 Al 的“晶胞优化 → 独立单点”计算。结果和工作区经保存、重新打开、导出、导航返回与刷新后,结构、方法和执行记录仍通过内容哈希关联。Fe 自旋单点的数值验证使用已有原生/浏览器计算记录;工作台另通过一次主动取消的运行检查任务终止、记录恢复与导出。
计算在一个专属 Worker 内执行,采用单线程 binary64 CPU WebAssembly、原生 WASM 异常和 4 GiB 线性内存上限。输出增长上限为 24 MiB,单次任务的实际时间预算为 3600 s;状态、能带与网格的实测规模检查在成功输出之前执行。此次运行证据来自 macOS 上固定的 Chrome 154.0.8037.98。取消终止对应 Worker 并释放资源;运行数据与保存对象均保留本次执行身份。
| 对象 | 计算与数值验证 | 结果保存与恢复 |
|---|---|---|
| H₂O | 原子优化与原生逐帧对照 | 保存、打开、返回、刷新;中间与最终帧派生 |
| NH₄⁺ / Si / MgO | 单点与完整输出校验 | 保存、打开、返回、刷新;几何与来源身份保留 |
| Al | 晶胞优化、全新单点与原生复核 | 两个任务分别保存;整条工作流导出与恢复 |
| Fe | 已有原生/浏览器自旋单点数值记录 | 主动取消运行后,保存、打开、返回、刷新、导出记录 |
计算版本与复核条件
每组对照固定软件版本、结构、赝势、截断、采样与收敛条件,并记录计算产物和输出的校验值。原生与浏览器结果按照同一物理量定义及预先规定的容差比较。
公开的汇总 CSV、导数 CSV 和核验摘要用于复核数值结论。计算重跑采用本文所列输入与方法条件,图表可由对应数值重新绘制。
| 组成 | 版本、哈希与构建记录 |
|---|---|
| JDFTx | e305ab5de00f4b8193a503b62f314c86c36baafc |
| Emscripten / Node | 5.0.3 / 24.19.0 |
| GSL / FFTW | 2.8 / 3.3.11 |
| OpenBLAS | 原生 0.3.34;WASM 0.3.31 固定侧模块 |
| 核心源码构建 | 原生与 WASM 各 136 项实际编译/链接 |
| 源码逐项核对 | 两侧各 541 个源文件逐项匹配 |
| JDFTx WASM | 4d1d9c735f173d1cf0492ba1c9a593ca2bc32af123ddc3d560608ae3e1a34c90 |
| 对应源码归档 SHA-256 | 631c2c559ab1c6a4f0ce870942201afce24adfc894c769cd4d94b6fea409a9b8 |
结论
六组固定输入的原生/浏览器比较表明,双精度 JDFTx 移植在所测条件下保持能量、力、应力与电子态数组的一致性。四组原子优化满足既定力阈值;Al 晶胞优化后的独立浏览器单点及原生复算满足原定力与应力判据。Davidson 截断修订由同条件对照评价,力与应力由独立能量差分复核。
上述结论对应本文列出的体系、PBE 赝势配置、采样与收敛条件。数值对照、采样加密和优化终态分别采用对应的比较指标;公开数据支持汇总量、导数表与图表的复核。
数据与复现方法
能量、力和应力差值可由 summary.csv 重绘,有限差分检查可由 derivatives.csv 中的扰动能量和解析导数复核。evidence.json 提供验证摘要与结果身份。
计算复现采用本文记录的结构、赝势、截断、采样及停止条件,并按逐量容差比较结果。性能复测同时固定设备、并行配置、初始化范围与重复次数。
Data and sources
- Complete-trajectory differences · CSV
- Energy derivatives · CSV
- Verification summary and file identities · JSON
- R. Sundararaman et al. JDFTx: Software for joint density-functional theory. SoftwareX 6, 278–284 (2017). doi:10.1016/j.softx.2017.10.006
- M. Schlipf, F. Gygi. Optimization algorithm for the generation of ONCV pseudopotentials. Computer Physics Communications 196, 36–44 (2015). doi:10.1016/j.cpc.2015.05.011
- K. F. Garrity et al. Pseudopotentials for high-throughput DFT calculations. Computational Materials Science 81, 446–452 (2014). doi:10.1016/j.commatsci.2013.08.053
- JDFTx source commit e305ab5de00f4b8193a503b62f314c86c36baafc.
- Mol2Mat retained raw numerical evidence and file identities.
- Mol2Mat: saved-data Mol* figure sources, render settings and checksums.