forked from lijiext/lammps
397 lines
18 KiB
HTML
397 lines
18 KiB
HTML
|
|
|
|
<!DOCTYPE html>
|
|
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
|
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
|
<head>
|
|
<meta charset="utf-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<title>compute voronoi/atom command — LAMMPS documentation</title>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="_static/sphinxcontrib-images/LightBox2/lightbox2/css/lightbox.css" type="text/css" />
|
|
|
|
|
|
|
|
<link rel="top" title="LAMMPS documentation" href="index.html"/>
|
|
|
|
|
|
<script src="_static/js/modernizr.min.js"></script>
|
|
|
|
</head>
|
|
|
|
<body class="wy-body-for-nav" role="document">
|
|
|
|
<div class="wy-grid-for-nav">
|
|
|
|
|
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
<div class="wy-side-nav-search">
|
|
|
|
|
|
|
|
<a href="Manual.html" class="icon icon-home"> LAMMPS
|
|
|
|
|
|
|
|
</a>
|
|
|
|
|
|
<div role="search">
|
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
|
<input type="text" name="q" placeholder="Search docs" />
|
|
<input type="hidden" name="check_keywords" value="yes" />
|
|
<input type="hidden" name="area" value="default" />
|
|
</form>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
|
|
|
|
|
|
|
<ul>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_intro.html">1. Introduction</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_start.html">2. Getting Started</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_commands.html">3. Commands</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_packages.html">4. Packages</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_accelerate.html">5. Accelerating LAMMPS performance</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_howto.html">6. How-to discussions</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_example.html">7. Example problems</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_perf.html">8. Performance & scalability</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_tools.html">9. Additional tools</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_modify.html">10. Modifying & extending LAMMPS</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_python.html">11. Python interface to LAMMPS</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_errors.html">12. Errors</a></li>
|
|
<li class="toctree-l1"><a class="reference internal" href="Section_history.html">13. Future and history</a></li>
|
|
</ul>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
|
|
|
|
|
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
<a href="Manual.html">LAMMPS</a>
|
|
</nav>
|
|
|
|
|
|
|
|
<div class="wy-nav-content">
|
|
<div class="rst-content">
|
|
<div role="navigation" aria-label="breadcrumbs navigation">
|
|
<ul class="wy-breadcrumbs">
|
|
<li><a href="Manual.html">Docs</a> »</li>
|
|
|
|
<li>compute voronoi/atom command</li>
|
|
<li class="wy-breadcrumbs-aside">
|
|
|
|
|
|
<a href="http://lammps.sandia.gov">Website</a>
|
|
<a href="Section_commands.html#comm">Commands</a>
|
|
|
|
</li>
|
|
</ul>
|
|
<hr/>
|
|
|
|
</div>
|
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
<div itemprop="articleBody">
|
|
|
|
<div class="section" id="compute-voronoi-atom-command">
|
|
<span id="index-0"></span><h1>compute voronoi/atom command<a class="headerlink" href="#compute-voronoi-atom-command" title="Permalink to this headline">¶</a></h1>
|
|
<div class="section" id="syntax">
|
|
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
|
|
<div class="highlight-python"><div class="highlight"><pre>compute ID group-ID voronoi/atom keyword arg ...
|
|
</pre></div>
|
|
</div>
|
|
<ul class="simple">
|
|
<li>ID, group-ID are documented in <a class="reference internal" href="compute.html"><em>compute</em></a> command</li>
|
|
<li>voronoi/atom = style name of this compute command</li>
|
|
<li>zero or more keyword/value pairs may be appended</li>
|
|
<li>keyword = <em>only_group</em> or <em>surface</em> or <em>radius</em> or <em>edge_histo</em> or <em>edge_threshold</em>
|
|
or <em>face_threshold</em> or <em>neighbors</em> or <em>peratom</em></li>
|
|
</ul>
|
|
<pre class="literal-block">
|
|
<em>only_group</em> = no arg
|
|
<em>occupation</em> = no arg
|
|
<em>surface</em> arg = sgroup-ID
|
|
sgroup-ID = compute the dividing surface between group-ID and sgroup-ID
|
|
this keyword adds a third column to the compute output
|
|
<em>radius</em> arg = v_r
|
|
v_r = radius atom style variable for a poly-disperse Voronoi tessellation
|
|
<em>edge_histo</em> arg = maxedge
|
|
maxedge = maximum number of Voronoi cell edges to be accounted in the histogram
|
|
<em>edge_threshold</em> arg = minlength
|
|
minlength = minimum length for an edge to be counted
|
|
<em>face_threshold</em> arg = minarea
|
|
minarea = minimum area for a face to be counted
|
|
<em>neighbors</em> value = <em>yes</em> or <em>no</em> = store list of all neighbors or no
|
|
<em>peratom</em> value = <em>yes</em> or <em>no</em> = per-atom quantities accessible or no
|
|
</pre>
|
|
</div>
|
|
<div class="section" id="examples">
|
|
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
|
|
<div class="highlight-python"><div class="highlight"><pre>compute 1 all voronoi/atom
|
|
compute 2 precipitate voronoi/atom surface matrix
|
|
compute 3b precipitate voronoi/atom radius v_r
|
|
compute 4 solute voronoi/atom only_group
|
|
</pre></div>
|
|
</div>
|
|
<div class="highlight-python"><div class="highlight"><pre>compute 5 defects voronoi/atom occupation
|
|
</pre></div>
|
|
</div>
|
|
<p>compute 6 all voronoi/atom neighbors yes</p>
|
|
</div>
|
|
<div class="section" id="description">
|
|
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
|
<p>Define a computation that calculates the Voronoi tessellation of the
|
|
atoms in the simulation box. The tessellation is calculated using all
|
|
atoms in the simulation, but non-zero values are only stored for atoms
|
|
in the group.</p>
|
|
<p>By default two per-atom quantities are calculated by this compute.
|
|
The first is the volume of the Voronoi cell around each atom. Any
|
|
point in an atom’s Voronoi cell is closer to that atom than any other.
|
|
The second is the number of faces of the Voronoi cell. This is
|
|
equal to the number of nearest neighbors of the central atom,
|
|
plus any exterior faces (see note below). If the <em>peratom</em> keyword
|
|
is set to “no”, the per-atom quantities are still calculated,
|
|
but they are not accessible.</p>
|
|
<hr class="docutils" />
|
|
<p>If the <em>only_group</em> keyword is specified the tessellation is performed
|
|
only with respect to the atoms contained in the compute group. This is
|
|
equivalent to deleting all atoms not contained in the group prior to
|
|
evaluating the tessellation.</p>
|
|
<p>If the <em>surface</em> keyword is specified a third quantity per atom is
|
|
computed: the Voronoi cell surface of the given atom. <em>surface</em> takes
|
|
a group ID as an argument. If a group other than <em>all</em> is specified,
|
|
only the Voronoi cell facets facing a neighbor atom from the specified
|
|
group are counted towards the surface area.</p>
|
|
<p>In the example above, a precipitate embedded in a matrix, only atoms
|
|
at the surface of the precipitate will have non-zero surface area, and
|
|
only the outward facing facets of the Voronoi cells are counted (the
|
|
hull of the precipitate). The total surface area of the precipitate
|
|
can be obtained by running a “reduce sum” compute on c_2[3]</p>
|
|
<p>If the <em>radius</em> keyword is specified with an atom style variable as
|
|
the argument, a poly-disperse Voronoi tessellation is
|
|
performed. Examples for radius variables are</p>
|
|
<div class="highlight-python"><div class="highlight"><pre>variable r1 atom (type==1)*0.1+(type==2)*0.4
|
|
compute radius all property/atom radius
|
|
variable r2 atom c_radius
|
|
</pre></div>
|
|
</div>
|
|
<p>Here v_r1 specifies a per-type radius of 0.1 units for type 1 atoms
|
|
and 0.4 units for type 2 atoms, and v_r2 accesses the radius property
|
|
present in atom_style sphere for granular models.</p>
|
|
<p>The <em>edge_histo</em> keyword activates the compilation of a histogram of
|
|
number of edges on the faces of the Voronoi cells in the compute
|
|
group. The argument <em>maxedge</em> of the this keyword is the largest number
|
|
of edges on a single Voronoi cell face expected to occur in the
|
|
sample. This keyword adds the generation of a global vector with
|
|
<em>maxedge*+1 entries. The last entry in the vector contains the number of
|
|
faces with with more than *maxedge</em> edges. Since the polygon with the
|
|
smallest amount of edges is a triangle, entries 1 and 2 of the vector
|
|
will always be zero.</p>
|
|
<p>The <em>edge_threshold</em> and <em>face_threshold</em> keywords allow the
|
|
suppression of edges below a given minimum length and faces below a
|
|
given minimum area. Ultra short edges and ultra small faces can occur
|
|
as artifacts of the Voronoi tessellation. These keywords will affect
|
|
the neighbor count and edge histogram outputs.</p>
|
|
<p>If the <em>occupation</em> keyword is specified the tessellation is only
|
|
performed for the first invocation of the compute and then stored.
|
|
For all following invocations of the compute the number of atoms in
|
|
each Voronoi cell in the stored tessellation is counted. In this mode
|
|
the compute returns a per-atom array with 2 columns. The first column
|
|
is the number of atoms currently in the Voronoi volume defined by this
|
|
atom at the time of the first invocation of the compute (note that the
|
|
atom may have moved significantly). The second column contains the
|
|
total number of atoms sharing the Voronoi cell of the stored
|
|
tessellation at the location of the current atom. Numbers in column
|
|
one can be any positive integer including zero, while column two
|
|
values will always be greater than zero. Column one data can be used
|
|
to locate vacancies (the coordinates are given by the atom coordinates
|
|
at the time step when the compute was first invoked), while column two
|
|
data can be used to identify interstitial atoms.</p>
|
|
<p>If the <em>neighbors</em> value is set to yes, then
|
|
this compute creates a local array with 3 columns. There
|
|
is one row for each face of each Voronoi cell. The
|
|
3 columns are the atom ID of the atom that owns the cell,
|
|
the atom ID of the atom in the neighboring cell
|
|
(or zero if the face is external), and the area of the face.
|
|
The array can be accessed by any command that
|
|
uses local values from a compute as input. See <a class="reference internal" href="Section_howto.html#howto-15"><span>this section</span></a> for an overview of LAMMPS output
|
|
options. More specifically, the array can be accessed by a
|
|
<a class="reference internal" href="dump.html"><em>dump local</em></a> command to write a file containing
|
|
all the Voronoi neighbors in a system:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre>compute 6 all voronoi/atom neighbors yes
|
|
dump d2 all local 1 dump.neighbors index c_6[1] c_6[2] c_6[3]
|
|
</pre></div>
|
|
</div>
|
|
<p>If the <em>face_threshold</em> keyword is used, then only faces
|
|
with areas greater than the threshold are stored.</p>
|
|
<hr class="docutils" />
|
|
<p>The Voronoi calculation is performed by the freely available <a class="reference external" href="http://math.lbl.gov/voro++/">Voro++ package</a>, written by Chris Rycroft at UC Berkeley and LBL,
|
|
which must be installed on your system when building LAMMPS for use
|
|
with this compute. See instructions on obtaining and installing the
|
|
Voro++ software in the src/VORONOI/README file.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">The calculation of Voronoi volumes is performed by each
|
|
processor for the atoms it owns, and includes the effect of ghost
|
|
atoms stored by the processor. This assumes that the Voronoi cells of
|
|
owned atoms are not affected by atoms beyond the ghost atom cut-off
|
|
distance. This is usually a good assumption for liquid and solid
|
|
systems, but may lead to underestimation of Voronoi volumes in low
|
|
density systems. By default, the set of ghost atoms stored by each
|
|
processor is determined by the cutoff used for
|
|
<a class="reference internal" href="pair_style.html"><em>pair_style</em></a> interactions. The cutoff can be set
|
|
explicitly via the <a class="reference internal" href="comm_modify.html"><em>comm_modify cutoff</em></a> command. The
|
|
Voronoi cells for atoms adjacent to empty regions will extend into
|
|
those regions up to the communication cutoff in x, y, or z. In that
|
|
situation, an exterior face is created at the cutoff distance normal
|
|
to the x, y, or z direction. For triclinic systems, the exterior face
|
|
is parallel to the corresponding reciprocal lattice vector.</p>
|
|
</div>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">The Voro++ package performs its calculation in 3d. This will
|
|
still work for a 2d LAMMPS simulation, provided all the atoms have the
|
|
same z coordinate. The Voronoi cell of each atom will be a columnar
|
|
polyhedron with constant cross-sectional area along the z direction
|
|
and two exterior faces at the top and bottom of the simulation box. If
|
|
the atoms do not all have the same z coordinate, then the columnar
|
|
cells will be accordingly distorted. The cross-sectional area of each
|
|
Voronoi cell can be obtained by dividing its volume by the z extent of
|
|
the simulation box. Note that you define the z extent of the
|
|
simulation box for 2d simulations when using the
|
|
<a class="reference internal" href="create_box.html"><em>create_box</em></a> or <a class="reference internal" href="read_data.html"><em>read_data</em></a> commands.</p>
|
|
</div>
|
|
<p><strong>Output info:</strong></p>
|
|
<p>By default, this compute calculates a per-atom array with 2
|
|
columns. In regular dynamic tessellation mode the first column is the
|
|
Voronoi volume, the second is the neighbor count, as described above
|
|
(read above for the output data in case the <em>occupation</em> keyword is
|
|
specified). These values can be accessed by any command that uses
|
|
per-atom values from a compute as input. See <a class="reference internal" href="Section_howto.html#howto-15"><span>Section_howto 15</span></a> for an overview of LAMMPS output
|
|
options. If the <em>peratom</em> keyword is set to “no”, the per-atom array
|
|
is still created, but it is not accessible.</p>
|
|
<p>If the <em>edge_histo</em> keyword is used, then this compute generates a
|
|
global vector of length <a href="#id1"><span class="problematic" id="id2">*</span></a>maxedge*+1, containing a histogram of the
|
|
number of edges per face.</p>
|
|
<p>If the <em>neighbors</em> value is set to yes, then this compute calculates a
|
|
local array with 3 columns. There is one row for each face of each
|
|
Voronoi cell.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Some LAMMPS commands such as the <a class="reference internal" href="compute_reduce.html"><em>compute reduce</em></a> command can accept either a per-atom or
|
|
local quantity. If this compute produces both quantities, the command
|
|
may access the per-atom quantity, even if you want to access the local
|
|
quantity. This effect can be eliminated by using the <em>peratom</em>
|
|
keyword to turn off the production of the per-atom quantities. For
|
|
the default value <em>yes</em> both quantities are produced. For the value
|
|
<em>no</em>, only the local array is produced.</p>
|
|
</div>
|
|
<p>The Voronoi cell volume will be in distance <a class="reference internal" href="units.html"><em>units</em></a> cubed.
|
|
The Voronoi face area will be in distance <a class="reference internal" href="units.html"><em>units</em></a> squared.</p>
|
|
</div>
|
|
<div class="section" id="restrictions">
|
|
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline">¶</a></h2>
|
|
<p>This compute is part of the VORONOI package. It is only enabled if
|
|
LAMMPS was built with that package. See the <a class="reference internal" href="Section_start.html#start-3"><span>Making LAMMPS</span></a> section for more info.</p>
|
|
</div>
|
|
<div class="section" id="related-commands">
|
|
<h2>Related commands<a class="headerlink" href="#related-commands" title="Permalink to this headline">¶</a></h2>
|
|
<p><a class="reference internal" href="dump.html"><em>dump custom</em></a>, <a class="reference internal" href="dump.html"><em>dump local</em></a></p>
|
|
<p><strong>Default:</strong> <em>neighbors</em> no, <em>peratom</em> yes</p>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<footer>
|
|
|
|
|
|
<hr/>
|
|
|
|
<div role="contentinfo">
|
|
<p>
|
|
© Copyright 2013 Sandia Corporation.
|
|
</p>
|
|
</div>
|
|
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
|
|
</footer>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
var DOCUMENTATION_OPTIONS = {
|
|
URL_ROOT:'./',
|
|
VERSION:'',
|
|
COLLAPSE_INDEX:false,
|
|
FILE_SUFFIX:'.html',
|
|
HAS_SOURCE: true
|
|
};
|
|
</script>
|
|
<script type="text/javascript" src="_static/jquery.js"></script>
|
|
<script type="text/javascript" src="_static/underscore.js"></script>
|
|
<script type="text/javascript" src="_static/doctools.js"></script>
|
|
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
|
<script type="text/javascript" src="_static/sphinxcontrib-images/LightBox2/lightbox2/js/jquery-1.11.0.min.js"></script>
|
|
<script type="text/javascript" src="_static/sphinxcontrib-images/LightBox2/lightbox2/js/lightbox.min.js"></script>
|
|
<script type="text/javascript" src="_static/sphinxcontrib-images/LightBox2/lightbox2-customize/jquery-noconflict.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript" src="_static/js/theme.js"></script>
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
jQuery(function () {
|
|
SphinxRtdTheme.StickyNav.enable();
|
|
});
|
|
</script>
|
|
|
|
|
|
</body>
|
|
</html> |