浏览器科学分析:XRD 与 VTNA 的方法和验证
浏览器 XRD 与 VTNA 的数值验证:39 个衍射输入、动力学拟合数组、模型条件、配对计时及公开数据复现方法。
Felix Fei
浏览器科学分析:XRD 与 VTNA 的方法和验证
浏览器 XRD 与 VTNA 的数值验证:39 个衍射输入、动力学拟合数组、模型条件、配对计时及公开数据复现方法。
2026-10-01 · Mol2Mat · Felix Fei · revision 1
本文研究粉末 X 射线衍射(XRD)与可变时间归一化分析(VTNA)的浏览器实现。XRD 以 pymatgen 的离散峰表为参考,VTNA 以 Auto-VTNA 的归一化时间、评分和残差为参考,分别评价数值一致性、输入范围与计算成本。方法部分给出结构散射和动力学拟合的假设,数据部分说明峰表、拟合数组与性能统计的复现方法。
2026 年 10 月 10 日的核查中,XRD 的 39 个输入全部通过,最大峰位差为 1.4211×10⁻¹³°;VTNA 独立检查覆盖 13436 个数值,最大绝对差为 5.1509×10⁻¹¹。预热硅任务的配对中位耗时从 78.2 ms 降至 3.5 ms,VTNA 则通过评分与残差分析展示拟合约束对级数选择的影响。
XRD:粉末衍射计算与验证
晶格、结构因子与粉末强度
令晶格矩阵 的列为实空间基矢,采用省略 2π 因子的倒易晶格约定。对整数指标 ,倒易矢量、晶面间距与 Bragg 条件为:
晶胞长度和波长以 Å 表示,度与弧度在显示和三角函数边界转换。
原子散射因子使用固定的元素系数。令 ,位点占位为 ,分数坐标为 ,则:
同位点的不同元素按各自散射因子与占位作相干求和,空位的散射贡献为零。
同一角度的反射累积后,采用参考程序的 Lorentz–polarization 因子:
全参考范围的最大峰归一化为 100。图 1展示合成晶胞的计算离散峰,峰高的单位为相对强度。
参考输入与计算范围
双精度 TypeScript 内核以 pymatgen 2026.9.23 的 XRDCalculator 为参考。39 个固定输入包含 19 个可接受结果(其中两个零峰区间)和 20 个预期拒绝输入,覆盖硅、金、金红石、六方钛、三斜晶胞、混合占位、重复位点、空位、不同波长和 200 位点边界。
反射枚举按实际倒易矢量长度筛选,利用 Friedel 对称性及同元素散射因子复用减少重复运算。峰合并使用 10⁻⁵° 分箱与 ties-to-even 舍入,强度截断为 0.001 %;先在 0–150° 枚举并归一化,再裁剪请求区间。原始晶格、坐标和占位保留,默认 symprec=0。
密集峰表与边界输入
三斜测试晶胞含 856 个离散峰,用于检查一般倒易晶格及家族归并。强度阈值上下、第一峰裁剪边界和拒绝原因均纳入回放;每个输入保存原生峰表、参考耗时与 SHA-256。
逐峰数值对照
验收逐峰比较。峰个数、成员关系和 家族集合要求相同;、d 与相对强度使用下表中的既定绝对容差。强度容差作用于 0–100 的数值标尺。
| 字段 | 绝对容差 | 最大绝对差 |
|---|---|---|
| 2θ / ° | 1×10⁻⁶ | 1.4211 × 10⁻¹³ |
| d / Å | 1×10⁻⁷ | 1.7764 × 10⁻¹⁵ |
| 相对强度 / 0–100 | 1×10⁻⁴ | 9.9476 × 10⁻¹⁴ |
| 峰成员、hkl 家族 | 精确一致 | 全部一致 |
19 个可接受输入中,峰位、间距和强度的最大差分别为 1.4211×10⁻¹³°、1.7764×10⁻¹⁵ Å 和 9.9476×10⁻¹⁴。39 个测试全部通过,包括预期拒绝的输入。图 4 中的差值说明两套双精度程序对同一结构给出接近的结果;结构参数是否准确,则取决于结构来源和测量条件。
产品导出记录另含 COD 1512541 的 6 个计算峰与 JARVIS dft_3d_JVASP-1002 的 14 个计算峰;相对原生 pymatgen,两者最大角度差均为 2.8422×10⁻¹⁴°。峰表由各记录的晶格、原子坐标和占位计算,来源身份与输入哈希随结果保存。[2, 3, 4]
预热硅任务的配对测量
硅测试输入在同一 macOS Chromium 会话中交替运行旧、新分发 Worker,各预热一次后测三次。旧版为 77.1、78.2、79.3 ms,新版为 3.5、3.5、2.4 ms;中位数从 78.2 降至 3.5 ms,降低 95.5 %,节省约 74.7 ms。[5]
| 输入 | 优化前 / ms | 优化后 / ms | 耗时降低 |
|---|---|---|---|
| 硅 | 78.2 | 3.5 | 95.5 % |
两版保留全部 21 次进度事件,科学输出逐项相同;比较字段中仅移除设备自检耗时。当前分发包的 17 项 Worker 协议、存储、范围及数值检查通过,取消约 1.1 ms 后重试成功。39 个固定测试输入沿用原峰位、间距和强度容差。
计时覆盖预热 Worker 的任务提交、计算、进度通知与结果回传。复测使用相同输入、初始化状态与完整任务边界,逐次耗时用于计算图 5 中的中位数和范围。
不同输入的历史计算成本
枚举成本由倒易空间候选数和位点数共同决定。当前范围为显式三维周期晶胞、1–200 位点、0.5–3 Å 波长与 5–150° 角度区间;整数枚举盒最多 250000 个候选,候选数与位点数乘积最多 5000000。大晶胞即使原子较少,也可能产生密集倒易点。
历史单次记录中,硅测试输入的 Node 内核约 1.89 ms、原生 Python 参考约 9.11 ms;200 位点测试输入分别约 27.89 ms 与 35.31 ms。下表作为 的成本记录保留,原生与 Node 各自的计时入口随数据提供。
COD 和 JARVIS 导出记录记录的任务耗时分别为 0.135 s 和 0.081 s;独立 Python 验证还包含初始化等工作。它们记录的是不同过程。因此,评价优化效果采用前一节从任务提交到结果回传的配对测量,历史记录则用于了解各类输入的计算成本。
| 夹具 | Node / ms | Python / ms |
|---|---|---|
| 硅 | 1.894 | 9.111 |
| rutile-noncubic | 0.548 | 3.795 |
| triclinic | 4.806 | 8.720 |
| 200-sites | 27.886 | 35.311 |
结构与实验条件
计算采用运动学近似、实值正常原子散射因子和占位平均结构。实值散射因子给出 Friedel 对等强度;同位点部分占位以相干平均振幅进入 Bragg 反射。输出为按指定范围归一化的离散峰,适用于结构预览和参考峰表复现。实验谱建模需结合异常散射、热振动、缺陷与无序、择优取向、峰形、背景及仪器响应。
VTNA:反应级数分析与验证
浓度归一化与时间轴
同一反应在不同初始浓度下,进程曲线通常会以不同速度推进。Variable Time Normalization Analysis(VTNA)用浓度的候选幂次重新缩放时间轴,寻找能让这些曲线叠合的反应级数。叠合程度与温度、物料衡算、催化剂状态和实验设计一起,为动力学解释提供依据。[6, 7]
对表观速率 ,指定归一化物种的连续时间为 。在固定浓度幂下,具有共同进程函数的实验可能接近叠合;各实验需采用可比较的条件和同一进程定义。
数值核心先计算浓度中点,再取幂并累加:
这一规则与“先取幂、再作梯形积分”通常给出不同结果。分数幂、负级数与稀疏采样会放大差异,因此离散积分顺序是移植对照的一部分。
时间统一为 s、浓度统一为 M,归一化时间的单位为 。输入检查覆盖时间顺序及浓度幂的定义域;来源、初始浓度、温度、溶剂与单位转换随结果保存。
拟合约束与级数选择
每组曲线按相同规则对齐并缩放浓度,归一化时间在全局拟合前统一缩放。拟合可选择过原点、多项式或单调约束多项式,全部实验点共同参与评分:
该评分的单位为缩放浓度,测量不确定度与统计似然需另行指定误差模型。
级数搜索先评价粗网格,再细化较优区域,并保存各已评价点的评分。对选定级数重新拟合后,核对评分与搜索记录的一致性。本组合成输入中,单调和普通多项式拟合选择 1.22,过原点拟合选择 0.80;两套实现的选择相同。该比较量化拟合约束对所选表观级数的影响。
评分与独立数组验证
参考数据包含 32 个固定测试输入及相应求解器路径的输出。逐项比较数组长度、字段、字符串、布尔值、归一化时间、最优级数、评分曲面、拟合曲线、残差和警告;求解器参数要求精确一致。[8]
| 项目 | 比较规则或结果 |
|---|---|
| 固定夹具 | 32 |
| 比较数值 | 13436 |
| 评分 / RMSE 容差 | 1×10⁻⁷ |
| 其他数值容差 | 1×10⁻⁹ + 1×10⁻⁷ |native| |
| 最大绝对差 | 5.150946336129891×10⁻¹¹ |
| 确认并列最优点 | 0 |
| 显式域外拒绝 | 4 |
评分与叠合 RMSE 使用 10⁻⁷ 绝对容差,其他数值采用 。本组最优点一致,13436 个数值的最大绝对差为 5.1509×10⁻¹¹,来自 500 观测测试输入的缩放残差。
归档探针的总体状态为 blocked,独立逐字段验证状态为 numeric-passed,两项记录分别保留。四个超出输入范围的测试用例保存原生结果,并核查浏览器返回对应域限制。这样同时检验范围内的拟合结果与范围外的处理规则。
两个产品导出另外覆盖 3610 个数值,最大差为 8.8818×10⁻¹⁶。离线记录使用完整缓存的运行时与依赖。
残差与级数敏感性
残差图能直接显示这些影响:不同拟合方式选出的级数发生变化,同一拟合方式下原生与浏览器的残差却几乎重合。结合逐点残差和评分曲线,可以分辨拟合假设带来的偏差与程序移植带来的数值差异。
评分包络(score envelope) 保留满足 的已搜索点,描述指定网格与阈值下的级数敏感性。初始浓度设计、共同变化造成的级数混淆、物料衡算和 相同过量(same-excess)实验信息共同参与解释;统计置信区间需要实验重复与测量误差模型。
求解器配置与运行成本
数值核心固定 Auto-VTNA 1.2.4 与修订 4acdbd53bc38f33e2ba2fa8f50a7ba3fad93c88d。浏览器使用 Pyodide 314.0.7、Python 3.14.2、polyfit 1.0、OSQP 1.1.3 和 SCS 3.3.1。OSQP 的 eps_abs=eps_rel=10⁻⁸,SCS 回退的 eps=10⁻⁴、max_iters=100000。正常、回退、重试和全链失败均有保留验证。
| 拟合模型 | Native / s | Browser / s | 选择级数 |
|---|---|---|---|
| monotonic | 0.028084 | 1.2194 | 1.22 |
| polynomial | 0.002007 | 0.0062 | 1.22 |
| origin | 0.004025 | 0.0065 | 0.80 |
Python 科学运行时与求解器资源约 52.3 MiB。Chromium 测试中,装载运行时用了 3.2695 s,全部依赖在 3.2798 s 时就绪,两个时间从同一起点计量。WASM 线性内存为 234749952 字节,约 223.9 MiB;浏览器进程还会使用内存保存 JavaScript 对象等内容。
对同一组合成输入,浏览器的单调、多项式和过原点拟合分别约用 1.2194 s、0.0062 s 和 0.0065 s。图 9 中同时给出原生耗时,每条记录均测量一次。各拟合路径包含的初始化和求解工作不同,因此这张图呈现的是此次执行的成本;比较重复运行性能时,需要保持相同的初始化状态。
任务隔离与取消共用公共执行说明。VTNA 保留各求解路径的实测成本和运行时装载时间。
输入范围与动力学解释
浏览器域允许 2–4 组实验、最多 500 个观测、1–2 个归一化物种、1–5 阶多项式和最多 61 个评分评价,观测数与评分数乘积最多 21000,拟合须有正残差自由度。任务墙钟上限为 120 s,准入内存估算为 768 MiB。超域输入返回明确原因,网格、细化与求解器设置保持原定义。
初始浓度共同变化会混淆不同级数组合。狭窄浓度范围、低信噪比、混合与传质控制也可能形成相似叠合。催化剂失活、产物抑制与可逆性需要补充实验与动力学模型。
数据与复现
XRD 与 VTNA 的保存结果可由公开 JSON gzip 和 CSV 独立复核。XRD 数据包含 39 个固定输入及原生/浏览器峰表,按峰成员与 家族配对,分别计算 、d 和相对强度差,并核对 19 个接受结果和 20 个预期拒绝结果。optimization.json 与 optimization.csv 提供预热标记、逐次时间和输出一致性记录,可重算硅任务的配对中位数与耗时降幅。
VTNA 数据提供原始输入、归一化时间、评分、拟合曲线和逐点残差;按记录的离散积分顺序、浓度缩放、网格与拟合约束重建曲线,并采用本文逐字段容差比较。重新运行 XRD 使用固定 pymatgen 与散射系数,VTNA 使用固定 Auto-VTNA、数值依赖和求解器配置。公开附件支持保存数组、图表及统计量的复现。
Data and sources
- XRD · Raw numerical results and native references · JSON gzip
- XRD · Numerical summary · CSV
- XRD · Provenance and verification records · JSON
- XRD · All discrete peaks · CSV
- XRD · Optimization pairs, builds and cancellation · JSON
- XRD · All optimization timings including warmup · CSV
- XRD · Fixture coverage and peak counts · CSV
- VTNA · Raw numerical results and native references · JSON gzip
- VTNA · Numerical summary · CSV
- VTNA · Provenance and verification records · JSON
- VTNA · Normalized and fitted curves · CSV
- VTNA · Pointwise residuals · CSV
- VTNA · Fit wall times · CSV
- pymatgen: XRDCalculator and powder diffraction model
- Mol2Mat: archived XRD evidence and source identities
- Crystallography Open Database: theoretical Si record 1512541
- NIST JARVIS-DFT: structural data and calculation provenance
- Mol2Mat: paired real-Worker scheduling and state-reuse measurements, 2026-10-10
- D. Dalland, L. Schrecker, K. K. Hii. Auto-VTNA: an automatic VTNA platform for determination of global rate laws. Digital Discovery 3, 2118–2129 (2024). doi:10.1039/D4DD00111G
- J. Burés. Variable Time Normalization Analysis: General Graphical Elucidation of Reaction Orders from Concentration Profiles. Angewandte Chemie International Edition 55, 16084–16087 (2016). doi:10.1002/anie.201609757
- Mol2Mat: frozen VTNA sources, browser arrays and verification
- Auto-VTNA upstream source and usage documentation
- Pyodide: Python scientific runtime for WebAssembly