forked from lijiext/lammps
121 lines
4.8 KiB
Plaintext
121 lines
4.8 KiB
Plaintext
"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/chunk command :h3
|
|
|
|
[Syntax:]
|
|
|
|
compute ID group-ID msd/chunk chunkID :pre
|
|
|
|
ID, group-ID are documented in "compute"_compute.html command
|
|
msd/chunk = style name of this compute command
|
|
chunkID = ID of "compute chunk/atom"_compute_chunk_atom.html command :ul
|
|
|
|
[Examples:]
|
|
|
|
compute 1 all msd/chunk molchunk :pre
|
|
|
|
[Description:]
|
|
|
|
Define a computation that calculates the mean-squared displacement
|
|
(MSD) for multiple chunks of atoms.
|
|
|
|
In LAMMPS, chunks are collections of atoms defined by a "compute
|
|
chunk/atom"_compute_chunk_atom.html command, which assigns each atom
|
|
to a single chunk (or no chunk). The ID for this command is specified
|
|
as chunkID. For example, a single chunk could be the atoms in a
|
|
molecule or atoms in a spatial bin. See the "compute
|
|
chunk/atom"_compute_chunk_atom.html doc page and ""Section_howto
|
|
23"_Section_howto.html#howto_23 for details of how chunks can be
|
|
defined and examples of how they can be used to measure properties of
|
|
a system.
|
|
|
|
Four quantites are calculated by this compute for each chunk. 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. These
|
|
calculations include all effects due to atoms passing thru periodic
|
|
boundaries.
|
|
|
|
Note that only atoms in the specified group contribute to the
|
|
calculation. The "compute chunk/atom"_compute_chunk_atom.html command
|
|
defines its own group; atoms will have a chunk ID = 0 if they are not
|
|
in that group, signifying they are not assigned to a chunk, and will
|
|
thus also not contribute to this calculation. You can specify the
|
|
"all" group for this command if you simply want to include atoms with
|
|
non-zero chunk IDs.
|
|
|
|
The slope of the mean-squared displacement (MSD) versus time is
|
|
proportional to the diffusion coefficient of the diffusing chunks.
|
|
|
|
The displacement of the center-of-mass of the chunk is from its
|
|
original center-of-mass position, calculated on the timestep this
|
|
compute command was first invoked.
|
|
|
|
IMPORTANT NOTE: The number of chunks {Nchunk} calculated by the
|
|
"compute chunk/atom"_compute_chunk_atom.html command must remain
|
|
constant each time this compute is invoked, so that the displacement
|
|
for each chunk from its original position can be computed
|
|
consistently. If {Nchunk} does not remain constant, an error will be
|
|
generated. If needed, you can enforce a constant {Nchunk} by using
|
|
the {nchunk once} or {ids once} options when specifying the "compute
|
|
chunk/atom"_compute_chunk_atom.html command.
|
|
|
|
IMPORTANT NOTE: This compute stores the original position (of the
|
|
center-of-mass) of each chunk. When a displacement is calculated on a
|
|
later timestep, it is assumed that the same atoms are assigned to the
|
|
same chunk ID. However LAMMPS has no simple way to insure this is the
|
|
case, though you can use the {ids once} option when specifying the
|
|
"compute chunk/atom"_compute_chunk_atom.html command. Note that if
|
|
this is not the case, the MSD calculation does not have a sensible
|
|
meaning.
|
|
|
|
IMPORTANT NOTE: The initial coordinates of the atoms in each chunk 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: Unlike the "compute msd"_compute_msd.html 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
|
|
chunk calculation of this compute when running from a "restart
|
|
file"_read_restart.html.
|
|
|
|
The simplest way to output the results of the compute com/msd
|
|
calculation to a file is to use the "fix ave/time"_fix_ave_time.html
|
|
command, for example:
|
|
|
|
compute cc1 all chunk/atom molecule
|
|
compute myChunk all com/msd cc1
|
|
fix 1 all ave/time 100 1 100 c_myChunk file tmp.out mode vector :pre
|
|
|
|
[Output info:]
|
|
|
|
This compute calculates a global array where the number of rows = the
|
|
number of chunks {Nchunk} as calculated by the specified "compute
|
|
chunk/atom"_compute_chunk_atom.html command. 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"_Section_howto.html#howto_15 for an
|
|
overview of LAMMPS output options.
|
|
|
|
The array values are "intensive". The array values will be in
|
|
distance^2 "units"_units.html.
|
|
|
|
[Restrictions:] none
|
|
|
|
[Related commands:]
|
|
|
|
"compute msd"_compute_msd.html
|
|
|
|
[Default:] none
|