科研笔记6:如何添加自己的力场参数2
2020-06-16 13:19阅读:
GROMACS实例分析2:碳纳米管周期体系
最早读博期间,主要用NAMD来模拟气体/水在碳纳米管中的扩散,转成Gromacs后发现网上教程不多,偶尔有几个付费的视频(有一定的启发),也有不少错误(比如碳纳米管的周期性问题)。这里做一个简单的讲解(
在实例分析1的基础上)。
目标:计算Ar在(8,8)armchair式碳纳米管中的扩散系数。
第一步:构建一个纳米管
这里比较推荐Material Studio,Avogadro(Build->Nanotube
Builder),不过还有专门针对构建纳米管的软件:Nanotube
Modeler(该软件目前看来对于初学者相当方便,比Avogadro的优势是可以建超长的纳米管,比如超过50 nm)。
图1:VMD中49.1nm (8,8)
碳纳米管示意图
第二步:创建纳米管的拓扑
创建碳纳米管的拓扑是关键。在Gromacs中,构建气体扩散体系,我更喜欢用itp文件,清爽干净。先写一个atomname2type.N2T文件,如图2。模板在gromacs安装路径share/top/oplsaa.ff里面找。碳纳米管的碳周围周期性围着3个碳,键长均为0.142
nm。根据自己对于原子的定义,修改非键参数ffnonbonded.itp和成键ffbonded.itp。
然后获得纳米管的拓扑,命令为(kb/kt/kp均为力常数默认值):
g_x2top -f CNT8.gro -o CNT8.top -ff oplsaa -nopbc -name CNT8 -kb
400000 -kt 600 -kp 150
获得CNT8.top,然后复制top文件里从[atoms]开始的信息到标准itp里面,如图3(这步可以不用操作,只是本人更喜欢itp)。
图2:atomname2type.N2T文件脚本
注意!一定要把oplsaa.ff整个文件夹拷贝到自己的工作文件夹下面,这样在跑命令的时候,系统会自动从工作文件夹读取。
图3:CNT8.itp的开头部分脚本
第三步:添加氩原子
先建立盒子,这样Ar会自动添加到盒子内,比如要把Ar添加到碳管内,可以设置一个比管径和管长略小的盒子(根据pdb/gro的坐标信息判断)。
操作指令:editconf -f CNT8.gro -o CNTbox.gro -box 1 1 49
然后添加气体,可以设置最大添加值。
genbox -cp CNTbox.gro -ci AR.gro -p CNT.top -o CNT8-AR.gro -nmol
293
注:想模拟较大分子充满碳纳米管,可以尝试:editconf -f CNT8.gro -o CNTbox.gro -d
0.01,该指令的意思是,添加的原子具体碳管0.01
nm。但是这个指令对于小分子可能会出现问题,因为小分子太小,可能会被添加到碳管外,可以根据vmd来判断,反复尝试。
第四步:添加周期性
碳纳米管是一维材料,xy上设置截断半径之外即可(比如设置6
nm),z上的数字非常重要,很多不谙碳管的科研工作者会忽略。要模拟无限长的碳纳米管,z上的周期性绝不是碳管的长度,否则将会出现图上内容(图4),正确的方法是要空出一个键长(根据xyz坐标计算长度即可)。如果碳纳米管是固定的,可不需要增加键连信息。
指令是:editconf -f CNT8-AR.gro -o CNT8-AR-new.gro -box 6 6 49.19
图4:错误的周期性导致错误的拓扑
图5:正确的周期性得到正确的拓扑
注:可以在vmd
console窗口命令行下输入pbc box
-on,并且在representation ->
period上面选z+/
z-。
第五步:修改mdp文件。
准备好top文件,如图6所示:
图6:top文件一览
碳纳米管需要固定,所以在em.mdp文件最后一行后添加:
freezegrps = CNT
;
freezedim = Y Y Y
;
这里的yyy表示yes yes yes,CNT与拓扑文件中的molecule name对应。
第六步:运行能量最小化和模拟运算
Energy minimization:
grompp -f em.mdp -p topol.top -c CNT8-AR.gro -o em.tpr
mdrun -v -deffnm em
Production Run:
grompp -f nvt.mdp -p topol.top -c em.gro -o nvt.tpr
mdrun -v -deffnm nvt
图7:nvt.mdp控温部分
第七步:提取轨迹坐标
计算MSD,注意的是一定要选择z轴上的扩散。
trjconv -s nvt.tpr -f nvt.xtc -o nvt_noPBC.xtc -pbc mol -ur
compact
make_ndx -f nvt.gro -o index.ndx
g_msd -f nvt_noPBC.xtc -s nvt.tpr -n -o msd_z.xvg -type
z
参考资料:
1. https://ke.qq.com/course/429120
2. http://bbs.keinsci.com/thread-454-1-1.html
3.
https://wenku.baidu.com/view/090f3a375a8102d276a22f68.html