我是小马老师,本文介绍固定边界丢失原子的几种解决办法。
在lammps摩擦、润湿、冲击等模拟中,z方向多设为固定的f边界,如何设置不合理,会出现丢失原子的情况。
1.原因分析
以切削模拟为例,边界条件设为ppf,在模拟的过程中,箭头处的原子有可能会移动到边界外面造成原子丢失。
2.解决方案
(1)强制忽略原子丢失
针对原子丢失问题,lammps提供了一个命令:
thermo_modify lost ignore flush yes
但是,这个命令仅用到丢失个别原子的情况。
根据经验,这个命令并不是很好用,基本难以解决问题。
(2)固定边界
把边界原子固定住也是一个常用的解决办法。
velocity boundary set 0 0 0
fix 01 boundary setforce 0 0 0
minimize命令也会造成原子的移动,所以,固定的命令一般要放到minimize之前,不然,在minimize阶段也可能会丢失原子。
这就存在一个问题,过早的固定边界可能会影响整个体系的弛豫。
因为固定层的限制,导致整个体系难以达到彻底的平衡状态。
(3)增加真空层
既然f边界处的原子在弛豫的过程中会移动,可增加一个真空层,给边界原子一个移动的空间。
change_box all z delta -10 10 units box
在z方向上下各加一个10埃米的真空层,在弛豫过程中,即使是不固定边界层,也不会丢失原子。
(4)增加反射墙
不增加真空层,也可以在z边界增加反射墙,当原子移动到边界处时,会被墙挡住,不会跑出边界。
fix zwalls all wall/reflect zlo EDGE zhi EDGE
反射墙也有缺点,如果z上下都加了反射墙,z方向的压力就难以释放,可能会影响z方向的弛豫。
以上是f边界条件下原子丢失的几种解决办法,没有一个方法是万能的,用哪个方法,还需要具体分析,不能盲目的套用。