lammps/doc/html/pair_polymorphic.html

380 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>pair_style polymorphic 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>pair_style polymorphic 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="pair-style-polymorphic-command">
<span id="index-0"></span><h1>pair_style polymorphic command</h1>
<div class="section" id="syntax">
<h2>Syntax</h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">pair_style</span> <span class="n">polymorphic</span>
</pre></div>
</div>
<p>style = <em>polymorphic</em></p>
</div>
<div class="section" id="examples">
<h2>Examples</h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">pair_style</span> <span class="n">polymorphic</span>
<span class="n">pair_coeff</span> <span class="o">*</span> <span class="o">*</span> <span class="n">TlBr_msw</span><span class="o">.</span><span class="n">polymorphic</span> <span class="n">Tl</span> <span class="n">Br</span>
<span class="n">pair_coeff</span> <span class="o">*</span> <span class="o">*</span> <span class="n">AlCu_eam</span><span class="o">.</span><span class="n">polymorphic</span> <span class="n">Al</span> <span class="n">Cu</span>
<span class="n">pair_coeff</span> <span class="o">*</span> <span class="o">*</span> <span class="n">GaN_tersoff</span><span class="o">.</span><span class="n">polymorphic</span> <span class="n">Ga</span> <span class="n">N</span>
<span class="n">pair_coeff</span> <span class="o">*</span> <span class="o">*</span> <span class="n">GaN_sw</span><span class="o">.</span><span class="n">polymorphic</span> <span class="n">GaN</span>
</pre></div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>The <em>polymorphic</em> pair style computes a 3-body free-form potential
(<a class="reference internal" href="#zhou"><span class="std std-ref">Zhou</span></a>) for the energy E of a system of atoms as</p>
<img alt="_images/polymorphic1.jpg" class="align-center" src="_images/polymorphic1.jpg" />
<img alt="_images/polymorphic2.jpg" class="align-center" src="_images/polymorphic2.jpg" />
<img alt="_images/polymorphic3.jpg" class="align-center" src="_images/polymorphic3.jpg" />
<p>where I, J, K represent species of atoms i, j, and k, i_1, ..., i_N
represents a list of i&#8217;s neighbors, delta_ij is a Direc constant
(i.e., delta_ij = 1 when i = j, and delta_ij = 0 otherwise), eta_ij is
similar constant that can be set either to eta_ij = delta_ij or eta_ij
= 1 - delta_ij depending on the potential type, U_IJ(r_ij),
V_IJ(r_ij), W_IK(r_ik) are pair functions, G_JIK(cos(theta)) is an
angular function, P_IK(delta r_jik) is a function of atomic spacing
differential delta r_jik = r_ij - xi_IJ*r_ik with xi_IJ being a
pair-dependent parameter, and F_IJ(X_ij) is a function of the local
environment variable X_ij. This generic potential is fully defined
once the constants eta_ij and xi_IJ, and the six functions U_IJ(r_ij),
V_IJ(r_ij), W_IK(r_ik), G_JIK(cos(theta)), P_IK(delta r_jik), and
F_IJ(X_ij) are given. Note that these six functions are all one
dimensional, and hence can be provided in an analytic or tabular
form. This allows users to design different potentials solely based on
a manipulation of these functions. For instance, the potential reduces
to Stillinger-Weber potential (<a class="reference internal" href="#sw"><span class="std std-ref">SW</span></a>) if we set</p>
<img alt="_images/polymorphic4.jpg" class="align-center" src="_images/polymorphic4.jpg" />
<p>The potential reduces to Tersoff types of potential
(<a class="reference internal" href="#tersoff"><span class="std std-ref">Tersoff</span></a> or <a class="reference internal" href="pair_tersoff_zbl.html#albe"><span class="std std-ref">Albe</span></a>) if we set</p>
<img alt="_images/polymorphic5.jpg" class="align-center" src="_images/polymorphic5.jpg" />
<img alt="_images/polymorphic6.jpg" class="align-center" src="_images/polymorphic6.jpg" />
<p>The potential reduces to Rockett-Tersoff (<a class="reference internal" href="#wang"><span class="std std-ref">Wang</span></a>) type if we set</p>
<img alt="_images/polymorphic7.jpg" class="align-center" src="_images/polymorphic7.jpg" />
<img alt="_images/polymorphic6.jpg" class="align-center" src="_images/polymorphic6.jpg" />
<img alt="_images/polymorphic8.jpg" class="align-center" src="_images/polymorphic8.jpg" />
<p>The potential becomes embedded atom method (<a class="reference internal" href="#daw"><span class="std std-ref">Daw</span></a>) if we set</p>
<img alt="_images/polymorphic9.jpg" class="align-center" src="_images/polymorphic9.jpg" />
<p>In the embedded atom method case, phi_IJ(r_ij) is the pair energy,
F_I(X) is the embedding energy, X is the local electron density, and
f_K(r) is the atomic electron density function.</p>
<p>If the tabulated functions are created using the parameters of sw,
tersoff, and eam potentials, the polymorphic pair style will produce
the same global properties (energies and stresses) and the same forces
as the sw, tersoff, and eam pair styles. The polymorphic pair style
also produces the same atom properties (energies and stresses) as the
corresponding tersoff and eam pair styles. However, due to a different
partition of global properties to atom properties, the polymorphic
pair style will produce different atom properties (energies and
stresses) as the sw pair style. This does not mean that polymorphic
pair style is different from the sw pair style in this case. It just
means that the definitions of the atom energies and atom stresses are
different.</p>
<p>Only a single pair_coeff command is used with the polymorphic style
which specifies an potential file for all needed elements. These are
mapped to LAMMPS atom types by specifying N additional arguments after
the filename in the pair_coeff command, where N is the number of
LAMMPS atom types:</p>
<ul class="simple">
<li>filename</li>
<li>N element names = mapping of Tersoff elements to atom types</li>
</ul>
<p>See the pair_coeff doc page for alternate ways to specify the path for
the potential file. Several files for polymorphic potentials are
included in the potentials dir of the LAMMPS distro. They have a
&#8220;poly&#8221; suffix.</p>
<p>As an example, imagine the SiC_tersoff.polymorphic file has tabulated
functions for Si-C tersoff potential. If your LAMMPS simulation has 4
atoms types and you want the 1st 3 to be Si, and the 4th to be C, you
would use the following pair_coeff command:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">pair_coeff</span> <span class="o">*</span> <span class="o">*</span> <span class="n">SiC_tersoff</span><span class="o">.</span><span class="n">polymorphic</span> <span class="n">Si</span> <span class="n">Si</span> <span class="n">Si</span> <span class="n">C</span>
</pre></div>
</div>
<p>The 1st 2 arguments must be * * so as to span all LAMMPS atom
types. The first three Si arguments map LAMMPS atom types 1,2,3 to the
Si element in the polymorphic file. The final C argument maps LAMMPS
atom type 4 to the C element in the polymorphic file. If a mapping
value is specified as NULL, the mapping is not performed. This can be
used when an polymorphic potential is used as part of the hybrid pair
style. The NULL values are placeholders for atom types that will be
used with other potentials.</p>
<p>Potential files in the potentials directory of the LAMMPS distribution
have a &#8221;.poly&#8221; suffix. At the beginning of the files, an unlimited
number of lines starting with &#8216;#&#8217; are used to describe the potential
and are ignored by LAMMPS. The next line lists two numbers:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">ntypes</span> <span class="n">eta</span>
</pre></div>
</div>
<p>Here ntypes represent total number of species defined in the potential
file, and eta = 0 or 1. The number ntypes must equal the total number
of different species defined in the pair_coeff command. When eta = 1,
eta_ij defined in the potential functions above is set to 1 -
delta_ij, otherwise eta_ij is set to delta_ij. The next ntypes lines
each lists two numbers and a character string representing atomic
number, atomic mass, and name of the species of the ntypes elements:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">atomic_number</span> <span class="n">atomic</span><span class="o">-</span><span class="n">mass</span> <span class="n">element</span> <span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="n">atomic_number</span> <span class="n">atomic</span><span class="o">-</span><span class="n">mass</span> <span class="n">element</span> <span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="o">...</span>
<span class="n">atomic_number</span> <span class="n">atomic</span><span class="o">-</span><span class="n">mass</span> <span class="n">element</span> <span class="p">(</span><span class="n">ntypes</span><span class="p">)</span>
</pre></div>
</div>
<p>The next ntypes*(ntypes+1)/2 lines contain two numbers:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">cut</span> <span class="n">xi</span> <span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="n">cut</span> <span class="n">xi</span> <span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="o">...</span>
<span class="n">cut</span> <span class="n">xi</span> <span class="p">(</span><span class="n">ntypes</span><span class="o">*</span><span class="p">(</span><span class="n">ntypes</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span>
</pre></div>
</div>
<p>Here cut means the cutoff distance of the pair functions, xi is the
same as defined in the potential functions above. The
ntypes*(ntypes+1)/2 lines are related to the pairs according to the
sequence of first ii (self) pairs, i = 1, 2, ..., ntypes, and then
then ij (cross) pairs, i = 1, 2, ..., ntypes-1, and j = i+1, i+2, ...,
ntypes (i.e., the sequence of the ij pairs follows 11, 22, ..., 12,
13, 14, ..., 23, 24, ...).</p>
<p>The final blocks of the potential file are the U, V, W, P, G, and F
functions are listed sequentially. First, U functions are given for
each of the ntypes*(ntypes+1)/2 pairs according to the sequence
described above. For each of the pairs, nr values are listed. Next,
similar arrays are given for V, W, and P functions. Then G functions
are given for all the ntypes*ntypes*ntypes ijk triplets in a natural
sequence i from 1 to ntypes, j from 1 to ntypes, and k from 1 to
ntypes (i.e., ijk = 111, 112, 113, ..., 121, 122, 123 ..., 211, 212,
...). Each of the ijk functions contains ng values. Finally, the F
functions are listed for all ntypes*(ntypes+1)/2 pairs, each
containing nx values. Either analytic or tabulated functions can be
specified. Currently, constant, exponential, sine and cosine analytic
functions are available which are specified with: constant c1 , where
f(x) = c1 exponential c1 c2 , where f(x) = c1 exp(c2*x) sine c1 c2 ,
where f(x) = c1 sin(c2*x) cos c1 c2 , where f(x) = c1 cos(c2*x)
Tabulated functions are specified by spline n x1 x2, where n=number of
point, (x1,x2)=range and then followed by n values evaluated uniformly
over these argument ranges. The valid argument ranges of the
functions are between 0 &lt;= r &lt;= cut for the U(r), V(r), W(r)
functions, -cutmax &lt;= delta_r &lt;= cutmax for the P(delta_r) functions,
-1 &lt;= costheta &lt;= 1 for the G(costheta) functions, and 0 &lt;= X &lt;= maxX
for the F(X) functions.</p>
<p><strong>Mixing, shift, table tail correction, restart</strong>:</p>
<p>This pair styles does not support the <a class="reference internal" href="pair_modify.html"><span class="doc">pair_modify</span></a>
shift, table, and tail options.</p>
<p>This pair style does not write their information to <a class="reference internal" href="restart.html"><span class="doc">binary restart files</span></a>, since it is stored in potential files. Thus, you
need to re-specify the pair_style and pair_coeff commands in an input
script that reads a restart file.</p>
</div>
<hr class="docutils" />
<div class="section" id="restrictions">
<h2>Restrictions</h2>
<p>If using create_atoms command, atomic masses must be defined in the
input script. If using read_data, atomic masses must be defined in the
atomic structure data file.</p>
<p>This pair style is part of the MANYBODY package. It is only enabled if
LAMMPS was built with that package (which it is by default). 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>
<p>This pair potential requires the <a class="reference internal" href="newton.html"><span class="doc">newtion</span></a> setting to be
&#8220;on&#8221; for pair interactions.</p>
<p>The potential files provided with LAMMPS (see the potentials
directory) are parameterized for metal <a class="reference internal" href="units.html"><span class="doc">units</span></a>. You can use
any LAMMPS units, but you would need to create your own potential
files.</p>
</div>
<div class="section" id="related-commands">
<h2>Related commands</h2>
<p><a class="reference internal" href="pair_coeff.html"><span class="doc">pair_coeff</span></a></p>
<hr class="docutils" />
<p id="zhou"><strong>(Zhou)</strong> X. W. Zhou, M. E. Foster, R. E. Jones, P. Yang, H. Fan, and
F. P. Doty, J. Mater. Sci. Res., 4, 15 (2015).</p>
<p id="sw"><strong>(SW)</strong> F. H. Stillinger-Weber, and T. A. Weber, Phys. Rev. B, 31, 5262 (1985).</p>
<p id="tersoff"><strong>(Tersoff)</strong> J. Tersoff, Phys. Rev. B, 39, 5566 (1989).</p>
<p id="albe"><strong>(Albe)</strong> K. Albe, K. Nordlund, J. Nord, and A. Kuronen, Phys. Rev. B,
66, 035205 (2002).</p>
<p id="wang"><strong>(Wang)</strong> J. Wang, and A. Rockett, Phys. Rev. B, 43, 12571 (1991).</p>
<p id="daw"><strong>(Daw)</strong> M. S. Daw, and M. I. Baskes, Phys. Rev. B, 29, 6443 (1984).</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>