Gradient-Only and Hybrid Searches

A hybrid BFGS/eigenvector-following
transition state search[75,76] can be specified by *BFGSTS*. In this approach
an eigenvector-following step is taken along the eigenvector corresponding to
the smallest eigenvalue, which is determined by iteration if second derivatives are
available, or a variational method if not (*NOHESS*).
LAPACK routine DSYEVR is used to find only the lowest required Hessian eigenvalues
and eigenvectors if *NOIT* is specified.
LBFGS minimisation is performed in the tangent space following uphill eigenvector-following
steps, but it is not necessary for
this optimisation to converge accurately except in the vicinity of the transition state.
There are therefore two maximum values for the number of LBFGS steps
allowed in the tangent space optimisation: one is used when the eigenvalue does
not appear to have converged, the other when it has. See the *BFGSTS* keyword.
If the Hessian is relatively cheap to calculate, but the system size is large, then
Hessian diagonalisation should be avoided using *BFGSTS*.
If the smallest eigenvalue is positive then the uphill step size is set to the value
specified by the keyword *MAXMAX*.

The Hessian index can be checked after an LBFGS or hybrid search by calculating
eigenvalues iteratively until the smallest positive eigenvalue is found. Checking is
turned on by the keyword *CHECKINDEX*. This keyword now works with *NOHESS*.

Pathways can be calculated by stepping off a transition state using an eigenvector-following
step along the eigenvector corresponding to the smallest Hessian eigenvalue calculated
by iteration, followed by LBFGS minimisation. The keyword *BFGSSTEP*
must be specified to do this. If the *PUSHOFF*
parameter is set then it is used in the usual way. The sign of the *MODE* parameter,
if set, specifies whether the initial step is parallel or antiparallel to the
eigenvector located. However, the *PATH* keyword now provides a much simpler way
to calculate complete paths.