LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands

### compute msd/molecule command

Syntax:

    compute ID group-ID msd/molecule

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

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. 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, which is used to caculate its initial and current position.

Let Nmolecules be the number of molecules for which the MSD is calculated. If not all molecules have atoms in the group, then the molecule with the lowest ID is the first of the Nmolecules. The next lowest ID is the second, etc, up to Nmolecules.

IMPORTANT NOTE: 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.

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 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.

IMPORTANT NOTE: 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 LAMMPS output options.

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

Restrictions: none

Related commands:

compute msd

Default: none