You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: The-SMIRFF-force-field-format.md
+32
Original file line number
Diff line number
Diff line change
@@ -172,6 +172,38 @@ Here is an example not intended for actual use:
172
172
```
173
173
The charge model specified must be a method understood by the OpenEye toolkits, and the charge correction `increment` (in units of proton charge) will be applied on top of this by subtracting `increment` from the atom tagged as 1 and adding it to the atom tagged as 2.
174
174
175
+
### CONSTRAINTS
176
+
177
+
Bond length constraints can be specified through a `<Constraints/>` block, which can constrain bonds to their equilibrium lengths or specify an interatomic constraint distance.
178
+
Two atoms must be tagged in the `smirks` attribute of each `<Constraint/>` record.
179
+
180
+
To constrain two atoms to their equilibrium bond length, it is critical that a `<HarmonicBondForce/>` record be specified for those atoms:
181
+
```XML
182
+
<Constraints>
183
+
<!-- constrain all bonds to hydrogen to their equilibrium bond length -->
184
+
<Constraintsmirks="[#1:1]-[*:2]" />
185
+
</Constraints>
186
+
```
187
+
However, this constraint distance can be overridden, or two atoms that are not directly bonded constrained, by specifying the `distance` attribute (and optional `distance_unit` attribute for the `<Constraints/>` tag):
188
+
```XML
189
+
<Constraintsdistance_unit="angstroms">
190
+
<!-- constrain water O-H bond to equilibrium bond length (overrides earlier constraint) -->
Typical molecular simulation practice is to constrain all bonds to hydrogen to their equilibrium bond lengths and enforce rigid TIP3P geometry on water molecules:
197
+
```XML
198
+
<Constraintsdistance_unit="angstroms">
199
+
<!-- constrain all bonds to hydrogen to their equilibrium bond length -->
Standard usage is expected to rely primarily on the features documented above and potentially new features. However, some advanced features are also currently supported.
Solvated systems here were built using SolvationToolkit (github.com/mobleylab/solvationtoolkit) version 0.41 and 0.42 (equivalent except for DOI assignment for the latter), except as noted.
2
+
3
+
Because of a bug in handling of insertion of CONECT entries in SolvationToolkit/openmoltools for systems containing water, water boxes were generated by taking GROMACS coordinate/topology files for solvated cyclohexane ('mobley_2689721') and ethanol ('mobley_2310185') from FreeSolv 0.5 and converting to PDB format via OpenMM 7.1 (reading via GromacsGroFile and GromacsTopFile and writing via PDBFile).
ifunit.is_quantity(existing_distance) and (distanceisTrue):
254
+
raiseException('Atoms (%d,%d) already constrained with distance %s but attempting to override with unspecified distance'% (iatom, jatom, existing_distance))
255
+
if (existing_distanceisTrue) and (distanceisTrue):
256
+
raiseException('Atoms (%d,%d) already constrained with unspecified distance but attempting to override with unspecified distance'% (iatom, jatom))
The ConstraintGenerator must be applied before HarmonicBondGenerator and HarmonicAngleGenerator if constrained bonds are to not also have harmonic bond terms added.
1307
+
1308
+
ConstraintGenerator will mark bonds as being constrained for HarmonicBondGenerator to assign constraints to equilibrium bond lengths,
1309
+
while constraints with distances specified will be assigned by ConstraintGenerator.
0 commit comments