初始模型构建

对于初始模型构建这一部分,大家可以各显神通,会编程的可以自己编程建模,不会编程的可以利用建模软件进行建模,例如用的最多的Materials Studio (MS)(虽然这是个收费软件,但是其中建模工具是免费的,相关教程百度很多),将MS得到的模型文件导入OVITO软件,再利用OVITO软件可以导出LAMMPS软件可读的格式(简化版):

lammps restat 怎么使用 lammps charge_bc

其中491为总原子数,2 为原子种类数目,xlo=0.0,xhi=25.7975998,分别为x方向的起始和终止坐标位点。1 1 0.0 0.0 0.0 分别表示原子id,原子类型,原子的x,y,z坐标。

通用版格式(包含键角之类的信息):

lammps restat 怎么使用 lammps charge_默认值_02

再利用read_data 命令直接读取这个模型文件即可

read_data       file.dat

除了借用其它软件建模外,LAMMPS也提供了一些命令帮助构建简单模型:

lattice

region

create_box

create_atoms

group

delete_atoms

由于这些命令的用法在LAMMPS中很灵性(特别是region 和group),一篇推文肯定讲不完,只能先讲一些重要的用法,然后在往后的例子讲解中带各位慢慢体会,所以这些命令就不给各位截图看手册了,有兴趣的可以自行去看~

lattice 命令

这个命令的功能很多,主要是用来定义晶格类型,晶格常数,以及晶向方向的,例如:

lattice    bcc 3.168 orient x 1 0 0 orient y 0 1 0orient z 0 0 1

表示为构建一个晶格常数为3.168,晶格类型为bcc的模型,其x方向的矢量为 [100]。。。。。

orient x 1 0 0 orienty 0 1 0 orient z 0 0 1这个是默认值,所以可以不用去写,但是要改变晶向的话就要在满足右手(还是左手,我忘了~)定则的前提下去书写。

region命令

此命令主要是用来构建模拟盒子大小以及划分模拟区域,例如(前提是定义了lattice命令):

region   box block 0 10 0 10 0 10 units lattice

表示构建一个10a*10a*10a大小的模拟盒子(a为晶格常数),无论模拟的构型有多么复杂,一般都是选择先构建一个矩形盒子,让模型在盒子中进行模拟。unitslattice为默认值,可以换成units box[那么这个盒子的大小就是10*10*10(埃)]

region  1 block 1 9 1 9 1 9

表示将盒子中x(1a-9a),y(1a-9a),z(1a-9a)的区域选中,定义为区域1,用于后续模拟。

注:一般box这个单词只用于与盒子相关的地方,只选取部分区域时,不要将其定义为box。

create_box命令:

这个命令一般是告诉LAMMPS模型中有几类原子,几类键等等,例如

create_box   2 box

表示盒子中有2种原子。

create_box   2 box bond/type 2

表示盒子中有2种原子以及2种键长。

create_atoms命令:

表示往盒子中添加原子,例如:

create_atoms    1 box

表示将类型1的原子按照lattice命令的设定填满盒子。

create_atoms    2 single 5 5 5

表示在坐标为(5a, 5a, 5a)的地方添加一个类型为2的原子。

group 命令

表示将选中的原子定义为一个组,用于后续模拟,例如:

group    1 type 1

表示将所有类型为1的原子设置为1组;

group    2 region 2

表示将处于区域2中的所有原子设置为2组;

group    3 union 1 2

表示将1,2组合并为3组。

delete_atoms命令:

表示删除不需要的原子,例如

delete_atoms group1

表示将1组的原子删掉;

delete_atomsregion 2

表示将区域2中的原子删掉;

最后将这几个命令结合使用一下

构建一个bcc的W圆柱

法一:

            lattice               bcc 3.168

            region              box block 0 10 0 10 0 10

            region              wire cylinder z 5 5 3 0 10

            create_box       1 box

            create_atoms   1 region wire

法二:

              lattice              box 3.168

              region             box block 0 10 0 10 0 10

              region             wire cylinder z 5 5 3 0 10

              create_box       1 box

              create_atoms   1 box

              group               wire region wire

              group               outer subtract all wire

              delete_atoms    group outer

注:建议自己尝试着按照手册理解下region cylinder 以及group subtract的用法

对于region 和group,这里只是介绍了其建模的小作用,其主要作用还是在模拟过程的使用,这个用法往后咱们可以结合例子慢慢说。