[lammps-users] Per-atom Virial Issue


I’ve done some searching through the mailing list and I seem to be having the same problem as the person posting here:


I am attempting to use the stress/atom compute, then reducing one component of this vector into a global scalar through the reduce compute. The error I get is the same as the previous poster: “ERROR: Per-atom virial was not tallied on needed timestep”. The section of my input file causing the problem looks like this:

compute peratom stressregion stress/atom
compute individualPressurex stressregion reduce sum c_peratom[1]
thermo_style custom step temp press pxx pyy pzz vol lx ly lz pe c_individualPressurex

I’ve even tried to use a similar code that was an example of how to use the stress/atom compute along with a reduce compute to get the same output as the global pressure compute (http://lammps.sandia.gov/doc/compute_stress_atom.html - bottom of page). This input section is as follows:

compute peratom all stress/atom
compute p all reduce sum c_peratom[1] c_peratom[2] c_peratom[3]
variable press equal -(c_p[1]+c_p[2]+c_p[3])/(3*vol)
thermo_style custom step temp etotal press v_press

The above input gives me the same error as my input file.

Additionally, I’ve tried to use the virial keyword on the stress/atom compute and LAMMPS is returning that it is an illegal command. Is the documentation (http://lammps.sandia.gov/doc/compute_stress_atom.html) out of date?

I am using 9 Jan 2009 LAMMPS version.

I’d greatly appreciate any help.

Joe Heidenreich