Hbond cut off reax/c

Dear Lammps Users,

I was running a simulation of ice/Ih phase with a reaxff potential file.

When I ran the simulation first, my simulation crashed giving this error message:

step15585-hbondchk failed: H=275 end(H)=1071037260 str(H+1)=24697

So, I thought may be it is happening because hbond cut off (which was completely wrong assumption, I think). Hence, I increased the hbond cutoff in the control file and ran again. To my surprise, the system runs fine.

The way I understand this error is, since the number of H bonds were more than the designated allowable H bond lammps reax/c implementation allows, the program crashed due to its inability to allocate memory. That is why a remedy to this problem is increasing safezone and min cap.

But I do not understand why my simulation is running now. If earlier a lower value of hbond cutoff was crashed the program. A higher value of hbond cutoff should intensify the problem, but the opposite happened, and I am not able to understand why this happened.

Can someone, please explain what is going on here?


There is no mystery to this at all. Reax/c uses dynamic memory allocation but still relies on estimates of size of arrays. With a larger hbond cutoff, a larger buff was used for the estimate hence a larger array.

But I strongly advise against changing the hbond cutoff to circumvent the error as changing the cutoff changes the interactions. You should increase mincap and safezone to avoid this hbondchk failures. Or better yet try the kokkos version as Stan suggested.