用户工具

站点工具

本页面的其他翻译:
  • zh

adf:simplemdofreaxams

【入门基础教程】燃烧:甲烷燃烧过程模拟、基元反应分析、反应速率常数计算、键级

本文以甲烷燃烧为例,燃烧过程中不断生成CO2和H2O,版本要求AMS2020,本文的范例使用ReaxFF模块完成,其他模块例如机器学习势、基于BAND模块则属于AIMD,除了Main的参数设置不同,其他设置完全一致。

参数设置

AMSinput > Edit > Builder创建O2与CH4的混合物:

选择力场(对于ReaxFF来说,力场列表只显示包含模拟体系的元素的力场。如果此处什么力场都没有,表示没有力场支持你的体系,可以改为使用机器学习势模块,尝试使用M3GNet-UP-2022):

点击Task:Molecular Dynamics后面的 > 按钮,设置分子动力学模拟详细参数:

  • 步数(此处设置为4万步)、步长,此处默认 0.25fs。步长乘以步数即模拟体系的微观时长,一般模拟时长控制在1ns以内,具体几百ps,一般需要根据模拟结果去看,去尝试。
    • 温度越高,步长需要设置的越小,例如 4000K 可能需要设置为 0.1 甚至 0.05fs,避免单个 Step 运动距离太长而失真
    • 如果温度很低,但是用了Molecule Gun,入射分子、原子的速度/能量很大,则也相当于温度很高,步长也需要非常低,确保每step原子的运动距离不能过大,否则一样存在单个 Step 运动距离太长而失真的问题,甚至更严重时,出现错误
  • sample frequency,每多少步保存一次轨迹(保存一次轨迹,就会更新一次logfile):
    • 如果要做 ChemTraYzer 分析,或者分析粘度、扩散系数等,那么保存轨迹的频率不能太高,要确保在 Movie 动画里面每一帧轨迹连续性很好。如果轨迹肉眼可见不连续,ChemTraYzer 分析的结果也会是错的,因为ChemTraYzer 实际就是通过追踪轨迹来分析基元反应。Movie动画轨迹连续性可以参考 300K 下 0.25fs 步长、sample frequency 为 100 的结果。
    • 如果不关心基元反应,只关心产物分布,那么 sample frequency 可以设置的很大,例如 5000,这样轨迹文件 *.results/ams.rkf 文件就不会很大。

点击 Thermostat 后面的>按钮,设置温度。如果只设置温度则为 NVT 系综,如果设置温度的同时设置 Barostat 则为 NPT 系综。

NPT 系综,一般建议在原子个数非常多,例如几万原子的情况下才使用。否则压强涨落太剧烈,可以达到几千 MPa,原子个数越多,涨落越小,这本身也是符合物理事实的。

NVT系综的设置

只需要设置系综实现的方案 Thermostat(实现 NVT 系综的算法)、Temperature、Damping constant。其中 Damping constant 表示震荡时间(在达到指定温度前,温度随机震荡),一般默认设置 100fs,也可以降低为 5fs,对结果影响不大,不过一般不修改,运行更正常一些。

恒温:温度如果只设置了一个,则不需要设置 Duration(s),整个模拟过程都是该温度

包含保温过程:Duration(s) 的数字个数比温度的数字个数少 1 个。如上图所示的设置,表示:起始温度 298K,经历 3000 步升温到1300K,然后保温 3000 步,然后经历 3000 步升温到 4300K,然后保温 20000 步,然后经历 3000 步降温到 298K,298K 直到结束。

NPT 系综的设置

在 Thermostat 设置的基础上增加 Barostat 的设置,压强的设置方式类似温度。不过 damping constant 的设置注意不能设置太小,否则有可能导致出现“singular lattice”的报错。

关于NVE系综的设置方式

Thermostat 与 Barostat 均不设置,只设置 MD 参数中的 Initial Temperature,即 NVE 系综。

结果分析

SCM - Movie - MD Properties - Temperature:

可以看到温度的变化如同设置的效果。温度曲线大致与能量曲线重合,这是因为温度的变化引起动能的变化。而高温区域不再重合,表示高温区域发生了反应,释放了热量,因此导致能量升高。这里的能量是总能量=动能(每一帧中,原子的运动速度决定)+势能(每一帧中,整个体系的构型决定)。 Graph - Delete graph可以删除该曲线的显示。

一、分子数量曲线

SCM - Movie - MD Properties - Molecules

例如:

此时横坐标是帧数,可以改为时间:MD Properties - Time在该窗口同时显示时间线(一条斜向上的直线),Graph - Curve on X Axes,时间被转换为X轴。

曲线的导出:Graph - Save as XY,可以保存为文本文件,包含XY两列数据。

二、基元反应分析、反应速率常数

这需要使用AdvancedWF模块的ChemTraYzer2.0。Movie → MD Properties → ChemTraYzer2.0:

  • T stable:滤除存在时间过短的中间体,即滤除一些由于体系密度过大,或热碰撞而产生的假产物中间体(实际碰到一起之后,可能立即就弹开了)的反应,用户可以逐渐增大到20fs、40fs,对比一下反应数量,从而了解假反应的存在情况
  • 如果勾选Write mol population与Write events per time,则可以在生成的结果中包含产物的占比,及其Mann-Kendall值(描述一个物种表现得像反应物或产物的程度),以及总体反应次数、总体键变化次数柱状图(横坐标为时间)等
  • First Frame与Final Frame:设置分析从哪一帧到哪一帧之间的反应,默认的-1表示最后一帧,即默认即分析全部时间范围
  • 其他参数一般保存默认即可

点击 Run ChemTraYzer2:

输出结果:

  • 以SMILES格式列出反应方程式、反应的级数
  • 反应速率常数(统计平均值,最大值,最小值),单位为cm3/(mol∗s)、cm2/(mol2∗s)等,与实验单位一致
  • 如上图所示,上方表格列出所有反应方程式,下方表格列出该方程式对应的每个反应事件,用户点击具体某个反应事件,Movie窗口将只呈现该反应事件中相关原子的动态过程,时间轴自动调整到合适位置,便于用户更清晰的观察、检验结果,如下图所示
  • 右下角有导出反应方程式列表的*.csv表格文件的按钮
  • 支持排序。顶部的选项点开,即可针对该项目进行排序,例如针对反应发生次数排序:
  • 如果勾选了Write mol population与Write events per time,产生的结果类似如下(该表格多出来第三部分:Average count即产物的占比;所有Mann-Kendall值都在[-1,1]范围内,作为反应物的物种应该有更多的负值,产物应该有更多正值,中间产物应该在0左右):

点击第三部分列表中的一行,将弹窗左下角改为Bar,并设置合适的宽度,例如2000,将生成柱状图类似如下(相关反应次数、键变化次数柱状图:横坐标时间,纵坐标数量):

如果按住Ctrl键,选中第三个表格中的多行,将产生相关的几种分子的数量变化曲线:

三、键级

在AMSinput中的键级,未经计算,因此其键级是图形窗口根据简单的价电子规则而猜测出来的。在Movie中是经过计算的,因此鼠标选中两个原子,窗口左下角则会显示两个原子之间的键级。

adf/simplemdofreaxams.txt · 最后更改: 2024/10/04 12:40 由 liu.jun

© 2014-2022 费米科技(京ICP备14023855号