大家好,我是小马老师。
如果lammps模拟体系中包含分子结构,最常见的流程是使用MS、packmol等软件建模,然后转换为lammps data文件,在lammps读入data文件。
其实,lammps也可以进行分子建模,对于一些比较简单的分子模型,使用lammps建模也比较方便。
本文以水球模型为例,介绍lammps分子类结构建模方法。
lammps创建分子的原理是把分子当做一个原子添加到体系中,和添加原子的命令一样,也是create_atoms。
命令语法规则为:
create_atoms mol template-ID seed
mol:添加分子的关键词
template-ID:分子模板,等同于ms中分子单体
seed:随机数种子,分子取向随机
具体的步骤
(1)创建分子模板(template-ID)文件
分子模板描述了一个分子单体内原子的类型、原子坐标、键、角等信息。
如下图为水分子的模板文件water.data部分内容,请加QQ群:754749935下载完整的water.data文件。
(2)编写in文件
units real
atom_style full
#创建box
region box block -20 20 -20 20 -20 20 units box
#box内原子数量、键、角等信息
create_box 2 box bond/types 1 angle/types 1 extra/bond/per/atom 2 &
extra/special/per/atom 2 extra/angle/per/atom 1
#H2O的晶格,可调节晶格尺寸控制水分子数量或水的密度
lattice bcc 3.92
#设定区域
region H2O sphere 0 0 0 18 units box
#设定分子模板id为water,对应文件water.data
molecule water water.data
#在球形区域内填充水分子
create_atoms 0 region H2O mol water 3453 units box
#设置原子摩尔质量
mass 1 16
mass 2 1
#保存模型文件
write_data H2O.data
结果如图所示:
in文件中水分子按照fcc晶格填充,这种方式的优点是填充的水分子密度与实际密度接近,不用考虑尺寸或者数量。
也可以使用random关键词设置按照一定的数量随机填充,这种情况下需要计算水分子的数量,相对麻烦。
END
公众号案例代码以及学习交流,请加QQ群:754749935
扫描关注微信公众号:lammps加油站。