用户工具

站点工具

本页面的其他翻译:
  • zh

adf:difussion

通过速度自相关函数或均方位移MSD,得到分析分子、原子的扩散系数

本文虽然以ReaxFF分子动力学模拟结果为例,但实际上基于BAND(DFT)、DFTB、MOPAC、经典力场、Apple & P力场、机器学习势的分子动力学结果,均可如此分析。分子动力学计算方面有如下需要注意的地方:

  1. 体系已经达到平衡,否则数据就存在平均的问题
  2. 使用自相关函数计算扩散系数,则Sample frequency要设置的非常小,例如5;如果使用MSD计算扩散系数,则采用频率可以大一些(但并非必需),例如50

计算扩散系数有两种算法:

  1. 通过计算MSD得到扩散系数D:
  2. 通过计算速度自相关函数得到扩散系数D:

其中关于自相关函数的定义参考手册:

catch_02-16-16-50-40_.jpg

参数设置

常规的分子动力学模拟参数设置(参考燃烧的案例:【入门基础教程】燃烧:甲烷燃烧过程模拟、基元反应分析、反应速率常数计算、键级)没有太大区别,但是要注意在正式计算扩散系数前,要确保体系弛豫好了。

这里是以ReaxFF力场为例,机器学习势、Apple&P、普通力场、AIMD、DFTB-MD,除了Main窗口略有差别,其他设置完全一致的。

如果关心其中混合物体系中,某几类分子的扩散系数,可以将这几类分子分别创建一个Region,创建方法参考:如何创建分区

如果打算用MSD方法来分析扩散系数,就需要把Sample frequency设置为5:

总的分子动力学步数要足够大,达到几十到上百ps,以确保分子充分扩散,达到平衡,从而降低统计上的涨落误差。

结果分析

通过速度自相关函数求扩散系数

常规的分子动力学计算完毕之后,在Movie中即可分析指定分子、原子的自相关函数与扩散系数:

SCM - Movie - MD Properties - Autocorrelation Functions:

  • Steps,设置分析的时间段,从多少帧到多少帧,确保这一段里面,能量较为稳定(轻微震荡,而不是减小),例如这里前面1500帧,能量处于下降趋势,所以这里我们选择了1500帧开始,到最后一帧(省略不写即表示最后一帧)
  • Property,选择扩散系数(同时也会生成自相关函数)
  • Atoms,类似选择原子或分子,可以选择体系中所有关心的那一类分子,一起添加进去。不过事先应该为这一类分子创建Region,这样在Movie中选择起来就很方便:Select → Region,选则某个Region,该Region的分子就会特别显示,并且处于被选中的状态,点击Atoms后面的+号,就可以添加进去了
  • Vector elements,希望计算哪个方向的扩散系数?输入1表示x,2表示y,3表示z
  • Max ACF step,需要设置为小于总帧数一半的数值,可以尝试约1/3的帧数,可能误差较小。
  • All values,可以勾选上

点击Generate ACF右下角即得到扩散系数:5.57525 × 10-9 m2/s,实验值约:4.8 × 10-9 m2/s

注意,扩散系数是一个严重受统计样本影响的量,建议多次多个样本计算扩散系数求均值。

通过均方位移求扩散系数(推荐)

AMSMovie → MD Properties → MSD,弹出窗口中:

  • Steps,类似地通过设置帧数的起始值控制分析MD的时间范围
  • Atoms,类似选择原子或分子,可以选择体系中所有关心的那一类分子,一起添加进去。不过事先应该为这一类分子创建Region,这样在Movie中选择起来就很方便:Select → Region,选则某个Region,该Region的分子就会特别显示,并且处于被选中的状态,点击Atoms后面的+号,就可以添加进去了
  • Max MSD steps,需要设置为小于总帧数一半的数值,可以尝试约1/3的帧数,可能误差较小。该数值的具体大小,会影响MSD以及扩散系数的值
  • Vector elements,希望计算哪个方向的扩散系数?输入1表示x,2表示y,3表示z
  • All values,可以勾选上

点击Generate MSD即生成MSD函数

同时也会在曲线图中显示得到的扩散系数D:5.28621 × 10-9 m2/s,似乎更接近实验值。

adf/difussion.txt · 最后更改: 2024/09/27 10:42 由 liu.jun

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