[lammps-users] local stress calculations

Lammps community,

I am interested in calculating the state of stress in a diblock (A-B) copolymer film. The films I am studying typically phase separate to produce lamellar order (ie inhomogeneity is restricted to a single dimension). I am interested in studying the components of the stress tensor along the lamellar axis, ie crossing through A/B interfaces. Lammps allows for the computation of a peratom stress (units of pressure-volume). Naively, I had anticipated simply averaging peratom stresses in a region of space (much like the “fixave spatial” lammps command) to get the local stress tensor for that region of space. However, I have found a considerable body of literature discussing atomisitic calculation of local stress tensors that suggests that my naive approach is insufficient. Irving and Kirkwood first proposed a method in the '50s and Pastor and more recently Binder have built upon the Irving Kirkwood method. In all cases, an effort is made to prevent pairwise (and larger N) interactions from being double counted, or in other words the virial is “distributed” amongst the many arbitrary cubic volumes of space upon which the mechanical definition of stress is based. Typically, there is a weighting function of the contributions to the forces felt across a given face, based upon the distance of separation of the 2 (or more) particles. If anyone is really interested in this topic, I will be glad to post relevent references.

What I am interested in is knowing whether anyone has thought about calculating local stresses using lammps and has there been any initial attempt to implement the Irving-Kirkwood, method of planes, or more recent methods of calculating stress from atomistic simulations? I am aware of current efforts to simply apply a cutoff to the peratom virial in determining stress from MD. Does anyone have any opinions/expertise on this topic that they would share? Thanks,


Hi Chris,

I certainly have opinions on this topic, if not expertise. In LAMMPS, the
user-atc package has an implementation of the method by Robert J. Hardy,
which uses a weighting function like what you mention to calculate continuum
fields (stress, among other quantities) associated with a finite volume of
space. More information can be found in LAMMPS' documentation:


Regarding using Hardy or other methods to evaluate local stress in
multi-elemental systems, I recently came across an article by Branicio and
Srolovitz (Journal of Computational Physics 228, 8467­8479, 2009) in which
they examine how effective Hardy and a spatial-averaged virial metric are
for such systems. Hopefully, this article will be of some use to you.

Feel free to e-mail me back if you need help in understanding or using the
user-atc module.


Jon Zimmerman
[email protected]

We have a recent paper on this, including how LAMMPS computes
per-atom and global virial/stress. See the LAMMPS citation
page and the JCP 2009 with Aidan Thompson as the 1st author.
Aidan (athomps at sandia.gov) can give you chapter and verse
on IK vs other methods.