lammps教程:boundary命令详解

boundary命令设置box的边界条件,语法比较简单:

boundary x y z

参数xyz分别设置该维度的边界条件,最基本的边界条件有四种:p、f、s、m。

 

lammps支持对同一方向的两个表面设置不同的边界条件,如对y方向下表面设置f边界、上表面设置s边界,可以写为:

boundary p fs p

1. 周期性边界:p

 

参数p表示周期性边界条件,当粒子从一侧飞出,会从相对应的另一侧再次进入box,一般情况下不会发生“lost atoms”丢失原子错误。

2. 固定边界:f

参数f表示box的表面在该方向上被固定住,不因体系压力的变化发生移动。

如果原子从一个表面飞出,会提示“lost atoms”错误,设置thermo_modify lost可以允许原子丢失,否则模拟过程会被终止。

3. 收缩性边界:s

参数s表示在该方向上,盒子的表面会根据体系的压力大小或原子运动情况发生移动。

一般情况下,盒子会配合原子的移动,尽量把原子包含在box内,但是当原子速度过快,位移太大时原子也可能会飞出盒子,造成“lost atoms”错误。

4. 限制性收缩:m

参数m功能和s差不多,盒子大小同样会随原子的移动而发生变化,但盒子在收缩到限定值时就不再发生变化,也就是盒子尺寸有一个最小值。

例如z方向上表面最小值设为50,当该表面收缩到50时会停止收缩,类似转换成了临时性的固定边界。


通常在建模或者读取data文件之前设置boundary命令,在模拟运行的过程中也可以改变边界条件设置。

比如,使用velocity进行拉伸时,拉伸方向z不能为周期性边界条件,但是在弛豫阶段又需要在npt系综下消除z方向的应力,否则初始应力可能不为0,这种情况下就可以先使用周期性边界条件进行驰豫,在拉伸前使用change_box命令改变周期性条件:

boundary p p p
#进行npt系综下驰豫
……
#z方向改为s
change_box all boundary p p s
#进行拉伸
……

边界条件设置比较简单,在模拟过程中出现丢失原子或者体系演化不合理时,灵活改变边界条件可能会获得比较理想的结果。

上一篇
下一篇