git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@6789 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp 2011-08-25 15:07:08 +00:00
parent 786bcba081
commit 0cc0882f08
6 changed files with 297 additions and 4 deletions

View File

@ -342,10 +342,11 @@ of each style or click on the style itself for a full description:
<TR ALIGN="center"><TD ><A HREF = "fix_langevin.html">langevin</A></TD><TD ><A HREF = "fix_lineforce.html">lineforce</A></TD><TD ><A HREF = "fix_momentum.html">momentum</A></TD><TD ><A HREF = "fix_move.html">move</A></TD><TD ><A HREF = "fix_msst.html">msst</A></TD><TD ><A HREF = "fix_neb.html">neb</A></TD><TD ><A HREF = "fix_nh.html">nph</A></TD><TD ><A HREF = "fix_nph_asphere.html">nph/asphere</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_nph_sphere.html">nph/sphere</A></TD><TD ><A HREF = "fix_nh.html">npt</A></TD><TD ><A HREF = "fix_npt_asphere.html">npt/asphere</A></TD><TD ><A HREF = "fix_npt_sphere.html">npt/sphere</A></TD><TD ><A HREF = "fix_nve.html">nve</A></TD><TD ><A HREF = "fix_nve_asphere.html">nve/asphere</A></TD><TD ><A HREF = "fix_nve_limit.html">nve/limit</A></TD><TD ><A HREF = "fix_nve_noforce.html">nve/noforce</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_nve_sphere.html">nve/sphere</A></TD><TD ><A HREF = "fix_nh.html">nvt</A></TD><TD ><A HREF = "fix_nvt_asphere.html">nvt/asphere</A></TD><TD ><A HREF = "fix_nvt_sllod.html">nvt/sllod</A></TD><TD ><A HREF = "fix_nvt_sphere.html">nvt/sphere</A></TD><TD ><A HREF = "fix_orient_fcc.html">orient/fcc</A></TD><TD ><A HREF = "fix_planeforce.html">planeforce</A></TD><TD ><A HREF = "fix_poems.html">poems</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_pour.html">pour</A></TD><TD ><A HREF = "fix_press_berendsen.html">press/berendsen</A></TD><TD ><A HREF = "fix_print.html">print</A></TD><TD ><A HREF = "fix_qeq_comb.html">qeq/comb</A></TD><TD ><A HREF = "fix_reax_bonds.html">reax/bonds</A></TD><TD ><A HREF = "fix_recenter.html">recenter</A></TD><TD ><A HREF = "fix_rigid.html">rigid</A></TD><TD ><A HREF = "fix_rigid.html">rigid/nve</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_rigid.html">rigid/nvt</A></TD><TD ><A HREF = "fix_setforce.html">setforce</A></TD><TD ><A HREF = "fix_shake.html">shake</A></TD><TD ><A HREF = "fix_spring.html">spring</A></TD><TD ><A HREF = "fix_spring_rg.html">spring/rg</A></TD><TD ><A HREF = "fix_spring_self.html">spring/self</A></TD><TD ><A HREF = "fix_srd.html">srd</A></TD><TD ><A HREF = "fix_store_force.html">store/force</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_store_state.html">store/state</A></TD><TD ><A HREF = "fix_temp_berendsen.html">temp/berendsen</A></TD><TD ><A HREF = "fix_temp_rescale.html">temp/rescale</A></TD><TD ><A HREF = "fix_thermal_conductivity.html">thermal/conductivity</A></TD><TD ><A HREF = "fix_tmd.html">tmd</A></TD><TD ><A HREF = "fix_ttm.html">ttm</A></TD><TD ><A HREF = "fix_viscosity.html">viscosity</A></TD><TD ><A HREF = "fix_viscous.html">viscous</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_wall.html">wall/colloid</A></TD><TD ><A HREF = "fix_wall_gran.html">wall/gran</A></TD><TD ><A HREF = "fix_wall.html">wall/harmonic</A></TD><TD ><A HREF = "fix_wall.html">wall/lj126</A></TD><TD ><A HREF = "fix_wall.html">wall/lj93</A></TD><TD ><A HREF = "fix_wall_reflect.html">wall/reflect</A></TD><TD ><A HREF = "fix_wall_region.html">wall/region</A></TD><TD ><A HREF = "fix_wall_srd.html">wall/srd</A>
<TR ALIGN="center"><TD ><A HREF = "fix_pour.html">pour</A></TD><TD ><A HREF = "fix_press_berendsen.html">press/berendsen</A></TD><TD ><A HREF = "fix_print.html">print</A></TD><TD ><A HREF = "fix_qeq_comb.html">qeq/comb</A></TD><TD ><A HREF = "fix_reax_bonds.html">reax/bonds</A></TD><TD ><A HREF = "fix_recenter.html">recenter</A></TD><TD ><A HREF = "fix_restrain.html">restrain</A></TD><TD ><A HREF = "fix_rigid.html">rigid</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_rigid.html">rigid/nve</A></TD><TD ><A HREF = "fix_rigid.html">rigid/nvt</A></TD><TD ><A HREF = "fix_setforce.html">setforce</A></TD><TD ><A HREF = "fix_shake.html">shake</A></TD><TD ><A HREF = "fix_spring.html">spring</A></TD><TD ><A HREF = "fix_spring_rg.html">spring/rg</A></TD><TD ><A HREF = "fix_spring_self.html">spring/self</A></TD><TD ><A HREF = "fix_srd.html">srd</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_store_force.html">store/force</A></TD><TD ><A HREF = "fix_store_state.html">store/state</A></TD><TD ><A HREF = "fix_temp_berendsen.html">temp/berendsen</A></TD><TD ><A HREF = "fix_temp_rescale.html">temp/rescale</A></TD><TD ><A HREF = "fix_thermal_conductivity.html">thermal/conductivity</A></TD><TD ><A HREF = "fix_tmd.html">tmd</A></TD><TD ><A HREF = "fix_ttm.html">ttm</A></TD><TD ><A HREF = "fix_viscosity.html">viscosity</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_viscous.html">viscous</A></TD><TD ><A HREF = "fix_wall.html">wall/colloid</A></TD><TD ><A HREF = "fix_wall_gran.html">wall/gran</A></TD><TD ><A HREF = "fix_wall.html">wall/harmonic</A></TD><TD ><A HREF = "fix_wall.html">wall/lj126</A></TD><TD ><A HREF = "fix_wall.html">wall/lj93</A></TD><TD ><A HREF = "fix_wall_reflect.html">wall/reflect</A></TD><TD ><A HREF = "fix_wall_region.html">wall/region</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_wall_srd.html">wall/srd</A>
</TD></TR></TABLE></DIV>
<P>These are fix styles contributed by users, which can be used if

