forked from lijiext/lammps
425 lines
22 KiB
HTML
425 lines
22 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 bond/create 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>fix bond/create 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-bond-create-command">
|
|
<span id="index-0"></span><h1>fix bond/create 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">bond</span><span class="o">/</span><span class="n">create</span> <span class="n">Nevery</span> <span class="n">itype</span> <span class="n">jtype</span> <span class="n">Rmin</span> <span class="n">bondtype</span> <span class="n">keyword</span> <span class="n">values</span> <span class="o">...</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>bond/create = style name of this fix command</li>
|
|
<li>Nevery = attempt bond creation every this many steps</li>
|
|
<li>itype,jtype = atoms of itype can bond to atoms of jtype</li>
|
|
<li>Rmin = 2 atoms separated by less than Rmin can bond (distance units)</li>
|
|
<li>bondtype = type of created bonds</li>
|
|
<li>zero or more keyword/value pairs may be appended to args</li>
|
|
<li>keyword = <em>iparam</em> or <em>jparam</em> or <em>prob</em> or <em>atype</em> or <em>dtype</em> or <em>itype</em></li>
|
|
</ul>
|
|
<pre class="literal-block">
|
|
<em>iparam</em> values = maxbond, newtype
|
|
maxbond = max # of bonds of bondtype the itype atom can have
|
|
newtype = change the itype atom to this type when maxbonds exist
|
|
<em>jparam</em> values = maxbond, newtype
|
|
maxbond = max # of bonds of bondtype the jtype atom can have
|
|
newtype = change the jtype atom to this type when maxbonds exist
|
|
<em>prob</em> values = fraction seed
|
|
fraction = create a bond with this probability if otherwise eligible
|
|
seed = random number seed (positive integer)
|
|
<em>atype</em> value = angletype
|
|
angletype = type of created angles
|
|
<em>dtype</em> value = dihedraltype
|
|
dihedraltype = type of created dihedrals
|
|
<em>itype</em> value = impropertype
|
|
impropertype = type of created impropers
|
|
</pre>
|
|
</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="mi">5</span> <span class="nb">all</span> <span class="n">bond</span><span class="o">/</span><span class="n">create</span> <span class="mi">10</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mf">0.8</span> <span class="mi">1</span>
|
|
<span class="n">fix</span> <span class="mi">5</span> <span class="nb">all</span> <span class="n">bond</span><span class="o">/</span><span class="n">create</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mf">0.8</span> <span class="mi">1</span> <span class="n">prob</span> <span class="mf">0.5</span> <span class="mi">85784</span> <span class="n">iparam</span> <span class="mi">2</span> <span class="mi">3</span>
|
|
<span class="n">fix</span> <span class="mi">5</span> <span class="nb">all</span> <span class="n">bond</span><span class="o">/</span><span class="n">create</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">3</span> <span class="mf">0.8</span> <span class="mi">1</span> <span class="n">prob</span> <span class="mf">0.5</span> <span class="mi">85784</span> <span class="n">iparam</span> <span class="mi">2</span> <span class="mi">3</span> <span class="n">atype</span> <span class="mi">1</span> <span class="n">dtype</span> <span class="mi">2</span>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="description">
|
|
<h2>Description</h2>
|
|
<p>Create bonds between pairs of atoms as a simulation runs according to
|
|
specified criteria. This can be used to model cross-linking of
|
|
polymers, the formation of a percolation network, etc. In this
|
|
context, a bond means an interaction between a pair of atoms computed
|
|
by the <a class="reference internal" href="bond_style.html"><span class="doc">bond_style</span></a> command. Once the bond is created
|
|
it will be permanently in place. Optionally, the creation of a bond
|
|
can also create angle, dihedral, and improper interactions that bond
|
|
is part of. See the discussion of the <em>atype</em>, <em>dtype</em>, and <em>itype</em>
|
|
keywords below.</p>
|
|
<p>This is different than a <a class="reference internal" href="pair_style.html"><span class="doc">pairwise</span></a> bond-order
|
|
potential such as Tersoff or AIREBO which infers bonds and many-body
|
|
interactions based on the current geometry of a small cluster of atoms
|
|
and effectively creates and destroys bonds and higher-order many-body
|
|
interactions from timestep to timestep as atoms move.</p>
|
|
<p>A check for possible new bonds is performed every <em>Nevery</em> timesteps.
|
|
If two atoms I,J are within a distance <em>Rmin</em> of each other, if I is
|
|
of atom type <em>itype</em>, if J is of atom type <em>jtype</em>, if both I and J
|
|
are in the specified fix group, if a bond does not already exist
|
|
between I and J, and if both I and J meet their respective <em>maxbond</em>
|
|
requirement (explained below), then I,J is labeled as a “possible”
|
|
bond pair.</p>
|
|
<p>If several atoms are close to an atom, it may have multiple possible
|
|
bond partners. Every atom checks its list of possible bond partners
|
|
and labels the closest such partner as its “sole” bond partner. After
|
|
this is done, if atom I has atom J as its sole partner, and atom J has
|
|
atom I as its sole partner, then the I,J bond is “eligible” to be
|
|
formed.</p>
|
|
<p>Note that these rules mean an atom will only be part of at most one
|
|
created bond on a given timestep. It also means that if atom I
|
|
chooses atom J as its sole partner, but atom J chooses atom K is its
|
|
sole partner (due to Rjk < Rij), then this means atom I will not form
|
|
a bond on this timestep, even if it has other possible bond partners.</p>
|
|
<p>It is permissible to have <em>itype</em> = <em>jtype</em>. <em>Rmin</em> must be <= the
|
|
pairwise cutoff distance between <em>itype</em> and <em>jtype</em> atoms, as defined
|
|
by the <a class="reference internal" href="pair_style.html"><span class="doc">pair_style</span></a> command.</p>
|
|
<p>The <em>iparam</em> and <em>jparam</em> keywords can be used to limit the bonding
|
|
functionality of the participating atoms. Each atom keeps track of
|
|
how many bonds of <em>bondtype</em> it already has. If atom I of
|
|
itype already has <em>maxbond</em> bonds (as set by the <em>iparam</em>
|
|
keyword), then it will not form any more. Likewise for atom J. If
|
|
<em>maxbond</em> is set to 0, then there is no limit on the number of bonds
|
|
that can be formed with that atom.</p>
|
|
<p>The <em>newtype</em> value for <em>iparam</em> and <em>jparam</em> can be used to change
|
|
the atom type of atom I or J when it reaches <em>maxbond</em> number of bonds
|
|
of type <em>bondtype</em>. This means it can now interact in a pairwise
|
|
fashion with other atoms in a different way by specifying different
|
|
<a class="reference internal" href="pair_coeff.html"><span class="doc">pair_coeff</span></a> coefficients. If you do not wish the
|
|
atom type to change, simply specify <em>newtype</em> as <em>itype</em> or <em>jtype</em>.</p>
|
|
<p>The <em>prob</em> keyword can also effect whether an eligible bond is
|
|
actually created. The <em>fraction</em> setting must be a value between 0.0
|
|
and 1.0. A uniform random number between 0.0 and 1.0 is generated and
|
|
the eligible bond is only created if the random number < fraction.</p>
|
|
<p>Any bond that is created is assigned a bond type of <em>bondtype</em></p>
|
|
<p>When a bond is created, data structures within LAMMPS that store bond
|
|
topology are updated to reflect the creation. If the bond is part of
|
|
new 3-body (angle) or 4-body (dihedral, improper) interactions, you
|
|
can choose to create new angles, dihedrals, impropers as well, using
|
|
the <em>atype</em>, <em>dtype</em>, and <em>itype</em> keywords. All of these changes
|
|
typically affect pairwise interactions between atoms that are now part
|
|
of new bonds, angles, etc.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">One data structure that is not updated when a bond breaks are
|
|
the molecule IDs stored by each atom. Even though two molecules
|
|
become one moleclue due to the created bond, all atoms in the new
|
|
moleclue retain their original molecule IDs.</p>
|
|
</div>
|
|
<p>If the <em>atype</em> keyword is used and if an angle potential is defined
|
|
via the <span class="xref doc">angle_style</span> command, then any new 3-body
|
|
interactions inferred by the creation of a bond will create new angles
|
|
of type <em>angletype</em>, with parameters assigned by the corresponding
|
|
<a class="reference internal" href="angle_coeff.html"><span class="doc">angle_coeff</span></a> command. Likewise, the <em>dtype</em> and
|
|
<em>itype</em> keywords will create new dihedrals and impropers of type
|
|
<em>dihedraltype</em> and <em>impropertype</em>.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">To create a new bond, the internal LAMMPS data structures that
|
|
store this information must have space for it. When LAMMPS is
|
|
initialized from a data file, the list of bonds is scanned and the
|
|
maximum number of bonds per atom is tallied. If some atom will
|
|
acquire more bonds than this limit as this fix operates, then the
|
|
“extra bond per atom” parameter must be set to allow for it. Ditto
|
|
for “extra angle per atom”, “extra dihedral per atom”, and “extra
|
|
improper per atom” if angles, dihedrals, or impropers are being added
|
|
when bonds are created. See the <a class="reference internal" href="read_data.html"><span class="doc">read_data</span></a> or
|
|
<a class="reference internal" href="create_box.html"><span class="doc">create_box</span></a> command for more details. Note that a
|
|
data file with no atoms can be used if you wish to add unbonded atoms
|
|
via the <a class="reference internal" href="create_atoms.html"><span class="doc">create atoms</span></a> command, e.g. for a
|
|
percolation simulation.</p>
|
|
</div>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">LAMMPS stores and maintains a data structure with a list of the
|
|
1st, 2nd, and 3rd neighbors of each atom (within the bond topology of
|
|
the system) for use in weighting pairwise interactions for bonded
|
|
atoms. Note that adding a single bond always adds a new 1st neighbor
|
|
but may also induce <em>many</em> new 2nd and 3rd neighbors, depending on the
|
|
molecular topology of your system. The “extra special per atom”
|
|
parameter must typically be set to allow for the new maximum total
|
|
size (1st + 2nd + 3rd neighbors) of this per-atom list. There are 3
|
|
ways to do this. See the <a class="reference internal" href="read_data.html"><span class="doc">read_data</span></a> or
|
|
<a class="reference internal" href="create_box.html"><span class="doc">create_box</span></a> or “special_bonds extra” commands for
|
|
details.</p>
|
|
</div>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Even if you do not use the <em>atype</em>, <em>dtype</em>, or <em>itype</em>
|
|
keywords, the list of topological neighbors is updated for atoms
|
|
affected by the new bond. This in turn affects which neighbors are
|
|
considered for pairwise interactions, using the weighting rules set by
|
|
the <a class="reference internal" href="special_bonds.html"><span class="doc">special_bonds</span></a> command. Consider a new bond
|
|
created between atoms I,J. If J has a bonded neighbor K, then K
|
|
becomes a 2nd neighbor of I. Even if the <em>atype</em> keyword is not used
|
|
to create angle I-J-K, the pairwise interaction between I and K will
|
|
be potentially turned off or weighted by the 1-3 weighting specified
|
|
by the <a class="reference internal" href="special_bonds.html"><span class="doc">special_bonds</span></a> command. This is the case
|
|
even if the “angle yes” option was used with that command. The same
|
|
is true for 3rd neighbors (1-4 interactions), the <em>dtype</em> keyword, and
|
|
the “dihedral yes” option used with the
|
|
<a class="reference internal" href="special_bonds.html"><span class="doc">special_bonds</span></a> command.</p>
|
|
</div>
|
|
<p>Note that even if your simulation starts with no bonds, you must
|
|
define a <a class="reference internal" href="bond_style.html"><span class="doc">bond_style</span></a> and use the
|
|
<a class="reference internal" href="bond_coeff.html"><span class="doc">bond_coeff</span></a> command to specify coefficients for the
|
|
<em>bondtype</em>. Similarly, if new atom types are specified by the
|
|
<em>iparam</em> or <em>jparam</em> keywords, they must be within the range of atom
|
|
types allowed by the simulation and pairwise coefficients must be
|
|
specified for the new types.</p>
|
|
<p>Computationally, each timestep this fix operates, it loops over
|
|
neighbor lists and computes distances between pairs of atoms in the
|
|
list. It also communicates between neighboring processors to
|
|
coordinate which bonds are created. Moreover, if any bonds are
|
|
created, neighbor lists must be immediately updated on the same
|
|
timestep. This is to insure that any pairwise interactions that
|
|
should be turned “off” due to a bond creation, because they are now
|
|
excluded by the presence of the bond and the settings of the
|
|
<a class="reference internal" href="special_bonds.html"><span class="doc">special_bonds</span></a> command, will be immediately
|
|
recognized. All of these operations increase the cost of a timestep.
|
|
Thus you should be cautious about invoking this fix too frequently.</p>
|
|
<p>You can dump out snapshots of the current bond topology via the <a class="reference internal" href="dump.html"><span class="doc">dump local</span></a> command.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Creating a bond typically alters the energy of a system. You
|
|
should be careful not to choose bond creation criteria that induce a
|
|
dramatic change in energy. For example, if you define a very stiff
|
|
harmonic bond and create it when 2 atoms are separated by a distance
|
|
far from the equilibribum bond length, then the 2 atoms will oscillate
|
|
dramatically when the bond is formed. More generally, you may need to
|
|
thermostat your system to compensate for energy changes resulting from
|
|
created bonds (and angles, dihedrals, impropers).</p>
|
|
</div>
|
|
</div>
|
|
<hr class="docutils" />
|
|
<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>. None of the <a class="reference internal" href="fix_modify.html"><span class="doc">fix_modify</span></a> options
|
|
are relevant to this fix.</p>
|
|
<p>This fix computes two statistics which it stores in a global vector of
|
|
length 2, 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 vector values calculated
|
|
by this fix are “intensive”.</p>
|
|
<p>These are the 2 quantities:</p>
|
|
<ul class="simple">
|
|
<li><ol class="first arabic">
|
|
<li># of bonds created on the most recent creation timestep</li>
|
|
</ol>
|
|
</li>
|
|
<li><ol class="first arabic" start="2">
|
|
<li>cummulative # of bonds created</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<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. This fix is not invoked during <a class="reference internal" href="minimize.html"><span class="doc">energy minimization</span></a>.</p>
|
|
</div>
|
|
<div class="section" id="restrictions">
|
|
<h2>Restrictions</h2>
|
|
<p>This fix is part of the MC 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 class="std std-ref">Making LAMMPS</span></a> section for more info.</p>
|
|
</div>
|
|
<div class="section" id="related-commands">
|
|
<h2>Related commands</h2>
|
|
<p><a class="reference internal" href="fix_bond_break.html"><span class="doc">fix bond/break</span></a>, <a class="reference internal" href="fix_bond_swap.html"><span class="doc">fix bond/swap</span></a>, <a class="reference internal" href="dump.html"><span class="doc">dump local</span></a>,
|
|
<a class="reference internal" href="special_bonds.html"><span class="doc">special_bonds</span></a></p>
|
|
</div>
|
|
<div class="section" id="default">
|
|
<h2>Default</h2>
|
|
<p>The option defaults are iparam = (0,itype), jparam = (0,jtype), and
|
|
prob = 1.0.</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> |