首页 >> 仿真软件说明 >>lammps >>bob版 >> 润湿-MS+packmol建模
详细内容

润湿-MS+packmol建模

时间:2025-05-06     作者:鲍路瑶【原创】   阅读

所需软件

目前市面上充斥着各种建模、模拟、后处理和绘图软件,我们不可能面面俱到,每个软件都会。所以只挑选了几个上手简单,又可以完成相对比较复杂的功能的软件。

建模工具包括Packmol,Material Studio和Atomsk。Packmol(http://leandro.iqm.unicamp.br/m3g/packmol/home.shtml)使用方法非常简单,只需少量脚本就可以建立比较复杂的模型,如下图所示。我们将使用Packmol建立所需形状的各类液滴,比如水滴、离子液滴、溶液液滴等。

image.png

Atomsk(https://atomsk.univ-lille.fr/index.php)用于构建具有复杂结构的基底。类似于Packmol,Atomsk同样具有容易上手,脚本简单,功能强大的特点,特别对于各种晶体模型(无论2D或者3D)的建立很方便。在润湿模拟,基底通常具有很多微观结构,使用Atomsk无疑可以达到事半功倍的效果。

image.png

Material Studio用于一些简单的建模、模型组装以及加力场,也可以用于可视化出图。

模拟主要靠LAMMPS全家桶,包括lammps主程序以及一些附件工具,如msi2lmp等。

image.png

可视化和后处理工具主要包括OVITO和VMD,我们还需要会一些简单的脚本和小程序。


使用Packmol建立液滴模型

使用Packmol建立液滴模型需要以下几个文件:Packmol执行程序、分子模板文件和Packmol脚本文件。

Packmol源代码和执行文件可以在官网获取,我们也在QQ群(670911765)里上传了,需要的同学在群文件中自行下载。

http://www.ime.unicamp.br/~martinez/packmol/userguide.shtml

Packmol语法非常简单,堪称一看就会,一做就对,就没有专门讲解的必要了,如果同学们有需求可以专门写一期。

现在准备分子模板,分子模板可以认为是我们需要建立模型的最小单位,比如水滴的分子模板就是水分子。如果液滴中含有不同分子、或者离子,则分子模板也需要分开准备。下面以纯水液滴和氯化钠溶液液滴为例。


水分子模板

HEADER    water

COMPND

SOURCE

HETATM    1  H   HOH     1       9.626   6.787  12.673

HETATM    2  H   HOH     1       9.626   8.420  12.673

HETATM    3  O   HOH     1      10.203   7.604  12.673

CONECT    1    3

CONECT    2    3

CONECT    3    1    2

END

水分子需要给出原子序号、类型和相对位置(HETATM开头的行),以及连接情况(CONECT开头的行),其余行应该每个分子模板都是一样的。


氯离子模板

REMARK   Materials Studio PDB file

REMARK   Created:  Sun Apr 08 01:52:21 中国标准时间 2018

ATOM    1 Cl   MOL  2  -0.457   1.541  18.284  1.00  0.00  Cl1-  

TER       2


钠离子模板

REMARK   Materials Studio PDB file

REMARK   Created:  Sun Apr 08 01:52:05 中国标准时间 2018

ATOM     1  Na  MOL 2  0.653 1.541  18.284  1.00  0.00 Na1+  

TER       2

氯离子模板和钠离子模板仅需给出离子的位置就行(ATOM开头的行),可以随意修改。细心的同学可以看出水分子模板和氯离子、钠离子的模板格式有些不同,那么笔者是怎么知道该怎么写呢?事实上,我也不知道,其实也不用关心,因为这个模板是从Materials Studio里面导出出来的。只需在Materials Studio建立一个水分子、氯离子或者钠离子在导出pdb格式文件即可,需要注意的事这个时候并不需要建立box。所以读者可以自行建立pdb文件,也可以采用本文给出的模板,将模板内容复制进入文档,并分别命名为H2O.pdb、Cl.pdb和Na.pdb即可。


Packmol脚本文件

下面开始准备Packmol脚本文件,本文以球形液滴为例。Packmol脚本文件的逻辑非常简单,即:读入分子模板==>把指定数量的分子放入指定区域==>写出模型文件。以下是Packmol脚本文件示例:

# #表示注释

tolerance 2.0  #tolerance表示距离约束容差,可以理解为原子间最小距离不低于该值,对于水分子和氯离子钠离子来说2Å是个不错的值

filetype pdb   #filetype表示原子类型,这里选择pdb格式

output Droplet.pdb #output表示输出文件,droplet.pdb为输出文件名


# 1000个水分子置于半径为20球内部

# 球心位于原点

structure H2O.pdb #以H2O.pdb为模板建立structure 

 number 1000     #水分子数量为1000

  inside sphere 0.0 0.0 0.0 20.0 #inside sphere表示在球内部,0.0 0.0 0.0 为球心坐标,20.0为半径

end structure     #停止使用该模板建模


# 10个氯离子和钠离子置于半径为20球内部

# 球心位于原点

structure Cl.pdb 

  number 10     

  inside sphere 0.0 0.0 0.0 20.0 

end structure


structure Na.pdb 

  number 10     

  inside sphere 0.0 0.0 0.0 20.0 

end structure




使用packmol和MS建模

将该脚本命名为Droplet.inp,将Packmol执行程序、分子模板文件和Packmol脚本文件放进同一个文件夹,如下图:

image.png

打开命令窗口,使用以下命令即可完成建模。

Packmol<Droplet.inp


image.png

image.png


文件夹中已经输出模型文件Droplet.pdb

image.png

用Materials Studio打开即可。


使用MS建立基底+基底液滴合并

本期是润湿系列教程的第三期,主要讲解使用MS建立基底,并与上期使用Packmol建立的液滴合并,导出之后即可进行下一步操作,即模拟。

MS建立基底

在实际的模拟,基底常常会有不同的结构,使用atomsk可以轻易得到,我们在这里不讲解关于atomsk的操作。假设基底具有为原子级光滑的表面,首先需要得到基底的晶胞坐标,也可以直接下载晶胞的结构文件,然后在MS中进行扩胞,得到需要的尺寸即可,在此我们采用后一种方法。

假设润湿过程为:纳米水液滴在铜基底上润湿,所以我们先得到铜的cif文件,可从以下网址获取:

http://rruff.geo.arizona.edu/AMS/amcsd.php

在Mineral一栏中输入:copper,然后点击search即可

image.png


得到结果如下图所示,有14个搜索结果,都大同小异,我们选择第一个结果,点击下载CIF data即可。

image.png


使用MS打开下载的cif文件,点击如图所示的小立方体,就可知晶胞的参数,三个长度数据和三个角度数据,此案例中a=b=c,三个角度均为90度。

image.png


我们假设润湿模拟中基底的a、b方向长度为50*晶胞棱长,c方向为3*晶胞棱长,所以需要对该模型进行扩胞,即建立supercell。路径为:Build>Symmetry>supercell。

image.png


点击之后如下图所示,输入所需的倍数即可,这里为50*50*3。

image.png


得到模型,如下:

image.png


换个显示角度:

image.png


建立液滴模型

建立球状液滴,建立方法在教程二中已有说明,为了使液滴和基底可以顺利合并,并使模拟顺利进行,需要注意以下2点:

(1)packmol建立的液滴模型需要在MS中加个box,即建立成“晶体”,才可以与基底合并,且“晶体”的a和b需要和基底的保持一致,即a=b=180.748。

(2)液滴的密度应用在模拟温度下的密度保持一致,300K下水的密度约为1 g/cm3。

假设液滴的半径的2.5 nm,根据密度可以算出该液滴中水分子有个。液滴在a和b方向上在基底中央,c方向上在基底表面上方5 Å,则可知液滴球心位置为:90.374  90.374  35.84488。

Packmol的输入文件如下:

# #表示注释

tolerance 2.0  #tolerance表示距离约束容差,可以理解为原子间最小距离不低于该值,对于水分子和氯离子钠离子来说2Å是个不错的值

filetype pdb   #filetype表示原子类型,这里选择pdb格式

output Droplet_R20.pdb #output表示输出文件,droplet.pdb为输出文件名


# 1000个水分子置于半径为20球内部

# 球心位于原点

structure H2O.pdb #以H2O.pdb为模板建立structure 

  number 1000     #水分子数量为1000

  inside sphere 90.374 90.374 35.84488 20.0 #inside sphere表示在球内部,90.374 90.374 35.84488 35.84488 为球心坐标,20.0为半径

end structure     #停止使用该模板建模

运行文件并把得到的文件用MS打开,如下图所示:

image.png


建立“晶体”,路径为:Build>crystal>build crystal并设a=b=180.748,c=100即可。

image.png


得到模型如下:

image.png



合并基底和液滴

合并液滴和基底,路径为Build>Build layers,层1为基底,层2为液滴,注意查看两个模型的a和b是否相等,不等的话最好进行调整,此处模型没有问题。

image.png


合并后模型如下,该模型经过简单的设置就可以导出进行模拟了!

image.png


感谢鲍路瑶老师的分享,内容来自于鲍老师分享出来的资料

如有需要添加微信:lmp_zhushou  进入微信群,帮助他人,共建社区

获取完整版lammps讲义可以加微信lmp_zhushou或加入QQ994359511


最新评论
请先登录才能进行回复登录
技术支持: CLOUD | 管理登录
seo seo