forked from lijiext/lammps
347 lines
17 KiB
HTML
347 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 drude/transform/direct 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 drude/transform/direct 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-drude-transform-direct-command">
|
|
<span id="index-0"></span><h1>fix drude/transform/direct command</h1>
|
|
</div>
|
|
<div class="section" id="fix-drude-transform-inverse-command">
|
|
<h1>fix drude/transform/inverse 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">style</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>style = <em>drude/transform/direct</em> or <em>drude/transform/inverse</em></li>
|
|
</ul>
|
|
</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">3</span> <span class="nb">all</span> <span class="n">drude</span><span class="o">/</span><span class="n">transform</span><span class="o">/</span><span class="n">direct</span>
|
|
<span class="n">fix</span> <span class="mi">1</span> <span class="nb">all</span> <span class="n">drude</span><span class="o">/</span><span class="n">transform</span><span class="o">/</span><span class="n">inverse</span>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="description">
|
|
<h2>Description</h2>
|
|
<p>Transform the coordinates of Drude oscillators from real to reduced
|
|
and back for thermalizing the Drude oscillators as described in
|
|
<a class="reference internal" href="tutorial_drude.html#lamoureux"><span class="std std-ref">(Lamoureux)</span></a> using a Nose-Hoover thermostat. This fix is
|
|
designed to be used with the <a class="reference internal" href="tutorial_drude.html"><span class="doc">thermalized Drude oscillator model</span></a>. Polarizable models in LAMMPS are
|
|
described in <a class="reference internal" href="Section_howto.html#howto-25"><span class="std std-ref">this Section</span></a>.</p>
|
|
<p>Drude oscillators are a pair of atoms representing a single
|
|
polarizable atom. Ideally, the mass of Drude particles would vanish
|
|
and their positions would be determined self-consistently by iterative
|
|
minimization of the energy, the cores’ positions being fixed. It is
|
|
however more efficient and it yields comparable results, if the Drude
|
|
oscillators (the motion of the Drude particle relative to the core)
|
|
are thermalized at a low temperature. In that case, the Drude
|
|
particles need a small mass.</p>
|
|
<p>The thermostats act on the reduced degrees of freedom, which are
|
|
defined by the following equations. Note that in these equations
|
|
upper case denotes atomic or center of mass values and lower case
|
|
denotes Drude particle or dipole values. Primes denote the transformed
|
|
(reduced) values, while bare letters denote the original values.</p>
|
|
<p>Masses:</p>
|
|
<div class="math">
|
|
\[\begin{equation} M' = M + m \end{equation}\]</div>
|
|
<div class="math">
|
|
\[\begin{equation} m' = \frac {M\, m } {M'} \end{equation}\]</div>
|
|
<p>Positions:</p>
|
|
<div class="math">
|
|
\[\begin{equation} X' = \frac {M\, X + m\, x} {M'}\end{equation}\]</div>
|
|
<div class="math">
|
|
\[\begin{equation} x' = x - X \end{equation}\]</div>
|
|
<p>Velocities:</p>
|
|
<div class="math">
|
|
\[\begin{equation} V' = \frac {M\, V + m\, v} {M'}\end{equation}\]</div>
|
|
<div class="math">
|
|
\[\begin{equation} v' = v - V \end{equation}\]</div>
|
|
<p>Forces:</p>
|
|
<div class="math">
|
|
\[\begin{equation} F' = F + f \end{equation}\]</div>
|
|
<div class="math">
|
|
\[\begin{equation} f' = \frac { M\, f - m\, F} {M'}\end{equation}\]</div>
|
|
<p>This transform conserves the total kinetic energy</p>
|
|
<div class="math">
|
|
\[\begin{equation} \frac 1 2 \, (M\, V^2\ + m\, v^2)
|
|
= \frac 1 2 \, (M'\, V'^2\ + m'\, v'^2) \end{equation}\]</div>
|
|
<p>and the virial defined with absolute positions</p>
|
|
<div class="math">
|
|
\[\begin{equation} X\, F + x\, f = X'\, F' + x'\, f' \end{equation}\]</div>
|
|
<hr class="docutils" />
|
|
<p>This fix requires each atom know whether it is a Drude particle or
|
|
not. You must therefore use the <a class="reference internal" href="fix_drude.html"><span class="doc">fix drude</span></a> command to
|
|
specify the Drude status of each atom type.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">only the Drude core atoms need to be in the group specified for
|
|
this fix. A Drude electron will be transformed together with its core
|
|
even if it is not itself in the group. It is safe to include Drude
|
|
electrons or non-polarizable atoms in the group. The non-polarizable
|
|
atoms will simply not be transformed.</p>
|
|
</div>
|
|
<hr class="docutils" />
|
|
<p>This fix does NOT perform time integration. It only transform masses,
|
|
coordinates, velocities and forces. Thus you must use separate time
|
|
integration fixes, like <a class="reference internal" href="fix_nve.html"><span class="doc">fix nve</span></a> or <a class="reference internal" href="fix_nh.html"><span class="doc">fix npt</span></a> to actually update the velocities and positions of
|
|
atoms. In order to thermalize the reduced degrees of freedom at
|
|
different temperatures, two Nose-Hoover thermostats must be defined,
|
|
acting on two distinct groups.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">The <em>fix drude/transform/direct</em> command must appear before any
|
|
Nose-Hoover thermostating fixes. The <em>fix drude/transform/inverse</em>
|
|
command must appear after any Nose-Hoover thermostating fixes.</p>
|
|
</div>
|
|
<p>Example:</p>
|
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">fix</span> <span class="n">fDIRECT</span> <span class="nb">all</span> <span class="n">drude</span><span class="o">/</span><span class="n">transform</span><span class="o">/</span><span class="n">direct</span>
|
|
<span class="n">fix</span> <span class="n">fNVT</span> <span class="n">gCORES</span> <span class="n">nvt</span> <span class="n">temp</span> <span class="mf">300.0</span> <span class="mf">300.0</span> <span class="mi">100</span>
|
|
<span class="n">fix</span> <span class="n">fNVT</span> <span class="n">gDRUDES</span> <span class="n">nvt</span> <span class="n">temp</span> <span class="mf">1.0</span> <span class="mf">1.0</span> <span class="mi">100</span>
|
|
<span class="n">fix</span> <span class="n">fINVERSE</span> <span class="nb">all</span> <span class="n">drude</span><span class="o">/</span><span class="n">transform</span><span class="o">/</span><span class="n">inverse</span>
|
|
<span class="n">compute</span> <span class="n">TDRUDE</span> <span class="nb">all</span> <span class="n">temp</span><span class="o">/</span><span class="n">drude</span>
|
|
<span class="n">thermo_style</span> <span class="n">custom</span> <span class="n">step</span> <span class="n">cpu</span> <span class="n">etotal</span> <span class="n">ke</span> <span class="n">pe</span> <span class="n">ebond</span> <span class="n">ecoul</span> <span class="n">elong</span> <span class="n">press</span> <span class="n">vol</span> <span class="n">temp</span> <span class="n">c_TDRUDE</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="n">c_TDRUDE</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>In this example, <em>gCORES</em> is the group of the atom cores and <em>gDRUDES</em>
|
|
is the group of the Drude particles (electrons). The centers of mass
|
|
of the Drude oscillators will be thermostated at 300.0 and the
|
|
internal degrees of freedom will be thermostated at 1.0. The
|
|
temperatures of cores and Drude particles, in center-of-mass and
|
|
relative coordinates, are calculated using <a class="reference internal" href="compute_temp_drude.html"><span class="doc">compute temp/drude</span></a></p>
|
|
<p>In addition, if you want to use a barostat to simulate a system at
|
|
constant pressure, only one of the Nose-Hoover fixes must be <em>npt</em>,
|
|
the other one should be <em>nvt</em>. You must add a <em>compute temp/com</em> and a
|
|
<em>fix_modify</em> command so that the temperature of the <em>npt</em> fix be just
|
|
that of its group (the Drude cores) but the pressure be the overall
|
|
pressure <em>thermo_press</em>.</p>
|
|
<p>Example:</p>
|
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">compute</span> <span class="n">cTEMP_CORE</span> <span class="n">gCORES</span> <span class="n">temp</span><span class="o">/</span><span class="n">com</span>
|
|
<span class="n">fix</span> <span class="n">fDIRECT</span> <span class="nb">all</span> <span class="n">drude</span><span class="o">/</span><span class="n">transform</span><span class="o">/</span><span class="n">direct</span>
|
|
<span class="n">fix</span> <span class="n">fNPT</span> <span class="n">gCORES</span> <span class="n">npt</span> <span class="n">temp</span> <span class="mf">298.0</span> <span class="mf">298.0</span> <span class="mi">100</span> <span class="n">iso</span> <span class="mf">1.0</span> <span class="mf">1.0</span> <span class="mi">500</span>
|
|
<span class="n">fix_modify</span> <span class="n">fNPT</span> <span class="n">temp</span> <span class="n">cTEMP_CORE</span> <span class="n">press</span> <span class="n">thermo_press</span>
|
|
<span class="n">fix</span> <span class="n">fNVT</span> <span class="n">gDRUDES</span> <span class="n">nvt</span> <span class="n">temp</span> <span class="mf">5.0</span> <span class="mf">5.0</span> <span class="mi">100</span>
|
|
<span class="n">fix</span> <span class="n">fINVERSE</span> <span class="nb">all</span> <span class="n">drude</span><span class="o">/</span><span class="n">transform</span><span class="o">/</span><span class="n">inverse</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>In this example, <em>gCORES</em> is the group of the atom cores and <em>gDRUDES</em>
|
|
is the group of the Drude particles. The centers of mass of the Drude
|
|
oscillators will be thermostated at 298.0 and the internal degrees of
|
|
freedom will be thermostated at 5.0. The whole system will be
|
|
barostated at 1.0.</p>
|
|
<p>In order to avoid the flying ice cube problem (irreversible transfer
|
|
of linear momentum to the center of mass of the system), you may need
|
|
to add a <em>fix momentum</em> command:</p>
|
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">fix</span> <span class="n">fMOMENTUM</span> <span class="nb">all</span> <span class="n">momentum</span> <span class="mi">100</span> <span class="n">linear</span> <span class="mi">1</span> <span class="mi">1</span> <span class="mi">1</span>
|
|
</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</h2>
|
|
<p>No information about this fix is written to <a class="reference internal" href="restart.html"><span class="doc">binary restart files</span></a>.</p>
|
|
</div>
|
|
<div class="section" id="restrictions">
|
|
<h2>Restrictions</h2>
|
|
<blockquote>
|
|
<div>none</div></blockquote>
|
|
</div>
|
|
<div class="section" id="related-commands">
|
|
<h2>Related commands</h2>
|
|
<p><a class="reference internal" href="fix_drude.html"><span class="doc">fix drude</span></a>,
|
|
<a class="reference internal" href="fix_langevin_drude.html"><span class="doc">fix langevin/drude</span></a>,
|
|
<a class="reference internal" href="compute_temp_drude.html"><span class="doc">compute temp/drude</span></a>,
|
|
<a class="reference internal" href="pair_thole.html"><span class="doc">pair_style thole</span></a></p>
|
|
<p><strong>Default:</strong> none</p>
|
|
<hr class="docutils" />
|
|
<p id="lamoureux"><strong>(Lamoureux)</strong> Lamoureux and Roux, J Chem Phys, 119, 3025-3039 (2003).</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> |