lammps/doc/html/fix_msst.html

329 lines
17 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 msst 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>fix msst 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-msst-command">
<span id="index-0"></span><h1>fix msst command</h1>
<div class="section" id="syntax">
<h2>Syntax</h2>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">fix</span> <span class="n">ID</span> <span class="n">group</span><span class="o">-</span><span class="n">ID</span> <span class="n">msst</span> <span class="nb">dir</span> <span class="n">shockvel</span> <span class="n">keyword</span> <span class="n">value</span> <span class="o">...</span>
</pre></div>
</div>
<ul class="simple">
<li>ID, group-ID are documented in <a class="reference internal" href="fix.html"><span class="doc">fix</span></a> command</li>
<li>msst = style name of this fix</li>
<li>dir = <em>x</em> or <em>y</em> or <em>z</em></li>
<li>shockvel = shock velocity (strictly positive, distance/time units)</li>
<li>zero or more keyword value pairs may be appended</li>
<li>keyword = <em>q</em> or <em>mu</em> or <em>p0</em> or <em>v0</em> or <em>e0</em> or <em>tscale</em></li>
</ul>
<pre class="literal-block">
<em>q</em> value = cell mass-like parameter (mass^2/distance^4 units)
<em>mu</em> value = artificial viscosity (mass/length/time units)
<em>p0</em> value = initial pressure in the shock equations (pressure units)
<em>v0</em> value = initial simulation cell volume in the shock equations (distance^3 units)
<em>e0</em> value = initial total energy (energy units)
<em>tscale</em> value = reduction in initial temperature (unitless fraction between 0.0 and 1.0)
</pre>
</div>
<div class="section" id="examples">
<h2>Examples</h2>
<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">msst</span> <span class="n">y</span> <span class="mf">100.0</span> <span class="n">q</span> <span class="mf">1.0e5</span> <span class="n">mu</span> <span class="mf">1.0e5</span>
<span class="n">fix</span> <span class="mi">2</span> <span class="nb">all</span> <span class="n">msst</span> <span class="n">z</span> <span class="mf">50.0</span> <span class="n">q</span> <span class="mf">1.0e4</span> <span class="n">mu</span> <span class="mf">1.0e4</span> <span class="n">v0</span> <span class="mf">4.3419e+03</span> <span class="n">p0</span> <span class="mf">3.7797e+03</span> <span class="n">e0</span> <span class="o">-</span><span class="mf">9.72360e+02</span> <span class="n">tscale</span> <span class="mf">0.01</span>
</pre></div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This command performs the Multi-Scale Shock Technique (MSST)
integration to update positions and velocities each timestep to mimic
a compressive shock wave passing over the system. See <a class="reference internal" href="#reed"><span class="std std-ref">(Reed)</span></a>
for a detailed description of this method. The MSST varies the cell
volume and temperature in such a way as to restrain the system to the
shock Hugoniot and the Rayleigh line. These restraints correspond to
the macroscopic conservation laws dictated by a shock
front. <em>shockvel</em> determines the steady shock velocity that will be
simulated.</p>
<p>To perform a simulation, choose a value of <em>q</em> that provides volume
compression on the timescale of 100 fs to 1 ps. If the volume is not
compressing, either the shock speed is chosen to be below the material
sound speed or <em>p0</em> has been chosen inaccurately. Volume compression
at the start can be sped up by using a non-zero value of <em>tscale</em>. Use
the smallest value of <em>tscale</em> that results in compression.</p>
<p>Under some special high-symmetry conditions, the pressure (volume)
and/or temperature of the system may oscillate for many cycles even
with an appropriate choice of mass-like parameter <em>q</em>. Such
oscillations have physical significance in some cases. The optional
<em>mu</em> keyword adds an artificial viscosity that helps break the system
symmetry to equilibrate to the shock Hugoniot and Rayleigh line more
rapidly in such cases.</p>
<p><em>tscale</em> is a factor between 0 and 1 that determines what fraction of
thermal kinetic energy is converted to compressive strain kinetic
energy at the start of the simulation. Setting this parameter to a
non-zero value may assist in compression at the start of simulations
where it is slow to occur.</p>
<p>If keywords <em>e0</em>, <em>p0</em>,or <em>v0</em> are not supplied, these quantities will
be calculated on the first step, after the energy specified by
<em>tscale</em> is removed. The value of <em>e0</em> is not used in the dynamical
equations, but is used in calculating the deviation from the Hugoniot.</p>
<p>Values of shockvel less than a critical value determined by the
material response will not have compressive solutions. This will be
reflected in lack of significant change of the volume in the MSST.</p>
<p>For all pressure styles, the simulation box stays orthogonal in shape.
Parrinello-Rahman boundary conditions (tilted box) are supported by
LAMMPS, but are not implemented for MSST.</p>
<p>This fix computes a temperature and pressure each timestep. To do
this, the fix creates its own computes of style &#8220;temp&#8221; and &#8220;pressure&#8221;,
as if these commands had been issued:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">compute</span> <span class="n">fix</span><span class="o">-</span><span class="n">ID_temp</span> <span class="n">group</span><span class="o">-</span><span class="n">ID</span> <span class="n">temp</span>
<span class="n">compute</span> <span class="n">fix</span><span class="o">-</span><span class="n">ID_press</span> <span class="n">group</span><span class="o">-</span><span class="n">ID</span> <span class="n">pressure</span> <span class="n">fix</span><span class="o">-</span><span class="n">ID_temp</span>
</pre></div>
</div>
<p>See the <a class="reference internal" href="compute_temp.html"><span class="doc">compute temp</span></a> and <a class="reference internal" href="compute_pressure.html"><span class="doc">compute pressure</span></a> commands for details. Note that the
IDs of the new computes are the fix-ID + underscore + &#8220;temp&#8221; or fix_ID
+ underscore + &#8220;press&#8221;. The group for the new computes is &#8220;all&#8221;.</p>
</div>
<div class="section" id="restart-fix-modify-output-run-start-stop-minimize-info">
<h2>Restart, fix_modify, output, run start/stop, minimize info</h2>
<p>This fix writes the state of all internal variables to <a class="reference internal" href="restart.html"><span class="doc">binary restart files</span></a>. See the <a class="reference internal" href="read_restart.html"><span class="doc">read_restart</span></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>The progress of the MSST can be monitored by printing the global
scalar and global vector quantities computed by the fix.</p>
<p>The scalar is the cumulative energy change due to the fix. This is
also the energy added to the potential energy by the
<a class="reference internal" href="fix_modify.html"><span class="doc">fix_modify</span></a> <em>energy</em> command. With this command, the
thermo keyword <em>etotal</em> prints the conserved quantity of the MSST
dynamic equations. This can be used to test if the MD timestep is
sufficiently small for accurate integration of the dynamic
equations. See also <a class="reference internal" href="thermo_style.html"><span class="doc">thermo_style</span></a> command.</p>
<p>The global vector contains four values in this order:</p>
<p>[<em>dhugoniot</em>, <em>drayleigh</em>, <em>lagrangian_speed</em>, <em>lagrangian_position</em>]</p>
<ol class="arabic simple">
<li><em>dhugoniot</em> is the departure from the Hugoniot (temperature units).</li>
<li><em>drayleigh</em> is the departure from the Rayleigh line (pressure units).</li>
<li><em>lagrangian_speed</em> is the laboratory-frame Lagrangian speed (particle velocity) of the computational cell (velocity units).</li>
<li><em>lagrangian_position</em> is the computational cell position in the reference frame moving at the shock speed. This is usually a good estimate of distance of the computational cell behind the shock front.</li>
</ol>
<p>To print these quantities to the log file with descriptive column
headers, the following LAMMPS commands are suggested:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">fix</span> <span class="n">msst</span> <span class="nb">all</span> <span class="n">msst</span> <span class="n">z</span>
<span class="n">fix_modify</span> <span class="n">msst</span> <span class="n">energy</span> <span class="n">yes</span>
<span class="n">variable</span> <span class="n">dhug</span> <span class="n">equal</span> <span class="n">f_msst</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
<span class="n">variable</span> <span class="n">dray</span> <span class="n">equal</span> <span class="n">f_msst</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
<span class="n">variable</span> <span class="n">lgr_vel</span> <span class="n">equal</span> <span class="n">f_msst</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
<span class="n">variable</span> <span class="n">lgr_pos</span> <span class="n">equal</span> <span class="n">f_msst</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span>
<span class="n">thermo_style</span> <span class="n">custom</span> <span class="n">step</span> <span class="n">temp</span> <span class="n">ke</span> <span class="n">pe</span> <span class="n">lz</span> <span class="n">pzz</span> <span class="n">etotal</span> <span class="n">v_dhug</span> <span class="n">v_dray</span> <span class="n">v_lgr_vel</span> <span class="n">v_lgr_pos</span> <span class="n">f_msst</span>
</pre></div>
</div>
<p>These fixes compute a global scalar and a global vector of 4
quantities, which can be accessed by various <a class="reference internal" href="Section_howto.html#howto-15"><span class="std std-ref">output commands</span></a>. The scalar values calculated
by this fix are &#8220;extensive&#8221;; the vector values are &#8220;intensive&#8221;.</p>
</div>
<div class="section" id="restrictions">
<h2>Restrictions</h2>
<p>This fix style is part of the SHOCK package. It is only enabled if
LAMMPS was built with that package. 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>All cell dimensions must be periodic. This fix can not be used with a
triclinic cell. The MSST fix has been tested only for the group-ID
all.</p>
</div>
<div class="section" id="related-commands">
<h2>Related commands</h2>
<p><a class="reference internal" href="fix_nphug.html"><span class="doc">fix nphug</span></a>, <a class="reference internal" href="fix_deform.html"><span class="doc">fix deform</span></a></p>
</div>
<div class="section" id="default">
<h2>Default</h2>
<p>The keyword defaults are q = 10, mu = 0, tscale = 0.01. p0, v0, and e0
are calculated on the first step.</p>
<hr class="docutils" />
<p id="reed"><strong>(Reed)</strong> Reed, Fried, and Joannopoulos, Phys. Rev. Lett., 90, 235503 (2003).</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>