"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c

:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)

:line

compute msd command :h3

[Syntax:]

compute ID group-ID msd keyword values ... :pre

ID, group-ID are documented in "compute"_compute.html command :ulb,l
msd = style name of this compute command :l
zero or more keyword/value pairs may be appended :l
keyword = {com} :l
  {com} value = {yes} or {no} :pre
:ule

[Examples:]

compute 1 all msd
compute 1 upper msd com yes :pre

[Description:]

Define a computation that calculates the mean-squared displacement
(MSD) of the group of atoms, including all effects due to atoms
passing thru periodic boundaries.  For computation of the non-Gaussian
parameter of mean-squared displacement, see the "compute
msd/nongauss"_compute_msd_nongauss.html command.

A vector of four quantites is calculated by this compute.  The first 3
elements of the vector are the squared dx,dy,dz displacements, summed
and averaged over atoms in the group.  The 4th element is the total
squared displacement, i.e. (dx*dx + dy*dy + dz*dz), summed and
averaged over atoms in the group.

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

The displacement of an atom is from its original position at the time
the compute command was issued.  The value of the displacement will be
0.0 for atoms not in the specified compute group.

If the {com} option is set to {yes} then the effect of any drift in
the center-of-mass of the group of atoms is subtracted out before the
displacment of each atom is calcluated.

IMPORTANT NOTE: Initial coordinates are stored in "unwrapped" form, by
using the image flags associated with each atom.  See the "dump
custom"_dump.html command for a discussion of "unwrapped" coordinates.
See the Atoms section of the "read_data"_read_data.html 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"_set.html command.

IMPORTANT NOTE: If an atom is part of a rigid body (see the "fix
rigid"_fix_rigid.html command), it's periodic image flags are altered,
and its contribution to the MSD may not reflect its true contribution.
See the "fix rigid"_fix_rigid.html 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"_dump.html containing
coordinates of the atoms in the bodies.

IMPORTANT NOTE: If you want the quantities calculated by this compute
to be continuous when running from a "restart file"_read_restart.html,
then you should use the same ID for this compute, as in the original
run.  This is so that the created fix will also have the same ID, and
thus be initialized correctly with atom coordinates from the restart
file.

[Output info:]

This compute calculates a global vector of length 4, which can be
accessed by indices 1-4 by any command that uses global vector values
from a compute as input.  See "this
section"_Section_howto.html#howto_15 for an overview of LAMMPS output
options.

The vector values are "intensive".  The vector values will be in
distance^2 "units"_units.html.

[Restrictions:] none

[Related commands:]

"compute msd/nongauss"_compute_msd_nongauss.html, "compute
displace_atom"_compute_displace_atom.html, "fix
store/state"_fix_store_state.html, "compute
msd/molecule"_compute_msd_molecule.html

[Default:]

The option default is com = no.
