Opt

Introduction

The opt command performs an internal ( i.e. z-matrix ) co-ordinate optimisation.

This script saddleinvokes the opt script twice, one to numerically evaluate the hessian, and once to search for the transitions state. All arguments are passed to opt.

Command Line Arguments

Argument Argument type Mandatory Default To specify
zmatrix= Zmatrix tag Yes - geometry and optimisation variables
theory= Energy/Gradient code yes - what type of calculation to perform for energy and gradient
initial_hessian= Matrix tag No None initial internal coordinate hessian
final_hessian= Matrix tag No opt.hout final internal coordinate hessian
varkey= Tcl List of integers no all control integers for numerical hessian evaluation
result= file no opt.pun where to place optimisation history and final structure
zout= Zmatrix tag no opt.zout resultant optimised zmatrix
history= file no none history file (from result= option of a previous incomplete run)
mode= keyword no opt optimisation mode, can be one of: ts (saddle point), opt (minimisation) force (numeric force constants)
maxlin integer no 200 the maximum number of line searches allowed
maxstep integer no 200 the maximum number of energy evaluations allowed
gdiis= integer no 0 use GDIIS , specify the number of line searches before GDIIS
list_option= keyword no full set to full, quiet, verbose, or debug

The zmatrix argument specifies a zmatrix definition file, all parameters specified as variables within this file will be optimised.

The result argument specifies a file to contain the history and result of the optimisation. It may be used in subsequent restarts. It also contains the internal coordinate hessian in the case where mode=force is specified.

The initial_hessian argument specifies a file containing an initial internal coordinate hessian. The internal hessian matrix at the end of the calculations is saved if the final_hessian argument is specified.

The mode argument specifies the type of run. It should be ommitted for an optimisation (using the BFGS algorithm), set to ts for a transition state search, and set to force for a numerical internal coordinate second derivative evaluation. The transition state mode should usually be preceeded by a mode=force calculation, as implemented by the saddle routine (below).

The history argument forces a restart optimisation, and specifies the file containing the optimisation history. This will have been generated in a previous run, in the file specified by result= argument.

The maxlin argument specifies the maximum number of line searches allowed in the optimisation. The optimiser will terminate with a return code 4 if this limit is exceeded. The final hessian and z-matrix will be output as if the optimisation had converged. There is also a second limit (maxstep) that controls the number of steps (energy evaluations) that are performed. Should this limit be reached ChemShell (not just the optimiser) will abort, and no final z-matrix and hessian generated. It is recommended that the maxlin argument is used to terminate the optimisation if required.

The varkey argument may be used when the numerical evaluation of some, but not all, hessian elements is required. This may occur, for example, in the optimisation of a transition state of a system with many degrees of freedom. If the reaction coordinate is known to be well represented by a small number of the optimisation variables, numerical calculation of the remaining hessian elements may be omitted. A Tcl list containing one integer for each variable must be supplied. Use a value of 0 to denote that no attempt to compute the hessian is required, and a value of 3 to denote that a gradient calculation should be performed to estimate diagonal and off-diagonal hessian elements. ( The integer is the same as the TYPE keyword that may be used for the GAMESS-UK Z-matrix variables).

The gdiis argument specifies that the geometrical DIIS proceedure be used, the integer value provided will specify the number of line searches (or Miller steps in the case of a transition-state optimisation) that will be performed before GDIIS is started. This option is not fully tested, but does work for simple test cases.

Any arguments required for the codes used to generate the energy and gradients for opt must be passed through to those codes using the colon (:) notation. E.g. for a geometry optimisation using GAMESS-UK with a dzp basis set (for further details of GAMESS-UK options vide infra).

opt zmatrix=z theory=gamess:basis=dzp result=res.pun

Valid settings for theory in the current version are gamess (for GAMESS-UK HF-SCF calculation), mopac, mm, and hybrid.

Transition State Optimisations

It is not intended in this section to describe fully the procedures for transition state optimisation, but simple to give a few examples illustrating the way ChemShell functionality may be employed. We will illustrate the functionality with a simple search for the inversion TS of ammonia.

Numerically Evaluated Hessian

Here, the varkey= argument indicates that only the hessian elements associated with the second z-matrix variable (xnh) are to be estimated by finite-difference.

#
# mopac transition state for NH3 inversion
#
z_create zmatrix=z {
zmatrix angstrom
n
x  n 1.0
h1 n nh x xnh
h2 n nh x xnh  h1 120.
h3 n nh x xnh  h1 240.
variables
nh  1.0
xnh 75.0
end
}
#
set t { theory=mopac : listing=mopac.out }
opt $t mode=force \
       zmatrix=z \
       varkey= { 0 3 } \
       final_hessian=h
#
opt $t mode=ts \
       zmatrix=z \
       initial_hessian=h
#

Guessed or Known Hessian

Where a good initial hessian is known, it may be input explicitly using the command to create a matrix as follows. Here we assume the hessian matrix has the form

      1.0  0.0
      0.0 -1.0

(which in this case has the correct structure).

#
# mopac transition state for NH3 inversion
# guessed hessian
#
z_create zmatrix=z {
zmatrix angstrom
n
x  n 1.0
h1 n nh x xnh
h2 n nh x xnh  h1 120.
h3 n nh x xnh  h1 240.
variables
nh  1.0
xnh 75.0
end
}
# 
create_matrix matrix=myhess \
              name= "initial hessian" \
              dimensions= { 2 2 } \
              datatype=real \
              { 1 0 0 -1 }
# 
opt mode=ts \
  initial_hessian=myhess \
  final_hessian=hout \
  zmatrix=z \
  theory=mopac : listing=mopac.out
#


Bugs and Problems

  • Jorgensen-Simons optimisation (algorithm=js and js-rfo) are not documented.

      
      
      
      

This manual was generated using htp, an HTML pre-processor Powered by htp