Example: TS search using partial Hessian: C2H6 internal rotation¶
#! /bin/sh
# Frequently when searching for a transition state, one needs an accurate second
# derivatives matrix, a Hessian. An exact Hessian may be obtained analytically
# but this may be very expensive for large molecules. In such cases it may be
# beneficial to calculate Hessian matrix elements only for atoms directly
# involved in the reaction for which a transition state is sought for. The rest
# of the Hessian can then be approximated using a cheaper method.
# In this example, a saddle point of the ethane internal rotation around C-C
# bond is found. In principle, only hydrogen atoms contribute to the normal mode
# we are interested in. Therefore we calculate a partial Hessian matrix
# including hydrogen atoms only. For this purpose, the AnalyticalFreq block key
# is used. In this block, a NUC keyword is added specifying that the second
# derivatives are calculated for atom 3 (and its symmetry-equivalents) only.
# Note that the Hessian matrix elements between symmetry-equivalent atoms, for
# example between 3,H and 4.H are also calculated. The rest of the matrix is
# estimated using the default method.
"$ADFBIN/adf" <<eor
TITLE Ethane transition state search using partial Hessian
ATOMS
1 C 0.000000000000 0.000000000000 0.767685465031
2 C 0.000000000000 0.000000000000 -0.767685465031
3 H 0.964354016767 0.347635559279 1.177128271450
4 H -0.181115782790 -1.008972856410 1.177128271450
5 H -0.783238233981 0.661337297125 1.177128271450
6 H -0.500471876676 0.894626767091 -1.177128271450
7 H -0.524533568868 -0.880734742626 -1.177128271450
8 H 1.025005445540 -0.013892024465 -1.177128271450
END
BASIS
type DZ
core Large
END
AnalyticalFreq
NUC 3
End
BeckeGrid
quality good
End
eor
rm TAPE13
mv TAPE21 ethane-frq.t21
# After the Hessian is calculated, the resulting TAPE21 file is used for a
# subsequent transition state search:
"$ADFBIN/adf" <<eor
TITLE Ethane transition state search using partial Hessian
ATOMS
1 C 0.000000000000 0.000000000000 0.767685465031
2 C 0.000000000000 0.000000000000 -0.767685465031
3 H 0.964354016767 0.347635559279 1.177128271450
4 H -0.181115782790 -1.008972856410 1.177128271450
5 H -0.783238233981 0.661337297125 1.177128271450
6 H -0.500471876676 0.894626767091 -1.177128271450
7 H -0.524533568868 -0.880734742626 -1.177128271450
8 H 1.025005445540 -0.013892024465 -1.177128271450
END
Fragments
H t21.H
C t21.C
END
GEOMETRY
transitionstate mode=1
iterations 30
step rad=0.15
hessupd BOFILL
converge e=1.0e-4 grad=1.0e-4 rad=1.0e-3
END
RESTART
File ethane-frq.t21
End
BeckeGrid
quality good
End
eor
# Important note: care should be taken to specify correct mode in the
# TransitionState keyword. Because a significant part of the Hessian will not be
# calculated exactly, it is possible that it will have more than one negative
# eigenvalue, in which case the one we are interested in may not be the first
# one. In such a case, one needs to specify the correct mode number in the
# TransitionState keyword.