compute ID group-ID inertia/molecule
compute 1 fluid inertia/molecule
Define a computation that calculates the inertia tensor of individual molecules. The calculation includes all effects due to atoms passing thru periodic boundaries.
The symmetric intertia tensor has 6 components, ordered Ixx,Iyy,Izz,Ixy,Iyz,Ixz. The tensor for a particular molecule is only computed if one or more of its atoms is 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 inertia tensor and associated 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, the 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 inertia tensor 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 inertia tensor may not reflect its true contribution. See the fix rigid command for details. Thus, to compute the inertia tensor 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.
This compute calculates a global array where the number of rows = Nmolecules and the number of columns = 6 for the 6 components of the inertia tensor of each molecule, ordered as listed above. 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.
variable inertia() function