This question is regarding the computation of volume of an atom. I have read many posts in the LAMMPS archive that suggest that the volume of an atom, in general, cannot be well-defined and I completely understand this sentiment. But I have read papers where the authors claim to be calculating “local atomic stress”. One of those papers is “Atomistic simulations of the yielding of gold nanowires” authored by Jiankuai Diaa, Ken Gall, Martin L. Dunn, Jonathan A. Zimmerman. I think Dr. Zimmerman would be best suited to answer my question.# I wonder how the “effective atomic volume” is calculated in these papers. One way I could think of involves computing the volumes of Voronoi cells. But this would not work (if I am not wrong) for surface atoms. The papers I have been talking about involve the simulation of nanowires which consist of surface atoms. I guess the right question is “how would one even define the volume of a surface atom?” Any comments are greatly appreciated. Thank you all for your time.

This question is regarding the computation of volume of an atom. I have read
many posts in the LAMMPS archive that suggest that the volume of an atom, in
general, cannot be well-defined and I completely understand this sentiment.
But I have read papers where the authors claim to be calculating “local
atomic stress”. One of those papers is “Atomistic simulations of the

indeed. this quantity is easily accessible in LAMMPS.

yielding of gold nanowires” authored by Jiankuai Diaa, Ken Gall, Martin L.
Dunn, Jonathan A. Zimmerman. I think Dr. Zimmerman would be best suited to
answer my question.

I wonder how the “effective atomic volume” is calculated in these papers.

it isn't.

One way I could think of involves computing the volumes of Voronoi cells.
But this would not work (if I am not wrong) for surface atoms. The papers I
have been talking about involve the simulation of nanowires which consist of
surface atoms. I guess the right question is “how would one even define the
volume of a surface atom?” Any comments are greatly appreciated. Thank you
all for your time.

the answer is rather simple. you don't need a volume.
what LAMMPS computes the virial stress, which is
computed from the pairwise (or equivalent) forces for
each "style" and then turned into a local atomic properly
by equally distributed it over the atoms involved in
the interaction style.

I am probably confused. What is the command that computes local atomic stress directly in LAMMPS? I know that the command “compute stress/atom” is “really a stressvolume formulation, meaning the computed quantity is in units of pressurevolume. It would need to be divided by a per-atom volume to have units of stress (pressure).” Am I missing something here? I was under the impression that the stress obtained using this command has to be divided by local atomic volume to obtain the “local-atomic stress” as mentioned in the documentation.

I am probably confused. What is the command that computes local atomic
stress directly in LAMMPS? I know that the command "compute stress/atom" is

it is tallied into per-atom arrays during the force calculations.

"really a stress*volume formulation, meaning the computed quantity is in
units of pressure*volume. It would need to be divided by a per-atom
volume to have units of stress (pressure)." Am I missing something here? I

units don't necessarily indicate how something is computed.
in fact, here it is the other way around. you need to *multiply*
with a volume to get the pressure. *this* is why there is no simple
way to compute a per-atom pressure or per-subvolume pressure.

was under the impression that the stress obtained using this command has to
be divided by local atomic volume to obtain the "local-atomic stress" as
mentioned in the documentation.

nope. it may be worth having a look into an MD text book to
revisit the relation between forces, virial and pressure.

We were having a similar issue with a nanorod under tension from both ends. The rod is placed in a larger box with periodic boundary condition. However, atoms in the system do not cross the periodic boundary during the entire application of tensile stress by making the containing box big enough. The graduate student working with me asked the same question and this is what we finally do.

Compute Pxx, Pyy and Pzz for the system. The volume used in the computation by LAMPPS corresponds to the volume of the containing box (vol). We then compute the initial volume of the rod from the box dimension (v_mobile). This was done under periodic boundary condition before placing the nanowire in the big box. At the end of the simulation, we determined the final volume of the rod, since we had no buckling or necking (elastic regime). From the initial and final volume, the rate of change of the system volume can be obtained and then used to normalized the Pxx, Pyy and Pzz components to obtain total stress per atom for the mobile rod as follow.

So you want to print out your pxx, pyy and pzz and then normalized them in a post processing script to obtain the total stress per atom as a function of time as follow.

I already sent my response before I found other people’s suggestion on this . The method I described earlier was adopted because the potential we used for the simulation (Reaxx) was not set up to compute stress per atom, so we had to get in a rough way. If your potential can get stress per atom directly, then you should be good.

Thank you for your suggestions. I think the method you suggested (for Reaxx) should work fine because, as you said, you are in elastic regime. What you have suggested seems very close to the first point in Dr. Zimmerman’s response to my post. This is a fascinating problem for sure. Thank you very much for your time.