Startseite |
The Hessian
Although quasi-Newton methods require only an approximation to the true hessian,
the choice of this matrix has a great affect on convergence of the geometry
search.
There is a procedure contained within GAMESS for guessing a diagonal, positive
definite hessian matrix, HESS=GUESS.
If you are using Cartesian coordinates, the guess hessian is 1/3 times the unit
matrix. The guess is more sophisticated when internal coordinates are defined,
as empirical rules will be used to estimate stretching and bending force
constants. Other force constants are set to 1/4. The diagonal guess often works
well for minima, but cannot possibly
find transition states (because it is positive definite). Therefore, GUESS may
not be selected for SADPOINT runs.
Two options for providing a more accurate hessian are
HESS=READ and CALC. For the latter, the true hessian is obtained by
direct calculation at the initial geometry, and then the geometry search begins,
all in one run. The READ option allows you to feed in the hessian in a
$HESS group, as obtained by a RUNTYP=HESSIAN job. The second
procedure is actually preferable, as you get a chance to see the frequencies.
Then, if the local curvatures look good, you can commit to the geometry search.
Be sure to include a $GRAD group (if the exact gradient is
available) in
the HESS=READ job so that GAMESS can take its first step immediately.
Note also that you can compute the hessian at a lower basis set and/or
wavefunction level, and read it into a higher level geometry search. In fact,
the $HESS group could be obtained at the semiempirical level.
This trick works because the hessian is 3Nx3N for N atoms, no matter what atomic
basis is used. The gradient from the lower level is of course worthless, as the
geometry search must work with the exact gradient of the wavefunction and basis
set in currentuse. Discard the $GRAD group from the lower level calculation!
You often get what you pay for. HESS=GUESS is free, but may lead to
significantly more steps in the geometry search. The other two options are more
expensive at the beginning, but may pay back by rapid convergence to the
stationary point.
The hessian update frequently improves the hessian for a few steps (especially
for HESS=GUESS), but then breaks down. The symptoms are a nice lowering of the
energy or the RMS gradient for maybe 10 steps, followed by crazy steps. You can
help by putting the best coordinates into $DATA, and resubmitting, to make a
fresh determination of the hessian.
The default hessian update for OPTIMIZE runs is BFGS, which is likely to remain
positive definite. The POWELL update is the default for SADPOINT runs, since the
hessian can develop a negative curvature as the search progresses. The POWELL
update is also used by the METHOD=NR and CONOPT since the Hessian may have any
number of negative eigenvalues in these cases. The MSP update is a mixture of
Murtagh-Sargent and Powell, suggested by Josep Bofill, (J.Comput.Chem., 15,
1-11, 1994 ). It sometimes works slightly better than Powell,
so you may want to try it.
---------------------------------
HESSIAN MATRIX CONTROL PARAMETERS
---------------------------------
METHOD=NUMERIC NVIB = 1 VIBSIZ= 0.01000
RDHESS= F PURIFY= F PRTIFC= F
VIBANL= T DECOMP= F PROJCT= F
SCLFAC= 1.00000 PRTSCN= F NPRT = 0
PULCOR= F NPUN = 0 REDOVB= T
RUNTYP=HESSIAN
funktioniert auch für CI, aber nur für SCFTYP=RHF. Ohne CI funktioniert ROHF!
Die $HESS group wird bei einer Geometrieoptimierung im Punch-File erzeugt.
Seitenanfang | Beispiel |