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)

snapshot_per-atom-stress-xx.jpg

Ben,

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.

Aidan

Hi Ben,

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

Thanks,
Ray

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!
Best,
Ray

pair.h (8.68 KB)

reaxc_bond_orders.cpp (44 KB)