2016-05-10 01:33:12 +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" >
< title > fix restrain 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 restrain 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-restrain-command" >
< span id = "index-0" > < / span > < h1 > fix restrain 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" > restrain< / span > < span class = "n" > keyword< / span > < span class = "n" > args< / 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 > restrain = style name of this fix command< / li >
< li > one or more keyword/arg pairs may be appended< / li >
< li > keyword = < em > bond< / em > or < em > angle< / em > or < em > dihedral< / em > < / li >
< / ul >
< pre class = "literal-block" >
< em > bond< / em > args = atom1 atom2 Kstart Kstop r0
atom1,atom2 = IDs of 2 atoms in bond
Kstart,Kstop = restraint coefficients at start/end of run (energy units)
r0 = equilibrium bond distance (distance units)
< em > angle< / em > args = atom1 atom2 atom3 Kstart Kstop theta0
atom1,atom2,atom3 = IDs of 3 atoms in angle, atom2 = middle atom
Kstart,Kstop = restraint coefficients at start/end of run (energy units)
theta0 = equilibrium angle theta (degrees)
< em > dihedral< / em > args = atom1 atom2 atom3 atom4 Kstart Kstop phi0
atom1,atom2,atom3,atom4 = IDs of 4 atoms in dihedral in linear order
Kstart,Kstop = restraint coefficients at start/end of run (energy units)
phi0 = equilibrium dihedral angle phi (degrees)
< / 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 = "n" > holdem< / span > < span class = "nb" > all< / span > < span class = "n" > restrain< / span > < span class = "n" > bond< / span > < span class = "mi" > 45< / span > < span class = "mi" > 48< / span > < span class = "mf" > 2000.0< / span > < span class = "mf" > 2000.0< / span > < span class = "mf" > 2.75< / span >
< span class = "n" > fix< / span > < span class = "n" > holdem< / span > < span class = "nb" > all< / span > < span class = "n" > restrain< / span > < span class = "n" > dihedral< / span > < span class = "mi" > 1< / span > < span class = "mi" > 2< / span > < span class = "mi" > 3< / span > < span class = "mi" > 4< / span > < span class = "mf" > 2000.0< / span > < span class = "mf" > 2000.0< / span > < span class = "mf" > 120.0< / span >
< span class = "n" > fix< / span > < span class = "n" > holdem< / span > < span class = "nb" > all< / span > < span class = "n" > restrain< / span > < span class = "n" > bond< / span > < span class = "mi" > 45< / span > < span class = "mi" > 48< / span > < span class = "mf" > 2000.0< / span > < span class = "mf" > 2000.0< / span > < span class = "mf" > 2.75< / span > < span class = "n" > dihedral< / span > < span class = "mi" > 1< / span > < span class = "mi" > 2< / span > < span class = "mi" > 3< / span > < span class = "mi" > 4< / span > < span class = "mf" > 2000.0< / span > < span class = "mf" > 2000.0< / span > < span class = "mf" > 120.0< / span >
< span class = "n" > fix< / span > < span class = "n" > texas_holdem< / span > < span class = "nb" > all< / span > < span class = "n" > restrain< / span > < span class = "n" > dihedral< / span > < span class = "mi" > 1< / span > < span class = "mi" > 2< / span > < span class = "mi" > 3< / span > < span class = "mi" > 4< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 2000.0< / span > < span class = "mf" > 120.0< / span > < span class = "n" > dihedral< / span > < span class = "mi" > 1< / span > < span class = "mi" > 2< / span > < span class = "mi" > 3< / span > < span class = "mi" > 5< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 2000.0< / span > < span class = "o" > -< / span > < span class = "mf" > 120.0< / span > < span class = "n" > dihedral< / span > < span class = "mi" > 1< / span > < span class = "mi" > 2< / span > < span class = "mi" > 3< / span > < span class = "mi" > 6< / span > < span class = "mf" > 0.0< / span > < span class = "mf" > 2000.0< / span > < span class = "mf" > 0.0< / span >
< / pre > < / div >
< / div >
< / div >
< div class = "section" id = "description" >
< h2 > Description< / h2 >
< p > Restrain the motion of the specified sets of atoms by making them part
of a bond or angle or dihedral interaction whose strength can vary
over time during a simulation. This is functionally equivalent to
creating a bond or angle or dihedral for the same atoms in a data
file, as specified by the < a class = "reference internal" href = "read_data.html" > < span class = "doc" > read_data< / span > < / a > command, albeit
with a time-varying pre-factor coefficient. For the purpose of
forcefield parameter-fitting or mapping a molecular potential energy
surface, this fix reduces the hassle and risk associated with
modifying data files. In other words, use this fix to temporarily
force a molecule to adopt a particular conformation. To create a
permanent bond or angle or dihedral, you should modify the data file.< / p >
< p > The group-ID specified by this fix is ignored.< / p >
< p > The second example above applies a restraint to hold the dihedral
angle formed by atoms 1, 2, 3, and 4 near 120 degrees using a constant
restraint coefficient. The fourth example applies similar restraints
to multiple dihedral angles using a restraint coefficient that
increases from 0.0 to 2000.0 over the course of the run.< / p >
< div class = "admonition note" >
< p class = "first admonition-title" > Note< / p >
< p class = "last" > Adding a force to atoms implies a change in their potential
energy as they move due to the applied force field. For dynamics via
the < a class = "reference internal" href = "run.html" > < span class = "doc" > run< / span > < / a > command, this energy can be added to the system’ s
potential energy for thermodynamic output (see below). For energy
minimization via the < a class = "reference internal" href = "minimize.html" > < span class = "doc" > minimize< / span > < / a > command, this energy
must be added to the system’ s potential energy to formulate a
self-consistent minimization problem (see below).< / p >
< / div >
< p > In order for a restraint to be effective, the restraint force must
typically be significantly larger than the forces associated with
conventional forcefield terms. If the restraint is applied during a
dynamics run (as opposed to during an energy minimization), a large
restraint coefficient can significantly reduce the stable timestep
size, especially if the atoms are initially far from the preferred
conformation. You may need to experiment to determine what value of K
works best for a given application.< / p >
< p > For the case of finding a minimum energy structure for a single
molecule with particular restratins (e.g. for fitting forcefield
parameters or constructing a potential energy surface), commands such
as the following may be useful:< / p >
< div class = "highlight-default" > < div class = "highlight" > < pre > < span > < / span > # minimize molecule energy with restraints
velocity all create 600.0 8675309 mom yes rot yes dist gaussian
fix NVE all nve
fix TFIX all langevin 600.0 0.0 100 24601
fix REST all restrain dihedral 2 1 3 8 0.0 5000.0 ${angle1} dihedral 3 1 2 9 0.0 5000.0 ${angle2}
fix_modify REST energy yes
run 10000
fix TFIX all langevin 0.0 0.0 100 24601
fix REST all restrain dihedral 2 1 3 8 5000.0 5000.0 ${angle1} dihedral 3 1 2 9 5000.0 5000.0 ${angle2}
fix_modify REST energy yes
run 10000
# sanity check for convergence
minimize 1e-6 1e-9 1000 100000
# report unrestrained energies
unfix REST
run 0
< / pre > < / div >
< / div >
< hr class = "docutils" / >
< p > The < em > bond< / em > keyword applies a bond restraint to the specified atoms
using the same functional form used by the < a class = "reference internal" href = "bond_harmonic.html" > < span class = "doc" > bond_style harmonic< / span > < / a > command. The potential associated with
the restraint is< / p >
< img alt = "_images/bond_harmonic.jpg" class = "align-center" src = "_images/bond_harmonic.jpg" / >
< p > with the following coefficients:< / p >
< ul class = "simple" >
< li > K (energy/distance^2)< / li >
< li > r0 (distance)< / li >
< / ul >
< p > K and r0 are specified with the fix. Note that the usual 1/2 factor
is included in K.< / p >
< hr class = "docutils" / >
< p > The < em > angle< / em > keyword applies an angle restraint to the specified atoms
using the same functional form used by the < a class = "reference internal" href = "angle_harmonic.html" > < span class = "doc" > angle_style harmonic< / span > < / a > command. The potential associated with
the restraint is< / p >
< img alt = "_images/angle_harmonic.jpg" class = "align-center" src = "_images/angle_harmonic.jpg" / >
< p > with the following coefficients:< / p >
< ul class = "simple" >
< li > K (energy/radian^2)< / li >
< li > theta0 (degrees)< / li >
< / ul >
< p > K and theta0 are specified with the fix. Note that the usual 1/2
factor is included in K.< / p >
< hr class = "docutils" / >
< p > The < em > dihedral< / em > keyword applies a dihedral restraint to the specified
atoms using a simplified form of the function used by the
< a class = "reference internal" href = "dihedral_charmm.html" > < span class = "doc" > dihedral_style charmm< / span > < / a > command. The potential
associated with the restraint is< / p >
< img alt = "_images/dihedral_charmm.jpg" class = "align-center" src = "_images/dihedral_charmm.jpg" / >
< p > with the following coefficients:< / p >
< ul class = "simple" >
< li > K (energy)< / li >
< li > n = 1< / li >
< li > d (degrees) = phi0 + 180< / li >
< / ul >
< p > K and phi0 are specified with the fix. Note that the value of n is
hard-wired to 1. Also note that the energy will be a minimum when the
current dihedral angle phi is equal to phi0.< / p >
< / 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 >
< p > The < a class = "reference internal" href = "fix_modify.html" > < span class = "doc" > fix_modify< / span > < / a > < em > energy< / em > option is supported by this
fix to add the potential energy associated with this fix to the
system’ s potential energy as part of < a class = "reference internal" href = "thermo_style.html" > < span class = "doc" > thermodynamic output< / span > < / a > .< / p >
2016-06-18 07:24:05 +08:00
< p > The < a class = "reference internal" href = "fix_modify.html" > < span class = "doc" > fix_modify< / span > < / a > < em > respa< / em > option is supported by this
fix. This allows to set at which level of the < a class = "reference internal" href = "run_style.html" > < span class = "doc" > r-RESPA< / span > < / a >
integrator the fix is adding its forces. Default is the outermost level.< / p >
2016-05-10 01:33:12 +08:00
< div class = "admonition note" >
< p class = "first admonition-title" > Note< / p >
< p class = "last" > If you want the fictitious potential energy associated with the
added forces to be included in the total potential energy of the
system (the quantity being minimized), you MUST enable the
< a class = "reference internal" href = "fix_modify.html" > < span class = "doc" > fix_modify< / span > < / a > < em > energy< / em > option for this fix.< / p >
< / div >
< p > This fix computes a global scalar, 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 is the
potential energy for all the restraints as discussed above. The scalar
value calculated by this fix is “ extensive” .< / 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" > < span class = "doc" > run< / span > < / a > command.< / p >
< / div >
< div class = "section" id = "restrictions" >
< h2 > Restrictions< / h2 >
< blockquote >
< div > none< / div > < / blockquote >
< p > < strong > Related commands:< / strong > none< / p >
< p > < strong > Default:< / strong > none< / 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 >