Files
lammps/doc/html/Howto_grid.html
2025-01-13 14:55:48 +00:00

260 lines
17 KiB
HTML

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>8.3.3. Using distributed grids &mdash; LAMMPS documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/sphinx-design.min.css" type="text/css" />
<link rel="stylesheet" href="_static/css/lammps.css" type="text/css" />
<link rel="shortcut icon" href="_static/lammps.ico"/>
<link rel="canonical" href="https://docs.lammps.org/Howto_grid.html" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=5929fcd5"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/design-tabs.js?v=f930bc37"></script>
<script async="async" src="_static/mathjax/es5/tex-mml-chtml.js?v=cadf963e"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="8.3.4. Calculate temperature" href="Howto_temperature.html" />
<link rel="prev" title="8.3.2. Use chunks to calculate system properties" href="Howto_chunk.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="Manual.html">
<img src="_static/lammps-logo.png" class="logo" alt="Logo"/>
</a>
<div class="lammps_version">Version: <b>19 Nov 2024</b></div>
<div class="lammps_release">git info: </div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="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="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="Intro.html">1. Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="Install.html">2. Install LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Build.html">3. Build LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Run_head.html">4. Run LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Commands.html">5. Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="Packages.html">6. Optional packages</a></li>
<li class="toctree-l1"><a class="reference internal" href="Speed.html">7. Accelerate performance</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="Howto.html">8. Howto discussions</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="Howto.html#general-howto">8.1. General howto</a></li>
<li class="toctree-l2"><a class="reference internal" href="Howto.html#settings-howto">8.2. Settings howto</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="Howto.html#analysis-howto">8.3. Analysis howto</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="Howto_output.html">8.3.1. Output from LAMMPS (thermo, dumps, computes, fixes, variables)</a></li>
<li class="toctree-l3"><a class="reference internal" href="Howto_chunk.html">8.3.2. Use chunks to calculate system properties</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">8.3.3. Using distributed grids</a></li>
<li class="toctree-l3"><a class="reference internal" href="Howto_temperature.html">8.3.4. Calculate temperature</a></li>
<li class="toctree-l3"><a class="reference internal" href="Howto_elastic.html">8.3.5. Calculate elastic constants</a></li>
<li class="toctree-l3"><a class="reference internal" href="Howto_kappa.html">8.3.6. Calculate thermal conductivity</a></li>
<li class="toctree-l3"><a class="reference internal" href="Howto_viscosity.html">8.3.7. Calculate viscosity</a></li>
<li class="toctree-l3"><a class="reference internal" href="Howto_diffusion.html">8.3.8. Calculate diffusion coefficients</a></li>
<li class="toctree-l3"><a class="reference internal" href="Howto_structured_data.html">8.3.9. Output structured data from LAMMPS</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Howto.html#force-fields-howto">8.4. Force fields howto</a></li>
<li class="toctree-l2"><a class="reference internal" href="Howto.html#packages-howto">8.5. Packages howto</a></li>
<li class="toctree-l2"><a class="reference internal" href="Howto.html#tutorials-howto">8.6. Tutorials howto</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Examples.html">9. Example scripts</a></li>
<li class="toctree-l1"><a class="reference internal" href="Tools.html">10. Auxiliary tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="Errors.html">11. Errors</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Programmer Guide</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Library.html">1. LAMMPS Library Interfaces</a></li>
<li class="toctree-l1"><a class="reference internal" href="Python_head.html">2. Use Python with LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Modify.html">3. Modifying &amp; extending LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Developer.html">4. Information for Developers</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Command Reference</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="commands_list.html">Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="fixes.html">Fix Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="computes.html">Compute Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="pairs.html">Pair Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="bonds.html">Bond Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="angles.html">Angle Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="dihedrals.html">Dihedral Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="impropers.html">Improper Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="dumps.html">Dump Styles</a></li>
<li class="toctree-l1"><a class="reference internal" href="fix_modify_atc_commands.html">fix_modify AtC commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="Bibliography.html">Bibliography</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<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 style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="Manual.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="Howto.html"><span class="section-number">8. </span>Howto discussions</a></li>
<li class="breadcrumb-item active"><span class="section-number">8.3.3. </span>Using distributed grids</li>
<li class="wy-breadcrumbs-aside">
<a href="https://www.lammps.org"><img src="_static/lammps-logo.png" width="64" height="16" alt="LAMMPS Homepage"></a> | <a href="Commands_all.html">Commands</a>
</li>
</ul><div class="rst-breadcrumbs-buttons" role="navigation" aria-label="Sequential page navigation">
<a href="Howto_chunk.html" class="btn btn-neutral float-left" title="8.3.2. Use chunks to calculate system properties" accesskey="p"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="Howto_temperature.html" class="btn btn-neutral float-right" title="8.3.4. Calculate temperature" accesskey="n">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<p><span class="math notranslate nohighlight">\(\renewcommand{\AA}{\text{Å}}\)</span></p>
<section id="using-distributed-grids">
<h1><span class="section-number">8.3.3. </span>Using distributed grids<a class="headerlink" href="#using-distributed-grids" title="Link to this heading"></a></h1>
<div class="versionadded">
<p><span class="versionmodified added">Added in version 22Dec2022.</span></p>
</div>
<p>LAMMPS has internal capabilities to create uniformly spaced grids
which overlay the simulation domain. For 2d and 3d simulations these
are 2d and 3d grids respectively. Conceptually a grid can be thought
of as a collection of grid cells. Each grid cell can store one or
more values (data).</p>
<p>The grid cells and data they store are distributed across processors.
Each processor owns the grid cells (and data) whose center points lie
within the spatial subdomain of the processor. If needed for its
computations, a processor may also store ghost grid cells with their
data.</p>
<p>Distributed grids can overlay orthogonal or triclinic simulation
boxes; see the <a class="reference internal" href="Howto_triclinic.html"><span class="doc">Howto triclinic</span></a> doc page for
an explanation of the latter. For a triclinic box, the grid cell
shape conforms to the shape of the simulation domain,
e.g. parallelograms instead of rectangles in 2d.</p>
<p>If the box size or shape changes during a simulation, the grid changes
with it, so that it always overlays the entire simulation domain. For
non-periodic dimensions, the grid size in that dimension matches the
box size, as set by the <a class="reference internal" href="boundary.html"><span class="doc">boundary</span></a> command for fixed
or shrink-wrapped boundaries.</p>
<p>If load-balancing is invoked by the <a class="reference internal" href="balance.html"><span class="doc">balance</span></a> or
<a class="reference internal" href="fix_balance.html"><span class="doc">fix balance</span></a> commands, then the subdomain owned
by a processor can change which may also change which grid cells they
own.</p>
<p>Post-processing and visualization of grid cell data can be enabled by
the <a class="reference internal" href="dump.html"><span class="doc">dump grid</span></a>, <a class="reference internal" href="dump.html"><span class="doc">dump grid/vtk</span></a>, and
<a class="reference internal" href="dump_image.html"><span class="doc">dump image</span></a> commands. The latter has an optional
<em>grid</em> keyword. The <a class="reference external" href="https://www.ovito.org">OVITO visualization tool</a> also plans (as of Nov 2022) to add support
for visualizing grid cell data (along with atoms) using <a class="reference internal" href="dump.html"><span class="doc">dump
grid</span></a> output files as input.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>For developers, distributed grids are implemented within the code via
two classes: Grid2d and Grid3d. These partition the grid across
processors and have methods which allow forward and reverse
communication of ghost grid data as well as load balancing. If you
write a new compute or fix which needs a distributed grid, these are
the classes to look at. A new pair style could use a distributed
grid by having a fix define it. Please see the section on
<a class="reference internal" href="Developer_grid.html"><span class="doc">using distributed grids within style classes</span></a>
for a detailed description.</p>
</div>
<hr class="docutils" />
<p>These are the commands which currently define or use distributed
grids:</p>
<ul class="simple">
<li><p><a class="reference internal" href="fix_ttm.html"><span class="doc">fix ttm/grid</span></a> - store electron temperature on grid</p></li>
<li><p><a class="reference internal" href="fix_ave_grid.html"><span class="doc">fix ave/grid</span></a> - time average per-atom or per-grid values</p></li>
<li><p><a class="reference internal" href="compute_property_grid.html"><span class="doc">compute property/grid</span></a> - generate grid IDs and coords</p></li>
<li><p><a class="reference internal" href="dump.html"><span class="doc">dump grid</span></a> - output per-grid values in LAMMPS format</p></li>
<li><p><a class="reference internal" href="dump.html"><span class="doc">dump grid/vtk</span></a> - output per-grid values in VTK format</p></li>
<li><p><a class="reference internal" href="dump_image.html"><span class="doc">dump image grid</span></a> - include colored grid in output images</p></li>
<li><p><a class="reference internal" href="pair_amoeba.html"><span class="doc">pair_style amoeba</span></a> - FFT grids</p></li>
<li><p><a class="reference internal" href="kspace_style.html"><span class="doc">kspace_style pppm</span></a> (and variants) - FFT grids</p></li>
<li><p><a class="reference internal" href="kspace_style.html"><span class="doc">kspace_style msm</span></a> (and variants) - MSM grids</p></li>
</ul>
<p>The grids used by the <a class="reference internal" href="kspace_style.html"><span class="doc">kspace_style</span></a> can not be
referenced by an input script. However the grids and data created and
used by the other commands can be.</p>
<p>A compute or fix command may create one or more grids (of different
sizes). Each grid can store one or more data fields. A data field
can be a single value per grid point (per-grid vector) or multiple
values per grid point (per-grid array). See the <a class="reference internal" href="Howto_output.html"><span class="doc">Howto output</span></a> doc page for an explanation of how per-grid data can
be generated by some commands and used by other commands.</p>
<p>A command accesses grid data from a compute or fix using a <em>grid
reference</em> with the following syntax:</p>
<ul class="simple">
<li><p>c_ID:gname:dname</p></li>
<li><p>c_ID:gname:dname[I]</p></li>
<li><p>f_ID:gname:dname</p></li>
<li><p>f_ID:gname:dname[I]</p></li>
</ul>
<p>The prefix “c_” or “f_” refers to the ID of the compute or fix; gname is
the name of the grid, which is assigned by the compute or fix; dname is
the name of the data field, which is also assigned by the compute or
fix.</p>
<p>If the data field is a per-grid vector (one value per grid point),
then no brackets are used to access the values. If the data field is
a per-grid array (multiple values per grid point), then brackets are
used to specify the column I of the array. I ranges from 1 to Ncol
inclusive, where Ncol is the number of columns in the array and is
defined by the compute or fix.</p>
<p>Currently, there are no per-grid variables implemented in LAMMPS. We
may add this feature at some point.</p>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="Howto_chunk.html" class="btn btn-neutral float-left" title="8.3.2. Use chunks to calculate system properties" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="Howto_temperature.html" class="btn btn-neutral float-right" title="8.3.4. Calculate temperature" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2003-2025 Sandia Corporation.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(false);
});
</script>
</body>
</html>