Example

The first example is for an eigenvector-following transition state search with maximum step size and trust radius different from the default values. The eigenvector corresponding to the second-lowest non-zero eigenvalue is followed uphill at the first step, with subsequent uphill directions being determined by the overlap condition. The convergence criteria are an unscaled maximum step size of 0.005 and an RMS gradient tolerance of 0.000001.

SEARCH | 2 |

MODE | 2 |

MAXSTEP | 0.1 |

TRAD | 2.0 |

STEPS | 100 |

CONVERGE | 0.005 0.000001 |

POINTS | |

etc. |

The next dataset is the same as above except that we perform an eigenvector-following minimisation and set an initial displacement from the assumed transition state of 0.05 units.

SEARCH | 0 |

PUSHOFF | 0.05 |

MAXSTEP | 0.1 |

TRAD | 2.0 |

STEPS | 100 |

CONVERGE | 0.005 0.000001 |

POINTS | |

etc. |

Next is an LBFGS energy minimisation with a maximum of 100 steps and
convergence conditions of 0.00001 for the RMS gradient.
There follows a check of the Hessian index using iteration to calculate
eigenvalues to an accuracy of 0.01 with 200 and 50 iterations maximum for the smallest
and largest eigenvalues, respectively. A Hessian will be calculated in order to
perform the check. *NOIT* could be used, in which case the lowest ten Hessian
eigenvalues will be calculated. If *NOHESS* is specfified then the smallest
non-zero Hessian eigenvalue will be calculated variationally.

STEPS | 100 |

BFGSMIN | 0.00001 |

CHECKINDEX | 200 0.01 50 |

POINTS | |

etc. |

Next is a transition state search using the hybrid EF/BFGS method. The maximum EF
step and trust radius are 0.1 and 2.0, respectively,
and the maximum step in the LBFGS tangent space minimisation is 0.2. The maximum number of combined
EF/BFGS steps is 100. The maximum number of iterations allowed is
200 for the smallest and 50 for the largest eigenvalue. A maximum of 20 BFGS steps
is permitted in
the orthogonal subspace after each eigenvector-following step until the eigenvalue
appears to have converged, when the maximum jumps to 100 steps.
The convergence criterion
for the Hessian eigenvalues is that the percentage change between steps is
less than 0.01. The convergence criterion for each BFGS
subspace minimisation 0.0001 for the RMS gradient.
Setting *PUSHOFF* to 0.1 enables us to start from a converged minimum with
a large step.
Convergence is achieved when the maximum unscaled eigenvector-following step
falls below 0.01, the total RMS force falls below 0.0001, and the previous subspace
minimisation has converged. The smallest eigenvalue and the corresponding eigenvector
are saved in file `vector.dump`. The Hessian index is checked using iteration to
calculate the eigenvalues with the same parameters as the *BFGSTS* keyword.
Note: if the RMS tolerance specified by *BFGSCONV* is larger than that specfied by
*CONVERGE * the algorithm cannot converge.

MAXSTEP | 0.1 |

MAXMAX | 0.1 |

MAXBFGS | 0.2 |

PUSHOFF | 0.1 |

TRAD | 2.0 |

STEPS | 100 |

BFGSTS | 200 20 100 0.01 50 |

BFGSCONV | 0.0001 |

CONVERGE | 0.01 0.0001 |

DUMPVECTOR | |

CHECKINDEX | |

POINTS | |

etc. |

The following `odata` file is the same as above, except that no Hessian is
available. A maximum of 30 steps is permitted in the BFGS Rayleigh-Ritz
minimisation, which is designed to produce the lowest eigenvalue, and the
convergence condition on this eigenvalue is that the RMS force in the variational BFGS
minimisation falls below 0.1.
Otherwise the parameters have the same meanings as above.
The maximum step size in the Rayleigh-Ritz minimisation is set to 0.2 by the
*MAXBFGS* keyword.

MAXSTEP | 0.1 |

MAXMAX | 0.1 |

MAXBFGS | 0.2 0.2 0.2 |

PUSHOFF | 0.1 |

TRAD | 2.0 |

STEPS | 100 |

NOHESS | |

BFGSTS | 30 20 100 0.1 |

BFGSCONV | 0.0001 |

CONVERGE | 0.01 0.0001 |

DUMPVECTOR | |

