LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands

compute com/molecule command


compute ID group-ID com/molecule 


compute 1 fluid com/molecule 


Define a computation that calculates the center-of-mass of individual molecules. The calculation includes all effects due to atoms passing thru periodic boundaries.

The x,y,z coordinates of the center-of-mass for a particular molecule are only computed if one or more of its atoms are in the specified group. Normally all atoms in the molecule should be in the group, however this is not required. LAMMPS will warn you if this is not the case. Only atoms in the group contribute to the center-of-mass calculation for the molecule.

The ordering of per-molecule quantities produced by this compute is consistent with the ordering produced by other compute commands that generate per-molecule datums. Conceptually, them molecule IDs will be in ascending order for any molecule with one or more of its atoms in the specified group.

IMPORTANT NOTE: The coordinates of an atom contribute to the molecule's center-of-mass in "unwrapped" form, by using the image flags associated with each atom. See the dump custom command for a discussion of "unwrapped" coordinates. See the Atoms section of the read_data command for a discussion of image flags and how they are set for each atom. You can reset the image flags (e.g. to 0) before invoking this compute by using the set image command.

IMPORTANT NOTE: If an atom is part of a rigid body (see the fix rigid command), it's periodic image flags are altered, and its contribution to the center-of-mass may not reflect its true contribution. See the fix rigid command for details. Thus, to compute the center-of-mass of rigid bodies as they cross periodic boundaries, you will need to post-process a dump file containing coordinates of the atoms in the bodies.

Output info:

This compute calculates a global array where the number of rows = Nmolecules and the number of columns = 3 for the x,y,z center-of-mass coordinates of each molecule. These values can be accessed by any command that uses global array values from a compute as input. See Section_howto 15 for an overview of LAMMPS output options.

The array values are "intensive". The array values will be in distance units.

Restrictions: none

Related commands:

compute com

Default: none