View File

@ -451,6 +451,7 @@ of each style or click on the style itself for a full description:
"qeq/comb"_fix_qeq_comb.html,
"reax/bonds"_fix_reax_bonds.html,
"recenter"_fix_recenter.html,
"restrain"_fix_restrain.html,
"rigid"_fix_rigid.html,
"rigid/nve"_fix_rigid.html,
"rigid/nvt"_fix_rigid.html,

View File

@ -211,6 +211,7 @@ list of fix styles available in LAMMPS:
<LI><A HREF = "fix_press_berendsen.html">press/berendsen</A> - pressure control by Berendsen barostat
<LI><A HREF = "fix_print.html">print</A> - print text and variables during a simulation
<LI><A HREF = "fix_reax_bonds.html">reax/bonds</A> - write out ReaxFF bond information <A HREF = "fix_recenter.html">recenter</A> - constrain the center-of-mass position of a group of atoms
<LI><A HREF = "fix_restrain.html">restrain</A> - constrain a bond, angle, dihedral
<LI><A HREF = "fix_rigid.html">rigid</A> - constrain one or more clusters of atoms to move as a rigid body with NVE integration
<LI><A HREF = "fix_rigid.html">rigid/nve</A> - constrain one or more clusters of atoms to move as a rigid body with alternate NVE integration
<LI><A HREF = "fix_rigid.html">rigid/nvt</A> - constrain one or more clusters of atoms to move as a rigid body with NVT integration

