git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@14361 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp
2015-12-11 23:32:49 +00:00
parent aecaf0bf52
commit 4e835935c6
5 changed files with 258 additions and 74 deletions

View File

@ -151,8 +151,15 @@ style = <em>bin/1d</em> or <em>bin/2d</em> or <em>bin/3d</em> or <em>bin/sphere<
delta = thickness of spatial bins in dim (distance units)
<em>bin/sphere</em> args = xorig yorig zorig rmin rmax nrbin
xorig,yorig,zorig = center point of sphere
rmin,rmax = bin from radius rmin to rmax
nrbin = # of bins between rmin and rmax
srmin,srmax = bin from sphere radius rmin to rmax
nsbin = # of bins between rmin and rmax
<em>bin/cylinder</em> args = dim origin delta c1 c2 rmin rmax nrbin
dim = <em>x</em> or <em>y</em> or <em>z</em> = axis of cylinder axis
origin = <em>lower</em> or <em>center</em> or <em>upper</em> or coordinate value (distance units)
delta = thickness of spatial bins in dim (distance units)
c1,c2 = coords of cylinder axis in other 2 dimensions (distance units)
crmin,crmax = bin from cylinder radius rmin to rmax (distance units)
ncbin = # of bins between rmin and rmax
<em>type</em> args = none
<em>molecule</em> args = none
<em>compute/fix/variable</em> = c_ID, c_ID[I], f_ID, f_ID[I], v_name with no args
@ -200,6 +207,8 @@ style = <em>bin/1d</em> or <em>bin/2d</em> or <em>bin/3d</em> or <em>bin/sphere<
compute 1 all chunk/atom bin/1d z lower 0.02 units reduced
compute 1 all chunk/atom bin/2d z lower 1.0 y 0.0 2.5
compute 1 all chunk/atom molecule region sphere nchunk once ids once compress yes
compute 1 all chunk/atom bin/sphere 5 5 5 2.0 5.0 5 discard yes
compute 1 all chunk/atom bin/cylinder z lower 2 10 10 2.0 5.0 3 discard yes
</pre></div>
</div>
</div>
@ -279,11 +288,39 @@ box and an <em>origin</em> of 1.0 means to start layers at the upper &#8220;b&#8
cross &#8220;c&#8221; face of the box. A <em>delta</em> value of 0.1 in <em>reduced</em> units
means there will be 10 layers from 0.0 to 1.0, regardless of the
current size or shape of the simulation box.</p>
<p>The <em>bin/sphere</em> style defines a set of spherical shells around the
origin (<em>xorig</em>,*yorig*,*zorig*), using <em>nsbin</em> shells with radii
equally spaced between <em>srmin</em> and <em>srmax</em>, for effectively a 1d
vector of bins. For example, if <em>srmin</em> = 1.0 and <em>srmax</em> = 10.0 and
<em>nsbin</em> = 9, then the first bin spans 1.0 &lt; r &lt; 2.0, and the last bin
spans 9.0 &lt; r 10.0. The geometry of the bins is the same whether the
simulation box is orthogonal or triclinic; i.e. the spherical shells
are not tilted or scaled differently in different dimensions to
transform them into ellipsoidal shells.</p>
<p>The <em>bin/cylinder</em> style defines bins for a cylinder oriented along
the axis <em>dim</em> with the axis position in the other two radial
dimensions at (<em>c1</em>,*c2*). For dim = x, c1/c2 = y/z; for dim = y,
c1/c2 = x/z; for dim = z, c1/c2 = x/y. These can be thought of as a
2d array of bins, each of which is a pie-shaped wedge (radial
dimensions) of finite height (along the cylinder axis). The bin size
and positions along the cylinder axis are specified by the <em>origin</em>
and <em>delta</em> values, the same as for the <em>bin/1d</em>, <em>bin/2d</em>, and
<em>bin/3d</em> styles. There are <em>ncbin</em> concentric circles in the radial
direction from the cylinder axis with radii equally spaced between
<em>crmin</em> and <em>crmax</em>. For example, if <em>crmin</em> = 1.0 and <em>crmax</em> = 10.0
and <em>ncbin</em> = 9, then the first bin spans 1.0 &lt; r &lt; 2.0, and the last
bin spans 9.0 &lt; r 10.0. The geometry of the bins in the radial
dimensions is the same whether the simulation box is orthogonal or
triclinic; i.e. the circles are not tilted or scaled differently in
the two different dimensions to transform them into ellipses.</p>
<p>The created bins (and hence the chunk IDs) are numbered consecutively
from 1 to the number of bins = <em>Nchunk</em>. For 2d and 3d bins, the
numbering varies most rapidly in the first dimension (which could be
x, y, or z), next rapidly in the 2nd dimension, and most slowly in the
3rd dimension.</p>
3rd dimension. For spherical 1d bins, the innermost shell is chunk 1
and the outermost shell is chunk Nchunk = <em>nsbin</em>. For cylindrical
2d bins, the numbering varies most rapidly in the dimension along the
cylinder axis and most slowly in the radial direction.</p>
<p>Each time this compute is invoked, each atom is mapped to a bin based
on its current position. Note that between reneighboring timesteps,
atoms can move outside the current simulation box. If the box is
@ -518,12 +555,13 @@ the default, then every &#8220;discard&#8221; atom has its chunk ID set to 0. I
<em>Nchunk</em>. I.e. it becomes part of the last chunk.</p>
<p>The <em>binning</em> styles use the <em>discard</em> keyword to decide whether to
discard atoms outside the spatial domain covered by bins, or to assign
them to the bin they are nearest to. Details are as follows.</p>
<p>If <em>discard</em> is set to <em>yes</em>, an out-of-domain atom will have its
chunk ID set to 0. If <em>discard</em> is set to <em>no</em>, the atom will have
its chunk ID set to the first or last bin in that dimension. If
(discard* is set to <em>mixed</em>, which is the default, it will only have
its chunk ID set to the first or last bin if bins extend to the
them to the bin they are nearest to.</p>
<p>For the <em>bin/1d</em>, <em>bin/2d</em>, <em>bin/3d</em> styles the details are as
follows. If <em>discard</em> is set to <em>yes</em>, an out-of-domain atom will
have its chunk ID set to 0. If <em>discard</em> is set to <em>no</em>, the atom
will have its chunk ID set to the first or last bin in that dimension.
If <em>discard</em> is set to <em>mixed</em>, which is the default, it will only
have its chunk ID set to the first or last bin if bins extend to the
simulation box boundary in that dimension. This is the case if the
<em>bound</em> keyword settings are <em>lower</em> and <em>upper</em>, which is the
default. If the <em>bound</em> keyword settings are numeric values, then the
@ -533,24 +571,62 @@ last bin extends beyond the numeric <em>bounds</em> settings, depending on
the specified <em>origin</em>. If this is the case, the chunk ID of the atom
is only set to 0 if it is outside the first or last bin, not if it is
simply outside the numeric <em>bounds</em> setting.</p>
<p>For the <em>bin/sphere</em> style the details are as follows. If <em>discard</em>
is set to <em>yes</em>, an out-of-domain atom will have its chunk ID set to
0. If <em>discard</em> is set to <em>no</em> or <em>mixed</em>, the atom will have its
chunk ID set to the first or last bin, i.e. the innermost or outermost
spherical shell. If the distance of the atom from the origin is less
than <em>rmin</em>, it will be assigned to the first bin. If the distance of
the atom from the origin is greater than <em>rmax</em>, it will be assigned
to the last bin.</p>
<p>For the <em>bin/cylinder</em> style the details are as follows. If <em>discard</em>
is set to <em>yes</em>, an out-of-domain atom will have its chunk ID set to
0. If <em>discard</em> is set to <em>no</em>, the atom will have its chunk ID set
to the first or last bin in both the radial and axis dimensions. If
<em>discard</em> is set to <em>mixed</em>, which is the default, the the radial
dimension is treated the same as for <em>discard</em> = no. But for the axis
dimensinon, it will only have its chunk ID set to the first or last
bin if bins extend to the simulation box boundary in the axis
dimension. This is the case if the <em>bound</em> keyword settings are
<em>lower</em> and <em>upper</em>, which is the default. If the <em>bound</em> keyword
settings are numeric values, then the atom will have its chunk ID set
to 0 if it is outside the bounds of any bin. Note that in this case,
it is possible that the first or last bin extends beyond the numeric
<em>bounds</em> settings, depending on the specified <em>origin</em>. If this is
the case, the chunk ID of the atom is only set to 0 if it is outside
the first or last bin, not if it is simply outside the numeric
<em>bounds</em> setting.</p>
<p>If <em>discard</em> is set to <em>no</em> or <em>mixed</em>, the atom will have its
chunk ID set to the first or last bin, i.e. the innermost or outermost
spherical shell. If the distance of the atom from the origin is less
than <em>rmin</em>, it will be assigned to the first bin. If the distance of
the atom from the origin is greater than <em>rmax</em>, it will be assigned
to the last bin.</p>
<hr class="docutils" />
<p>The <em>bound</em> keyword only applies to the <em>binning</em> styles; otherwise it
is ignored. It can be used one or more times to limit the extent of
bin coverage in a specified dimension, i.e. to only bin a portion of
the box. If the <em>lo</em> setting is <em>lower</em> or the <em>hi</em> setting is
<em>upper</em>, the bin extent in that direction extends to the box boundary.
If a numeric value is used for <em>lo</em> and/or <em>hi</em>, then the bin extent
in the <em>lo</em> or <em>hi</em> direction extends only to that value, which is
assumed to be inside (or at least near) the simulation box boundaries,
though LAMMPS does not check for this. Note that using the <em>bound</em>
keyword typically reduces the total number of bins and thus the number
of chunks <em>Nchunk</em>.</p>
<p>The <em>bound</em> keyword only applies to the <em>bin/1d</em>, <em>bin/2d</em>, <em>bin/3d</em>
styles and to the axis dimension of the <em>bin/cylinder</em> style;
otherwise it is ignored. It can be used one or more times to limit
the extent of bin coverage in a specified dimension, i.e. to only bin
a portion of the box. If the <em>lo</em> setting is <em>lower</em> or the <em>hi</em>
setting is <em>upper</em>, the bin extent in that direction extends to the
box boundary. If a numeric value is used for <em>lo</em> and/or <em>hi</em>, then
the bin extent in the <em>lo</em> or <em>hi</em> direction extends only to that
value, which is assumed to be inside (or at least near) the simulation
box boundaries, though LAMMPS does not check for this. Note that
using the <em>bound</em> keyword typically reduces the total number of bins
and thus the number of chunks <em>Nchunk</em>.</p>
<p>The <em>units</em> keyword only applies to the <em>binning</em> styles; otherwise it
is ignored. It determines the meaning of the distance units used for
the bin sizes <em>delta</em> and for <em>origin</em> and <em>bounds</em> values if they are
coordinate values. For orthogonal simulation boxes, any of the 3
options may be used. For non-orthogonal (triclinic) simulation boxes,
only the <em>reduced</em> option may be used.</p>
is ignored. For the <em>bin/1d</em>, <em>bin/2d</em>, <em>bin/3d</em> styles, it
determines the meaning of the distance units used for the bin sizes
<em>delta</em> and for <em>origin</em> and <em>bounds</em> values if they are coordinate
values. For the <em>bin/sphere</em> style it determines the meaning of the
distance units used for <em>xorig</em>,*yorig*,*zorig* and the radii <em>srmin</em>
and <em>srmax</em>. For the <em>bin/cylinder</em> style it determines the meaning
of the distance units used for <em>delta</em>,*c1*,*c2* and the radii <em>crmin</em>
and <em>crmax</em>.</p>
<p>For orthogonal simulation boxes, any of the 3 options may
be used. For non-orthogonal (triclinic) simulation boxes, only the
<em>reduced</em> option may be used.</p>
<p>A <em>box</em> value selects standard distance units as defined by the
<a class="reference internal" href="units.html"><em>units</em></a> command, e.g. Angstroms for units = real or metal.
A <em>lattice</em> value means the distance units are in lattice spacings.
@ -560,6 +636,13 @@ unitless values between 0 and 1, which represent the lower and upper
faces of the simulation box respectively. Thus an <em>origin</em> value of
0.5 means the center of the box in any dimension. A <em>delta</em> value of
0.1 means 10 bins span the box in that dimension.</p>
<p>Note that for the <em>bin/sphere</em> style, the radii <em>srmin</em> and <em>srmax</em> are
scaled by the lattice spacing or reduced value of the <em>x</em> dimension.</p>
<p>Note that for the <em>bin/cylinder</em> style, the radii <em>crmin</em> and <em>crmax</em>
are scaled by the lattice spacing or reduced value of the 1st
dimension perpendicular to the cylinder axis. E.g. y for an x-axis
cylinder, x for a y-axis cylinder, and x for a z-axis cylinder.</p>
<hr class="docutils" />
<p><strong>Output info:</strong></p>
<p>This compute calculates a per-atom vector, which can be accessed by
any command that uses per-atom values from a compute as input. See
@ -586,18 +669,18 @@ the restarted simulation begins.</p>
<p>The option defaults are as follows:</p>
<ul class="simple">
<li>region = none</li>
<li>nchunk = every if compress is yes, overriding other defaults listed here</li>
<li>nchunk = once for type style</li>
<li>nchunk = once for mol style if region is none</li>
<li>nchunk = every for mol style if region is set</li>
<li>nchunk = once for binning style if the simulation box size is static or units = reduced</li>
<li>nchunk = every for binning style if the simulation box size is dynamic and units is lattice or box</li>
<li>nchunk = every for compute/fix/variable style</li>
<li>nchunk = every, if compress is yes, overriding other defaults listed here</li>
<li>nchunk = once, for type style</li>
<li>nchunk = once, for mol style if region is none</li>
<li>nchunk = every, for mol style if region is set</li>
<li>nchunk = once, for binning style if the simulation box size is static or units = reduced</li>
<li>nchunk = every, for binning style if the simulation box size is dynamic and units is lattice or box</li>
<li>nchunk = every, for compute/fix/variable style</li>
<li>limit = 0</li>
<li>ids = every</li>
<li>compress = no</li>
<li>discard = yes for all styles except binning</li>
<li>discard = mixed for binning styles</li>
<li>discard = yes, for all styles except binning</li>
<li>discard = mixed, for binning styles</li>
<li>bound = lower and upper in all dimensions</li>
<li>units = lattice</li>
</ul>