Introduction

The OPTIM program provides a wide variety of geometry optimisation tools for locating stationary points on potential energy surfaces and calculating reaction pathways. [1] The default build target for the Makefile is OPTIM, but other targets are possible, such as COPTIM, UNOPTIM, AMOPTIM, and AMB9OPTIM, which produce corresponding executables interfaced to the CHARMM,[2,3] UNRES, AMBER95[4] and AMBER 9 potentials, respectively. Separate directories containing libraries built from modified CHARMM, UNRES and AMBER 9 sources must be present to build the corresponding COPTIM, UNOPTIM and AMB9OPTIM executables.

The optimisation algorithms include eigenvector-following,
[5,6,7,8,9,10,11] steepest-descent
(Page-McIver second order; Bulirsch-Stoer, Runga-Kutta, or
Barzilai-Borwein-Raydan[12,13] for first order),
conjugate gradient and hybrids thereof.
Pathways can be calculated in several ways, and it is also possible to
use a `fictitious kinetic' metric,
usually referred to as `mass-weighted' coordinates.
There is provision to treat rigid body systems; the
TIP family of rigid molecule, effective pair potentials for H_{2}O are known to
the program and employ centre-of-mass and Euler angle coordinates.
A more efficient formulation is now available using the general angle-axis
representation.[14,15]
An older version of the eigenvector-following optimiser is present in the ORIENT3 program, which can treat
arbitrary mixtures of atoms and rigid molecules using distributed multipoles to
describe the electrostatic energy.[16,17] These optimisation algorithms can also be
very effective in solving fitting problems, especially if analytic derivatives
can be obtained.

The main new keywords that were introduced in
OPTIM.3.0 are *NEWCONNECT* and *NEWNEB*;
the *CONNECT* and *NEB* keywords remain available, but the new algorithms
are more effective. The *NEWNEB* keyword specifies a
doubly-nudged elastic band (DNEB) algorithm for double-ended searches,[18]
while *NEWCONNECT* provides a more sophisticated way to link local minima
that are likely to be connected by pathways involving a number of transition states.
The *GROWSTRING* and *EVOLVESTRING* keywords provide implementations of the
growing string and evolving string methods.[19,20]
A new framework has also been introduced for treating rigid bodies that interact
via isotropic site-site potentials using angle-axis coordinates.[14]

Also new from OPTIM.3.0 onwards is the ability to specify a file extension when OPTIM is invoked on the
command line. For example:
OPTIM.4.0 2 >&
will result in all other output files having the
extension `.2', e.g. `odata.new.2, points.final.2, output.2 ` etc.
In contrast to the use of the *FILTH* keyword, when OPTIM is invoked in this way
it will also assume that all input files carry the same extension, e.g. `odata.2, finish.2`.
The intention is to retire the *FILTH* keyword as soon as the Filthy_Phyllis program
has been rewritten appropriately. It will then be possible to use non-integer file extensions;
at the moment only integers between 1 and 999 can be handled.

The OPTIM program has analytic first and second energy derivatives coded for dozens of
empirical potentials and can also read derivatives from disc so that it can be run
iteratively in tandem with *ab initio* or other packages.
The only file that you need to start simple calculations is `odata`.
Each call to OPTIM performs one or more steps of various kinds.
The updated coordinates after every step are saved in order
in file `points`. The coordinates after the final step are also written to file
`points.final` and a new input file for OPTIM based upon this geometry is written
to `odata.new`. This file also contains the energy for the last step and
the point group (if it was evaluated) as *COMMENT* statements.