目录

库埃特流动(Couette flow)的分子动力学模拟

这里我们尝试库埃特流动的模型: 83025aafa40f4bfb12175489094f78f0f636182c.jpg 底层Slab通过固定最底层的原子而实现整个Slab的固定,上层Slab以固定速度向右平移。

一、模型

模型的建立,参考:复合模型(两块板间夹液体)在一定温度、压强下的弛豫,采用该步骤弛豫好的体系作为初始结构。也可以直接在NPT下弛豫,例如本例中的模型是2层石墨烯中间夹着水,只是在1atm、298K下弛豫了5万步,达到平衡。

完成的结构,可能变成这样:

不过实际上没有任何问题,将结构更新到AMSinput(Movie → File → Update Geometry in Input),在两层中间添加一个原子例如Xx虚原子,Edit → Set Origin将其设为坐标原点,然后Edit → Crystal → Map Atoms To(0..1),即可将该Cell的顶点移动到该Xx原子,然后删除该Xx原子即可。

因为要设置流动方向,因此需要显示坐标轴View → Axis,便于我们设置。而流动方向需要沿着X轴,因此 Model → Lattice 窗口点击 Align栏目的a$^→$ to x axis按钮,将Cell的A边设置为x轴。模型与窗口如下所示:

选取底层石墨烯全部原子,将其固定:Model → Geometry Constraints and PES Scan,点击fixed position前面的+,即完成固定设置。

Select → Invert Selection,因为刚才选中了底层石墨烯,现在反选了所有没有固定的原子,Model → Region将其创建为Region,例如名为unfixed,将顶上一层石墨烯设置为移动Region,名为move: 检查原子排序情况:因为一般来讲是先创建两层固体,然后通过Builder添加分子,而我们后面主要统计分子的速度,因此最好是固体原子的顺序是在一起的,例如这里我们选中固体部分,Model → Coordinates可以看到所有400个原子的编号正好是1~400。

后面我们统计原子速度的时候,统计401及其以后的原子即可。

二、参数设置

这里以ReaxFF为例,其他力场、机器学习势、AIMD、DFTB-MD完全类似。

模拟步数根据需要设置即可,这里设置为2万步,不过保存频率这里设置的很大,每5000步保存一次,这样模拟完成(加上起始帧)总共只有5帧,ams.rkf文件就比较小,便于我们处理。而且我们并不关心中间过程,所以这样设置是可以的。

保持前面弛豫的温度不变(298K),因为有固定原子,因此温度设置里面需要选择非固定原子Region unfixed:

删除压器的设置(Barostat改为None即可),因为固定原子的模拟,不适用于NPT系综。

Model → MD… → NEMD velocities and forces 点击 Apply velocity前面的+按钮,为Move这个region设置一个移动速度:

即速度沿着x轴,顶层原子(Region选择了前面创建的Move这个Region)x方向速度限定为0.1Å/fs,换算为宏观速度为10米/秒。

参数设置完毕,另存一个作业并运行。

结果处理

AMSJobs 进入作业所在文件夹 → Help → Command-line 输入sh回车,cd *.results命令进入ams.rkf所在文件夹,并通过dmpkf命令将ams.rkf转为文本文件,如下图所示:

在导出的文本文件中,找到速度、坐标,并将数据分别复制到2个txt文件,便于后面导入Excel中处理数据。因为总共5帧,我们只关心最后一帧的数据,所以分别搜索Coords(5)和velocities(5)即可看到相关数据:

每一行为一个原子的x、y、z坐标,注意单位是Bohr,1 Bohr = 0.5291772 Å 每一行为一个原子的x、y、z速度分量,单位为Bohr/fs 第一列为原子符号(当然不采集原子信息,实际上也不影响我们的分析过程)。

将各自内容,分别另存为一个txt文件,然后导入Excel表格,另外把*.run文件里面的坐标内容也拷贝出来保存为一个txt文件,最终导入到Excel中,并删除不需要的列、行(前400行是固体,所以删掉),并按z坐标大小排序(升序):

然后对X坐标这一列,进行某种平均,例如对前面17个,以及后面17个数据进行平均,得到一列新的数据(注意最后面17个数据,由于缺乏“后面17个数据”,因此最后面的17个就不需要做平均了。下图只是对该点前面46个点进行平均,实际上如果原子很多,平均点数可以扩大到100、200,甚至1000等等。用户可以自行考虑用哪种平均方式,或者采用分段平均,等等),大致可以看到x方向的运动速度随z值而增大:

如果平均范围更大,则曲线更平滑。本例中体系很小,因此统计涨落也很严重,体系增大,则曲线也会更平滑。平滑的曲线,更有利于通过差分的方式求得速度梯度。