lammps 报错总结
本文源于自己在学习过程中的问题及解决办法记录,仅供大家参考,可能表述并不准确,欢迎批评交流!
ERROR on proc 0: Neighbor list overflow, boost neigh_modify one or page
出现这个错误的直接原因是体系中某些原子的近邻数超过了2000个(除非你使用neigh_modify命令增加了允许的近邻数),而导致这个错误的可能因素有:
- 初始结构有问题,比如原子分布过于密集。这种情况在一开始就会出错。
- 截断半径设置的太大了,比如大于10A。可以通过命令neighbor,减小截断半径来解决。
- 在
neigh_modify
添加one
参数 - 势参数设置有问题,这种情况一般是在运行一些步后才会出错。
本文直接翻译自网页:http://lammps.sandia.gov/threads/msg36842.html
ERROR on proc 12: Angle atoms 69338 69339 69340 missing on proc 12 at step 38110 (…/ntopo_angle_all.cpp:68)
相似报错还有键bond缺失,解决办法如下:
- 初始模型是否正确,确定建模方法及参数。这里重点仔细检查,由于无法可视化,或者无法直观的观察,这里错误的可能性比较大。
- 参数设置错误
a. 势函数是否正确,如果能从文献中确定比较好。
b. neighbor
在前期优化结构的过程中,由于结构极度不合理,可临时调大bin
值,同时仔细查看neigh_modify
的参数,进行合理的修改,如
neighbor 28 bin
neigh_modify every 2 delay 10 check yes page 100000 one 10000
在优化后,调回标准值
c. timestep
d. 如果温度波动不正常,请检查控温方式及参数(temp)
e. comm_style tiled 及 fix balance
f. boundary
f. ·····································
温度达不到设置的要求,一般出现为温度偏低
在模拟nvt或者npt的时候,温度偏低。
在fix nvt时,是定义了部分原子进行nvt模拟,有部分原子未进行模拟。此时会造成,运行nvt那部分原子具有温度控制,但是未运行那部分,会保持原来的模拟温度。
此问题提供两种解决方案:
a. 利用temp对未fix部分施加温度
b. fix all nvt模拟,不需要进行nvt模拟的部分利用
fix noforce nonvt setforce 0 0 0
velocity nonvt set 0 0 0
将作用力设置为0
ERROR on proc 0: Non-numeric atom coords - simulation unstable
初始模型结构太差,原子重叠严重,导致部分数值超标 出现nan
提高能量最小化的精度,重新能量最小化。可能无法进行能量最小化
可采用软力场pair_style soft 1.0
nve:fix mobile all nve/limit 0.1
同时调整 neighbor
WARNING: Proc sub-domain size < neighbor skin, could lead to lost atoms在运行fix nve后遇到这个报错,再用nvt优化便无 (好像不可行)
WARNING:Non-numeric pressure - simulation unstable
- 在设置刚体以后,同时对刚性粒子和非刚性粒子使用NPT,这是不可行的。
此时选择其中一个使用npt系综,而另外一个使用nve或者nvt系综,此时需要在npt系综后面加关键词dilate
eg:
fix 1 rigid rigid/nvt molecule temp 298 298 1000.0
fix 2 mobile npt temp 298 298 1000.0 iso 1 1 1000.0 dilate rigid
- 体系结构优化不充分,也可能会出现此类报错。需要继续优化
fix 1 nvtall nve/limit 0.1
- 压力控制参数设置问题
Pstart,Pstop = scalar external pressure at start/end of run (pressure units)
Pdamp = pressure damping parameter (time units)
A good choice for many models is a Pdamp of around 1000 timesteps
Particle on or inside fix wall surface
由于设置了虚拟墙,而粒子正好处于虚拟墙上。尝试过长时间模拟,无法把这个粒子从墙上推开。故选择重新建模,把墙和粒子初始化模型距离分开较大距离
Out of range atoms - cannot compute PPPM
在模型优化初期,可能会遇到此类报错。猜测可能的原因是初始模型不合理导致的。可以尝试先不使用PPPM,而在优化到一定阶段后再使用。
更多推荐
所有评论(0)