Question about compute voronoi/atom


I currently used compute stress/atom and compute voronoi/atom to compute per-atom stress in a block material system. The block material is scratched by an indenter during the simulation. However, I always got " error :Divide by 0 in variable formula". After several testing I found that the error came from the per-atom volume calculated by compute voronoi/atom. It seems that it obtained 0 volumes for some atoms during the simulation. The way this command calculating the atom volume is the voronoi cell around that atom. I was wondering why it may get 0 volume sometimes. Could anyone help me with is question? Thank you!

Compute voronoi/atom does with the documentation says it does and you get zeroes because of what you specify in your input. To find out more you would first have to know which atom(s) get a zero. For that you can dump the values into a dump file.

Thank you for the advice Prof. Akohlmey! I will check it and see what’s going on. Really appreciate your help.

Dear Prof. Akohlmey,

I dumped the whole simulation and checked the volume values. I detect two atoms that have 0 volume values, and they are both located on the edge of the simulation box. (This edge is set as shrink-wrapped as the boundary condition). I read the manual, but it seems that I cannot resolve this issue only with compute voronoi/atom command. Do you have any ideas? Thank you!

no. only that computing the per-atom volume for an “open” system with compute voronoi/atom makes no sense at the conceptual level. it will be bogus for all atoms that are not completely enclosed with other atoms (in most cases it will be far too large).

Yes, you are right. I notice that the calculated volumes for all of the atoms on the surfaces are relatively larger. I think I need to figure out how to solve this. Thank you very much for your help!