The key CONSTRAINTS can only be used in case of the New branch for optimization of coordinates. The input for this key is very similar to that of the RESTRAINT keyword. The key CONSTRAINTS can, however, also be used to constrain Cartesian coordinates. Note that the key RESTRAINT and freezing of coordinates with the GEOVAR key can also be used in the New branch for optimization of coordinates. In ADF2007 the New branch for optimization can only be used in geometry optimizations and transition state searches.
The constraints do not have to be satisfied at the start of the geometry optimization.
The CONSTRAINTS keyword allows geometry optimizations with constraints for the distance between two atoms, an angle defined by three atoms, (and) or a dihedral angle defined by four atoms:
CONSTRAINTS
ATOM Ia1 {Xa1 Ya1 Za1}
DIST Ia1 Ia2 Ra
ANGLE Ib1 Ib2 Ib3 Rb
DIHED Ic1 Ic2 Ic3 Ic4 Rc
BLOCK bname
end
ATOM
When ATOM is specified, the Cartesian coordinates of atom Ia1 are constrained to: Xa1 Ya1 Za1. The atom number should be given in Input order; the value for the coordinates in Angstrom. Optionally one can give the three Cartesian coordinates a value. This key can only be used in Cartesian optimizations.
DIST
When DIST is specified, the distance between atoms Ia1 and Ia2 is constrained to the value Ra. The atom numbers should be given in Input order; the value for the distance in Angstrom.
ANGLE
When ANGLE is specified, the angle between atoms Ib1, Ib2 and Ib3 (Ib1-Ib2-Ib3) is constrained to the value Rb. The atom numbers should be given in Input order; the value for the angle in degrees.
DIHED
When DIHED is specified, the dihedral angle between atoms Ic1, Ic2, Ic3 and Ic4 (Ic1-Ic2-Ic3-Ic4) is restrained to the value Rc. The atom numbers should be given in Input order; the value for the angle in degrees. The dihedral angle Ic1-Ic2-Ic3-Ic4 is defined in the same way as for the Z-matrix in ADF. The dihedral angle is projected onto the [0,2π] interval, so there should be no difference between specifying -30° or 330°.
BLOCK
Block constraints allow the internal degrees of freedom of a block of atoms to be frozen, so that the block moves as a whole. To apply block constraints, you add block labels to atoms in the Atoms block, and then add the block constraint in the Constraints input block:
ATOMS
1.C -0.004115 -0.000021 0.000023 b=b1
2.C 1.535711 0.000022 0.000008 b=b2
3.H -0.399693 1.027812 -0.000082 b=b1
4.H -0.399745 -0.513934 0.890139 b=b1
5.H -0.399612 -0.513952 -0.890156 b=b1
6.H 1.931188 0.514066 0.890140 b=b2
7.H 1.931432 0.513819 -0.890121 b=b2
8.H 1.931281 -1.027824 0.000244 b=b2
END
CONSTRAINTS
BLOCK b1
BLOCK b2
END




