lammps/doc/fix_atom_swap.html

357 lines
16 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 atom/swap command &mdash; LAMMPS 15 May 2015 version 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 15 May 2015 version 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 atom/swap 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-atom-swap-command">
<span id="index-0"></span><h1>fix atom/swap command<a class="headerlink" href="#fix-atom-swap-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>fix ID group-ID atom/swap N X seed T keyword values ...
</pre></div>
</div>
<ul class="simple">
<li>ID, group-ID are documented in <a class="reference internal" href="fix.html"><em>fix</em></a> command</li>
<li>atom/swap = style name of this fix command</li>
<li>N = invoke this fix every N steps</li>
<li>X = number of swaps to attempt every N steps</li>
<li>seed = random # seed (positive integer)</li>
<li>T = scaling temperature of the MC swaps (temperature units)</li>
<li>one or more keyword/value pairs may be appended to args</li>
<li>keyword = <em>types</em> or <em>mu</em> or <em>ke</em> or <em>semi-grand</em> or <em>region</em></li>
</ul>
<pre class="literal-block">
<em>types</em> values = two or more atom types
<em>mu</em> values = chemical potential of swap types (energy units)
<em>ke</em> value = <em>no</em> or <em>yes</em>
<em>no</em> = no conservation of kinetic energy after atom swaps
<em>yes</em> = kinetic energy is conserved after atom swaps
<em>semi-grand</em> value = <em>no</em> or <em>yes</em>
<em>no</em> = particle type counts and fractions conserved
<em>yes</em> = semi-grand canonical ensemble, particle fractions not conserved
<em>region</em> value = region-ID
region-ID = ID of region to use as an exchange/move volume
</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>fix 2 all atom/swap 1 1 29494 300.0 ke no types 1 2
fix myFix all atom/swap 100 1 12345 298.0 region my_swap_region types 5 6
fix SGMC all atom/swap 1 100 345 1.0 semi-grand yes types 1 2 3 mu 4.3 -5.0
</pre></div>
</div>
</div>
<div class="section" id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
<p>This fix performs Monte Carlo swaps of atoms of one given atom type
with atoms of the other given atom types. The specified T is used in
the Metropolis criterion dictating swap probabilities.</p>
<p>Perform X swaps of atoms of one type with atoms of another type
according to a Monte Carlo probability. Swap candidates must be in the
fix group, must be in the region (if specified), and must be of one of
the listed types. Swaps are attempted between candidates that are
chosen randomly with equal probability among the candidate
atoms. Swaps are not attempted between atoms of the same type since
nothing would happen.</p>
<p>All atoms in the simulation domain can be moved using regular time
integration displacements, e.g. via <code class="xref doc docutils literal"><span class="pre">fix_nvt</span></code>, resulting
in a hybrid MC+MD simulation. A smaller-than-usual timestep size may
be needed when running such a hybrid simulation, especially if the
swapped atoms are not well equilibrated.</p>
<p>The <em>types</em> keyword is required. At least two atom types must be
specified.</p>
<p>The <em>ke</em> keyword can be set to <em>no</em> to turn off kinetic energy
conservation for swaps. The default is <em>yes</em>, which means that swapped
atoms have their velocities scaled by the ratio of the masses of the
swapped atom types. This ensures that the kinetic energy of each atom
is the same after the swap as it was before the swap, even though the
atom masses have changed.</p>
<p>The <em>semi-grand</em> keyword can be set to <em>yes</em> to switch to the
semi-grand canonical ensemble as discussed in <a class="reference internal" href="#sadigh"><span>(Sadigh)</span></a>. This
means that the total number of each particle type does not need to be
conserved. The default is <em>no</em>, which means that the only kind of swap
allowed exchanges an atom of one type with an atom of a different
given type. In other words, the relative mole fractions of the swapped
atoms remains constant. Whereas in the semi-grand canonical ensemble,
the composition of the system can change. Note that when using
<em>semi-grand</em>, atoms in the fix group whose type is not listed
in the <em>types</em> keyword are ineligible for attempted
conversion. An attempt is made to switch
the selected atom (if eligible) to one of the other listed types
with equal probability. Acceptance of each attempt depends upon the Metropolis criterion.</p>
<p>The <em>mu</em> keyword allows users to specify chemical
potentials. This is required and allowed only when using <em>semi-grand</em>.
All chemical potentials are absolute, so there is one for
each swap type listed following the <em>types</em> keyword.
In semi-grand canonical ensemble simulations the chemical composition
of the system is controlled by the difference in these values. So
shifting all values by a constant amount will have no effect
on the simulation.</p>
<p>This command may optionally use the <em>region</em> keyword to define swap
volume. The specified region must have been previously defined with a
<a class="reference internal" href="region.html"><em>region</em></a> command. It must be defined with side = <em>in</em>.
Swap attempts occur only between atoms that are both within the
specified region. Swaps are not otherwise attempted.</p>
<p>You should ensure you do not swap atoms belonging to a molecule, or
LAMMPS will soon generate an error when it tries to find those atoms.
LAMMPS will warn you if any of the atoms eligible for swapping have a
non-zero molecule ID, but does not check for this at the time of
swapping.</p>
<p>If not using <em>semi-grand</em> this fix checks to ensure all atoms of the
given types have the same atomic charge. LAMMPS doesn&#8217;t enforce this
in general, but it is needed for this fix to simplify the
swapping procedure. Successful swaps will swap the atom type and charge
of the swapped atoms. Conversely, when using <em>semi-grand</em>, it is assumed that all the atom
types involved in switches have the same charge. Otherwise, charge
would not be conserved. As a consequence, no checks on atomic charges are
performed, and successful switches update the atom type but not the
atom charge. While it is possible to use <em>semi-grand</em> with groups of
atoms that have different charges, these charges will not be changed when the
atom types change.</p>
<p>Since this fix computes total potential energies before and after
proposed swaps, so even complicated potential energy calculations are
OK, including the following:</p>
<ul class="simple">
<li>long-range electrostatics (kspace)</li>
<li>many body pair styles</li>
<li>hybrid pair styles</li>
<li>eam pair styles</li>
<li>triclinic systems</li>
<li>need to include potential energy contributions from other fixes</li>
</ul>
<p>Some fixes have an associated potential energy. Examples of such fixes
include: <a class="reference internal" href="fix_efield.html"><em>efield</em></a>, <a class="reference internal" href="fix_gravity.html"><em>gravity</em></a>,
<a class="reference internal" href="fix_addforce.html"><em>addforce</em></a>, <a class="reference internal" href="fix_langevin.html"><em>langevin</em></a>,
<a class="reference internal" href="fix_restrain.html"><em>restrain</em></a>, <a class="reference internal" href="fix_temp_berendsen.html"><em>temp/berendsen</em></a>,
<a class="reference internal" href="fix_temp_rescale.html"><em>temp/rescale</em></a>, and <a class="reference internal" href="fix_wall.html"><em>wall fixes</em></a>.
For that energy to be included in the total potential energy of the
system (the quantity used when performing GCMC moves),
you MUST enable the <a class="reference internal" href="fix_modify.html"><em>fix_modify</em></a> <em>energy</em> option for
that fix. The doc pages for individual <a class="reference internal" href="fix.html"><em>fix</em></a> commands
specify if this should be done.</p>
</div>
<div class="section" id="restart-fix-modify-output-run-start-stop-minimize-info">
<h2>Restart, fix_modify, output, run start/stop, minimize info<a class="headerlink" href="#restart-fix-modify-output-run-start-stop-minimize-info" title="Permalink to this headline"></a></h2>
<p>This fix writes the state of the fix to <a class="reference internal" href="restart.html"><em>binary restart files</em></a>. This includes information about the random
number generator seed, the next timestep for MC exchanges, etc. See
the <a class="reference internal" href="read_restart.html"><em>read_restart</em></a> command for info on how to
re-specify a fix in an input script that reads a restart file, so that
the operation of the fix continues in an uninterrupted fashion.</p>
<p>None of the <a class="reference internal" href="fix_modify.html"><em>fix_modify</em></a> options are relevant to this
fix.</p>
<p>This fix computes a global vector of length 2, which can be accessed
by various <a class="reference internal" href="Section_howto.html#howto-15"><span>output commands</span></a>. The vector
values are the following global cumulative quantities:</p>
<ul class="simple">
<li>1 = swap attempts</li>
<li>2 = swap successes</li>
</ul>
<p>The 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"><em>run</em></a> command. This fix is not invoked during <a class="reference internal" href="minimize.html"><em>energy minimization</em></a>.</p>
</div>
<div class="section" id="restrictions">
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline"></a></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>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><code class="xref doc docutils literal"><span class="pre">fix_nvt</span></code>, <a class="reference internal" href="neighbor.html"><em>neighbor</em></a>,
<a class="reference internal" href="fix_deposit.html"><em>fix_deposit</em></a>, <a class="reference internal" href="fix_evaporate.html"><em>fix_evaporate</em></a>,
<a class="reference internal" href="delete_atoms.html"><em>delete_atoms</em></a>, <a class="reference internal" href="fix_gcmc.html"><em>fix_gcmc</em></a></p>
</div>
<div class="section" id="default">
<h2>Default<a class="headerlink" href="#default" title="Permalink to this headline"></a></h2>
<p>The option defaults are ke = yes, semi-grand = no, mu = 0.0 for
all atom types.</p>
<hr class="docutils" />
<p id="sadigh"><strong>(Sadigh)</strong> B Sadigh, P Erhart, A Stukowski, A Caro, E Martinez, and
L Zepeda-Ruiz, Phys. Rev. B, 85, 184203 (2012).</p>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright .
</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:'15 May 2015 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>