CAE软件操作小百科(35)
2017-03-21席强
收稿日期: 2016[KG*9〗11[KG*9〗30
作者简介: 席强(1994—),男,陕西汉中人,硕士研究生,研究方向为海水应力腐蚀机理,(Email)xiqiang@tongji.edu.cn1LAMMPS的Lattice命令
LAMMPS本身在建模方面是比较薄弱的,因此Lattice命令在LAMMPS建模中具有举足轻重的地位.Lattice可以建立大多数晶格模型,在金属、晶体、材料等相关领域的研究中使用比较频繁.
Lattice命令可以定义一个其他指令可以使用的晶格.在LAMMPS中,一个晶格是空间中简单的点集,由基本原子构成的可在三维空间中无限复制的晶胞(反映晶体对称性的最小重复单元,也称单胞)所组成.Lattice命令定义的晶格应用在2处:第一,在模拟盒子内部的格点上创建原子(可以为基本原子分配不同的原子类型)create_atoms command;第二,三维晶格中的晶格间距可以被其他命令,如create_box,region,velocity等,作为距离单元使用.
Lattice命令的决定参数.一个晶格由晶胞、晶胞内部的基本原子和变换参数(密度、平移规则、取向)决定.矢量a1,a2,a3是晶胞的棱矢量,在固态物理学里面用术语“基矢”来表示,应用时应基于此查找相关文献.在LAMMPS中不一定要用最小体积的原胞(最小的周期性重复单元)决定晶格参数,比如在peri/pmb等介观势函数力场下晶粒大于原胞体积,在某些情况下又由基本原子决定.
原胞类型要对应维度.晶格类型必须要与模拟的维度匹配.简单立方sc,体心立方bcc,面心立方fcc,六角密堆积hcp和金刚石diamond类型用于三维建模;四方sq,sq2 和六方hex类型用于二维建模;自定义custom类型既可以用于二维也可以用于三维建模.
Keyword的使用.origin选项指定在将单胞布置到模拟盒子中的时候,如何对其进行上浮或者平移.参数x,y,z是分数值(0≤(x,y,z)<1.0),意思是说按着相应方向上的晶格间距的分数值进行平移或者上浮.orient选项指定在将单胞布置到模拟盒子中的时候,如何对其进行旋转,其实是设置坐标轴放在哪个晶格方向上.所指定的3个晶格方向必须是相互正交并且满足右手定则的.spacing选项用来直接设置晶格间距,只在特殊情况下使用.
2LAMMPS中重叠原子的处理
如果随机给定初始条件,不可避免会产生原子重叠.模拟开始时必须把重叠原子推开,否则模拟无法进行.处理重叠原子和能量最小化有区别,因为推开原子不一定能量就最小.处理办法目前主要有以下3种.
(1)pair_style soft command加上small timestep, soft style可使原子坐标重叠力不会无穷大,再加上小的时间步,这样原子一次移动的距离不会太大(最好<0.1个单位),从而保证推开重叠原子.
(2)fix nve/limit command可通过限制最大移动距离来实现原子的分离,此办法对势能和时间步长没有特殊要求.
(3)minimize command可通过一定的算法使系统能量最小化,在某些时候可以用来推开重叠原子,一般用于周期性模拟盒子,而且系统中没有需要固定不动的原子.
相比较而言,较为常见的是minimize command,但有些时候还是会报错,所以这里推荐第二种办法,使用方便且命令自身对模拟系统没有特别的要求,较为通用.
3LAMMPS中的fix deform命令
一般地,fix deform命令用来改变体系形状从而模拟非平衡动力学,可以通过多种方法产生非平衡行为.这里抛开动力学问题不谈,介绍其用于系统建模时的技巧和特殊用处.
用fix deform来设置体系密度的命令如下
fix 1 all deform 1000 x final -50.0 50.0 y final -50.0 50.0 z final -50.0 50.0 units box
其原理在于通过改变系统的体积来改变系统的密度.使用final style对于精确设定系统体积很有帮助,在建立模拟体系时,如果体系只有单独一个,可以把边界设置好;也可以把初始的体系密度设置很大,然后利用这个命令改变到自己所要的密度上,从而不再从read.data中改变边界值(如果这样的话,对于跨边界的bond会出错).这个技巧对于需要通过改变密度来模拟不同体系时非常方便,不用多次做初始化数据的工作.
在使用时需要注意以下几点.
(1)用命令改变长度时,一定要加上单位,最好不要默认,否则也可能出错.
(2)最好在开始时使用此命令来设定密度,因为改变密度后还有个趋平过程,如果中间改变的话,以前的模拟步数都要舍弃,这样会增加模拟的时间.
(3)此命令可能会使系统产生宏观速度,所以使用后最好用velocity command重新初始化速度.
(4)此命令是用从新标度原子的方法来变化坐标的,如果体系有刚性的物体或多个必须固定的原子,就不要用或者把这些原子先剔除,把其他的改变好后再放入体系.
4LAMMPS如何生成data文件
由于LAMMPS本身生成初始坐标文件的能力无法很好地适应不同的模拟方向,因而许多初始坐标要自己写成data文件.LAMMPS对读入的data文件有自己的格式要求,需要具備一定编程能力才能自主编写data文件,下面总结几种编写data文件的方法.
(1)仔细阅读手册中关于data文件的章节,明白data文件的格式及用法.先模拟例子中与自己领域相关的例子,用restart命令继续计算.restart文件通过工具文件夹中的restart2date工具转换成data文件,然后套用格式到自己的初始坐标文件中.
(2)将工具文件夹中的msi2lmp.exe拷贝到指定文件夹下,在MS(Materials Studio)中建立好结构模型后,在ds模型或者forcite模型中指定力场类型,export结构保存为car格式,同时自动有mdf格式的文件生成,将car和mdf文件以及力场文件拷贝到msi2lmp.exe所在的文件,运行msi2lmp.exe,生成文件data.xxx.
(3)在MS中导出pdb格式文件,套用上面方法(1)中的固定格式.
在实际使用中,建议常使用第三种办法,即得到坐标文件→固定格式→修改,既可以避免在转换过程中产生的错误,又对自身模型有一个更深刻的理解,不能过分依赖现有程序.
在LAMMPS的使用中,遇到问题先联想已经掌握的方法,再考虑应用此方法的“副作用”并想办法解决或避免,在此过程中一定要反复查阅手册(http://lammps.sandia.gov/doc/Manual.html),最终形成自己的问题解决办法.
(摘自同济大学郑百林教授《CAE操作技能与实践》课堂讲义)