lammps/doc/html/run.html

385 lines
19 KiB
HTML
Raw Normal View History

<!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>run 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>run 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="run-command">
<span id="index-0"></span><h1>run command</h1>
<div class="section" id="syntax">
<h2>Syntax</h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">run</span> <span class="n">N</span> <span class="n">keyword</span> <span class="n">values</span> <span class="o">...</span>
</pre></div>
</div>
<ul class="simple">
<li>N = # of timesteps</li>
<li>zero or more keyword/value pairs may be appended</li>
<li>keyword = <em>upto</em> or <em>start</em> or <em>stop</em> or <em>pre</em> or <em>post</em> or <em>every</em></li>
</ul>
<pre class="literal-block">
<em>upto</em> value = none
<em>start</em> value = N1
N1 = timestep at which 1st run started
<em>stop</em> value = N2
N2 = timestep at which last run will end
<em>pre</em> value = <em>no</em> or <em>yes</em>
<em>post</em> value = <em>no</em> or <em>yes</em>
<em>every</em> values = M c1 c2 ...
M = break the run into M-timestep segments and invoke one or more commands between each segment
c1,c2,...,cN = one or more LAMMPS commands, each enclosed in quotes
c1 = NULL means no command will be invoked
</pre>
</div>
<div class="section" id="examples">
<h2>Examples</h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">run</span> <span class="mi">10000</span>
<span class="n">run</span> <span class="mi">1000000</span> <span class="n">upto</span>
<span class="n">run</span> <span class="mi">100</span> <span class="n">start</span> <span class="mi">0</span> <span class="n">stop</span> <span class="mi">1000</span>
<span class="n">run</span> <span class="mi">1000</span> <span class="n">pre</span> <span class="n">no</span> <span class="n">post</span> <span class="n">yes</span>
<span class="n">run</span> <span class="mi">100000</span> <span class="n">start</span> <span class="mi">0</span> <span class="n">stop</span> <span class="mi">1000000</span> <span class="n">every</span> <span class="mi">1000</span> <span class="s2">&quot;print &#39;Protein Rg = $r&#39;&quot;</span>
<span class="n">run</span> <span class="mi">100000</span> <span class="n">every</span> <span class="mi">1000</span> <span class="n">NULL</span>
</pre></div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>Run or continue dynamics for a specified number of timesteps.</p>
<p>When the <a class="reference internal" href="run_style.html"><span class="doc">run style</span></a> is <em>respa</em>, N refers to outer
loop (largest) timesteps.</p>
<p>A value of N = 0 is acceptable; only the thermodynamics of the system
are computed and printed without taking a timestep.</p>
<p>The <em>upto</em> keyword means to perform a run starting at the current
timestep up to the specified timestep. E.g. if the current timestep
is 10,000 and &#8220;run 100000 upto&#8221; is used, then an additional 90,000
timesteps will be run. This can be useful for very long runs on a
machine that allocates chunks of time and terminate your job when time
is exceeded. If you need to restart your script multiple times
(reading in the last restart file), you can keep restarting your
script with the same run command until the simulation finally
completes.</p>
<p>The <em>start</em> or <em>stop</em> keywords can be used if multiple runs are being
performed and you want a <a class="reference internal" href="fix.html"><span class="doc">fix</span></a> command that changes some
value over time (e.g. temperature) to make the change across the
entire set of runs and not just a single run. See the doc page for
individual fixes to see which ones can be used with the <em>start/stop</em>
keywords.</p>
<p>For example, consider this fix followed by 10 run commands:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">fix</span> <span class="mi">1</span> <span class="nb">all</span> <span class="n">nvt</span> <span class="mf">200.0</span> <span class="mf">300.0</span> <span class="mf">1.0</span>
<span class="n">run</span> <span class="mi">1000</span> <span class="n">start</span> <span class="mi">0</span> <span class="n">stop</span> <span class="mi">10000</span>
<span class="n">run</span> <span class="mi">1000</span> <span class="n">start</span> <span class="mi">0</span> <span class="n">stop</span> <span class="mi">10000</span>
<span class="o">...</span>
<span class="n">run</span> <span class="mi">1000</span> <span class="n">start</span> <span class="mi">0</span> <span class="n">stop</span> <span class="mi">10000</span>
</pre></div>
</div>
<p>The NVT fix ramps the target temperature from 200.0 to 300.0 during a
run. If the run commands did not have the start/stop keywords (just
&#8220;run 1000&#8221;), then the temperature would ramp from 200.0 to 300.0
during the 1000 steps of each run. With the start/stop keywords, the
ramping takes place over the 10000 steps of all runs together.</p>
<p>The <em>pre</em> and <em>post</em> keywords can be used to streamline the setup,
clean-up, and associated output to the screen that happens before and
after a run. This can be useful if you wish to do many short runs in
succession (e.g. LAMMPS is being called as a library which is doing
other computations between successive short LAMMPS runs).</p>
<p>By default (pre and post = yes), LAMMPS creates neighbor lists,
computes forces, and imposes fix constraints before every run. And
after every run it gathers and prints timings statistics. If a run is
just a continuation of a previous run (i.e. no settings are changed),
the initial computation is not necessary; the old neighbor list is
still valid as are the forces. So if <em>pre</em> is specified as &#8220;no&#8221; then
the initial setup is skipped, except for printing thermodynamic info.
Note that if <em>pre</em> is set to &#8220;no&#8221; for the very 1st run LAMMPS
performs, then it is overridden, since the initial setup computations
must be done.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">If your input script changes the system between 2 runs, then the
initial setup must be performed to insure the change is recognized by
all parts of the code that are affected. Examples are adding a
<a class="reference internal" href="fix.html"><span class="doc">fix</span></a> or <a class="reference internal" href="dump.html"><span class="doc">dump</span></a> or <a class="reference internal" href="compute.html"><span class="doc">compute</span></a>, changing
a <a class="reference internal" href="neigh_modify.html"><span class="doc">neighbor</span></a> list parameter, or writing restart file
which can migrate atoms between processors. LAMMPS has no easy way to
check if this has happened, but it is an error to use the <em>pre no</em>
option in this case.</p>
</div>
<p>If <em>post</em> is specified as &#8220;no&#8221;, the full timing summary is skipped;
only a one-line summary timing is printed.</p>
<p>The <em>every</em> keyword provides a means of breaking a LAMMPS run into a
series of shorter runs. Optionally, one or more LAMMPS commands (c1,
c2, ..., cN) will be executed in between the short runs. If used, the
<em>every</em> keyword must be the last keyword, since it has a variable
number of arguments. Each of the trailing arguments is a single
LAMMPS command, and each command should be enclosed in quotes, so that
the entire command will be treated as a single argument. This will
also prevent any variables in the command from being evaluated until
it is executed multiple times during the run. Note that if a command
itself needs one of its arguments quoted (e.g. the <a class="reference internal" href="print.html"><span class="doc">print</span></a>
command), then you can use a combination of single and double quotes,
as in the example above or below.</p>
<p>The <em>every</em> keyword is a means to avoid listing a long series of runs
and interleaving commands in your input script. For example, a
<a class="reference internal" href="print.html"><span class="doc">print</span></a> command could be invoked or a <a class="reference internal" href="fix.html"><span class="doc">fix</span></a> could
be redefined, e.g. to reset a thermostat temperature. Or this could
be useful for invoking a command you have added to LAMMPS that wraps
some other code (e.g. as a library) to perform a computation
periodically during a long LAMMPS run. See <a class="reference internal" href="Section_modify.html"><span class="doc">this section</span></a> of the documentation for info about how
to add new commands to LAMMPS. See <a class="reference internal" href="Section_howto.html#howto-10"><span class="std std-ref">this section</span></a> of the documentation for ideas
about how to couple LAMMPS to other codes.</p>
<p>With the <em>every</em> option, N total steps are simulated, in shorter runs
of M steps each. After each M-length run, the specified commands are
invoked. If only a single command is specified as NULL, then no
command is invoked. Thus these lines:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">variable</span> <span class="n">q</span> <span class="n">equal</span> <span class="n">x</span><span class="p">[</span><span class="mi">100</span><span class="p">]</span>
<span class="n">run</span> <span class="mi">6000</span> <span class="n">every</span> <span class="mi">2000</span> <span class="s2">&quot;print &#39;Coord = $q&#39;&quot;</span>
</pre></div>
</div>
<p>are the equivalent of:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">variable</span> <span class="n">q</span> <span class="n">equal</span> <span class="n">x</span><span class="p">[</span><span class="mi">100</span><span class="p">]</span>
<span class="n">run</span> <span class="mi">2000</span>
<span class="nb">print</span> <span class="s2">&quot;Coord = $q&quot;</span>
<span class="n">run</span> <span class="mi">2000</span>
<span class="nb">print</span> <span class="s2">&quot;Coord = $q&quot;</span>
<span class="n">run</span> <span class="mi">2000</span>
<span class="nb">print</span> <span class="s2">&quot;Coord = $q&quot;</span>
</pre></div>
</div>
<p>which does 3 runs of 2000 steps and prints the x-coordinate of a
particular atom between runs. Note that the variable &#8220;$q&#8221; will
be evaluated afresh each time the print command is executed.</p>
<p>Note that by using the line continuation character &#8220;&amp;&#8221;, the run every
command can be spread across many lines, though it is still a single
command:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">run</span> <span class="mi">100000</span> <span class="n">every</span> <span class="mi">1000</span> <span class="o">&amp;</span>
<span class="s2">&quot;print &#39;Minimum value = $a&#39;&quot;</span> <span class="o">&amp;</span>
<span class="s2">&quot;print &#39;Maximum value = $b&#39;&quot;</span> <span class="o">&amp;</span>
<span class="s2">&quot;print &#39;Temp = $c&#39;&quot;</span> <span class="o">&amp;</span>
<span class="s2">&quot;print &#39;Press = $d&#39;&quot;</span>
</pre></div>
</div>
<p>If the <em>pre</em> and <em>post</em> options are set to &#8220;no&#8221; when used with the
<em>every</em> keyword, then the 1st run will do the full setup and the last
run will print the full timing summary, but these operations will be
skipped for intermediate runs.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">You might hope to specify a command that exits the run by
jumping out of the loop, e.g.</p>
</div>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">variable</span> <span class="n">t</span> <span class="n">equal</span> <span class="n">temp</span>
<span class="n">run</span> <span class="mi">10000</span> <span class="n">every</span> <span class="mi">100</span> <span class="s2">&quot;if &#39;$t &lt; 300.0&#39; then &#39;jump SELF afterrun&#39;&quot;</span>
</pre></div>
</div>
<p>Unfortunately this will not currently work. The run command simply
executes each command one at a time each time it pauses, then
continues the run. You can replace the jump command with a simple
<a class="reference internal" href="quit.html"><span class="doc">quit</span></a> command and cause LAMMPS to exit during the
middle of a run when the condition is met.</p>
</div>
<div class="section" id="restrictions">
<h2>Restrictions</h2>
<p>When not using the <em>upto</em> keyword, the number of specified timesteps N
must fit in a signed 32-bit integer, so you are limited to slightly
more than 2 billion steps (2^31) in a single run. When using <em>upto</em>,
N can be larger than a signed 32-bit integer, however the difference
between N and the current timestep must still be no larger than
2^31 steps.</p>
<p>However, with or without the <em>upto</em> keyword, you can perform
successive runs to run a simulation for any number of steps (ok, up to
2^63 total steps). I.e. the timestep counter within LAMMPS is a
64-bit signed integer.</p>
</div>
<div class="section" id="related-commands">
<h2>Related commands</h2>
<p><a class="reference internal" href="minimize.html"><span class="doc">minimize</span></a>, <a class="reference internal" href="run_style.html"><span class="doc">run_style</span></a>,
<a class="reference internal" href="temper.html"><span class="doc">temper</span></a></p>
</div>
<div class="section" id="default">
<h2>Default</h2>
<p>The option defaults are start = the current timestep, stop = current
timestep + N, pre = yes, and post = yes.</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>