今天教大家搭建无定型模型。无定型模型是与晶体模型相对的一个模型,模型里面的分子和原子分布没有明显的规律,所以称它为无定型模型。通常水溶液一些气体模型,一些无定型的固体结构,包括煤、活性炭以及一些无定型聚合物等,这都可以称为无定型模型。
在MS中AC模块可以帮助我们搭建无定型模型。我们以搭建氯化钠水溶液模型为例,通过建立单个水分子氯化钠,也就是钠离子跟氯离子的模型,然后进行AC模块计算。
·通常我们可以选用Compass,立场选择Construction,设置密度为1g/cm3是因为氯化钠水溶液在很多时候的研究是低浓度的,与水密度比较接近,密度设置为1g/cm3后选择构建无定型模型。
·在Composition这里输入分子数,我们这边输入5001010,就可以构建一个无定型模型。
·我们接着来看,AC模块中有一个优化我们不能选择的,因为AC模块是用蒙特卡洛法,该方法通常只能进行单核计算因此不能勾选。还有几何优化会使计算变得非常慢,这个限定仅限于可视化界面中,也可以通过一些脚本用非可视化界面,就可以进行多核并行运算。
·我们来看一下软件上的具体操作。首先我们建立水分子模型,自动加氢clean一下,然后建立,选择钠原子。
·这边说明一下这个离子的方式搭建,实际上离子在所有分子模拟软件中,包括Ms它其实不分区分离子原子,只在电荷上区分。我们可以对这个原子进行电荷上设置1,那么它就会认为这是钠离子。
·然后试试氯离子,同样的对于氯离子,我们可以将电荷设置为-1,这就是氯离子。
·然后再保持这几个模块,打开AC模块的Calculation,进行calculation,进行construction搭建。
·我们这边已经输入了一个是,我选择输入500,这个loading表示分子数,我可以自己定义,我们可以根据不同的浓度进行计算,500个水分子,10个钠离子跟10个氯离子,保持一个电荷的平衡。
·而这边实际上显示的建立后,模型的一个尺寸分25.2*25.2*25.2*25.2,密度设置为1g/cm。
·立场可以选择Compass立场,changes通常可以选择forcefield,也就是立场自动分配,可以点击run,它就开始进行计算,这边完成。
就可以看到氯化钠的溶液模型,分别就有10个氯离子变化为-1,500个水分子跟10个钠离子,这就可以跟后续进行进一步的建模,还有一些分析计算。
·刚才再回到AC模块儿界面,可以看到在options里面是没有勾选的,这个不能勾选,否则速度会非常慢,会各个优化各个原原子的位置。因为这进行是单核运算,速度会非常慢,极其不建议大家勾选这个。
因为AC建模本质上是通过蒙特卡洛法进行无定型的随机建模,结构并不一定合理,后续还需要进行退火,包括几何优化等等计算。此时优不优化各个原则位置对后续影响几乎没有,所以不建议大家勾选。
·密度可以根据需求进行添加,当然这边不一定,非常准确。包括氯化钠溶液实际上肯定是大于一的,可以设置一,后面通过分子动力学的NPT进行系统进行计算,它可以自动调整合理的密度。
·这边是输出的帧,刚才默认的是一帧,假设输出多帧,它就设出多的构型,比如输出10,输出2帧,输出5、5帧,输出5帧,结果会稍微慢一点,因为输出的帧数要多一些。
·趁着这个时间再说一下这个,实际上在construction模式里面可以选择各个一个,默认的是它自己跟,可以看到它其实是下面一个xtd文,可以看到它就产生了5帧,每一帧其实都是不一样的,但每一帧实际上都是氯化钠溶液,因为本身是随机构建,因此会产生很多构型才是正常现象。
当然对于这种水溶液模型,其实只要产生一帧,后续根据退火算法和动力学计算。就可以产生更多的合理结构。
这实际上它的核磁大小通过这个方式,核磁大小是自己确定的。如何定义一个自己要确定的核磁大小,还是选择AC模块儿?在construction里面有一个More,点击More可以看到在Cubic实际上是它会建立一个立方体盒子,所以abc三个盒子大小是确定的,根据水分子数量的密度来确定。
如果选择这个模式,a跟b就可以自己定义,c会根据密度进行计算,比如要建一个10*10,c是随便的一个格子就会根据密度进行计算。还有一个这个实际上c,c是可以自定义,比如建一个c为25的盒子,就产生一个ab,就自己生成。
刚才说了AC模块实际上是可以进行多核变形,但是在可视化界面操作中无法进行。如何进行脚本的调用?这边给大家介绍一个脚本,Ms支持Perl语言进行脚本编程,通过这个脚本可以实现Ms本身可视化界面中无法操作的一些问题。
可以看到脚本语言,相当于输入3个文件,3个xsd模型,然后调用AC模块进行construction,选择这个模型,然后进行loading的数量是500个,同样钠离子数量10个,氯离子数量10个,然后进行run,不进行几何优化,所以是no。
然后进行选择立场为compost进行charge,主要是forcefield进行,然后输出一个轨迹帧。绿色部分实际上是脚本的注释,把注释掉了,加氢后就会添加注释。这三行在Windows系统上是自己电脑上是不需要的,如果需要提交一个Linux系统上计算,去把几个脚本的注释符号给去掉,这是需要的,需要导入一个import模型才进行。
写完脚本之后,可以看到这个工具,在这就可以script job,然后可以看到这个就可以选和数了,比如说我选两个核,然后Run,它就会自己去根据计算这个脚本来进行调用一个模块进行计算。
查看AC perl的那个文件夹,可以看到,这已经生成了一个。今天强调要做这个脚本这个事情,也就是这个Ms完善的可视化界面,我们只需要通过鼠标跟键盘点击进行就可以完成。但是很多时候,它上面的鼠标不能完成很多操作,那么我们就需要通过脚本来进行深度的一个计算,包括我们后续的分子动力学计算中,常用也需要进行Perl编程。
所以说只要是涉及到计算部分,这个编程这块也是必不可少的。