欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

LAMPS 教程:"原子丢失 "错误原因和 4 种解决方案

最编程 2024-07-12 16:15:50
...

lammps模拟过程中,最怕的是模拟过程中出错,其中,比较常见的一个错误是“lost atoms”,也就是常说的原子丢失。

正常情况下,分子动力学模拟要保证原子数目保持不变。

nve、nvt、npt系综中的“n”就是原子数目,这些系综已经明确了模拟过程中要保证原子数目“n”不变,原子数目减少则会中止模拟,并给出“lost atoms”错误提示。

“lost atoms”错误出现的最主要的原因是某些原子在积分过程中求解得到的速度过大,根据该速度计算出的下一步位移过大,已经超出了体系盒子的范围,换句话说,速度过快的原子已经跑出了盒子,造成“lost atoms”。

导致原子速度过快的原因有以下几个方面:

(1)模型设置不合理

一般出现在多原子建模中,比如一层石墨烯原子插入到Al原子之间,由于建模时石墨烯C原子位置设置不合理,导致与Al原子重叠。

lammps教程:“lost atoms”丢失原子错误原因及4种解决方案_边界条件

在进行积分时,位置重叠或者距离过近的原子之间的排斥力过大,因此原子获得的速度过大,容易飞出box。

解决方法:

建模时注意原子排列位置,宁可离的稍远一些,也不要靠的过近。

建模之后使用minimize命令对体系进行能量最小化,minimize命令是拓扑结构上对体系进行最小化,能够解决大部分的原子重叠问题。

(2)边界条件设置不合理

如果建模过程没有问题,也没出现明显的原子重叠现象,考虑一下是否是边界条件原因。

边界条件为固定f条件,由于建模原因,模型的初始内应力又比较大,正常弛豫下,盒子应该会扩大以释放掉内应力从而达到系统平衡,而固定边界条件又不允许盒子尺寸发生变化,此时,边界上的原子会被挤出盒子,造成原子丢失。

lammps教程:“lost atoms”丢失原子错误原因及4种解决方案_边界条件_02

右上角的几个原子即将飞出盒子

解决方法:

将边界条件改为s,查看运行结果,如果盒子只是稍微扩大,没有出现盒子爆炸性的扩大,基本上属于内应力过大问题,将初始盒子尺寸扩大可以解决此类问题。

如果是某几个原子飞的太远,将盒子扩的很大,还是应该重新建模,从根本上解决问题。

(3)力场设置不合理

如果是发生了盒子“爆炸”,原子完全散开,单纯的扩大盒子尺寸没有意义,需要考虑力场设置是否合理。

力场描述原子之间的受力情况,如果力场设置不合理,可能会出现原子之间受力计算错误,原子之间的力远超正常值,也会造成原子丢失。

解决方法:更换力场。

(4)模拟步长设置不合理

当以上原因都排除后,如果还是存在“lost atoms”,考虑是否是timestep设置过大,设置更小的步长试试。

当出现丢失原子错误提示时,添加thermo_modify lost ignore 命令可以关掉错误提示,使程序能够运行下去。

但是,不建议这么做,这个命令仅仅是强制程序继续运行,不能解决原子丢失问题,程序“带病”运行,有可能会得到不正确的运行结果。

当出现“lost aotms”错误提示时,参考上述步骤,逐步分析原因,“对症治疗”才能解决问题,随着水平的提高,相信这类问题会出现的越来越少。

---------------------

更多lammps案例和教程请关注微信公众号:lammps加油站

lammps教程:“lost atoms”丢失原子错误原因及4种解决方案_建模_03