forked from lijiext/lammps
310 lines
14 KiB
Plaintext
310 lines
14 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
|
||
|
|
||
|
dump command :h3
|
||
|
|
||
|
[Syntax:]
|
||
|
|
||
|
dump ID group-ID style N file args :pre
|
||
|
|
||
|
ID = user-assigned name for the dump :ulb,l
|
||
|
group-ID = ID of the group of atoms to be dumped :l
|
||
|
style = {atom} or {bond} or {custom} or {dcd} or {xtc} or {xyz} :l
|
||
|
N = dump every this many timesteps :l
|
||
|
file = name of file to write dump info to :l
|
||
|
args = list of arguments for a particular style :l
|
||
|
{atom} args = none
|
||
|
{bond} args = none
|
||
|
{custom} args = list of atom attributes
|
||
|
possible attributes = tag, mol, type, x, y, z, xs, ys, zs, xu, yu, zu,
|
||
|
ix, iy, iz, vx, vy, vz, fx, fy, fz,
|
||
|
q, mux, muy, muz, tqx, tqy, tqz,
|
||
|
centro, eng, sxx, syy, szz, sxy, sxz, syz
|
||
|
tag = atom ID
|
||
|
mol = molecule ID
|
||
|
type = atom type
|
||
|
x,y,z = unscaled atom coordinates
|
||
|
xs,ys,zs = scaled atom coordinates
|
||
|
xu,yu,zu = unwrapped atom coordinates
|
||
|
ix,iy,iz = box image that the atom is in in
|
||
|
vx,vy,vz = atom velocities
|
||
|
fx,fy,fz = forces on atoms
|
||
|
q = atom charge
|
||
|
mux,muy,muz = orientation of dipolar atom
|
||
|
tqx,tqy,tqz = torque on dipolar atoms
|
||
|
centro = per-atom centro-symmetry parameter
|
||
|
eng = per-atom pairwise energy
|
||
|
sxx, syy, szz, sxy, sxz, syz = per-atom stress tensor components
|
||
|
{dcd} args = none
|
||
|
{xtc} args = precision (optional)
|
||
|
precision = power-of-10 value from 10 to 1000000 (default = 1000)
|
||
|
{xyz} args = none :pre
|
||
|
:ule
|
||
|
|
||
|
[Examples:]
|
||
|
|
||
|
dump myDump all atom 100 dump.atom
|
||
|
dump 2 subgroup atom 50 dump.run.bin
|
||
|
dump 4a all custom 100 dump.myforce.* tag type x y vx fx
|
||
|
dump 4b flow custom 100 dump.%.myforce tag type eng sxx syy szz
|
||
|
dump 1 all xtc 1000 file.xtc 100.0 :pre
|
||
|
|
||
|
[Description:]
|
||
|
|
||
|
Dump a snapshot of atom quantities to one or more files every N
|
||
|
timesteps in one of several styles. 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 one per processor). Only
|
||
|
information for atoms in the specified group is dumped. The
|
||
|
"dump_modify"_dump_modify.html command can also alter what atoms are
|
||
|
included. Not all styles support all these options; see details
|
||
|
below.
|
||
|
|
||
|
Note that 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.
|
||
|
|
||
|
Also note that when LAMMPS is running in parallel, the atom
|
||
|
information written to dump files (typically one line per atom) may be
|
||
|
written in an indeterminate order. This is because data for a single
|
||
|
snapshot is collected from multiple processors. This is always the
|
||
|
case for the {atom}, {bond}, and {custom} styles. It is also the case
|
||
|
for the {xyz} style if the dump group is not {all}. It is not the
|
||
|
case for the {dcd} and {xtc} styles which always write atoms in sorted
|
||
|
order. So does the {xyz} style if the dump group is {all}.
|
||
|
|
||
|
:line
|
||
|
|
||
|
The {style} keyword determines what atom quantities are written to the
|
||
|
file and in what format. Settings made via the
|
||
|
"dump_modify"_dump_modify.html command can also alter the format of
|
||
|
individual values and the file itself.
|
||
|
|
||
|
The {atom}, {bond}, and {custom} styles create files in a simple text
|
||
|
format that is self-explanatory. Many of the LAMMPS "post-processing
|
||
|
tools"_Section_tools.html, including
|
||
|
"Pizza.py"_http://www.cs.sandia.gov/~sjplimp/pizza.html, work with
|
||
|
this format.
|
||
|
|
||
|
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
|
||
|
"dump_modify"_dump_modify.html settings. Image flags can also be
|
||
|
added for each atom via dump_modify.
|
||
|
|
||
|
For style {bond}, the bond topology between atoms is written, in the
|
||
|
same format specified in data files read in by the
|
||
|
"read_data"_read_data.html command. Both atoms in the bond must be in
|
||
|
the dump group for the bond to be written. Any bonds that have been
|
||
|
broken (see the "bond_style"_bond_style.html command) by setting their
|
||
|
bond type to 0 are not written. Bonds that have been turned off (see
|
||
|
the "fix shake"_fix_shake.html or "delete_bonds"_delete_bonds.html
|
||
|
commands) by setting their bond type negative are written into the
|
||
|
file.
|
||
|
|
||
|
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. Be careful not
|
||
|
to 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 some of the dump custom quantities is
|
||
|
given below.
|
||
|
|
||
|
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 dump group must be {all} for the {dcd} style.
|
||
|
|
||
|
The {xtc} style writes XTC files, a compressed trajectory format used
|
||
|
by the Gromacs molecular dynamics package, and described
|
||
|
"here"_http://www.gromacs.org/documentation/reference_3.3/online/xtc.html.
|
||
|
The precision used in XTC files can be specified; for example, a value
|
||
|
of 100 means that coordinates are stored to 1/100 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 dump group must be {all} for the {xtc} style.
|
||
|
|
||
|
The {xyz} style writes XYZ files, which is a simple text-based
|
||
|
coordinate format that many codes can read.
|
||
|
|
||
|
Note that DCD, XTC, and XYZ formatted files can be read directly by
|
||
|
"VMD"_http://www.ks.uiuc.edu/Research/vmd (a popular molecular viewing
|
||
|
program). VMD will also read LAMMPS {atom} style dump files since
|
||
|
someone added a LAMMPS plug-in to VMD. I am told it requires an
|
||
|
initial snapshot from an XYZ formatted file to get started.
|
||
|
|
||
|
:line
|
||
|
|
||
|
Dumps are performed on timesteps that are a multiple of N and on the
|
||
|
first step of a run or minimization, excluding duplicate timesteps. A
|
||
|
dump is not performed on the last timestep of a run unless it is a
|
||
|
multiple of N. A dump is performed on the last timestep of a
|
||
|
minimization if the minimization converges. N can be changed between
|
||
|
runs by using the "dump_modify"_dump_modify.html command (not allowed
|
||
|
for {dcd} style).
|
||
|
|
||
|
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 "undump"_undump.html
|
||
|
command is used or when LAMMPS exits. For the {dcd} and {xtc} styles,
|
||
|
this is a single large binary file.
|
||
|
|
||
|
Dump filenames can contian two wild-card 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.
|
||
|
|
||
|
If a "%" character appears in the filename, then one file is written
|
||
|
for each processor 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.
|
||
|
|
||
|
Note that the "*" and "%" characters can be used together to produce a
|
||
|
large number of small dump files!
|
||
|
|
||
|
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 "binary2txt
|
||
|
tool"_Section_tools.html#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.
|
||
|
|
||
|
:line
|
||
|
|
||
|
This section explains the atom quantities that can be specified as
|
||
|
part of the {custom} style.
|
||
|
|
||
|
The {tag}, {mol}, {type}, {x}, {y}, {z}, {vx}, {vy}, {vz}, {fx}, {fy},
|
||
|
{fz}, {q} attributes are self-explanatory. {Tag} is the atom ID.
|
||
|
{Mol} is the molecule ID, included in the data file for molecular
|
||
|
systems. The {x}, {y}, {z} attributes write atom coordinates
|
||
|
"unscaled", in the appropriate distance 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. 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 size printed with the snapshot. The image flags can
|
||
|
be printed directly using the {ix}, {iy}, {iz} attributes. The
|
||
|
"dump_modify"_dump_modify.html documentation describes in more detail
|
||
|
what is meant by scaled vs unscaled coordinates and the image flags.
|
||
|
|
||
|
The {mux}, {muy}, {muz}, {tqy}, {tqx}, {tqy} attributes are specific
|
||
|
to dipolar systems defined with an atom style of {dipole}.
|
||
|
|
||
|
The {centro} attribute causes the centro-symmetry parameter to be
|
||
|
computed for each atom in the dump group using the following formula
|
||
|
from "(Kelchner)"_#Kelchner
|
||
|
|
||
|
:c,image(Eqs/centro_symmetry.jpg)
|
||
|
|
||
|
where the 12 nearest neighbors are found and Ri and Ri+6 are the
|
||
|
vectors from the central atom to the opposite pair of nearest
|
||
|
neighbors. In solid state systems this is a useful measure of the
|
||
|
local lattice disorder around an atom and can be used to characterize
|
||
|
whether the atom is part of a perfect lattice, a local defect (e.g. a
|
||
|
dislocation or stacking fault), or at a surface. The neighbor list
|
||
|
needed to compute this quantity is constructed each time the dump is
|
||
|
performed. Thus it can be inefficient to dump this quantity too
|
||
|
frequently or to have multiple dump commands, each with a {centro}
|
||
|
attribute.
|
||
|
|
||
|
The {eng} attribute computes the pairwise energy for each atom. This
|
||
|
is its pairwise interaction with all of its neighbors (divided by 2).
|
||
|
Summed over all atoms, this should equal the pairwise energy of the
|
||
|
entire system (Van der Waals + Coulombic). However, for force fields
|
||
|
that include a contribution to the pairwise energy that is computed as
|
||
|
part of dihedral terms (i.e. 1-4 interactions), this contribution is
|
||
|
not included in the per-atom pairwise energy. Computation of the
|
||
|
per-atom energy requires a loop thru the neighbor list and
|
||
|
inter-processor communication, so it can be inefficient to dump this
|
||
|
quantity too frequently or to have multiple dump commands, each with a
|
||
|
{eng} attribute.
|
||
|
|
||
|
The {sxx}, {syy}, {szz}, {sxy}, {sxz}, {syz} attributes compute the
|
||
|
pairwise stress tensor for each atom where the {ab} component of the
|
||
|
stress on atom {i} is given by
|
||
|
|
||
|
:c,image(Eqs/stress_tensor.jpg)
|
||
|
|
||
|
where the first term is a kinetic energy component for atom {i}, {j}
|
||
|
loops over the {N} neighbors of atom {i}, and {Fb} is one of 3
|
||
|
components of force on atom {i} due to atom {j}. Both {a} and {b} can
|
||
|
take on values x,y,z to generate the 6 components of the symmetric
|
||
|
tensor.
|
||
|
|
||
|
Note that this formula for stress does not include virial
|
||
|
contributions from intra-molecular interactions (e.g. bonds, angles,
|
||
|
torsions, etc). Also note that this quantity is the negative of the
|
||
|
per-atom pressure tensor. It is also really a stress-volume
|
||
|
formulation. It would need to be divided by a per-atom volume to have
|
||
|
units of stress, but an individual atom's volume is not easy to
|
||
|
compute in a deformed solid. Computation of stress tensor components
|
||
|
requires a loop thru the neighbor list and inter-processor
|
||
|
communication, so it can be inefficient to dump this quantity too
|
||
|
frequently or to have multiple dump commands, each with stress tensor
|
||
|
attributes.
|
||
|
|
||
|
See "this section"_Section_modify.html for information on how to modify
|
||
|
LAMMPS to dump other kinds of per-atom quantities.
|
||
|
|
||
|
:line
|
||
|
|
||
|
[Restrictions:]
|
||
|
|
||
|
To write gzipped dump files, you must compile LAMMPS with the -DGZIP
|
||
|
option - see the "Making LAMMPS"_Section_start.html#2_2 section of the
|
||
|
documentation.
|
||
|
|
||
|
The {bond} style is part of the "molecular" package. It is only
|
||
|
enabled if LAMMPS was built with that package. See the "Making
|
||
|
LAMMPS"_Section_start.html#2_2 section for more info.
|
||
|
|
||
|
The {xtc} style is part of the "xtc" package. It is only enabled if
|
||
|
LAMMPS was built with that package. See the "Making
|
||
|
LAMMPS"_Section_start.html#2_2 section for more info. This is because
|
||
|
some machines may not support the lo-level XDR data format that XTC
|
||
|
files are written with, which will result in a compile-time error when
|
||
|
a lo-level include file is not found. Putting this style in a package
|
||
|
makes it easy to exclude from a LAMMPS build for those machines.
|
||
|
|
||
|
Granular systems and granular pair potentials cannot be used to
|
||
|
compute per-atom energy and stress. The "fix
|
||
|
gran/diag"_fix_gran_diag.html command should be used instead.
|
||
|
|
||
|
[Related commands:]
|
||
|
|
||
|
"dump_modify"_dump_modify.html, "undump"_undump.html
|
||
|
|
||
|
[Default:] none
|
||
|
|
||
|
:line
|
||
|
|
||
|
:link(Kelchner)
|
||
|
[(Kelchner)] Kelchner, Plimpton, Hamilton, Phys Rev B, 58, 11085 (1998).
|