compute ID group-ID pe/atom keyword ...
compute 1 all pe/atom compute 1 all pe/atom pair compute 1 all pe/atom pair bond
Define a computation that computes the per-atom potential energy for each atom in a group. See the compute pe command if you want the potential energy of the entire system.
The per-atom energy is calculated by the various pair, bond, etc potentials defined for the simulation. If no extra keywords are listed, then the potential energy is the sum of pair, bond, angle, dihedral,improper, and kspace energy. If any extra keywords are listed, then only those components are summed to compute the potential energy.
Note that the energy of each atom is due to its interaction with all other atoms in the simulation, not just with other atoms in the group.
For an energy contribution produced by a small set of atoms (e.g. 4 atoms in a dihedral or 3 atoms in a Tersoff 3-body interaction), that energy is assigned in equal portions to each atom in the set. E.g. 1/4 of the dihedral energy to each of the 4 atoms.
The dihedral_style charmm style calculates pairwise interactions between 1-4 atoms. The energy contribution of these terms is included in the pair energy, not the dihedral energy.
The KSpace contribution is calculated using the method in (Heyes) for the Ewald method and a related method for PPPM, as specified by the kspace_style pppm command. For PPPM, the calcluation requires 1 extra FFT each timestep that per-atom energy is calculated. Thie document describes how the long-range per-atom energy calculation is performed.
As an example of per-atom potential energy compared to total potential energy, these lines in an input script should yield the same result in the last 2 columns of thermo output:
compute peratom all pe/atom compute pe all reduce sum c_peratom thermo_style custom step temp etotal press pe c_pe
IMPORTANT NOTE: The per-atom energy does not any Lennard-Jones tail corrections invoked by the pair_modify tail yes command, since those are global contributions to the system energy.
This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See Section_howto 15 for an overview of LAMMPS output options.
The per-atom vector values will be in energy units.
compute pe, compute stress/atom
(Heyes) Heyes, Phys Rev B 49, 755 (1994),