diff --git a/doc/Section_commands.html b/doc/Section_commands.html index 3671b787b1..17be7419e2 100644 --- a/doc/Section_commands.html +++ b/doc/Section_commands.html @@ -342,10 +342,11 @@ of each style or click on the style itself for a full description:
These are fix styles contributed by users, which can be used if diff --git a/doc/Section_commands.txt b/doc/Section_commands.txt index 8bc22c3a49..2637513cc1 100644 --- a/doc/Section_commands.txt +++ b/doc/Section_commands.txt @@ -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, diff --git a/doc/fix.html b/doc/fix.html index 51d33fc88c..bd47e95a4d 100644 --- a/doc/fix.html +++ b/doc/fix.html @@ -211,6 +211,7 @@ list of fix styles available in LAMMPS:
Syntax: +
+fix ID group-ID restrain Kstart Kstop keyword value(s) ++
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) ++ +
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 ++
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 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 command, this energy can be added to +the system's potential energy for thermodynamic output (see below). +For energy minimization via the minimize 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 ++
The dihedral keyword applies a dihedral restraint to the specified +atoms using a simplified form of the function used in dihedral_style +charmm. Specifically, the potential associated +with the restraint is +
+with the following coefficients: +
+Restart, fix_modify, output, run start/stop, minimize info: +
+No information about this fix is written to binary restart +files. +
+The fix_modify 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. +
+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 energy option for this fix. +
+This fix computes a global scalar, which can be accessed by various +output commands. 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 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 +
+ diff --git a/doc/fix_restrain.txt b/doc/fix_restrain.txt new file mode 100644 index 0000000000..5e38f9f597 --- /dev/null +++ b/doc/fix_restrain.txt @@ -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