high per-atom stresses near bondaries with reax/c

Lammps Developers,

I’m seeing some strange behavior for the per-atom stress values using reax/c. The stresses on the atoms near the periodic boundaries are much higher than a few angstroms away (even for a perfect crystal structure). This high stress area near the wall is independent of everything else. I’ve attached an example where I have a periodic diamond structure that translates at a constant velocity. As the atoms move the high stresses move to atoms near the box boundaries (even though all the bond distances remain constant). Attached is a simple example that replicates the problem, and a picture of the stresses in the xx direction.

I’m guessing that reax/c is not tallying forces between atoms across the boundaries correctly?

Ben Jensen
PhD candidate
Mechanical Engineering - Engineering Mechanics
Michigan Technological University
Houghton, MI

reaxc_stress_error.zip (4.09 KB)



Yes, there seems to be something wrong with how the per-atom virial is tallied at periodic boundaries. I will copy this to Ray Shan, who recently implemented the per-atom stress compute for pair reax/c.


Hi Ben,

Thanks for pointing out this problem. I will take a look and let you know.


Hi Ben,
I have fixed a bug in one of the reax/c subroutines, as attached. Also changed is pair.h, where I moved one of the function from “protected” to “public” in order to provide access to the reax/c routine. Please try it out and let me know if it works for you. Thanks again for pointing this bug out!

pair.h (8.68 KB)

reaxc_bond_orders.cpp (44 KB)