Angle is defined by points ,
, and
, and spanned by vectors
and
:
![]() |
(7.18) |
The first derivatives of with respect to Cartesian coordinates are:
![]() |
![]() |
![]() |
(7.19) |
![]() |
![]() |
![]() |
(7.20) |
![]() |
![]() |
![]() |
(7.21) |
These equations for the derivatives have a numerical instability when
the angle goes to 0 or to 180.
Presently, the problem is `solved' by testing for the size
of the angle; if it is too small, the derivatives are set to 0
in the hope that other restraints will eventually pull the angle
towards well behaved regions. Thus, angle restraints of 0 or
180
should not be used in the conjugate gradients or molecular dynamics
optimizations.