forked from lijiext/lammps
696 lines
32 KiB
Plaintext
696 lines
32 KiB
Plaintext
.. index:: dump
|
|
|
|
dump command
|
|
============
|
|
|
|
:doc:`dump custom/vtk <dump_custom_vtk>` command
|
|
================================================
|
|
|
|
:doc:`dump h5md <dump_h5md>` command
|
|
====================================
|
|
|
|
:doc:`dump image <dump_image>` command
|
|
======================================
|
|
|
|
:doc:`dump movie <dump_image>` command
|
|
======================================
|
|
|
|
:doc:`dump molfile <dump_molfile>` command
|
|
==========================================
|
|
|
|
Syntax
|
|
""""""
|
|
|
|
.. parsed-literal::
|
|
|
|
dump ID group-ID style N file args
|
|
|
|
* ID = user-assigned name for the dump
|
|
* group-ID = ID of the group of atoms to be dumped
|
|
* style = *atom* or *atom/gz* or *atom/mpiio* or *cfg* or *cfg/gz* or *cfg/mpiio* or *dcd* or *xtc* or *xyz* or *xyz/gz* or *xyz/mpiio* or *h5md* or *image* or *movie* or *molfile* or *local* or *custom* or *custom/gz* or *custom/mpiio*
|
|
* N = dump every this many timesteps
|
|
* file = name of file to write dump info to
|
|
* args = list of arguments for a particular style
|
|
.. parsed-literal::
|
|
|
|
*atom* args = none
|
|
*atom/gz* args = none
|
|
*atom/mpiio* args = none
|
|
*cfg* args = same as *custom* args, see below
|
|
*cfg/gz* args = same as *custom* args, see below
|
|
*cfg/mpiio* args = same as *custom* args, see below
|
|
*dcd* args = none
|
|
*xtc* args = none
|
|
*xyz* args = none
|
|
|
|
.. parsed-literal::
|
|
|
|
*xyz/gz* args = none
|
|
|
|
.. parsed-literal::
|
|
|
|
*xyz/mpiio* args = none
|
|
|
|
.. parsed-literal::
|
|
|
|
*custom/vtk* args = similar to custom args below, discussed on :doc:`dump custom/vtk <dump_custom_vtk>` doc page
|
|
|
|
.. parsed-literal::
|
|
|
|
*h5md* args = discussed on :doc:`dump h5md <dump_h5md>` doc page
|
|
|
|
.. parsed-literal::
|
|
|
|
*image* args = discussed on :doc:`dump image <dump_image>` doc page
|
|
|
|
.. parsed-literal::
|
|
|
|
*movie* args = discussed on :doc:`dump image <dump_image>` doc page
|
|
|
|
.. parsed-literal::
|
|
|
|
*molfile* args = discussed on :doc:`dump molfile <dump_molfile>` doc page
|
|
|
|
.. parsed-literal::
|
|
|
|
*local* args = list of local attributes
|
|
possible attributes = index, c_ID, c_ID[N], f_ID, f_ID[N]
|
|
index = enumeration of local values
|
|
c_ID = local vector calculated by a compute with ID
|
|
c_ID[N] = Nth column of local array calculated by a compute with ID
|
|
f_ID = local vector calculated by a fix with ID
|
|
f_ID[N] = Nth column of local array calculated by a fix with ID
|
|
|
|
.. parsed-literal::
|
|
|
|
*custom* or *custom/gz* or *custom/mpiio* args = list of atom attributes
|
|
possible attributes = id, mol, proc, procp1, type, element, mass,
|
|
x, y, z, xs, ys, zs, xu, yu, zu,
|
|
xsu, ysu, zsu, ix, iy, iz,
|
|
vx, vy, vz, fx, fy, fz,
|
|
q, mux, muy, muz, mu,
|
|
radius, diameter, omegax, omegay, omegaz,
|
|
angmomx, angmomy, angmomz, tqx, tqy, tqz,
|
|
c_ID, c_ID[N], f_ID, f_ID[N], v_name
|
|
|
|
.. parsed-literal::
|
|
|
|
id = atom ID
|
|
mol = molecule ID
|
|
proc = ID of processor that owns atom
|
|
procp1 = ID+1 of processor that owns atom
|
|
type = atom type
|
|
element = name of atom element, as defined by :doc:`dump_modify <dump_modify>` command
|
|
mass = atom mass
|
|
x,y,z = unscaled atom coordinates
|
|
xs,ys,zs = scaled atom coordinates
|
|
xu,yu,zu = unwrapped atom coordinates
|
|
xsu,ysu,zsu = scaled unwrapped atom coordinates
|
|
ix,iy,iz = box image that the atom is in
|
|
vx,vy,vz = atom velocities
|
|
fx,fy,fz = forces on atoms
|
|
q = atom charge
|
|
mux,muy,muz = orientation of dipole moment of atom
|
|
mu = magnitude of dipole moment of atom
|
|
radius,diameter = radius,diameter of spherical particle
|
|
omegax,omegay,omegaz = angular velocity of spherical particle
|
|
angmomx,angmomy,angmomz = angular momentum of aspherical particle
|
|
tqx,tqy,tqz = torque on finite-size particles
|
|
c_ID = per-atom vector calculated by a compute with ID
|
|
c_ID[N] = Nth column of per-atom array calculated by a compute with ID
|
|
f_ID = per-atom vector calculated by a fix with ID
|
|
f_ID[N] = Nth column of per-atom array calculated by a fix with ID
|
|
v_name = per-atom vector calculated by an atom-style variable with name
|
|
d_name = per-atom floating point vector with name, managed by fix property/atom
|
|
i_name = per-atom integer vector with name, managed by fix property/atom
|
|
|
|
|
|
|
|
Examples
|
|
""""""""
|
|
|
|
.. parsed-literal::
|
|
|
|
dump myDump all atom 100 dump.atom
|
|
dump myDump all atom/mpiio 100 dump.atom.mpiio
|
|
dump myDump all atom/gz 100 dump.atom.gz
|
|
dump 2 subgroup atom 50 dump.run.bin
|
|
dump 2 subgroup atom 50 dump.run.mpiio.bin
|
|
dump 4a all custom 100 dump.myforce.* id type x y vx fx
|
|
dump 4b flow custom 100 dump.%.myforce id type c_myF[3] v_ke
|
|
dump 2 inner cfg 10 dump.snap.*.cfg mass type xs ys zs vx vy vz
|
|
dump snap all cfg 100 dump.config.*.cfg mass type xs ys zs id type c_Stress[2]
|
|
dump 1 all xtc 1000 file.xtc
|
|
|
|
Description
|
|
"""""""""""
|
|
|
|
Dump a snapshot of atom quantities to one or more files every N
|
|
timesteps in one of several styles. The *image* and *movie* styles are
|
|
the exception: the *image* style renders a JPG, PNG, or PPM image file
|
|
of the atom configuration every N timesteps while the *movie* style
|
|
combines and compresses them into a movie file; both are discussed in
|
|
detail on the :doc:`dump image <dump_image>` doc page. The timesteps on
|
|
which dump output is written can also be controlled by a variable.
|
|
See the :doc:`dump_modify every <dump_modify>` command.
|
|
|
|
Only information for atoms in the specified group is dumped. The
|
|
:doc:`dump_modify thresh and region <dump_modify>` commands can also
|
|
alter what atoms are included. Not all styles support all these
|
|
options; see details below.
|
|
|
|
As described below, the filename determines the kind of output (text
|
|
or binary or gzipped, one big file or one per timestep, one big file
|
|
or multiple smaller files).
|
|
|
|
.. note::
|
|
|
|
Because periodic boundary conditions are enforced only on
|
|
timesteps when neighbor lists are rebuilt, the coordinates of an atom
|
|
written to a dump file may be slightly outside the simulation box.
|
|
|
|
.. note::
|
|
|
|
Unless the :doc:`dump_modify sort <dump_modify>` option is
|
|
invoked, the lines of atom information written to dump files
|
|
(typically one line per atom) will be in an indeterminate order for
|
|
each snapshot. This is even true when running on a single processor,
|
|
if the :doc:`atom_modify sort <atom_modify>` option is on, which it is
|
|
by default. In this case atoms are re-ordered periodically during a
|
|
simulation, due to spatial sorting. It is also true when running in
|
|
parallel, because data for a single snapshot is collected from
|
|
multiple processors, each of which owns a subset of the atoms.
|
|
|
|
For the *atom*\ , *custom*\ , *cfg*\ , and *local* styles, sorting is off by
|
|
default. For the *dcd*\ , *xtc*\ , *xyz*\ , and *molfile* styles, sorting by
|
|
atom ID is on by default. See the :doc:`dump_modify <dump_modify>` doc
|
|
page for details.
|
|
|
|
The *atom/gz*\ , *cfg/gz*\ , *custom/gz*\ , and *xyz/gz* styles are identical
|
|
in command syntax to the corresponding styles without "gz", however,
|
|
they generate compressed files using the zlib library. Thus the filename
|
|
suffix ".gz" is mandatory. This is an alternative approach to writing
|
|
compressed files via a pipe, as done by the regular dump styles, which
|
|
may be required on clusters where the interface to the high-speed network
|
|
disallows using the fork() library call (which is needed for a pipe).
|
|
For the remainder of this doc page, you should thus consider the *atom*
|
|
and *atom/gz* styles (etc) to be inter-changeable, with the exception
|
|
of the required filename suffix.
|
|
|
|
As explained below, the *atom/mpiio*\ , *cfg/mpiio*\ , *custom/mpiio*\ , and
|
|
*xyz/mpiio* styles are identical in command syntax and in the format
|
|
of the dump files they create, to the corresponding styles without
|
|
"mpiio", except the single dump file they produce is written in
|
|
parallel via the MPI-IO library. For the remainder of this doc page,
|
|
you should thus consider the *atom* and *atom/mpiio* styles (etc) to
|
|
be inter-changeable. The one exception is how the filename is
|
|
specified for the MPI-IO styles, as explained below.
|
|
|
|
|
|
----------
|
|
|
|
|
|
The *style* keyword determines what atom quantities are written to the
|
|
file and in what format. Settings made via the
|
|
:doc:`dump_modify <dump_modify>` command can also alter the format of
|
|
individual values and the file itself.
|
|
|
|
The *atom*\ , *local*\ , and *custom* styles create files in a simple text
|
|
format that is self-explanatory when viewing a dump file. Many of the
|
|
LAMMPS :doc:`post-processing tools <Section_tools>`, including
|
|
`Pizza.py <http://www.sandia.gov/~sjplimp/pizza.html>`_, work with this
|
|
format, as does the :doc:`rerun <rerun>` command.
|
|
|
|
For post-processing purposes the *atom*\ , *local*\ , and *custom* text
|
|
files are self-describing in the following sense.
|
|
|
|
The dimensions of the simulation box are included in each snapshot.
|
|
For an orthogonal simulation box this information is is formatted as:
|
|
|
|
.. parsed-literal::
|
|
|
|
ITEM: BOX BOUNDS xx yy zz
|
|
xlo xhi
|
|
ylo yhi
|
|
zlo zhi
|
|
|
|
where xlo,xhi are the maximum extents of the simulation box in the
|
|
x-dimension, and similarly for y and z. The "xx yy zz" represent 6
|
|
characters that encode the style of boundary for each of the 6
|
|
simulation box boundaries (xlo,xhi and ylo,yhi and zlo,zhi). Each of
|
|
the 6 characters is either p = periodic, f = fixed, s = shrink wrap,
|
|
or m = shrink wrapped with a minimum value. See the
|
|
:doc:`boundary <boundary>` command for details.
|
|
|
|
For triclinic simulation boxes (non-orthogonal), an orthogonal
|
|
bounding box which encloses the triclinic simulation box is output,
|
|
along with the 3 tilt factors (xy, xz, yz) of the triclinic box,
|
|
formatted as follows:
|
|
|
|
.. parsed-literal::
|
|
|
|
ITEM: BOX BOUNDS xy xz yz xx yy zz
|
|
xlo_bound xhi_bound xy
|
|
ylo_bound yhi_bound xz
|
|
zlo_bound zhi_bound yz
|
|
|
|
The presence of the text "xy xz yz" in the ITEM line indicates that
|
|
the 3 tilt factors will be included on each of the 3 following lines.
|
|
This bounding box is convenient for many visualization programs. The
|
|
meaning of the 6 character flags for "xx yy zz" is the same as above.
|
|
|
|
Note that the first two numbers on each line are now xlo_bound instead
|
|
of xlo, etc, since they repesent a bounding box. See :ref:`this section <howto_12>` of the doc pages for a geometric
|
|
description of triclinic boxes, as defined by LAMMPS, simple formulas
|
|
for how the 6 bounding box extents (xlo_bound,xhi_bound,etc) are
|
|
calculated from the triclinic parameters, and how to transform those
|
|
parameters to and from other commonly used triclinic representations.
|
|
|
|
The "ITEM: ATOMS" line in each snapshot lists column descriptors for
|
|
the per-atom lines that follow. For example, the descriptors would be
|
|
"id type xs ys zs" for the default *atom* style, and would be the atom
|
|
attributes you specify in the dump command for the *custom* style.
|
|
|
|
For style *atom*\ , atom coordinates are written to the file, along with
|
|
the atom ID and atom type. By default, atom coords are written in a
|
|
scaled format (from 0 to 1). I.e. an x value of 0.25 means the atom
|
|
is at a location 1/4 of the distance from xlo to xhi of the box
|
|
boundaries. The format can be changed to unscaled coords via the
|
|
:doc:`dump_modify <dump_modify>` settings. Image flags can also be
|
|
added for each atom via dump_modify.
|
|
|
|
Style *custom* allows you to specify a list of atom attributes to be
|
|
written to the dump file for each atom. Possible attributes are
|
|
listed above and will appear in the order specified. You cannot
|
|
specify a quantity that is not defined for a particular simulation -
|
|
such as *q* for atom style *bond*\ , since that atom style doesn't
|
|
assign charges. Dumps occur at the very end of a timestep, so atom
|
|
attributes will include effects due to fixes that are applied during
|
|
the timestep. An explanation of the possible dump custom attributes
|
|
is given below.
|
|
|
|
For style *local*\ , local output generated by :doc:`computes <compute>`
|
|
and :doc:`fixes <fix>` is used to generate lines of output that is
|
|
written to the dump file. This local data is typically calculated by
|
|
each processor based on the atoms it owns, but there may be zero or
|
|
more entities per atom, e.g. a list of bond distances. An explanation
|
|
of the possible dump local attributes is given below. Note that by
|
|
using input from the :doc:`compute property/local <compute_property_local>` command with dump local,
|
|
it is possible to generate information on bonds, angles, etc that can
|
|
be cut and pasted directly into a data file read by the
|
|
:doc:`read_data <read_data>` command.
|
|
|
|
Style *cfg* has the same command syntax as style *custom* and writes
|
|
extended CFG format files, as used by the
|
|
`AtomEye <http://mt.seas.upenn.edu/Archive/Graphics/A>`_ visualization
|
|
package. Since the extended CFG format uses a single snapshot of the
|
|
system per file, a wildcard "*" must be included in the filename, as
|
|
discussed below. The list of atom attributes for style *cfg* must
|
|
begin with either "mass type xs ys zs" or "mass type xsu ysu zsu"
|
|
since these quantities are needed to write the CFG files in the
|
|
appropriate format (though the "mass" and "type" fields do not appear
|
|
explicitly in the file). Any remaining attributes will be stored as
|
|
"auxiliary properties" in the CFG files. Note that you will typically
|
|
want to use the :doc:`dump_modify element <dump_modify>` command with
|
|
CFG-formatted files, to associate element names with atom types, so
|
|
that AtomEye can render atoms appropriately. When unwrapped
|
|
coordinates *xsu*\ , *ysu*\ , and *zsu* are requested, the nominal AtomEye
|
|
periodic cell dimensions are expanded by a large factor UNWRAPEXPAND =
|
|
10.0, which ensures atoms that are displayed correctly for up to
|
|
UNWRAPEXPAND/2 periodic boundary crossings in any direction. Beyond
|
|
this, AtomEye will rewrap the unwrapped coordinates. The expansion
|
|
causes the atoms to be drawn farther away from the viewer, but it is
|
|
easy to zoom the atoms closer, and the interatomic distances are
|
|
unaffected.
|
|
|
|
The *dcd* style writes DCD files, a standard atomic trajectory format
|
|
used by the CHARMM, NAMD, and XPlor molecular dynamics packages. DCD
|
|
files are binary and thus may not be portable to different machines.
|
|
The number of atoms per snapshot cannot change with the *dcd* style.
|
|
The *unwrap* option of the :doc:`dump_modify <dump_modify>` command
|
|
allows DCD coordinates to be written "unwrapped" by the image flags
|
|
for each atom. Unwrapped means that if the atom has passed through
|
|
a periodic boundary one or more times, the value is printed for what
|
|
the coordinate would be if it had not been wrapped back into the
|
|
periodic box. Note that these coordinates may thus be far outside
|
|
the box size stored with the snapshot.
|
|
|
|
The *xtc* style writes XTC files, a compressed trajectory format used
|
|
by the GROMACS molecular dynamics package, and described
|
|
`here <http://manual.gromacs.org/current/online/xtc.html>`_.
|
|
The precision used in XTC files can be adjusted via the
|
|
:doc:`dump_modify <dump_modify>` command. The default value of 1000
|
|
means that coordinates are stored to 1/1000 nanometer accuracy. XTC
|
|
files are portable binary files written in the NFS XDR data format,
|
|
so that any machine which supports XDR should be able to read them.
|
|
The number of atoms per snapshot cannot change with the *xtc* style.
|
|
The *unwrap* option of the :doc:`dump_modify <dump_modify>` command allows
|
|
XTC coordinates to be written "unwrapped" by the image flags for each
|
|
atom. Unwrapped means that if the atom has passed thru a periodic
|
|
boundary one or more times, the value is printed for what the
|
|
coordinate would be if it had not been wrapped back into the periodic
|
|
box. Note that these coordinates may thus be far outside the box size
|
|
stored with the snapshot.
|
|
|
|
The *xyz* style writes XYZ files, which is a simple text-based
|
|
coordinate format that many codes can read. Specifically it has
|
|
a line with the number of atoms, then a comment line that is
|
|
usually ignored followed by one line per atom with the atom type
|
|
and the x-, y-, and z-coordinate of that atom. You can use the
|
|
:doc:`dump_modify element <dump_modify>` option to change the output
|
|
from using the (numerical) atom type to an element name (or some
|
|
other label). This will help many visualization programs to guess
|
|
bonds and colors.
|
|
|
|
Note that *atom*\ , *custom*\ , *dcd*\ , *xtc*\ , and *xyz* style dump files
|
|
can be read directly by `VMD <http://www.ks.uiuc.edu/Research/vmd>`_, a
|
|
popular molecular viewing program. See :ref:`Section tools <vmd>` of the manual and the
|
|
tools/lmp2vmd/README.txt file for more information about support in
|
|
VMD for reading and visualizing LAMMPS dump files.
|
|
|
|
|
|
----------
|
|
|
|
|
|
Dumps are performed on timesteps that are a multiple of N (including
|
|
timestep 0) and on the last timestep of a minimization if the
|
|
minimization converges. Note that this means a dump will not be
|
|
performed on the initial timestep after the dump command is invoked,
|
|
if the current timestep is not a multiple of N. This behavior can be
|
|
changed via the :doc:`dump_modify first <dump_modify>` command, which
|
|
can also be useful if the dump command is invoked after a minimization
|
|
ended on an arbitrary timestep. N can be changed between runs by
|
|
using the :doc:`dump_modify every <dump_modify>` command (not allowed
|
|
for *dcd* style). The :doc:`dump_modify every <dump_modify>` command
|
|
also allows a variable to be used to determine the sequence of
|
|
timesteps on which dump files are written. In this mode a dump on the
|
|
first timestep of a run will also not be written unless the
|
|
:doc:`dump_modify first <dump_modify>` command is used.
|
|
|
|
The specified filename determines how the dump file(s) is written.
|
|
The default is to write one large text file, which is opened when the
|
|
dump command is invoked and closed when an :doc:`undump <undump>`
|
|
command is used or when LAMMPS exits. For the *dcd* and *xtc* styles,
|
|
this is a single large binary file.
|
|
|
|
Dump filenames can contain two wildcard characters. If a "*"
|
|
character appears in the filename, then one file per snapshot is
|
|
written and the "*" character is replaced with the timestep value.
|
|
For example, tmp.dump.* becomes tmp.dump.0, tmp.dump.10000,
|
|
tmp.dump.20000, etc. This option is not available for the *dcd* and
|
|
*xtc* styles. Note that the :doc:`dump_modify pad <dump_modify>`
|
|
command can be used to insure all timestep numbers are the same length
|
|
(e.g. 00010), which can make it easier to read a series of dump files
|
|
in order with some post-processing tools.
|
|
|
|
If a "%" character appears in the filename, then each of P processors
|
|
writes a portion of the dump file, and the "%" character is replaced
|
|
with the processor ID from 0 to P-1. For example, tmp.dump.% becomes
|
|
tmp.dump.0, tmp.dump.1, ... tmp.dump.P-1, etc. This creates smaller
|
|
files and can be a fast mode of output on parallel machines that
|
|
support parallel I/O for output. This option is not available for the
|
|
*dcd*\ , *xtc*\ , and *xyz* styles.
|
|
|
|
By default, P = the number of processors meaning one file per
|
|
processor, but P can be set to a smaller value via the *nfile* or
|
|
*fileper* keywords of the :doc:`dump_modify <dump_modify>` command.
|
|
These options can be the most efficient way of writing out dump files
|
|
when running on large numbers of processors.
|
|
|
|
Note that using the "*" and "%" characters together can produce a
|
|
large number of small dump files!
|
|
|
|
For the *atom/mpiio*\ , *cfg/mpiio*\ , *custom/mpiio*\ , and *xyz/mpiio*
|
|
styles, a single dump file is written in parallel via the MPI-IO
|
|
library, which is part of the MPI standard for versions 2.0 and above.
|
|
Using MPI-IO requires two steps. First, build LAMMPS with its MPIIO
|
|
package installed, e.g.
|
|
|
|
.. parsed-literal::
|
|
|
|
make yes-mpiio # installs the MPIIO package
|
|
make g++ # build LAMMPS for your platform
|
|
|
|
Second, use a dump filename which contains ".mpiio". Note that it
|
|
does not have to end in ".mpiio", just contain those characters.
|
|
Unlike MPI-IO restart files, which must be both written and read using
|
|
MPI-IO, the dump files produced by these MPI-IO styles are identical
|
|
in format to the files produced by their non-MPI-IO style
|
|
counterparts. This means you can write a dump file using MPI-IO and
|
|
use the :doc:`read_dump <read_dump>` command or perform other
|
|
post-processing, just as if the dump file was not written using
|
|
MPI-IO.
|
|
|
|
Note that MPI-IO dump files are one large file which all processors
|
|
write to. You thus cannot use the "%" wildcard character described
|
|
above in the filename since that specifies generation of multiple
|
|
files. You can use the ".bin" suffix described below in an MPI-IO
|
|
dump file; again this file will be written in parallel and have the
|
|
same binary format as if it were written without MPI-IO.
|
|
|
|
If the filename ends with ".bin", the dump file (or files, if "*" or
|
|
"%" is also used) is written in binary format. A binary dump file
|
|
will be about the same size as a text version, but will typically
|
|
write out much faster. Of course, when post-processing, you will need
|
|
to convert it back to text format (see the :ref:`binary2txt tool <binary>`) or write your own code to read the
|
|
binary file. The format of the binary file can be understood by
|
|
looking at the tools/binary2txt.cpp file. This option is only
|
|
available for the *atom* and *custom* styles.
|
|
|
|
If the filename ends with ".gz", the dump file (or files, if "*" or "%"
|
|
is also used) is written in gzipped format. A gzipped dump file will
|
|
be about 3x smaller than the text version, but will also take longer
|
|
to write. This option is not available for the *dcd* and *xtc*
|
|
styles.
|
|
|
|
|
|
----------
|
|
|
|
|
|
This section explains the local attributes that can be specified as
|
|
part of the *local* style.
|
|
|
|
The *index* attribute can be used to generate an index number from 1
|
|
to N for each line written into the dump file, where N is the total
|
|
number of local datums from all processors, or lines of output that
|
|
will appear in the snapshot. Note that because data from different
|
|
processors depend on what atoms they currently own, and atoms migrate
|
|
between processor, there is no guarantee that the same index will be
|
|
used for the same info (e.g. a particular bond) in successive
|
|
snapshots.
|
|
|
|
The *c_ID* and *c_ID[N]* attributes allow local vectors or arrays
|
|
calculated by a :doc:`compute <compute>` to be output. The ID in the
|
|
attribute should be replaced by the actual ID of the compute that has
|
|
been defined previously in the input script. See the
|
|
:doc:`compute <compute>` command for details. There are computes for
|
|
calculating local information such as indices, types, and energies for
|
|
bonds and angles.
|
|
|
|
Note that computes which calculate global or per-atom quantities, as
|
|
opposed to local quantities, cannot be output in a dump local command.
|
|
Instead, global quantities can be output by the :doc:`thermo_style custom <thermo_style>` command, and per-atom quantities can be
|
|
output by the dump custom command.
|
|
|
|
If *c_ID* is used as a attribute, then the local vector calculated by
|
|
the compute is printed. If *c_ID[N]* is used, then N must be in the
|
|
range from 1-M, which will print the Nth column of the M-length local
|
|
array calculated by the compute.
|
|
|
|
The *f_ID* and *f_ID[N]* attributes allow local vectors or arrays
|
|
calculated by a :doc:`fix <fix>` to be output. The ID in the attribute
|
|
should be replaced by the actual ID of the fix that has been defined
|
|
previously in the input script.
|
|
|
|
If *f_ID* is used as a attribute, then the local vector calculated by
|
|
the fix is printed. If *f_ID[N]* is used, then N must be in the
|
|
range from 1-M, which will print the Nth column of the M-length local
|
|
array calculated by the fix.
|
|
|
|
Here is an example of how to dump bond info for a system,
|
|
including the distance and energy of each bond:
|
|
|
|
.. parsed-literal::
|
|
|
|
compute 1 all property/local batom1 batom2 btype
|
|
compute 2 all bond/local dist eng
|
|
dump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_2[1] c_2[2]
|
|
|
|
|
|
----------
|
|
|
|
|
|
This section explains the atom attributes that can be specified as
|
|
part of the *custom* and *cfg* styles.
|
|
|
|
The *id*\ , *mol*\ , *proc*\ , *procp1*\ , *type*\ , *element*\ , *mass*\ , *vx*\ ,
|
|
*vy*\ , *vz*\ , *fx*\ , *fy*\ , *fz*\ , *q* attributes are self-explanatory.
|
|
|
|
*Id* is the atom ID. *Mol* is the molecule ID, included in the data
|
|
file for molecular systems. *Proc* is the ID of the processor (0 to
|
|
Nprocs-1) that currently owns the atom. *Procp1* is the proc ID+1,
|
|
which can be convenient in place of a *type* attribute (1 to Ntypes)
|
|
for coloring atoms in a visualization program. *Type* is the atom
|
|
type (1 to Ntypes). *Element* is typically the chemical name of an
|
|
element, which you must assign to each type via the :doc:`dump_modify element <dump_modify>` command. More generally, it can be any
|
|
string you wish to associated with an atom type. *Mass* is the atom
|
|
mass. *Vx*\ , *vy*\ , *vz*\ , *fx*\ , *fy*\ , *fz*\ , and *q* are components of
|
|
atom velocity and force and atomic charge.
|
|
|
|
There are several options for outputting atom coordinates. The *x*\ ,
|
|
*y*\ , *z* attributes write atom coordinates "unscaled", in the
|
|
appropriate distance :doc:`units <units>` (Angstroms, sigma, etc). Use
|
|
*xs*\ , *ys*\ , *zs* if you want the coordinates "scaled" to the box size,
|
|
so that each value is 0.0 to 1.0. If the simulation box is triclinic
|
|
(tilted), then all atom coords will still be between 0.0 and 1.0.
|
|
I.e. actual unscaled (x,y,z) = xs*A + ys*B + zs*C, where (A,B,C) are
|
|
the non-orthogonal vectors of the simulation box edges, as discussed
|
|
in :ref:`Section howto 6.12 <howto_12>`.
|
|
|
|
Use *xu*\ , *yu*\ , *zu* if you want the coordinates "unwrapped" by the
|
|
image flags for each atom. Unwrapped means that if the atom has
|
|
passed thru a periodic boundary one or more times, the value is
|
|
printed for what the coordinate would be if it had not been wrapped
|
|
back into the periodic box. Note that using *xu*\ , *yu*\ , *zu* means
|
|
that the coordinate values may be far outside the box bounds printed
|
|
with the snapshot. Using *xsu*\ , *ysu*\ , *zsu* is similar to using
|
|
*xu*\ , *yu*\ , *zu*\ , except that the unwrapped coordinates are scaled by
|
|
the box size. Atoms that have passed through a periodic boundary will
|
|
have the corresponding cooordinate increased or decreased by 1.0.
|
|
|
|
The image flags can be printed directly using the *ix*\ , *iy*\ , *iz*
|
|
attributes. For periodic dimensions, they specify which image of the
|
|
simulation box the atom is considered to be in. An image of 0 means
|
|
it is inside the box as defined. A value of 2 means add 2 box lengths
|
|
to get the true value. A value of -1 means subtract 1 box length to
|
|
get the true value. LAMMPS updates these flags as atoms cross
|
|
periodic boundaries during the simulation.
|
|
|
|
The *mux*\ , *muy*\ , *muz* attributes are specific to dipolar systems
|
|
defined with an atom style of *dipole*\ . They give the orientation of
|
|
the atom's point dipole moment. The *mu* attribute gives the
|
|
magnitude of the atom's dipole moment.
|
|
|
|
The *radius* and *diameter* attributes are specific to spherical
|
|
particles that have a finite size, such as those defined with an atom
|
|
style of *sphere*\ .
|
|
|
|
The *omegax*\ , *omegay*\ , and *omegaz* attributes are specific to
|
|
finite-size spherical particles that have an angular velocity. Only
|
|
certain atom styles, such as *sphere* define this quantity.
|
|
|
|
The *angmomx*\ , *angmomy*\ , and *angmomz* attributes are specific to
|
|
finite-size aspherical particles that have an angular momentum. Only
|
|
the *ellipsoid* atom style defines this quantity.
|
|
|
|
The *tqx*\ , *tqy*\ , *tqz* attributes are for finite-size particles that
|
|
can sustain a rotational torque due to interactions with other
|
|
particles.
|
|
|
|
The *c_ID* and *c_ID[N]* attributes allow per-atom vectors or arrays
|
|
calculated by a :doc:`compute <compute>` to be output. The ID in the
|
|
attribute should be replaced by the actual ID of the compute that has
|
|
been defined previously in the input script. See the
|
|
:doc:`compute <compute>` command for details. There are computes for
|
|
calculating the per-atom energy, stress, centro-symmetry parameter,
|
|
and coordination number of individual atoms.
|
|
|
|
Note that computes which calculate global or local quantities, as
|
|
opposed to per-atom quantities, cannot be output in a dump custom
|
|
command. Instead, global quantities can be output by the
|
|
:doc:`thermo_style custom <thermo_style>` command, and local quantities
|
|
can be output by the dump local command.
|
|
|
|
If *c_ID* is used as a attribute, then the per-atom vector calculated
|
|
by the compute is printed. If *c_ID[N]* is used, then N must be in
|
|
the range from 1-M, which will print the Nth column of the M-length
|
|
per-atom array calculated by the compute.
|
|
|
|
The *f_ID* and *f_ID[N]* attributes allow vector or array per-atom
|
|
quantities calculated by a :doc:`fix <fix>` to be output. The ID in the
|
|
attribute should be replaced by the actual ID of the fix that has been
|
|
defined previously in the input script. The :doc:`fix ave/atom <fix_ave_atom>` command is one that calculates per-atom
|
|
quantities. Since it can time-average per-atom quantities produced by
|
|
any :doc:`compute <compute>`, :doc:`fix <fix>`, or atom-style
|
|
:doc:`variable <variable>`, this allows those time-averaged results to
|
|
be written to a dump file.
|
|
|
|
If *f_ID* is used as a attribute, then the per-atom vector calculated
|
|
by the fix is printed. If *f_ID[N]* is used, then N must be in the
|
|
range from 1-M, which will print the Nth column of the M-length
|
|
per-atom array calculated by the fix.
|
|
|
|
The *v_name* attribute allows per-atom vectors calculated by a
|
|
:doc:`variable <variable>` to be output. The name in the attribute
|
|
should be replaced by the actual name of the variable that has been
|
|
defined previously in the input script. Only an atom-style variable
|
|
can be referenced, since it is the only style that generates per-atom
|
|
values. Variables of style *atom* can reference individual atom
|
|
attributes, per-atom atom attributes, thermodynamic keywords, or
|
|
invoke other computes, fixes, or variables when they are evaluated, so
|
|
this is a very general means of creating quantities to output to a
|
|
dump file.
|
|
|
|
The *d_name* and *i_name* attributes allow to output custom per atom
|
|
floating point or integer properties that are managed by
|
|
:doc:`fix property/atom <fix_property_atom>`.
|
|
|
|
See :doc:`Section_modify <Section_modify>` of the manual for information
|
|
on how to add new compute and fix styles to LAMMPS to calculate
|
|
per-atom quantities which could then be output into dump files.
|
|
|
|
|
|
----------
|
|
|
|
|
|
Restrictions
|
|
""""""""""""
|
|
|
|
|
|
To write gzipped dump files, you must either compile LAMMPS with the
|
|
-DLAMMPS_GZIP option or use the styles from the COMPRESS package
|
|
- see the :ref:`Making LAMMPS <start_2>` section of
|
|
the documentation.
|
|
|
|
The *atom/gz*\ , *cfg/gz*\ , *custom/gz*\ , and *xyz/gz* styles are part
|
|
of the COMPRESS package. They are only enabled if LAMMPS was built
|
|
with that package. See the :ref:`Making LAMMPS <start_3>` section for more info.
|
|
|
|
The *atom/mpiio*\ , *cfg/mpiio*\ , *custom/mpiio*\ , and *xyz/mpiio* styles
|
|
are part of the MPIIO package. They are only enabled if LAMMPS was
|
|
built with that package. See the :ref:`Making LAMMPS <start_3>` section for more info.
|
|
|
|
The *xtc* style is part of the MISC package. It is only enabled if
|
|
LAMMPS was built with that package. See the :ref:`Making LAMMPS <start_3>` section for more info. This is
|
|
because some machines may not support the low-level XDR data format
|
|
that XTC files are written with, which will result in a compile-time
|
|
error when a low-level include file is not found. Putting this style
|
|
in a package makes it easy to exclude from a LAMMPS build for those
|
|
machines. However, the MISC package also includes two compatibility
|
|
header files and associated functions, which should be a suitable
|
|
substitute on machines that do not have the appropriate native header
|
|
files. This option can be invoked at build time by adding
|
|
-DLAMMPS_XDR to the CCFLAGS variable in the appropriate low-level
|
|
Makefile, e.g. src/MAKE/Makefile.foo. This compatibility mode has
|
|
been tested successfully on Cray XT3/XT4/XT5 and IBM BlueGene/L
|
|
machines and should also work on IBM BG/P, and Windows XP/Vista/7
|
|
machines.
|
|
|
|
Related commands
|
|
""""""""""""""""
|
|
|
|
:doc:`dump h5md <dump_h5md>`, :doc:`dump image <dump_image>`,
|
|
:doc:`dump molfile <dump_molfile>`, :doc:`dump_modify <dump_modify>`,
|
|
:doc:`undump <undump>`
|
|
|
|
Default
|
|
"""""""
|
|
|
|
The defaults for the *image* and *movie* styles are listed on the
|
|
:doc:`dump image <dump_image>` doc page.
|
|
|
|
|
|
.. _lws: http://lammps.sandia.gov
|
|
.. _ld: Manual.html
|
|
.. _lc: Section_commands.html#comm
|