$STATPT group (for RUNTYP=OPTIMIZE or SADPOINT)
This group controls the search for stationary points.
Note that NZVAR in $CONTRL determines if the geometry
search is conducted in Cartesian or internal coordinates.
METHOD = optimization algorithm selection. Pick from
NR Straight Newton-Raphson iterate. This will
attempt to locate the nearest stationary
point, which may be of any order. There
is no steplength control. RUNTYP can be
either OPTIMIZE or SADPOINT
RFO Rational Function Optimization. This is
one of the augmented Hessian techniques
where the shift parameter(s) is(are) chosen
by a rational function approximation to
the PES. For SADPOINT searches it involves
two shift parameters. If the calculated
stepsize is larger than DXMAX the step is
simply scaled down to size.
QA Quadratic Approximation. This is another
version of an augmented Hessian technique
where the shift parameter is chosen such
that the steplength is equal to DXMAX.
It is completely equivalent to the TRIM
method. (default)
SCHLEGEL The quasi-NR optimizer by Schlegel.
CONOPT, CONstrained OPTimization. An algorithm
which can be used for locating TSs.
The starting geometry MUST be a minimum!
The algorithm tries to push the geometry
uphill along a chosen Hessian mode (IFOLOW)
by a series of optimizations on hyperspheres
of increasingly larger radii.
Note that there currently are no restart
capabilitites for this method, not even
manually.
OPTTOL = gradient convergence tolerance, in Hartree/Bohr.
Convergence of a geometry search requires the
largest component of the gradient to be less
than OPTTOL, and the root mean square gradient
less than 1/3 of OPTTOL. (default=0.0001)
NSTEP = maximum number of steps to take. Restart data
is punched if NSTEP is exceeded. The default is
50 steps for a minimum search, but only 20 for
a transition state search, which benefit from
relatively frequent Hessian re-evaluations.
KDIAGH = eigenvalue solver for the Hessian matrix.
Possible choices are listed in $SYSTEM.
The default is 2 for FMO or DC, and -1 otherwise
(-1 means use KDIAG from $SYSTEM).
--- the next four control the step size ---
DXMAX = initial trust radius of the step, in Bohr.
For METHOD=RFO, QA, or SCHLEGEL, steps will
be scaled down to this value, if necessary.
(default=0.3 for OPTIMIZE and 0.2 for SADPOINT)
For METHOD=NR, DXMAX is inoperative.
For METHOD=CONOPT, DXMAX is the step along the
previous two points to increment the hypersphere
radius between constrained optimizations.
(default=0.1)
the next three apply only to METHOD=RFO or QA:
TRUPD = a flag to allow the trust radius to change as
the geometry search proceeds. (default=.TRUE.)
TRMAX = maximum permissible value of the trust radius.
(default=0.5 for OPTIMIZE and 0.3 for SADPOINT)
TRMIN = minimum permissible value of the trust radius.
(default=0.05)
--- the next three control mode following ---
IFOLOW = Mode selection switch, for RUNTYP=SADPOINT.
For METHOD=RFO or QA, the mode along which the
energy is maximized, other modes are minimized.
Usually referred to as "eigenvector following".
For METHOD=SCHLEGEL, the mode whose eigenvalue
is (or will be made) negative. All other
curvatures will be made positive.
For METHOD=CONOPT, the mode along which the
geometry is initially perturbed from the minima.
(default is 1)
In Cartesian coordinates, this variable doesn't
count the six translation and rotation degrees.
Note that the "modes" aren't from mass-weighting.
STPT = flag to indicate whether the initial geometry
is considered a stationary point. If .true.
the initial geometry will be perturbed by
a step along the IFOLOW normal mode with
stepsize STSTEP. (default=.false.)
The positive direction is taken as the one where
the largest component of the Hessian mode is
positive. If there are more than one largest
component (symmetry), the first is taken as
positive.
Note that STPT=.TRUE. has little meaning with
HESS=GUESS as there will be many degenerate
eigenvalues.
STSTEP = Stepsize for jumping off a stationary point.
Using values of 0.05 or more may work better.
(default=0.01)
IFREEZ = array of coordinates to freeze. These may be
internal or Cartesian coordinates. For example,
IFREEZ(1)=1,3 freezes the two bond lengths in
the $ZMAT example, which was for a triatomic
$CONTRL NZVAR=3 $END
$ZMAT IZMAT(1)=1,1,2, 2,1,2,3, 1,2,3 $END
while optimizing the angle.
If NZVAR=0, so that this value applies to the
Cartesian coordinates instead, the input of
IFREEZ(1)=4,8 means to freeze the x coordinate
of the 2nd and y coordinate of the 3rd atom.
See also IFZMAT and FVALUE in $ZMAT, and IFCART
below, as IFREEZ does not apply to DLC internals.
In a numerical Hessian run, IFREEZ specifies
Cartesian displacements to be skipped for a
Partial Hessian Analysis. IFREEZ can pertain to
EFP particles, but only during RUNTYP=HESSIAN,
where the 6 translational and rotational degrees
of freedom of each EFP come AFTER the QM atom
coordinates. For more information:
J.D.Head, Int.J.Quantum Chem. 65, 827, 1997
H.Li, J.H.Jensen
Theoret. Chem. Acc. 107, 211-219(2002)
IFCART = array of Cartesian coordinates to freeze during
a geometry optimization using delocalized internal
coordinates. This probably works less well than
IFREEZ when it freezes Cartesians. Only one of
IFREEZ or IFCART may be chosen in a single run.
IACTAT = array of "active atoms", which is a complimentary
input to IFREEZ. Any atom *not* included in the
list has its Cartesian coordinates frozen. Thus
IACTAT(1)=3,-5,107,144,202,-211 allows 15 atoms,
namely 3-5, 107, 144, and 202-211 to be optimized,
while all other atoms are frozen. NZVAR in
$CONTRL must be 0 when this option is chosen.
IFREEZ and IACTAT are mutually exclusive. The latter acts
by generating a IFREEZ for all atom coordinates not defined
as "active", so users can input whichever list is shorter.
--- The next two control the hessian matrix quality ---
HESS = selects the initial hessian matrix.
= GUESS chooses an initial guess for the hessian.
(default for RUNTYP=OPTIMIZE)
= READ causes the hessian to be read from a $HESS
group. (default for RUNTYP=SADPOINT)
= RDAB reads only the ab initio part of the
hessian, and approximates the effective
fragment blocks.
= RDALL reads the full hessian, then converts
any fragment blocks to 6x6 T+R shape.
(this option is seldom used).
= CALC compute the hessian, see $FORCE input.
IHREP = the number of steps before the hessian is
recomputed. If given as 0, the hessian will
be computed only at the initial geometry if
you choose HESS=CALC, and never again. If
nonzero, the hessian is recalculated every
IHREP steps, with the update formula used on
other steps. (default=0)
HSSEND = a flag to control automatic hessian evaluation
at the end of a successful geometry search.
(default=.FALSE.)
--- the next two control the amount of output ---
Let 0 mean the initial geometry, L mean the last
geometry, and all mean every geometry.
Let INTR mean the internuclear distance matrix.
Let HESS mean the approximation to the hessian.
Note that a directly calculated hessian matrix
will always be punched, NPUN refers only to the
updated hessians used by the quasi-Newton step.
NPRT = 1 Print INTR at all, orbitals at all
0 Print INTR at all, orbitals at 0+L (default)
-1 Print INTR at all, orbitals never
-2 Print INTR at 0+L, orbitals never
NPUN = 3 Punch all orbitals and HESS at all
2 Punch all orbitals at all
1 same as 0, plus punch HESS at all
0 Punch all orbitals at 0+L, otherwise only
occupied orbitals (default)
-1 Punch occ orbitals at 0+L only
-2 Never punch orbitals
---- the next parameters control harmonic constraints ---
Harmonic constraints can be added to the current geometry
by setting ALL the keywords below. For instance, to
harmonically constrain the distance between atom 3 and 12
to a distance of 2.0 Angstrom and a force constant of 500
kcal/mol, the following example can be used:
IHMCON(1)=1,3,12 SHMCON(1)=2.0 FHMCON(1)=500.0
The default is all zeros which means do not do this.
IHMCON = array of coordinates to constrain. The input
is similar to IZMAT in $ZMAT, a code integer,
and the atoms involved in the coordinate.
The allowed codes are: 1 (stretches), 2 (angles),
and 3 (dihedrals)
SHMCON = equilibrium constraint values for the distances
specified by IHMCON, given in Angstrom (bond
stretches) or degrees (for angles and dihedrals)
FHMCON = array of force constants for the distances
specified by IHMCON, given in kcal/mol.
---- the following parameters are quite specialized ----
PURIFY = a flag to help eliminate the rotational and
translational degrees of freedom from the
initial hessian (and possibly initial gradient).
This is much like the variable of the same name
in $FORCE, and will be relevant only if internal
coordinates are in use. (default=.FALSE.)
PROJCT = a flag to eliminate translation and rotational
degrees of freedom from Cartesian optimizations.
The default is .TRUE. since this normally will
reduce the number of steps, except that this
variable is set false when POSITION=FIXED is
used during EFP runs.
ITBMAT = number of micro-iterations used to compute the
step in Cartesians which corresponds to the
desired step in internals. The default is 5.
UPHESS = SKIP do not update Hessian (not recommended)
BFGS default for OPTIMIZE using RFO or QA
POWELL default for OPTIMIZE using NR or CONOPT
POWELL default for SADPOINT
MSP mixed Murtagh-Sargent/Powell update
SCHLEGEL only choice for METHOD=SCHLEGEL
---- NNEG, RMIN, RMAX, RLIM apply only to SCHLEGEL ----
NNEG = The number of negative eigenvalues the force
constant matrix should have. If necessary the
smallest eigenvalues will be reversed. The
default is 0 for RUNTYP=OPTIMIZE, and 1 for
RUNTYP=SADPOINT.
RMIN = Minimum distance threshold. Points whose root
mean square distance from the current point is
less than RMIN are discarded. (default=0.0015)
RMAX = Maximum distance threshold. Points whose root
mean square distance from the current point is
greater than RMAX are discarded. (default=0.1)
RLIM = Linear dependence threshold. Vectors from the
current point to the previous points must not
be colinear. (default=0.07)
* * * * * * * * * * * * * * * * * * * * *
See the 'further information' section for
some help with OPTIMIZE and SADPOINT runs
* * * * * * * * * * * * * * * * * * * * *
288 lines are written.
Edited by Shiro KOSEKI on Tue May 17 15:19:38 2022.