2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
<!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" >
2015-12-21 23:20:41 +08:00
< title > fix thermal/conductivity command — LAMMPS documentation< / title >
2015-07-30 22:53:28 +08:00
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
< link rel = "stylesheet" href = "_static/css/theme.css" type = "text/css" / >
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
< link rel = "stylesheet" href = "_static/sphinxcontrib-images/LightBox2/lightbox2/css/lightbox.css" type = "text/css" / >
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
2015-12-21 23:20:41 +08:00
< link rel = "top" title = "LAMMPS documentation" href = "index.html" / >
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
< script src = "_static/js/modernizr.min.js" > < / script >
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
< / head >
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
< body class = "wy-body-for-nav" role = "document" >
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
< div class = "wy-grid-for-nav" >
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
< nav data-toggle = "wy-nav-shift" class = "wy-nav-side" >
< div class = "wy-side-nav-search" >
2008-05-15 05:40:02 +08:00
2015-07-30 22:53:28 +08:00
< 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 thermal/conductivity 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-thermal-conductivity-command" >
< span id = "index-0" > < / span > < h1 > fix thermal/conductivity command< a class = "headerlink" href = "#fix-thermal-conductivity-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 > fix ID group-ID thermal/conductivity N edim Nbin keyword value ...
< / pre > < / div >
< / div >
< ul class = "simple" >
< li > ID, group-ID are documented in < a class = "reference internal" href = "fix.html" > < em > fix< / em > < / a > command< / li >
< li > thermal/conductivity = style name of this fix command< / li >
< li > N = perform kinetic energy exchange every N steps< / li >
< li > edim = < em > x< / em > or < em > y< / em > or < em > z< / em > = direction of kinetic energy transfer< / li >
< li > Nbin = # of layers in edim direction (must be even number)< / li >
< li > zero or more keyword/value pairs may be appended< / li >
< li > keyword = < em > swap< / em > < / li >
< / ul >
< pre class = "literal-block" >
< em > swap< / em > value = Nswap = number of swaps to perform every N steps
< / 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 > fix 1 all thermal/conductivity 100 z 20
fix 1 all thermal/conductivity 50 z 20 swap 2
< / pre > < / div >
< / div >
< / div >
< div class = "section" id = "description" >
< h2 > Description< a class = "headerlink" href = "#description" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > Use the Muller-Plathe algorithm described in < a class = "reference internal" href = "fix_viscosity.html#muller-plathe" > < span > this paper< / span > < / a > to exchange kinetic energy between two particles
2008-05-15 05:40:02 +08:00
in different regions of the simulation box every N steps. This
induces a temperature gradient in the system. As described below this
2014-05-02 23:34:15 +08:00
enables the thermal conductivity of a material to be calculated. This
2008-05-15 05:40:02 +08:00
algorithm is sometimes called a reverse non-equilibrium MD (reverse
NEMD) approach to computing thermal conductivity. This is because the
usual NEMD approach is to impose a temperature gradient on the system
and measure the response as the resulting heat flux. In the
Muller-Plathe method, the heat flux is imposed, and the temperature
2015-07-30 22:53:28 +08:00
gradient is the system’ s response.< / p >
< p > See the < a class = "reference internal" href = "compute_heat_flux.html" > < em > compute heat/flux< / em > < / a > command for details
2009-07-03 00:40:58 +08:00
on how to compute thermal conductivity in an alternate way, via the
2015-07-30 22:53:28 +08:00
Green-Kubo formalism.< / p >
< p > The simulation box is divided into < em > Nbin< / em > layers in the < em > edim< / em >
2008-06-25 07:22:45 +08:00
direction, where the layer 1 is at the low end of that dimension and
2015-07-30 22:53:28 +08:00
the layer < em > Nbin< / em > is at the high end. Every N steps, Nswap pairs of
2008-06-25 07:22:45 +08:00
atoms are chosen in the following manner. Only atoms in the fix group
are considered. The hottest Nswap atoms in layer 1 are selected.
2015-07-30 22:53:28 +08:00
Similarly, the coldest Nswap atoms in the “ middle” layer (see below)
2008-06-25 07:22:45 +08:00
are selected. The two sets of Nswap atoms are paired up and their
velocities are exchanged. This effectively swaps their kinetic
2015-07-13 23:17:57 +08:00
energies, assuming their masses are the same. If the masses are
different, an exchange of velocities relative to center of mass motion
of the 2 atoms is performed, to conserve kinetic energy. Over time,
this induces a temperature gradient in the system which can be
measured using commands such as the following, which writes the
2015-07-30 22:53:28 +08:00
temperature profile (assuming z = edim) to the file tmp.profile:< / p >
< div class = "highlight-python" > < div class = "highlight" > < pre > compute ke all ke/atom
2010-05-24 22:45:47 +08:00
variable temp atom c_ke/1.5
2015-07-30 22:53:28 +08:00
fix 3 all ave/spatial 10 100 1000 z lower 0.05 v_temp &
file tmp.profile units reduced
< / pre > < / div >
< / div >
< p > Note that by default, Nswap = 1, though this can be changed by the
optional < em > swap< / em > keyword. Setting this parameter appropriately, in
2008-05-15 05:40:02 +08:00
conjunction with the swap rate N, allows the heat flux to be adjusted
across a wide range of values, and the kinetic energy to be exchanged
2015-07-30 22:53:28 +08:00
in large chunks or more smoothly.< / p >
< p > The “ middle” layer for velocity swapping is defined as the < em > Nbin< / em > /2 +
1 layer. Thus if < em > Nbin< / em > = 20, the two swapping layers are 1 and 11.
2008-06-25 07:22:45 +08:00
This should lead to a symmetric temperature profile since the two
layers are separated by the same distance in both directions in a
2015-07-30 22:53:28 +08:00
periodic sense. This is why < em > Nbin< / em > is restricted to being an even
number.< / p >
< p > As described below, the total kinetic energy transferred by these
2008-05-15 05:40:02 +08:00
swaps is computed by the fix and can be output. Dividing this
quantity by time and the cross-sectional area of the simulation box
yields a heat flux. The ratio of heat flux to the slope of the
2012-11-15 00:08:42 +08:00
temperature profile is proportional to the thermal conductivity of the
2015-07-30 22:53:28 +08:00
fluid, in appropriate units. See the < a class = "reference internal" href = "fix_viscosity.html#muller-plathe" > < span > Muller-Plathe paper< / span > < / a > for details.< / p >
2015-12-11 01:23:56 +08:00
< div class = "admonition note" >
< p class = "first admonition-title" > Note< / p >
< p class = "last" > If your system is periodic in the direction of the heat flux,
then the flux is going in 2 directions. This means the effective heat
flux in one direction is reduced by a factor of 2. You will see this
in the equations for thermal conductivity (kappa) in the Muller-Plathe
paper. LAMMPS is simply tallying kinetic energy which does not
account for whether or not your system is periodic; you must use the
value appropriately to yield a kappa for your system.< / p >
2015-07-30 22:53:28 +08:00
< / div >
2015-12-11 01:23:56 +08:00
< div class = "admonition note" >
< p class = "first admonition-title" > Note< / p >
< p class = "last" > After equilibration, if the temperature gradient you observe is
not linear, then you are likely swapping energy too frequently and are
not in a regime of linear response. In this case you cannot
accurately infer a thermal conductivity and should try increasing the
Nevery parameter.< / p >
2015-07-30 22:53:28 +08:00
< / div >
< / div >
< div class = "section" id = "restart-fix-modify-output-run-start-stop-minimize-info" >
< h2 > Restart, fix_modify, output, run start/stop, minimize info< a class = "headerlink" href = "#restart-fix-modify-output-run-start-stop-minimize-info" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > No information about this fix is written to < a class = "reference internal" href = "restart.html" > < em > binary restart files< / em > < / a > . None of the < a class = "reference internal" href = "fix_modify.html" > < em > fix_modify< / em > < / a > options
are relevant to this fix.< / p >
< p > This fix computes a global scalar which can be accessed by various
< a class = "reference internal" href = "Section_howto.html#howto-15" > < span > output commands< / span > < / a > . The scalar is the
2010-04-03 00:51:06 +08:00
cummulative kinetic energy transferred between the bottom and middle
2015-07-30 22:53:28 +08:00
of the simulation box (in the < em > edim< / em > direction) is stored as a scalar
2010-04-03 00:51:06 +08:00
quantity by this fix. This quantity is zeroed when the fix is defined
and accumlates thereafter, once every N steps. The units of the
2015-07-30 22:53:28 +08:00
quantity are energy; see the < a class = "reference internal" href = "units.html" > < em > units< / em > < / a > command for details.
The scalar value calculated by this fix is “ intensive” .< / p >
< p > No parameter of this fix can be used with the < em > start/stop< / em > keywords of
the < a class = "reference internal" href = "run.html" > < em > run< / em > < / a > command. This fix is not invoked during < a class = "reference internal" href = "minimize.html" > < em > energy minimization< / em > < / a > .< / p >
< / div >
< div class = "section" id = "restrictions" >
< h2 > Restrictions< a class = "headerlink" href = "#restrictions" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > This fix is part of the MISC 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 > Making LAMMPS< / span > < / a > section for more info.< / p >
< p > Swaps conserve both momentum and kinetic energy, even if the masses of
2010-07-16 08:14:20 +08:00
the swapped atoms are not equal. Thus you should not need to
thermostat the system. If you do use a thermostat, you may want to
2015-07-30 22:53:28 +08:00
apply it only to the non-swapped dimensions (other than < em > vdim< / em > ).< / p >
< p > LAMMPS does not check, but you should not use this fix to swap the
2008-05-15 05:40:02 +08:00
kinetic energy of atoms that are in constrained molecules, e.g. via
2015-07-30 22:53:28 +08:00
< a class = "reference internal" href = "fix_shake.html" > < em > fix shake< / em > < / a > or < a class = "reference internal" href = "fix_rigid.html" > < em > fix rigid< / em > < / a > . This is
2008-05-15 05:40:02 +08:00
because application of the constraints will alter the amount of
transferred momentum. You should, however, be able to use flexible
2015-07-30 22:53:28 +08:00
molecules. See the < a class = "reference internal" href = "pair_gran.html#zhang" > < span > Zhang paper< / span > < / a > for a discussion and results
of this idea.< / p >
< p > When running a simulation with large, massive particles or molecules
2008-05-15 05:40:02 +08:00
in a background solvent, you may want to only exchange kinetic energy
2015-07-30 22:53:28 +08:00
bewteen solvent particles.< / p >
< / div >
< div class = "section" id = "related-commands" >
< h2 > Related commands< a class = "headerlink" href = "#related-commands" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > < a class = "reference internal" href = "fix_ave_spatial.html" > < em > fix ave/spatial< / em > < / a > , < a class = "reference internal" href = "fix_viscosity.html" > < em > fix viscosity< / em > < / a > , < a class = "reference internal" href = "compute_heat_flux.html" > < em > compute heat/flux< / em > < / a > < / p >
< / div >
< div class = "section" id = "default" >
< h2 > Default< a class = "headerlink" href = "#default" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > The option defaults are swap = 1.< / p >
< hr class = "docutils" / >
< p id = "muller-plathe" > < strong > (Muller-Plathe)< / strong > Muller-Plathe, J Chem Phys, 106, 6082 (1997).< / p >
< p id = "zhang" > < strong > (Zhang)< / strong > Zhang, Lussetti, de Souza, Muller-Plathe, J Phys Chem B,
109, 15060-15067 (2005).< / p >
< / div >
< / div >
< / div >
< / div >
< footer >
< hr / >
< div role = "contentinfo" >
< p >
2015-12-11 01:23:56 +08:00
© Copyright 2013 Sandia Corporation.
2015-07-30 22:53:28 +08:00
< / 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:'./',
2015-12-21 23:20:41 +08:00
VERSION:'',
2015-07-30 22:53:28 +08:00
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 >