当前位置: 首页 > 工具软件 > atoms > 使用案例 >

lammps技巧:Out of range atoms - cannot compute PPPM原因分析及解决办法

郗欣嘉
2023-12-01

大家好,我是小马老师。
本文介绍一个关于“PPPM”的一个改错技巧。
在lammps力场设置中,如果pair类型带有“long”关键词,需要计算长程库仑力,如:lj/cut/coul/long。
长程库仑力的计算需要特定算法,在lammmps中对应的是kspace_style命令:

kspace_style pppm 1.0e-4

这个算法不是特别好用,经常会提示错误,最常见的一个错误是:

Out of range atoms - cannot compute PPPM

相信用过PPPM的都见过这个错误,培训班学员也经常会咨询这个问题,今天就一起分析一下这个错误的原因以及给出解决办法。
从错误信息可以看出,原子超出预定范围,根本原因是原子移动速度过快,在一个时间步内移动距离过大,超出了“范围”。
根据移动速度的大小又可以分两种情况。
(1)速度相对较低
一种情况是原子移动速度不是特别快,但在一个时间步内移动距离超出了1/2的neighbor bin,中心原子的近邻列表更新又不及时,造成lammps计算出错。
这种情况可以通过提高近邻列表更新频率解决:

neigh_modify delay 0 every 1 check yes

或者减小步长有时候也可以解决:

timestep 0.1   #0.1fs

(2)速度相对较高
第二种情况,当原子重叠度较高或者力场参数不对,原子之间的受力过大,导致原子移动速度过快,在一个时间步内甚至已经跑出了盒子,也会提示这个错误。
这种情况下,通过更改近邻列表的更新频率以及减小timestep均无法解决。
此时,只能重新建模,如果用MS建模,可先在MS跑平衡,获得一个近似平衡稳定的体系,再转data文件到lammps中,应该会解决问题。

公众号:lammps加油站

 类似资料: