LAMMPS常用建模方法总结

建模是进行材料模拟的第一步,这里对LAMMPS常用的建模方法进行总结(我平时用到的,难免不全面)。

概况来说,建模方法有两种:内部建模和外部建模。

内部建模

内部建模,即使用LAMMPS提供的命令建立模型。这种方法主要用于构建比较简单和标准的体系。

相关命令主要有4个:

  • lattice:定义晶格类型;
  • region:定义模拟盒子的大小;
  • create_box:创建模拟盒子;
  • create_atoms:在模拟盒子中创建原子。

当然,创建模型不仅限于这些命令,还有一些其他的命令,比如delete_atoms等。事实上,我看到有些大牛仅仅使用LAMMPS的内置命令,就建立了很复杂的模型。

下面简单举一例:构建6x6x6的FCC-Cu的晶胞。

输入脚本:in.fcc-Cu

# model of FCC-Cu, 6x6x6

boundary        p p p
units           metal
atom_style      atomic

######################################
lattice         fcc 3.61
region          box block 0 6 0 6 0 6
create_box      1 box
create_atoms    1 box
######################################

pair_style      eam
pair_coeff      * * /home/xbduan/lammps/potentials/Cu_u3.eam

dump            1 all cfg 1 a*.cfg id type xs ys zs
dump_modify     1 element Cu
run             0

第8~11行即为建模部分。这里使用的命令参数很简单,不做过多介绍。

稍微复杂的模型构建,我会专门开博文介绍。

外部建模

外部建模主要是通过数据文件 data file实现的,即只要你将你需要的构型以data file所要求的格式保存成文件,就能够被LAMMPS读入,而建立模型。

假如已经有了能够反映模型的data file后,就可以直接使用read_data命令完成建模了。

data file基本格式

如下图所示,这给出的是data file最基本的格式,只包含原子坐标,而不包含键能键角等参数,一般的合金体系是这种类型。

description of data file

上面的注释已经比较明确了,不多解释。更多可以参考LAMMPS文档。

data file获取方式

实际上,只要你最后得到的data file的格式类似于上面(不包括注释),就可以被LAMMPS读入,而不管你是采用什么途径。

目前来说,比较遗憾的是还没有任何一种软件支持直接导出data file的文件格式,但是因为data file文件格式还比较简单,所以还是比较容易获得的。

1. 软件导出+手动编辑

很多软件,如Material Studio,具有强大的建模功能,而且支持很多种文件格式的导出。遗憾的是,目前还不支持直接导出data file格式。

(1)使用建模软件完成建模后,导出xyz文件格式(因为xyz文件格式与data file格式比较相近,比较容易修改);

(2)使用文本编辑器,参考上图所示的data file的文件格式编辑xyz文件,主要是增加模拟盒子的参数。

这种方法适用于构型相对简单、原子数不多的情况下,否则编辑的工作量会很大。

我写过一个matlab脚本,可以完成这种格式转换:【xyz2lmp: 将xyz格式转成lammps的data file

2. 程序产生

使用程序建模是最自由的方式,因为它几乎不受任何限制。不论你的模型多么复杂,总能够使用一定的算法完成建模。

但,这要求你对你要建立的模型由深入的理解和有一定的编程能力来实现你的算法。

对于一些复杂的模型,如位错、多晶等缺陷,几乎只能用这种方法实现(如果你能够在网上找到现成的代码,You are lucky!)。

因为这种方法因模型差异很大,所以这里也不做过多介绍了。

如果你还有其他更好的方法,请回复告诉我,谢谢!

标签: lammps, 建模

相关文章推荐

添加新评论 (无需注册,可直接评论)

已有 7 条评论

  1. sadw

    大神,能不能再发一下那个链接,都过期了?

  2. Calvin

    你好,上面两个链接都已经失效了,能否再发一遍?

  3. abert

    想请教吧主怎么直接用命令建立在一个体系里建立两种晶格

    1. 可以建。个人经验还是通过MS或者编程实现更方便。

      1. 董董

        编程用什么软件比较好呢?

  4. 彭超

    真心谢谢,这就是“夜空中最亮的星”,解释很到位,尤其是文字字体和排版相当美观。

  5. lily_sj

    总结很好,学习了。