The STEPPER module performs a search for critical points on the
potential energy surface of the molecule defined by input using the
GEOMETRY
directive (see Section 6). Since STEPPER
is not the primary geometry optimization module in NWChem the
compound directive is required; the DRIVER module is the default (see
Section 19). Input for this module is
specified within the compound directive,
STEPPER ... END
The presence of the STEPPER compound directive automatically turns off
the default geometry optimization tool driver. Input specified for the
STEPPER module must appear in the input file after the
GEOMETRY
directive, since it must know the number of atoms that
are to be used in the geometry optimization. In the current version
of NWChem, STEPPER can be used only with geometries that are defined
in Cartesian coordinates. STEPPER removes translational and
rotational components before determining the step direction (5
components for linear systems and 6 for others) using a standard
Eckart algorithm. The default initial guess nuclear Hessian is the
identity matrix.
The default in STEPPER is to minimize the energy as a function of the geometry with a maximum of 20 geometry optimization iterations. When this is the desired calculation, no input is required other than the STEPPER compound directive. However, the user also has the option of defining different tasks for the STEPPER module, and can vary the number of iterations and the convergence criteria from the default values. The input for these options is described in the following sections.
The default is for STEPPER to minimize the energy with respect to the geometry of the system. This default behavior may be forced with the directive
MIN
STEPPER can also be used to find the transition state by following the
lowest eigenvector of the nuclear Hessian. This is usually invoked
by using the saddle
keyword on the TASK
directive
(Section 5.10), but it may also be selected by specifying
the directive
TSin the STEPPER input.
STEPPER has the ability to ``track'' a specific mode during an optimization for a transition state search, the user can also have the module track the eigenvector corresponding to a specific mode. This is done by specifying the directive
TRACK [nmode <integer nmode default 1>]The keyword
TRACK
tells STEPPER to track the eigenvector
corresponding to the integer value of <nmode>
during a transition
state walk. (Note: this input is invalid for a minimization walk
since following a specific eigenvector will not necessarily give the
desired local minimum.) The step is constructed to go up in energy
along the nmode
eigenvector and down in all other degrees of
freedom.
In most applications, 20 stepper iterations will be sufficient to obtain the energy minimization. However, the user has the option of specifying the maximum number of iterations allowed, using the input line,
MAXITER <integer maxiter default 20>The value specified for the integer
<maxiter>
defines the maximum
number of geometry optimization steps. The geometry optimization will
restart automatically.
The size of steps that can be taken in STEPPER is controlled by the
trust radius which has a default value of 0.1. Steps are constrained
to be no larger than the trust radius. The user has the option of
overriding this default using the keyword TRUST
, with the
following input line,
TRUST <real radius default 0.1>
The larger the value specified for the variable radius
, the
larger the steps that can be taken by STEPPER. Experience has shown
that for larger systems (i.e., those with 20 or more atoms), a value
of 0.5, or greater, usually should be entered for <radius>
.
Three convergence criteria can be specified explicitly for the
STEPPER calculations. The keyword CONVGGM
allows the user to
specify the convergence tolerance for the largest component of the
gradient. This is the primary convergence criterion, as per the default
settings, although all three criteria are in effect. this default setting
is consistent with the other optimizer module DRIVER.
The input line for CONVGGM
has the following form,
CONVGGM <real convggm default 8.0d-04>The keyword
CONVGG
allows the user to
specify the convergence tolerance for the gradient norm for
all degrees of freedom. The input line is of the following form,
CONVGG <real convgg default 1.0d-02>The entry for the real variable
<convgg>
should be approximately
equal to the square root of the energy convergence tolerance.
The energy convergence tolerance is the convergence criterion for the energy difference in the geometry optimization in STEPPER. It can be specified by input using a line of the following form,
CONVGE <real convge default 1.0d-04>
name.stpr41
which will be used on all subsequent stepper runs and modified with
the current updated hessian. The default file prefix is the ``name''
that is used (c.f., 5.1). It also stores the information
for the last valid step in case the algorithm must take a ``backstep''
(c.f., 20.6). This file is the working data
store for all stepper-based optimizations. This file is never deleted
by default and is the first source of an initial hessian.
The second source of an inital hessian is an ascii file that contains
the lower triangular values of the initial hessian. This is stored in
file name.hess
, where ``name'' is again the default file
prefix. This is the second source of an initial hessian and
is the method used to incorporate an initial hessian from any other
source (e.g., another ab initio code, a molecular mechanics
code, etc.,). To get a decent starting hessian at a given point you
can use the task specification task scf hessian, with a smaller
basis set, which will by default generate the name.hess file.
Then you may define your basis set of choice and proceed with the
optimization you desire.20.1