The OPTIM program provides a wide variety of geometry optimisation tools for locating stationary points on potential energy surfaces and calculating reaction pathways.  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 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 H2O 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, 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.
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.