.. _constraintalg: Constraint algorithms --------------------- Constraints are defined in the ``[ constraints ]`` section. The format is two atom numbers followed by the function type, which can be 1 or 2, and the constraint distance. The only difference between the two types is that type 1 is used for generating exclusions and type 2 is not (see sec. :ref:`excl`). The distances are constrained using the LINCS or the SHAKE algorithm, which can be selected in the :ref:`mdp` file. Both types of constraints can be perturbed in free-energy calculations by adding a second constraint distance (see :ref:`constraintforce`). Several types of bonds and angles (see :numref:`Table %s `) can be converted automatically to constraints by :ref:`grompp `. There are several options for this in the :ref:`mdp` file. We have also implemented the SETTLE algorithm \ :ref:`47 `, which is an analytical solution of SHAKE, specifically for water. SETTLE can be selected in the topology file. See, for instance, the SPC molecule definition: :: [ moleculetype ] ; molname nrexcl SOL 1 [ atoms ] ; nr at type res nr ren nm at nm cg nr charge 1 OW 1 SOL OW1 1 -0.82 2 HW 1 SOL HW2 1 0.41 3 HW 1 SOL HW3 1 0.41 [ settles ] ; OW funct doh dhh 1 1 0.1 0.16333 [ exclusions ] 1 2 3 2 1 3 3 1 2 The ``[ settles ]`` directive defines the first atom of the water molecule. The settle funct is always 1, and the distance between O-H and H-H distances must be given. **Note** that the algorithm can also be used for TIP3P and TIP4P \ :ref:`128 `. TIP3P just has another geometry. TIP4P has a virtual site, but since that is generated it does not need to be shaken (nor stirred).