SPPARKS专题

SPPARKS 反应 KMC

以A+B可逆生成C为例,说明反应速率、体积、分子计数、随机事件和结果提取。

更新于 2026-10-30约 2 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载SPPARKS实操包。包内含78个真实计算条件、原始输入/轨迹/统计、独立提取脚本和11张结构与数据图。每篇建议从新的解压目录开始;已经完整计算过的目录不要再次执行同名条件,以免混入旧结果。

1. 体系与完整输入#

本例是均匀反应容器,不建立空间晶格:初始A=300、B=100、C=0,反应为A+B→C与C→A+B。

seed 40001
app_style chemistry
solve_style tree
volume 1.9098395e-13
add_species A
add_species B
add_species C
add_reaction 1 A B 10000000000.0 C
add_reaction 2 C 1.0 A B
count A 300
count B 100
stats 0.01
run 0.5

volume单位L;本例正向二级速率为1e10 M⁻¹s⁻¹,逆向为1 s⁻¹。因此这个例子的反应时间有明确的秒单位。不要把相同数字的二级速率直接当作每个分子对每秒的事件频率。

这个版本用NA=6.023e23 mol⁻¹,正向总倾向为 kf×A×B/(NA×V),逆向为 kb×C。因此体积变化会改变相同分子数下的碰撞反应速率。

2. 跑一条反应轨迹#

bash run.sh chemistry-s40001
head -n 16 work/chemistry-s40001/stdout.log

输出列为 Time Step A B C CPU:Step是已经发生的反应事件数,A/B/C是分子个数,CPU是运行耗时而非反应时间。

3. 用多个种子看随机涨落#

bash run-all.sh
ls figures/reaction-kinetics.png
head -n 8 analysis/case-summary.csv

16个独立种子的末态C平均94.4375个,样本标准差2.3372个;实际结束时刻约0.500240–0.524277 s。单条轨迹通常会跨过请求的0.5 s,不能说所有末态都严格属于同一固定时刻。

浅色是16条真实反应轨迹,红线是有限分子数主方程的平均。末态柱状图显示分子计数的均值与标准差。

浅色是16条真实反应轨迹,红线是有限分子数主方程的平均。末态柱状图显示分子计数的均值与标准差。

4. 怎样检查自己没有读错#

每一行都应满足A+C=300、B+C=100,所有计数为非负整数。相邻两行之间可能已经发生多次正、逆反应,所以Step的增量可以大于C变化的绝对值;不是每一行只发生一个反应。

stats只保存选定时刻,不是完整事件日志。本专题没有线性插值构造并未输出的分子计数;图中的连线只帮助阅读趋势。稀少分子反应有明显涨落,需要更多独立种子来估计不确定性。

相关入口:SPPARKS专题、官方文档、08Oct25源码版本。本专题使用有限小模型解释操作和输出,不把这些数字当作已收敛材料参数。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