forked from lijiext/lammps
343 lines
16 KiB
HTML
343 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>atom_modify 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>atom_modify 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="atom-modify-command">
|
|
<span id="index-0"></span><h1>atom_modify command<a class="headerlink" href="#atom-modify-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>atom_modify keyword values ...
|
|
</pre></div>
|
|
</div>
|
|
<ul class="simple">
|
|
<li>one or more keyword/value pairs may be appended</li>
|
|
<li>keyword = <em>id</em> or <em>map</em> or <em>first</em> or <em>sort</em></li>
|
|
</ul>
|
|
<pre class="literal-block">
|
|
<em>id</em> value = <em>yes</em> or <em>no</em>
|
|
<em>map</em> value = <em>array</em> or <em>hash</em>
|
|
<em>first</em> value = group-ID = group whose atoms will appear first in internal atom lists
|
|
<em>sort</em> values = Nfreq binsize
|
|
Nfreq = sort atoms spatially every this many time steps
|
|
binsize = bin size for spatial sorting (distance units)
|
|
</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>atom_modify map hash
|
|
atom_modify map array sort 10000 2.0
|
|
atom_modify first colloid
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="description">
|
|
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
|
<p>Modify certain attributes of atoms defined and stored within LAMMPS,
|
|
in addition to what is specified by the <a class="reference internal" href="atom_style.html"><em>atom_style</em></a>
|
|
command. The <em>id</em> and <em>map</em> keywords must be specified before a
|
|
simulation box is defined; other keywords can be specified any time.</p>
|
|
<p>The <em>id</em> keyword determines whether non-zero atom IDs can be assigned
|
|
to each atom. If the value is <em>yes</em>, which is the default, IDs are
|
|
assigned, whether you use the <a class="reference internal" href="create_atoms.html"><em>create atoms</em></a> or
|
|
<a class="reference internal" href="read_data.html"><em>read_data</em></a> or <a class="reference internal" href="read_restart.html"><em>read_restart</em></a>
|
|
commands to initialize atoms. If the value is <em>no</em> the IDs for all
|
|
atoms are assumed to be 0.</p>
|
|
<p>If atom IDs are used, they must all be positive integers. They should
|
|
also be unique, though LAMMPS does not check for this. Typically they
|
|
should also be consecutively numbered (from 1 to Natoms), though this
|
|
is not required. Molecular <a class="reference internal" href="atom_style.html"><em>atom styles</em></a> are those
|
|
that store bond topology information (styles bond, angle, molecular,
|
|
full). These styles require atom IDs since the IDs are used to encode
|
|
the topology. Some other LAMMPS commands also require the use of atom
|
|
IDs. E.g. some many-body pair styles use them to avoid double
|
|
computation of the I-J interaction between two atoms.</p>
|
|
<p>The only reason not to use atom IDs is if you are running an atomic
|
|
simulation so large that IDs cannot be uniquely assigned. For a
|
|
default LAMMPS build this limit is 2^31 or about 2 billion atoms.
|
|
However, even in this case, you can use 64-bit atom IDs, allowing 2^63
|
|
or about 9e18 atoms, if you build LAMMPS with the - DLAMMPS_BIGBIG
|
|
switch. This is described in <a class="reference internal" href="Section_start.html#start-2"><span>Section 2.2</span></a>
|
|
of the manual. If atom IDs are not used, they must be specified as 0
|
|
for all atoms, e.g. in a data or restart file.</p>
|
|
<p>The <em>map</em> keyword determines how atom ID lookup is done for molecular
|
|
atom styles. Lookups are performed by bond (angle, etc) routines in
|
|
LAMMPS to find the local atom index associated with a global atom ID.</p>
|
|
<p>When the <em>array</em> value is used, each processor stores a lookup table
|
|
of length N, where N is the largest atom ID in the system. This is a
|
|
fast, simple method for many simulations, but requires too much memory
|
|
for large simulations. The <em>hash</em> value uses a hash table to perform
|
|
the lookups. This can be slightly slower than the <em>array</em> method, but
|
|
its memory cost is proportional to the number of atoms owned by a
|
|
processor, i.e. N/P when N is the total number of atoms in the system
|
|
and P is the number of processors.</p>
|
|
<p>When this setting is not specified in your input script, LAMMPS
|
|
creates a map, if one is needed, as an array or hash. See the
|
|
discussion of default values below for how LAMMPS chooses which kind
|
|
of map to build. Note that atomic systems do not normally need to
|
|
create a map. However, even in this case some LAMMPS commands will
|
|
create a map to find atoms (and then destroy it), or require a
|
|
permanent map. An example of the former is the <a class="reference internal" href="velocity.html"><em>velocity loop all</em></a> command, which uses a map when looping over all
|
|
atoms and insuring the same velocity values are assigned to an atom
|
|
ID, no matter which processor owns it.</p>
|
|
<p>The <em>first</em> keyword allows a <a class="reference internal" href="group.html"><em>group</em></a> to be specified whose
|
|
atoms will be maintained as the first atoms in each processor’s list
|
|
of owned atoms. This in only useful when the specified group is a
|
|
small fraction of all the atoms, and there are other operations LAMMPS
|
|
is performing that will be sped-up significantly by being able to loop
|
|
over the smaller set of atoms. Otherwise the reordering required by
|
|
this option will be a net slow-down. The <a class="reference internal" href="neigh_modify.html"><em>neigh_modify include</em></a> and <a class="reference internal" href="comm_modify.html"><em>comm_modify group</em></a>
|
|
commands are two examples of commands that require this setting to
|
|
work efficiently. Several <a class="reference internal" href="fix.html"><em>fixes</em></a>, most notably time
|
|
integration fixes like <a class="reference internal" href="fix_nve.html"><em>fix nve</em></a>, also take advantage of
|
|
this setting if the group they operate on is the group specified by
|
|
this command. Note that specifying “all” as the group-ID effectively
|
|
turns off the <em>first</em> option.</p>
|
|
<p>It is OK to use the <em>first</em> keyword with a group that has not yet been
|
|
defined, e.g. to use the atom_modify first command at the beginning of
|
|
your input script. LAMMPS does not use the group until a simullation
|
|
is run.</p>
|
|
<p>The <em>sort</em> keyword turns on a spatial sorting or reordering of atoms
|
|
within each processor’s sub-domain every <em>Nfreq</em> timesteps. If
|
|
<em>Nfreq</em> is set to 0, then sorting is turned off. Sorting can improve
|
|
cache performance and thus speed-up a LAMMPS simulation, as discussed
|
|
in a paper by <a class="reference internal" href="#meloni"><span>(Meloni)</span></a>. Its efficacy depends on the problem
|
|
size (atoms/processor), how quickly the system becomes disordered, and
|
|
various other factors. As a general rule, sorting is typically more
|
|
effective at speeding up simulations of liquids as opposed to solids.
|
|
In tests we have done, the speed-up can range from zero to 3-4x.</p>
|
|
<p>Reordering is peformed every <em>Nfreq</em> timesteps during a dynamics run
|
|
or iterations during a minimization. More precisely, reordering
|
|
occurs at the first reneighboring that occurs after the target
|
|
timestep. The reordering is performed locally by each processor,
|
|
using bins of the specified <em>binsize</em>. If <em>binsize</em> is set to 0.0,
|
|
then a binsize equal to half the <a class="reference internal" href="neighbor.html"><em>neighbor</em></a> cutoff
|
|
distance (force cutoff plus skin distance) is used, which is a
|
|
reasonable value. After the atoms have been binned, they are
|
|
reordered so that atoms in the same bin are adjacent to each other in
|
|
the processor’s 1d list of atoms.</p>
|
|
<p>The goal of this procedure is for atoms to put atoms close to each
|
|
other in the processor’s one-dimensional list of atoms that are also
|
|
near to each other spatially. This can improve cache performance when
|
|
pairwise intereractions and neighbor lists are computed. Note that if
|
|
bins are too small, there will be few atoms/bin. Likewise if bins are
|
|
too large, there will be many atoms/bin. In both cases, the goal of
|
|
cache locality will be undermined.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Running a simulation with sorting on versus off should not
|
|
change the simulation results in a statistical sense. However, a
|
|
different ordering will induce round-off differences, which will lead
|
|
to diverging trajectories over time when comparing two simluations.
|
|
Various commands, particularly those which use random numbers
|
|
(e.g. <a class="reference internal" href="velocity.html"><em>velocity create</em></a>, and <a class="reference internal" href="fix_langevin.html"><em>fix langevin</em></a>), may generate (statistically identical)
|
|
results which depend on the order in which atoms are processed. The
|
|
order of atoms in a <a class="reference internal" href="dump.html"><em>dump</em></a> file will also typically change
|
|
if sorting is enabled.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="restrictions">
|
|
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline">¶</a></h2>
|
|
<p>The <em>first</em> and <em>sort</em> options cannot be used together. Since sorting
|
|
is on by default, it will be turned off if the <em>first</em> keyword is
|
|
used with a group-ID that is not “all”.</p>
|
|
<p><strong>Related commands:</strong> none</p>
|
|
</div>
|
|
<div class="section" id="default">
|
|
<h2>Default<a class="headerlink" href="#default" title="Permalink to this headline">¶</a></h2>
|
|
<p>By default, <em>id</em> is yes. By default, atomic systems (no bond topology
|
|
info) do not use a map. For molecular systems (with bond topology
|
|
info), a map is used. The default map style is array if no atom ID is
|
|
larger than 1 million, otherwise the default is hash. By default, a
|
|
“first” group is not defined. By default, sorting is enabled with a
|
|
frequency of 1000 and a binsize of 0.0, which means the neighbor
|
|
cutoff will be used to set the bin size.</p>
|
|
<hr class="docutils" />
|
|
<p id="meloni"><strong>(Meloni)</strong> Meloni, Rosati and Colombo, J Chem Phys, 126, 121102 (2007).</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> |