计算化学公社

标题: 在用反应力场跑动力学的时候内存爆了 [打印本页]

作者
Author:
maoxinxina    时间: 2025-3-4 16:07
标题: 在用反应力场跑动力学的时候内存爆了
本帖最后由 maoxinxina 于 2025-3-4 18:01 编辑

在用附件里面的文件提交任务的时候,可以正常运行,这里是跑了50000步,但是把conf_charge.lmp里面的z的数值改为35或者40的时候,就会出现下面的提醒   

  2910   2311.1609     -26809.551     -26723.812      128632.59
===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   PID 15067 RUNNING AT i07r4n19
=   EXIT CODE: 9
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
想问下是什么原因,是因为哪个参数设置错了吗。



作者
Author:
xyan11    时间: 2025-3-4 16:32
力场文件reaxff.txt给一下 不然没法调试
作者
Author:
maoxinxina    时间: 2025-3-4 16:48
xyan11 发表于 2025-3-4 16:32
力场文件reaxff.txt给一下 不然没法调试

重新上传了一下,谢谢您。
作者
Author:
maoxinxina    时间: 2025-3-4 16:49
xyan11 发表于 2025-3-4 16:32
力场文件reaxff.txt给一下 不然没法调试

重新上传了一下,谢谢了。

作者
Author:
xyan11    时间: 2025-3-4 17:00
首先,我不太明白你的输入文件的设置:
第41行到44行这段是把z在1到4之间的原子全部固定了不受力也没速度,或者说是刚性固定这区间里的原子们
但是第59行这又把全体原子的速度给初始化了

然后,你说的“把conf_charge.lmp里面的z的数值改为35或者40的时候”具体的第41行region命令你能写给我看一遍嘛?我试了试跑到23000步也没报错
作者
Author:
maoxinxina    时间: 2025-3-4 17:09
xyan11 发表于 2025-3-4 17:00
首先,我不太明白你的输入文件的设置:
第41行到44行这段是把z在1到4之间的原子全部固定了不受力也没速度 ...

region z_layer block INF INF INF INF 1.0 4.0
作者
Author:
xyan11    时间: 2025-3-4 17:14
本帖最后由 xyan11 于 2025-3-4 17:23 编辑
maoxinxina 发表于 2025-3-4 17:09
region z_layer block INF INF INF INF 1.0 4.0

我这报了一个错ERROR on proc 2: Not enough space for hbonds! total=1250 allocated=1250

根据类似用户的经验:https://matsci.org/t/hbondchk-failed-while-using-reax-c/29923

ReaxFF不该使用metal unit,应该用real unit

改了之后报错消失 (顺便把timestep从0.0001改成0.1)
作者
Author:
maoxinxina    时间: 2025-3-4 17:19
xyan11 发表于 2025-3-4 17:14
报错时region命令就是“region z_layer block INF INF INF INF 1.0 4.0”的话 我觉得你的输入文件应该没 ...

#!/bin/bash
#SBATCH -J lammps
#SBATCH -p wzhcnormal
#SBATCH -N 1
#SBATCH --ntasks-per-node=32

module purge
source /work/home/acdsqiq3o7/apprepo/deepmd_cpu/v2.2.11-conda/scripts/env.sh

export OMP_NUM_THREADS=1

mpirun -np $SLURM_NTASKS lmp_mpi -i modified_input_with_minimization.lammps > lammps.out
这个是提交文件。
作者
Author:
xyan11    时间: 2025-3-4 17:27
本帖最后由 xyan11 于 2025-3-4 17:29 编辑
maoxinxina 发表于 2025-3-4 17:19
#!/bin/bash
#SBATCH -J lammps
#SBATCH -p wzhcnormal

应该就是lammps unit的问题

https://docs.lammps.org/pair_reaxff.html

ReaxFF只支持real unit

你可以观察一下如果用metal unit跑的时候温度会飙到几千K甚至10000K 说明立场文件里读出来的参数的单位都是错的

改成real unit 温度就一直在300K左右

你试试看吧 顺便把timestep改成0.1 (real unit下时间是飞秒) 希望有所帮助

作者
Author:
maoxinxina    时间: 2025-3-4 17:38
xyan11 发表于 2025-3-4 17:27
应该就是lammps unit的问题

https://docs.lammps.org/pair_reaxff.html

多谢,可以了。
作者
Author:
maoxinxina    时间: 2025-3-4 17:38
xyan11 发表于 2025-3-4 17:14
我这报了一个错ERROR on proc 2: Not enough space for hbonds! total=1250 allocated=1250

根据类似 ...

多谢,可以的。
作者
Author:
maoxinxina    时间: 2025-3-4 17:46
maoxinxina 发表于 2025-3-4 17:38
多谢,可以了。

跑到10000步的时候还是爆内存了,但是确实如你所说,跑的时候温度非常稳定。
作者
Author:
xyan11    时间: 2025-3-4 18:00
maoxinxina 发表于 2025-3-4 17:46
跑到10000步的时候还是爆内存了,但是确实如你所说,跑的时候温度非常稳定。

能发个报错文件和lammps日志文件嘛?
作者
Author:
maoxinxina    时间: 2025-3-4 18:02
xyan11 发表于 2025-3-4 18:00
能发个报错文件和lammps日志文件嘛?

我重新上传了一下,谢谢。
作者
Author:
xyan11    时间: 2025-3-4 18:50
我这里的新报错是:hbondchk failed或者Not enough space for bonds以及Signal: Segmentation fault (11)

我把“pair_style     reax/c NULL”改成了“pair_style     reax/c NULL mincap 100000” 增加了动态分配的内存 16个mpi task跑完了50000步 没再报错

mincap和safezone这两个都可以换个别的值 但这些都是治标不治本 要治本的话 你还是检查一下你模拟的系统里有没有不合理的地方

参考:
1. http://bbs.keinsci.com/thread-13653-1-1.html
2. https://matsci.org/t/reax-c-not-enough-space-for-bonds/13891
3. https://matsci.org/t/hbondchk-failed/25166
作者
Author:
maoxinxina    时间: 2025-3-4 18:53
xyan11 发表于 2025-3-4 18:50
我这里的新报错是:hbondchk failed或者Not enough space for bonds以及Signal: Segmentation fault (11)
...

谢谢了。




欢迎光临 计算化学公社 (http://ccc.keinsci.com/) Powered by Discuz! X3.3