这是本文档旧的修订版!
动力学蒙特卡洛kMC模拟
在本教程中,我们将使用基于 AMS 软件图形窗口(GUI),介绍使用 Zacros 程序进行动力学蒙特卡罗(KMC)计算。GUI 将生成一个 pyZacros 脚本(详细参考 pyZacros 手册),该脚本可以像其他运行脚本一样通过 AMSjobs 运行。如果有一些 python 经验,将此脚本扩展到更高级的任务应该是没有困难的。
使用Zacors发表文章,需引用如下:
Stamatakis, M. and D. G. Vlachos (2011). “A Graph-Theoretical Kinetic Monte Carlo Framework for on-Lattice Chemical Kinetics.” The Journal of Chemical Physics, 134(21): 214115.
Nielsen, J., M. d’Avezac, J. Hetherington and M. Stamatakis (2013). “Parallel Kinetic Monte Carlo Simulation Framework Incorporating Accurate Models of Adsorbate Lateral Interactions.” The Journal of Chemical Physics, 139(22): 224706.
Ravipati, S., Nielsen, J., d’Avezac, M., Hetherington, J. and M. Stamatakis (2020). “A Caching Scheme to Accelerate Kinetic Monte Carlo Simulations of Catalytic Reactions”. The Journal of Physical Chemistry A, 124(35): 7140-7154. [please cite if you are using the caching scheme]
Savva, G. D. and M. Stamatakis (2020). “Comparison of Queueing Data-Structures for Kinetic Monte Carlo Simulations of Heterogeneous Catalysts”. The Journal of Physical Chemistry A, 124(38): 7843-7856. [please cite if you are using the skip-list or the pairing heap queueing system]
Ravipati, S., Savva, G. D., Christidi, I.-A., Guichard, R., Nielsen, J., Réocreux, R., and Stamatakis, M. (2022). “Coupling the Time-Warp algorithm with the Graph-Theoretical Kinetic Monte Carlo framework for distributed simulations of heterogeneous catalysts”. Computer Physics Communications, 270: 108148 [please cite if you are using the MPI Time- Warp algorithm implementation]
本教程中,我们将使用 Ziff-Gulari-Barshad 模型(改模型的介绍参考资料1、2)。
本教程产生的作业文件:下载并解压得到 *.kin 文件,在 Zacros 窗口 File → Open 可以打开该文件(注意路径中不要包含中文、空格)
第一步:一般性参数设置
打开软件图形窗口:AMSJobs → SCM → Kinetics → 点击MKMcxx 改为 Zacros模块。
在第一步中,我们将进行常规计算参数设置,位于图形窗口最右侧的面板,一般设置包括系统的条件,如温度和压力,也可以指定随机种子数,如果指定相同随机数,则多次运行也将产生相同的结果。
Runtime 部分的参数,是指定停工条件,可以设定模拟步数或、计算时间,或实际的“墙钟”时间长度,如果不设置则使用默认最大值。
Reporting 是设置采样操作的条件,包括快照操作、过程统计操作和物种数量报告操作,一般按 On Event 对测试运行是最有用的,或按 On time(即步长)设置。
GUI中的所有常规设置都相当于 simulation_input.dat 中的 Zacros 输入选项。这些选项将在脚本中作为 pyZacros Settings 对象生成。本例中使用以下设置:
第二步:设定物种
用户可以在最左侧面板上,添加气体(Gas species)和表面物种(Surface species)。首先添加气体物种:使用 + 按钮,可以添加新的气体物种。也可以从预先格式化的 Spreadsheet 数据表格中复制,然后到这个界面粘贴,从而不需要一个一个手动输入数据。字段可以为空,气体能量的默认值为0.0 eV,初始摩尔分数为0.0。
首先设置气体物种 Gas species,例如:
其中:
接下来,添加表面物种Surface species。默认情况下,总是有空的site,标记为 *。表面物种名称的末尾通常有 * 字符,表示物种的“齿”。表面物种命名遵循这个惯例的话,AMSdynamics 能正确处理“齿”数。
其中 CO* 即表示形成的 CO 吸附质,O* 表示一个氧原子形成的吸附质。
在后面的步骤中,气体和表面物种将用于建立 Clusters 和 Reactions。在设置 Clusters 和 Reactions 之后,仍然可以修改或添加新 species。在Zacros中,species 是 simulation_input.dat 文件的一部分,并以相同方式处理。它们将在脚本中生成为 pyZacros Species。在pyZacros中,Molar fractions 是 Settings 对象的一部分,用于更高级的脚本。