CHECKINDEX | |

POINTS | |

etc. |

Next we calculate the part of the reaction pathway
resulting from a displacement of 0.05 antiparallel to the transition
vector saved in file `vector.dump`.
The calculation reverts to a pure LBFGS minimisation after the first step.

MAXSTEP | 0.1 |

MAXBFGS | 0.1 |

TRAD | 2.0 |

STEPS | 100 |

PUSHOFF | 0.05 |

MODE | |

READVEC | |

BFGSSTEP | |

BFGSCONV | 0.0001 |

CONVERGE | 0.01 0.001 |

POINTS | |

etc. |

The next example shows how to calculate a complete pathway from the transition state geometry
specified in `odata` reading the eigenvector from file `vector.dump`.
*NOIT* or *NOHESS* could also be specified in conjunction with *BFGSTS*.
Alternatively, *READVECTOR* would cause the required eigenvector to be read from
file `vector.dump`; in this case either *BFGSSTEP* or *BFGSTS* must
also be present in `odata`.
The maximum LBFGS step is set to 0.05; this setting
helps to make the path smoother and generally gives a closer approximation to the true steepest-descent
path. The LBFGS convergence criterion is that the RMS force falls below 0.000001. *BFGSMIN*
could be replaced by *RKMIN* or *BSMIN* to obtain more accurate steepest-descent paths.

PATH | |

MAXBFGS | 0.05 |

STEPS | 500 |

BFGSTS | 500 10 10 0.01 500 |

PUSHOFF | 0.04 |

BFGSMIN | 0.000001 |

DUMPPATH | |

POINTS | |

etc. |

Pathways can also be calculated using entirely second derivative based steepest-descent methods:

PATH | |

CONVERGE | 0.01 0.000001 |

STEPS | 500 |

SEARCH | 5 |

PUSHOFF | 0.04 |

DUMPPATH | |

POINTS | |

etc. |

Alternatively, the eigenvector for which a *PUSHOFF* is required can be calculated by a full
diagonalisation of the Hessian followed by a gradient only based minimisation:

PATH | |

CONVERGE | 0.01 0.000001 |

STEPS | 500 |

SEARCH | 0 |

BFGSMIN | 0.00001 |

PUSHOFF | 0.04 |

DUMPPATH | |

POINTS | |

etc. |

A more complicated example for a *CONNECT* run using *NEB* to generate transition
state guesses and *BFGSTS* for transition state searches. *NOIT* or
*NOHESS* could also be used in conjunction with *BFGSTS*. The maximum number of
transition state searches allowed is 20, and *BFGSTS* searches are started from
guesses generated by *NEB* using a small number of images and a sloppy convergence
criterion. Pathways will be calculated by LBFGS energy minimisation with 2000 steps allowed,
whereas only 300 steps are allowed in the transition state searches.

CONNECT | 20 |

NEB | 100 5 0.02 |

PATH | 3 |

BFGSTS | 100 3 20 0.01 |

BFGSMIN | 0.000001 |

PUSHOFF | 0.05 |

BFGSSTEPS | 2000 |

STEPS | 300 |

POINTS | |

etc. |

In the next example hard sphere moves are used for the initial transition state guesses, using a displacement vector based upon the initial and final geometries of the two minima in question at the given step, if they are initially less than 2.5 distance units apart. Steepest-descent pathways are calculated by Runge-Kutta integration.

CONNECT | 30 |

PATH | 3 |

FIXD | 0.70 2.5 |

BFGSTS | 100 3 20 0.01 |

BFGSCONV | 0.000001 |

RKMIN | 0.00001 0.1 |

NOIT | |

PUSHOFF | 0.05 |

STEPS | 2000 |

POINTS | |

etc. |

The pathways can also be calculated using the Page-McIver second-order steepest-descent approach:

CONNECT | |

NEB | 100 5 0.02 |

PATH | 3 |

SEARCH | 6 |

MAXSTEP | 0.05 |

MAXMAX | 0.1 |

TRAD | 1.0 |

BFGSTS | 100 3 20 0.01 |

BFGSCONV | 0.000001 |

NOIT | |

PUSHOFF | 0.05 |

STEPS | 2000 |

POINTS | |

etc. |

A collection of example `odata` and the corresponding output files can be
found in the `newtests` directory.

David Wales 2017-09-25