lammps/doc/html/fix_wall_region.html

389 lines
19 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>fix wall/region command &mdash; 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 &amp; 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 &amp; 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>
&nbsp;
</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> &raquo;</li>
<li>fix wall/region 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="fix-wall-region-command">
<span id="index-0"></span><h1>fix wall/region command</h1>
<div class="section" id="syntax">
<h2>Syntax</h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">fix</span> <span class="n">ID</span> <span class="n">group</span><span class="o">-</span><span class="n">ID</span> <span class="n">wall</span><span class="o">/</span><span class="n">region</span> <span class="n">region</span><span class="o">-</span><span class="n">ID</span> <span class="n">style</span> <span class="n">epsilon</span> <span class="n">sigma</span> <span class="n">cutoff</span>
</pre></div>
</div>
<ul class="simple">
<li>ID, group-ID are documented in <a class="reference internal" href="fix.html"><span class="doc">fix</span></a> command</li>
<li>wall/region = style name of this fix command</li>
<li>region-ID = region whose boundary will act as wall</li>
<li>style = <em>lj93</em> or <em>lj126</em> or <em>colloid</em> or <em>harmonic</em></li>
<li>epsilon = strength factor for wall-particle interaction (energy or energy/distance^2 units)</li>
<li>sigma = size factor for wall-particle interaction (distance units)</li>
<li>cutoff = distance from wall at which wall-particle interaction is cut off (distance units)</li>
</ul>
</div>
<div class="section" id="examples">
<h2>Examples</h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">fix</span> <span class="n">wall</span> <span class="nb">all</span> <span class="n">wall</span><span class="o">/</span><span class="n">region</span> <span class="n">mySphere</span> <span class="n">lj93</span> <span class="mf">1.0</span> <span class="mf">1.0</span> <span class="mf">2.5</span>
</pre></div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>Treat the surface of the geometric region defined by the <em>region-ID</em>
as a bounding wall which interacts with nearby particles according to
the specified style. The distance between a particle and the surface
is the distance to the nearest point on the surface and the force the
wall exerts on the particle is along the direction between that point
and the particle, which is the direction normal to the surface at that
point. Note that if the region surface is comprised of multiple
&#8220;faces&#8221;, then each face can exert a force on the particle if it is
close enough. E.g. for <a class="reference internal" href="region.html"><span class="doc">region_style block</span></a>, a particle
in the interior, near a corner of the block, could feel wall forces
from 1, 2, or 3 faces of the block.</p>
<p>Regions are defined using the <a class="reference internal" href="region.html"><span class="doc">region</span></a> command. Note that
the region volume can be interior or exterior to the bounding surface,
which will determine in which direction the surface interacts with
particles, i.e. the direction of the surface normal. The surface of
the region only exerts forces on particles &#8220;inside&#8221; the region; if a
particle is &#8220;outside&#8221; the region it will generate an error, because it
has moved through the wall.</p>
<p>Regions can either be primitive shapes (block, sphere, cylinder, etc)
or combinations of primitive shapes specified via the <em>union</em> or
<em>intersect</em> region styles. These latter styles can be used to
construct particle containers with complex shapes. Regions can also
change over time via the <a class="reference internal" href="region.html"><span class="doc">region</span></a> command keywords (move)
and <em>rotate</em>. If such a region is used with this fix, then the of
region surface will move over time in the corresponding manner.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">As discussed on the <a class="reference internal" href="region.html"><span class="doc">region</span></a> command doc page,
regions in LAMMPS do not get wrapped across periodic boundaries. It
is up to you to insure that periodic or non-periodic boundaries are
specified appropriately via the <a class="reference internal" href="boundary.html"><span class="doc">boundary</span></a> command when
using a region as a wall that bounds particle motion. This also means
that if you embed a region in your simulation box and want it to
repulse particles from its surface (using the &#8220;side out&#8221; option in the
<a class="reference internal" href="region.html"><span class="doc">region</span></a> command), that its repulsive force will not be
felt across a periodic boundary.</p>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">For primitive regions with sharp corners and/or edges (e.g. a
block or cylinder), wall/particle forces are computed accurately for
both interior and exterior regions. For <em>union</em> and <em>intersect</em>
regions, additional sharp corners and edges may be present due to the
intersection of the surfaces of 2 or more primitive volumes. These
corners and edges can be of two types: concave or convex. Concave
points/edges are like the corners of a cube as seen by particles in
the interior of a cube. Wall/particle forces around these features
are computed correctly. Convex points/edges are like the corners of a
cube as seen by particles exterior to the cube, i.e. the points jut
into the volume where particles are present. LAMMPS does NOT compute
the location of these convex points directly, and hence wall/particle
forces in the cutoff volume around these points suffer from
inaccuracies. The basic problem is that the outward normal of the
surface is not continuous at these points. This can cause particles
to feel no force (they don&#8217;t &#8220;see&#8221; the wall) when in one location,
then move a distance epsilon, and suddenly feel a large force because
they now &#8220;see&#8221; the wall. In a worst-case scenario, this can blow
particles out of the simulation box. Thus, as a general rule you
should not use the fix wall/region command with <em>union</em> or
<em>interesect</em> regions that have convex points or edges.</p>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Similarly, you should not define <em>union</em> or <em>intersert</em> regions
for use with this command that share a common face, even if the face
is smooth. E.g. two regions of style block in a <em>union</em> region, where
the two blocks have the same face. This is because LAMMPS discards
points that are part of multiple sub-regions when calculating
wall/particle interactions, to avoid double-counting the interaction.
Having two coincident faces could cause the face to become invisible
to the particles. The solution is to make the two faces differ by
epsilon in their position.</p>
</div>
<p>The energy of wall-particle interactions depends on the specified
style.</p>
<p>For style <em>lj93</em>, the energy E is given by the 9/3 potential:</p>
<img alt="_images/fix_wall_lj93.jpg" class="align-center" src="_images/fix_wall_lj93.jpg" />
<p>For style <em>lj126</em>, the energy E is given by the 12/6 potential:</p>
<img alt="_images/pair_lj.jpg" class="align-center" src="_images/pair_lj.jpg" />
<p>For style <em>colloid</em>, the energy E is given by an integrated form of
the <a class="reference internal" href="pair_colloid.html"><span class="doc">pair_style colloid</span></a> potential:</p>
<img alt="_images/fix_wall_colloid.jpg" class="align-center" src="_images/fix_wall_colloid.jpg" />
<p>For style <em>wall/harmonic</em>, the energy E is given by a harmonic spring
potential:</p>
<img alt="_images/fix_wall_harmonic.jpg" class="align-center" src="_images/fix_wall_harmonic.jpg" />
<p>In all cases, <em>r</em> is the distance from the particle to the region
surface, and Rc is the <em>cutoff</em> distance at which the particle and
surface no longer interact. The energy of the wall potential is
shifted so that the wall-particle interaction energy is 0.0 at the
cutoff distance.</p>
<p>For the <em>lj93</em> and <em>lj126</em> styles, <em>epsilon</em> and <em>sigma</em> are the usual
Lennard-Jones parameters, which determine the strength and size of the
particle as it interacts with the wall. Epsilon has energy units.
Note that this <em>epsilon</em> and <em>sigma</em> may be different than any
<em>epsilon</em> or <em>sigma</em> values defined for a pair style that computes
particle-particle interactions.</p>
<p>The <em>lj93</em> interaction is derived by integrating over a 3d
half-lattice of Lennard-Jones 12/6 particles. The <em>lj126</em> interaction
is effectively a harder, more repulsive wall interaction.</p>
<p>For the <em>colloid</em> style, <em>epsilon</em> is effectively a Hamaker constant
with energy units for the colloid-wall interaction, <em>R</em> is the radius
of the colloid particle, <em>D</em> is the distance from the surface of the
colloid particle to the wall (r-R), and <em>sigma</em> is the size of a
constituent LJ particle inside the colloid particle. Note that the
cutoff distance Rc in this case is the distance from the colloid
particle center to the wall.</p>
<p>The <em>colloid</em> interaction is derived by integrating over constituent
LJ particles of size <em>sigma</em> within the colloid particle and a 3d
half-lattice of Lennard-Jones 12/6 particles of size <em>sigma</em> in the
wall.</p>
<p>For the <em>wall/harmonic</em> style, <em>epsilon</em> is effectively the spring
constant K, and has units (energy/distance^2). The input parameter
<em>sigma</em> is ignored. The minimum energy position of the harmonic
spring is at the <em>cutoff</em>. This is a repulsive-only spring since the
interaction is truncated at the <em>cutoff</em></p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">For all of the styles, you must insure that r is always &gt; 0 for
all particles in the group, or LAMMPS will generate an error. This
means you cannot start your simulation with particles on the region
surface (r = 0) or with particles on the wrong side of the region
surface (r &lt; 0). For the <em>wall/lj93</em> and <em>wall/lj126</em> styles, the
energy of the wall/particle interaction (and hence the force on the
particle) blows up as r -&gt; 0. The <em>wall/colloid</em> style is even more
restrictive, since the energy blows up as D = r-R -&gt; 0. This means
the finite-size particles of radius R must be a distance larger than R
from the region surface. The <em>harmonic</em> style is a softer potential
and does not blow up as r -&gt; 0, but you must use a large enough
<em>epsilon</em> that particles always reamin on the correct side of the
region surface (r &gt; 0).</p>
</div>
</div>
<div class="section" id="restart-fix-modify-output-run-start-stop-minimize-info">
<h2>Restart, fix_modify, output, run start/stop, minimize info</h2>
<p>No information about this fix is written to <a class="reference internal" href="restart.html"><span class="doc">binary restart files</span></a>.</p>
<p>The <a class="reference internal" href="fix_modify.html"><span class="doc">fix_modify</span></a> <em>energy</em> option is supported by this
fix to add the energy of interaction between atoms and the wall to the
system&#8217;s potential energy as part of <a class="reference internal" href="thermo_style.html"><span class="doc">thermodynamic output</span></a>.</p>
<p>The <a class="reference internal" href="fix_modify.html"><span class="doc">fix_modify</span></a> <em>respa</em> option is supported by this
fix. This allows to set at which level of the <a class="reference internal" href="run_style.html"><span class="doc">r-RESPA</span></a>
integrator the fix is adding its forces. Default is the outermost level.</p>
<p>This fix computes a global scalar energy and a global 3-length vector
of forces, which can be accessed by various <a class="reference internal" href="Section_howto.html#howto-15"><span class="std std-ref">output commands</span></a>. The scalar energy is the sum
of energy interactions for all particles interacting with the wall
represented by the region surface. The 3 vector quantities are the
x,y,z components of the total force acting on the wall due to the
particles. The scalar and vector values calculated by this fix are
&#8220;extensive&#8221;.</p>
<p>No parameter of this fix can be used with the <em>start/stop</em> keywords of
the <a class="reference internal" href="run.html"><span class="doc">run</span></a> command.</p>
<p>The forces due to this fix are imposed during an energy minimization,
invoked by the <a class="reference internal" href="minimize.html"><span class="doc">minimize</span></a> command.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">If you want the atom/wall interaction energy to be included in
the total potential energy of the system (the quantity being
minimized), you MUST enable the <a class="reference internal" href="fix_modify.html"><span class="doc">fix_modify</span></a> <em>energy</em>
option for this fix.</p>
</div>
</div>
<div class="section" id="restrictions">
<h2>Restrictions</h2>
<blockquote>
<div>none</div></blockquote>
</div>
<div class="section" id="related-commands">
<h2>Related commands</h2>
<p><a class="reference internal" href="fix_wall.html"><span class="doc">fix wall/lj93</span></a>,
<a class="reference internal" href="fix_wall.html"><span class="doc">fix wall/lj126</span></a>,
<a class="reference internal" href="fix_wall.html"><span class="doc">fix wall/colloid</span></a>,
<a class="reference internal" href="fix_wall_gran.html"><span class="doc">fix wall/gran</span></a></p>
<p><strong>Default:</strong> none</p>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; 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>