View File

@ -210,6 +210,7 @@ list of fix styles available in LAMMPS:
"reax/bonds"_fix_reax_bonds.html - write out ReaxFF bond information \
"recenter"_fix_recenter.html - constrain the center-of-mass position \
of a group of atoms
"restrain"_fix_restrain.html - constrain a bond, angle, dihedral
"rigid"_fix_rigid.html - constrain one or more clusters of atoms to \
move as a rigid body with NVE integration
"rigid/nve"_fix_rigid.html - constrain one or more clusters of atoms to \

150
doc/fix_restrain.html Normal file
View File

@ -0,0 +1,150 @@
<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>fix restrain command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>fix ID group-ID restrain Kstart Kstop keyword value(s)
</PRE>
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
<LI>restrain = style name of this fix command
<LI>Kstart, Kstop = restraint coefficient at start/end of run (energy
units)
<LI>one keyword with one or more sets of parameter values may be appended to args
<LI>keyword = <I>dihedral</I>
<PRE> <I>dihedral</I> value = atom1 atom2 atom3 atom4 target
atom1,atom2,atom3,atom4 = IDs of 4 atoms in restrained dihedral
target = target value for specified dihedral angle (degrees)
</PRE>
</UL>
<P><B>Examples:</B>
</P>
<PRE>fix holdem all restrain 2000.0 2000.0 dihedral 1 2 3 4 120.0
fix texas_holdem all restrain 0.0 2000.0 dihedral 1 2 3 4 120.0 1 2 3 5 -120.0 1 2 3 6 0.0
</PRE>
<P><B>Description:</B>
</P>
<P>Restrain the motion of the specified 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 atoms in a data file, as specified
by the <A HREF = "read_data.html">read_data</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 form a permanent bond or angle
or dihedral, modify the data file.
</P>
<P>The first 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 second 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>
<P>IMPORTANT NOTE: 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 HREF = "run.html">run</A> command, this energy can be added to
the system's potential energy for thermodynamic output (see below).
For energy minimization via the <A HREF = "minimize.html">minimize</A> command, this
energy must be added to the system's potential energy to formulate a
self-consistent minimization problem (see below).
</P>
<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 might be useful:
</P>
<PRE># 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 0.0 5000.0 dihedral 2 1 3 8 $<I>angle1</I> 3 1 2 9 $<I>angle2</I>
fix_modify REST energy yes
run 10000
fix TFIX all langevin 0.0 0.0 100 24601
fix REST all restrain 5000.0 5000.0 dihedral 2 1 3 8 $<I>angle1</I> 3 1 2 9 $<I>angle2</I>
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>
<HR>
<P>The <I>dihedral</I> keyword applies a dihedral restraint to the specified
atoms using a simplified form of the function used in <A HREF = "dihedral_charmm.html">dihedral_style
charmm</A>. Specifically, the potential associated
with the restraint is
</P>
<CENTER><IMG SRC = "Eqs/dihedral_charmm.jpg">
</CENTER>
<P>with the following coefficients:
</P>
<UL><LI>K (energy) = K (specified above)
<LI>n = 1
<LI>d (degrees) = 180.0 + target (specified above)
</UL>
<HR>
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
</P>
<P>No information about this fix is written to <A HREF = "restart.html">binary restart
files</A>.
</P>
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>energy</I> 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 HREF = "thermo_style.html">thermodynamic
output</A>.
</P>
<P>IMPORTANT NOTE: 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 HREF = "fix_modify.html">fix_modify</A> <I>energy</I> option for this fix.
</P>
<P>This fix computes a global scalar, which can be accessed by various
<A HREF = "Section_howto.html#4_15">output commands</A>. The scalar is the
potential energy discussed above. The scalar value calculated by this
fix is "extensive".
</P>
<P>No parameter of this fix can be used with the <I>start/stop</I> keywords of
the <A HREF = "run.html">run</A> command.
</P>
<P><B>Restrictions:</B>
</P>
<P>The group-ID specified by this fix is ignored.
</P>
<P>Currently, only dihedral restraints are allowed, but modification of
the code to allow angle and bond restraints would be straightforward.
</P>
<P><B>Related commands:</B> none
</P>
<P><B>Default:</B> none
</P>
</HTML>

