Gradient-Only and Hybrid Searches

It is generally much more efficient to carry out energy minimisation, including pathway calculations, using the LBFGS gradient-only routine specified by BFGSMIN. Steepest-descent paths or minimisations can also be calculated by Runge-Kutta or Bulirsch-Stoer integration using the RKMIN and BSMIN keywords, respectively.

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.

David Wales 2018-06-23