# compute msd/molecule command

## Syntax

    compute ID group-ID msd/molecule general_keyword general_values

- ID, group-ID are documented in compute command
- msd/molecule = style name of this compute command
- general_keywords general_values are documented in compute

## Examples

    compute 1 all msd/molecule

## Description

Define a computation that calculates the mean-squared displacement (MSD) of individual molecules. The calculation includes all effects due to atoms passing thru periodic boundaries.

Four quantites are calculated by this compute for each molecule. The first 3 quantities are the squared dx,dy,dz displacements of the center-of-mass. The 4th component is the total squared displacement, i.e. (dx*dx + dy*dy + dz*dz) of the center-of-mass.

The slope of the mean-squared displacement (MSD) versus time is proportional to the diffusion coefficient of the diffusing molecules.

The displacement of the center-of-mass of the molecule is from its original center-of-mass position at the time the compute command was issued.

The MSD for a particular molecule is 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. LIGGGHTS(R)-PUBLIC will warn you if this is not the case. Only atoms in the group contribute to the center-of-mass calculation for the molecule, which is used to caculate its initial and current position.

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.

Warning

The initial coordinates of each molecule are stored 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.

Warning

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 MSD may not reflect its true contribution. See the fix rigid command for details. Thus, to compute the MSD 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.

Warning

Unlike the compute msd command, this compute does not store the initial center-of-mass coorindates of its molecules in a restart file. Thus you cannot continue the MSD per molecule calculation of this compute when running from a restart file.

## Output info

This compute calculates a global array where the number of rows = Nmolecules and the number of columns = 4 for dx,dy,dz and the total displacement. These values can be accessed by any command that uses global array values from a compute as input. See this section for an overview of LIGGGHTS(R)-PUBLIC output options.

The array values are “intensive”. The array values will be in distance^2 units.

## Restrictions

> none

## Related commands

compute msd

Default: none