139
doc/fix_restrain.txt Normal file
View File

@ -0,0 +1,139 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
fix restrain command :h3
[Syntax:]
fix ID group-ID restrain Kstart Kstop keyword value(s) :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
restrain = style name of this fix command :l
Kstart, Kstop = restraint coefficient at start/end of run (energy
units) :l
one keyword with one or more sets of parameter values may be appended to args :l
keyword = {dihedral} :l
{dihedral} value = atom1 atom2 atom3 atom4 target
atom1,atom2,atom3,atom4 = IDs of 4 atoms in restrained dihedral
target = target value for specified dihedral angle (degrees) :pre
:ule
[Examples:]
fix holdem all restrain 2000.0 2000.0 dihedral 1 2 3 4 120.0
fix texas_holdem all restrain 0.0 2000.0 dihedral 1 2 3 4 120.0 1 2 3 5 -120.0 1 2 3 6 0.0 :pre
[Description:]
Restrain the motion of the specified 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 atoms in a data file, as specified
by the "read_data"_read_data.html 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 form a permanent bond or angle
or dihedral, modify the data file.
The first 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 second 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.
IMPORTANT NOTE: 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 "run"_run.html command, this energy can be added to
the system's potential energy for thermodynamic output (see below).
For energy minimization via the "minimize"_minimize.html command, this
energy must be added to the system's potential energy to formulate a
self-consistent minimization problem (see below).
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.
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 might be useful:
# 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 0.0 5000.0 dihedral 2 1 3 8 ${angle1} 3 1 2 9 ${angle2}
fix_modify REST energy yes
run 10000
fix TFIX all langevin 0.0 0.0 100 24601
fix REST all restrain 5000.0 5000.0 dihedral 2 1 3 8 ${angle1} 3 1 2 9 ${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
:line
The {dihedral} keyword applies a dihedral restraint to the specified
atoms using a simplified form of the function used in "dihedral_style
charmm"_dihedral_charmm.html. Specifically, the potential associated
with the restraint is
:c,image(Eqs/dihedral_charmm.jpg)
with the following coefficients:
K (energy) = K (specified above)
n = 1
d (degrees) = 180.0 + target (specified above) :ul
:line
[Restart, fix_modify, output, run start/stop, minimize info:]
No information about this fix is written to "binary restart
files"_restart.html.
The "fix_modify"_fix_modify.html {energy} option is supported by this
fix to add the potential energy associated with this fix to the
system's potential energy as part of "thermodynamic
output"_thermo_style.html.
IMPORTANT NOTE: 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
"fix_modify"_fix_modify.html {energy} option for this fix.
This fix computes a global scalar, which can be accessed by various
"output commands"_Section_howto.html#4_15. The scalar is the
potential energy discussed above. The scalar value calculated by this
fix is "extensive".
No parameter of this fix can be used with the {start/stop} keywords of
the "run"_run.html command.
[Restrictions:]
The group-ID specified by this fix is ignored.
Currently, only dihedral restraints are allowed, but modification of
the code to allow angle and bond restraints would be straightforward.
[Related commands:] none
[Default:] none