在前面的教程中,我们已经知道,lammps建模方法有两种,可以使用lammps自带的建模命令建模,也可以使用第三方软件建模。
如果使用第三方软件建模,必须将模型文件转换为lammps可以识别的data文件,不同的建模方式转换方法有所不同。
Material studio软件建模完成导出car文件,可通过msi2lmp软件转化为data文件,Atomsk软件建模完成可以直接导出data文件。
假设现在已经有了data文件,我们就可以使用read_data命令将模型读入到lammps中,read_data命令的格式为:
read_data file keyword args ...
如果只需要读取一个data文件,直接将文件名写到read_data命令的后面即可:
read_data Fe.data
read_data命令支持在一个lammps代码中读取多个data文件,将不同的结构组装为一个复杂的体系。
当然,复杂体系的建模也可以在建模软件里面完成,但有些情况下,使用read_data命令会更加灵活。
比如两部分结构分别进行弛豫,达到平衡以后再组合到一起,或者两部分结构是用两种建模软件建模,分别生成data文件后,使用read_data可以很方便的组合到一起。
下面使用read_data命令建立Fe-Cu界面体系,建模过程为:
(1)运行Fe.in,生成单晶Fe模型,模型数据存到Fe.data文件中。
#Fe.data
units metal
dimension 3
boundary p p p
atom_style atomic
neighbor 2.0 bin
neigh_modify delay 0 every 1 check yes
lattice fcc 2.86
region box block 0 20 0 20 0 40 units box
create_box 1 box
create_atoms 1 box
mass 1 27
write_data Fe.data
Fe原子结构
(2)运行Cu.in,生成单晶Cu模型,模型数据存到Cu.data文件中。
#Cu.data
units metal
dimension 3
boundary p p p
atom_style atomic
neighbor 2.0 bin
neigh_modify delay 0 every 1 check yes
lattice fcc 3.61
region box block 0 20 0 20 0 40 units box
create_box 1 box
create_atoms 1 box
mass 1 64
write_data Cu.data
Cu原子结构
(3)运行All.in,读取Fe.data和Cu.data,组合为Fe-Cu界面模型,输出模型数据Fe_Cu.data。
#Fe.data
units metal
dimension 3
boundary p p p
atom_style atomic
neighbor 2.0 bin
neigh_modify delay 0 every 1 check yes
#读取Fe.data
read_data Fe.data extra/atom/types 1
#第二次调用read_data命令,读取Cu.data,offset关键字说明原子类型+1
#shift设置读取Cu模型后,Cu原子尺寸整体沿-y方向偏移22埃米
read_data Cu.data add append offset 1 0 0 0 0 shift 0.0 -22 0.0
write_data Fe_Cu.data
合成后Fe-Cu界面结构
这个例子相对简单,仅仅是说明read_data使用方法,另外掌握可以建立比较复杂的模型,例如论文“Ultra-low friction of graphene/C60/graphene coatings for realistic rough surfaces”中的模型就可以使用本文的方法进行建模。
论文中graphene/C60/graphene模型
------------------------
近期将陆续推出lammps基础教程,敬请关注微信公众号:lammps加油站。