lammps/doc/run.html

158 lines
6.1 KiB
HTML
Raw Normal View History

<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>run command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>run N keyword values ...
</PRE>
<UL><LI>N = # of timesteps
<LI>zero or more keyword/value pairs may be appended
<LI>keyword = <I>upto</I> or <I>start</I> or <I>stop</I> or <I>pre</I> or <I>post</I> or <I>every</I>
<PRE> <I>upto</I> value = none
<I>start</I> value = N1
N1 = timestep at which 1st run started
<I>stop</I> value = N2
N2 = timestep at which last run will end
<I>pre</I> value = <I>no</I> or <I>yes</I>
<I>post</I> value = <I>no</I> or <I>yes</I>
<I>every</I> values = M command
M = break the run into M-timestep segments and invoke command between them
command = a single LAMMPS command (enclosed in double quotes if multiple words)
NULL means no command will be invoked
</PRE>
</UL>
<P><B>Examples:</B>
</P>
<PRE>run 10000
run 1000000 upto
run 100 start 0 stop 1000
run 1000 pre no post yes
run 100000 start 0 stop 1000000 every 1000 "print Protein Rg = $r"
run 100000 every 1000 NULL
</PRE>
<P><B>Description:</B>
</P>
<P>Run or continue dynamics for a specified number of timesteps.
</P>
<P>When the <A HREF = "doc/run_style.html">run style</A> is <I>respa</I>, 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 <I>upto</I> 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 "run 100000 upto" 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 <I>start</I> or <I>stop</I> keywords can be used if multiple runs are being
performed and you want a <A HREF = "fix.html">fix</A> command that ramps some value
(e.g. a temperature) over time to do its ramping across the entire set
of runs and not just a single run. Fixes in this category include
<A HREF = "fix_nvt.html">fix nvt</A>, <A HREF = "fix_npt.html">fix npt</A>, <A HREF = "fix_langevin.html">fix
langevin</A>, <A HREF = "fix_temp_rescale.html">fix temp/rescale</A>,
<A HREF = "fix_volume_rescale.html">fix volume/rescale</A>, and <A HREF = "fix_indent.html">fix
indent</A>. The <A HREF = "pair_style.html">pair_style soft</A>
potential also ramps its coefficients in a similar way.
</P>
<P>For example, consider this fix followed by 10 run commands:
</P>
<PRE>fix 1 all nvt 200.0 300.0 1.0
run 1000 start 0 stop 10000
run 1000 start 0 stop 10000
...
run 1000 start 0 stop 10000
</PRE>
<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
"run 1000"), 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 <I>pre</I> and <I>post</I> 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 (and no parameters have
changed), the initial computation is not necessary; the old neighbor
list is still valid as are the forces. So if <I>pre</I> is specified as
"no" then the initial setup is skipped, except for printing
thermodynamic info. Likewise, if <I>post</I> is specified as "no", the
full timing summary is skipped; only a one-line summary timing is
printed. Note that if <I>pre</I> is set to "no" for the 1st run LAMMPS
performs, then it is overridden, since the initial setup computations
must be done.
</P>
<P>The <I>every</I> option provides a means of interleaving LAMMPS runs with a
command. This can be a short-hand abbreviation to avoid listing a
long series of runs in your input script. Or it can be useful for
invoking a command that wraps some other code (e.g. as a library) to
perform a computation periodically during a long LAMMPS run. See
<A HREF = "Section_howto.html#4_10">this section</A> of the documentation for ideas
about how to couple LAMMPS to other codes.
</P>
<P>N total steps are simulated, in shorter runs of M steps each. After
each M-length run, the command is invoked. If the command is
specified as NULL, no command is invoked. Thus these lines:
</P>
<PRE>variable q equal x<B>100</B>
run 6000 every 2000 "print Coord = $q"
</PRE>
<P>are the equivalent of:
</P>
<PRE>variable q equal x[100]
run 2000
print Coord = $q
run 2000
print Coord = $q
run 2000
print Coord = $q
</PRE>
<P>which does 3 runs of 2000 steps and prints the x-coordinate of a
particular atom between runs. Note that the command can contain
<A HREF = "variable.html">variables</A> of style <I>equal</I> which will be evaluated
each time the command is invoked.
</P>
<P>If the <I>pre</I> and <I>post</I> options are set to "no" when <I>every</I> is used,
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>
<P><B>Restrictions:</B> none
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "minimize.html">minimize</A>, <A HREF = "run_style.html">run_style</A>,
<A HREF = "temper.html">temper</A>
</P>
<P><B>Default:</B>
</P>
<P>The option defaults are start = the current timestep, stop = current
timestep + N, pre = yes, and post = yes.
</P>
</HTML>