forked from lijiext/lammps
432 lines
21 KiB
HTML
432 lines
21 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 property/atom 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 property/atom 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-property-atom-command">
|
|
<span id="index-0"></span><h1>fix property/atom command<a class="headerlink" href="#fix-property-atom-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 property/atom vec1 vec2 ... keyword value ...
|
|
</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>property/atom = style name of this fix command</li>
|
|
<li>vec1,vec2,... = <em>mol</em> or <em>q</em> or <em>rmass</em> or <em>i_name</em> or <em>d_name</em></li>
|
|
</ul>
|
|
<pre class="literal-block">
|
|
<em>mol</em> = molecule IDs
|
|
<em>q</em> = charge
|
|
<em>rmass</em> = per-atom mass
|
|
<em>i_name</em> = new integer vector referenced by name
|
|
<em>d_name</em> = new floating-point vector referenced by name
|
|
</pre>
|
|
<ul class="simple">
|
|
<li>zero of more keyword/value pairs may be appended</li>
|
|
<li>keyword = <em>ghost</em></li>
|
|
</ul>
|
|
<pre class="literal-block">
|
|
<em>ghost</em> value = <em>no</em> or <em>yes</em> for whether ghost atom info in communicated
|
|
</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 1 all property/atom mol
|
|
fix 1 all property/atom i_myflag1 i_myflag2
|
|
fix 1 all property/atom d_sx d_sy d_sz
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="description">
|
|
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
|
<p>Create one or more additional per-atom vectors to store information
|
|
about atoms and to use during a simulation. The specified <em>group-ID</em>
|
|
is ignored by this fix.</p>
|
|
<p>The atom style used for a simulation defines a set of per-atom
|
|
properties, as explained on the <a class="reference internal" href="atom_style.html"><em>atom_style</em></a> and
|
|
<a class="reference internal" href="read_data.html"><em>read_data</em></a> doc pages. The latter command allows these
|
|
properties to be defined for each atom in the system when a data file
|
|
is read. This fix will augment the set of properties with new custom
|
|
ones. This can be useful in several scenarios.</p>
|
|
<p>If the atom style does not define molecule IDs, per-atom charge,
|
|
or per-atom mass, they can be added using the <em>mol</em>, <em>q</em> or <em>rmass</em>
|
|
keywords. This can be useful, e.g, to define “molecules” to use as
|
|
rigid bodies with the <a class="reference internal" href="fix_rigid.html"><em>fix rigid</em></a> command, or just to
|
|
carry around an extra flag with the atoms (stored as a molecule ID)
|
|
that can be used to group atoms without having to use the group
|
|
command (which is limited to a total of 32 groups including <em>all</em>).</p>
|
|
<p>Another application would be to use the <em>rmass</em> flag in order to have
|
|
per-atom masses instead of per-type masses, for example this can be
|
|
useful to study isotope effects with partial isotope substitution.
|
|
Please <a class="reference internal" href="#isotopes"><span>see below</span></a> for an example of simulating a mixture
|
|
of light and heavy water with the TIP4P water potential.</p>
|
|
<p>An alternative to using fix <em>property/atom</em> in these ways is to
|
|
use an atom style that does define molecule IDs or charge or per-atom
|
|
mass (indirectly via diameter and density) or to use a hybrid atom
|
|
style that combines two or more atom styles
|
|
to provide the union of all atom properties. However, this has two
|
|
practical drawbacks: first, it typically necessitates changing the
|
|
format of the data file, which can be tedious for large systems;
|
|
and second, it may define additional properties that are not needed
|
|
such as bond lists, which has some overhead when there are no bonds.</p>
|
|
<p>In the future, we may add additional per-atom properties similar to
|
|
<em>mol</em>, <em>q</em> or <em>rmass</em>, which “turn-on” specific properties defined
|
|
by some atom styles, so they can be used by atom styles that do not
|
|
define them.</p>
|
|
<p>More generally, the <em>i_name</em> and <em>d_name</em> vectors allow one or more
|
|
new custom per-atom properties to be defined. Each name must be
|
|
unique and can use alphanumeric or underscore characters. These
|
|
vectors can store whatever values you decide are useful in your
|
|
simulation. As explained below there are several ways to initialize
|
|
and access and output these values, both via input script commands and
|
|
in new code that you add to LAMMPS.</p>
|
|
<p>This is effectively a simple way to add per-atom properties to a model
|
|
without needing to write code for a new <a class="reference internal" href="atom_style.html"><em>atom style</em></a>
|
|
that defines the properties. Note however that implementing a new
|
|
atom style allows new atom properties to be more tightly and
|
|
seamlessly integrated with the rest of the code.</p>
|
|
<p>The new atom properties encode values that migrate with atoms to new
|
|
processors and are written to restart files. If you want the new
|
|
properties to also be defined for ghost atoms, then use the <em>ghost</em>
|
|
keyword with a value of <em>yes</em>. This will invoke extra communication
|
|
when ghost atoms are created (at every re-neighboring) to insure the
|
|
new properties are also defined for the ghost atoms.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">If you use this command with the <em>mol</em>, <em>q</em> or <em>rmass</em> vectors,
|
|
then you most likely want to set <em>ghost</em> yes, since these properties
|
|
are stored with ghost atoms if you use an <a class="reference internal" href="atom_style.html"><em>atom_style</em></a>
|
|
that defines them, and many LAMMPS operations that use molecule IDs or
|
|
charge, such as neighbor lists and pair styles, will expect ghost
|
|
atoms to have these valuse. LAMMPS will issue a warning it you define
|
|
those vectors but do not set <em>ghost</em> yes.</p>
|
|
</div>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">The properties for ghost atoms are not updated every timestep,
|
|
but only once every few steps when neighbor lists are re-built. Thus
|
|
the <em>ghost</em> keyword is suitable for static properties, like molecule
|
|
IDs, but not for dynamic properties that change every step. For the
|
|
latter, the code you add to LAMMPS to change the properties will also
|
|
need to communicate their new values to/from ghost atoms, an operation
|
|
that can be invoked from within a <a class="reference internal" href="pair_style.html"><em>pair style</em></a> or
|
|
<a class="reference internal" href="fix.html"><em>fix</em></a> or <a class="reference internal" href="compute.html"><em>compute</em></a> that you write.</p>
|
|
</div>
|
|
<hr class="docutils" />
|
|
<p>This fix is one of a small number that can be defined in an input
|
|
script before the simulation box is created or atoms are defined.
|
|
This is so it can be used with the <a class="reference internal" href="read_data.html"><em>read_data</em></a> command
|
|
as described below.</p>
|
|
<p>Per-atom properties that are defined by the <a class="reference internal" href="atom_style.html"><em>atom style</em></a> are initialized when atoms are created, e.g. by
|
|
the <a class="reference internal" href="read_data.html"><em>read_data</em></a> or <a class="reference internal" href="create_atoms.html"><em>create_atoms</em></a>
|
|
commands. The per-atom properaties defined by this fix are not. So
|
|
you need to initialize them explicitly. This can be done by the
|
|
<a class="reference internal" href="read_data.html"><em>read_data</em></a> command, using its <em>fix</em> keyword and
|
|
passing it the fix-ID of this fix.</p>
|
|
<p>Thus these commands:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre>fix prop all property/atom mol d_flag
|
|
read_data data.txt fix prop NULL Molecules
|
|
</pre></div>
|
|
</div>
|
|
<p>would allow a data file to have a section like this:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="n">Molecules</span>
|
|
</pre></div>
|
|
</div>
|
|
<div class="highlight-python"><div class="highlight"><pre>1 4 1.5
|
|
2 4 3.0
|
|
3 10 1.0
|
|
4 10 1.0
|
|
5 10 1.0
|
|
...
|
|
N 763 4.5
|
|
</pre></div>
|
|
</div>
|
|
<p>where N is the number of atoms, and the first field on each line is
|
|
the atom-ID, followed by a molecule-ID and a floating point value that
|
|
will be stored in a new property called “flag”. Note that the list of
|
|
per-atom properties can be in any order.</p>
|
|
<p>Another way of initializing the new properties is via the
|
|
<a class="reference internal" href="set.html"><em>set</em></a> command. For example, if you wanted molecules
|
|
defined for every set of 10 atoms, based on their atom-IDs,
|
|
these commands could be used:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre>fix prop all property/atom mol
|
|
variable cluster atom ((id-1)/10)+1
|
|
set id * mol v_cluster
|
|
</pre></div>
|
|
</div>
|
|
<p>The <a class="reference internal" href="variable.html"><em>atom-style variable</em></a> will create values for atoms
|
|
with IDs 31,32,33,...40 that are 4.0,4.1,4.2,...,4.9. When the
|
|
<a class="reference internal" href="set.html"><em>set</em></a> commands assigns them to the molecule ID for each atom,
|
|
they will be truncated to an integer value, so atoms 31-40 will all be
|
|
assigned a molecule ID of 4.</p>
|
|
<p>Note that <a class="reference internal" href="variable.html"><em>atomfile-style variables</em></a> can also be used in
|
|
place of atom-style variables, which means in this case that the
|
|
molecule IDs could be read-in from a separate file and assinged by the
|
|
<a class="reference internal" href="set.html"><em>set</em></a> command. This allows you to initialize new per-atom
|
|
properties in a completely general fashion.</p>
|
|
<hr class="docutils" />
|
|
<p>For new atom properties specified as <em>i_name</em> or <em>d_name</em>, the
|
|
<a class="reference internal" href="compute_property_atom.html"><em>compute property/atom</em></a> command can access
|
|
their values. This means that the values can be output via the <a class="reference internal" href="dump.html"><em>dump custom</em></a> command, accessed by fixes like <a class="reference internal" href="fix_ave_atom.html"><em>fix ave/atom</em></a>, accessed by other computes like <a class="reference internal" href="compute_reduce.html"><em>compute reduce</em></a>, or used in <a class="reference external" href="variables">atom-style variables</a>.</p>
|
|
<p>For example, these commands will output two new properties to a custom
|
|
dump file:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre>fix prop all property/atom i_flag1 d_flag2
|
|
compute 1 all property/atom i_flag1 d_flag2
|
|
dump 1 all custom 100 tmp.dump id x y z c_1[1] c_1[2]
|
|
</pre></div>
|
|
</div>
|
|
<hr class="docutils" />
|
|
<p>If you wish to add new <a class="reference internal" href="pair_style.html"><em>pair styles</em></a>,
|
|
<a class="reference internal" href="fix.html"><em>fixes</em></a>, or <a class="reference internal" href="compute.html"><em>computes</em></a> that use the per-atom
|
|
properties defined by this fix, see <a class="reference internal" href="Section_modify.html#mod-1"><span>Section modify</span></a> of the manual which has some details
|
|
on how the properties can be accessed from added classes.</p>
|
|
<hr class="docutils" />
|
|
<p id="isotopes">Example for using per-atom masses with TIP4P water to study isotope
|
|
effects. When setting up simulations with the <a class="reference internal" href="Section_howto.html#howto-8"><span>TIP4P pair styles</span></a> for water, you have to provide
|
|
exactly one atom type each to identify the water oxygen and hydrogen
|
|
atoms. Since the atom mass is normally tied to the atom type, this
|
|
makes it impossible to study multiple isotopes in the same simulation.
|
|
With <em>fix property/atom rmass</em> however, the per-type masses are
|
|
replaced by per-atom masses. Asumming you have a working input deck
|
|
for regular TIP4P water, where water oxygen is atom type 1 and
|
|
water hydrogen is atom type 2, the following lines of input script
|
|
convert this to using per-atom masses:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre>fix Isotopes all property/atom rmass ghost yes
|
|
set type 1 mass 15.9994
|
|
set type 2 mass 1.008
|
|
</pre></div>
|
|
</div>
|
|
<p>When writing out the system data with the <a class="reference internal" href="write_data.html"><em>write_data</em></a>
|
|
command, there will be a new section named with the fix-ID
|
|
(i.e. <em>Isotopes</em> in this case). Alternatively, you can take an
|
|
existing data file and just add this <em>Isotopes</em> section with
|
|
one line per atom containing atom-ID and mass. Either way, the
|
|
extended data file can be read back with:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre>fix Isotopes all property/atom rmass ghost yes
|
|
read_data tip4p-isotopes.data fix Isotopes NULL Isotopes
|
|
</pre></div>
|
|
</div>
|
|
<p>Please note that the first <em>Isotopes</em> refers to the fix-ID
|
|
and the second to the name of the section. The following input
|
|
script code will now change the first 100 water molecules in this
|
|
example to heavy water:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre>group hwat id 2:300:3
|
|
group hwat id 3:300:3
|
|
set group hwat mass 2.0141018
|
|
</pre></div>
|
|
</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<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 per-atom values it stores to <a class="reference internal" href="restart.html"><em>binary restart files</em></a>, so that the values can be restored when a
|
|
simulation is restarted. 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. No global or per-atom quantities are stored
|
|
by this fix for access by various <a class="reference internal" href="Section_howto.html#howto-15"><span>output commands</span></a>. 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>
|
|
<blockquote>
|
|
<div>none</div></blockquote>
|
|
</div>
|
|
<div class="section" id="related-commands">
|
|
<h2>Related commands<a class="headerlink" href="#related-commands" title="Permalink to this headline">¶</a></h2>
|
|
<p><a class="reference internal" href="read_data.html"><em>read_data</em></a>, <a class="reference internal" href="set.html"><em>set</em></a>, <a class="reference internal" href="compute_property_atom.html"><em>compute property/atom</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 default keyword values are ghost = no.</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> |