25.2.7 Keywords for Module uff
One has to specify only the Cartesian coordinates (data group $coord) to start a uff run. The program uff requires the data groups $uff, $ufftopology, $uffgradient and $uffhessian. If these keywords do not exist in the control file the program will generate these data groups.
The data group $uff contains the parameters described below. The default values—in the control file—are:
1 1 0 ! maxcycle,modus,nqeq
111111 ! iterm
0.10D-07 0.10D-04 ! econv,gconv
0.00 1.10 ! qtot,dfac
0.10D+03 0.10D-04 0.30 ! epssteep,epssearch,dqmax
25 0.10 0.00 ! mxls,dhls,ahls
1.00 0.00 0.00 ! alpha,beta,gamma
F F F ! transform,lnumhess,lmd
The explanation of the variables are as follows:
maxcycle-
number of max. optimization cycles (
maxcycle=1: single-point calculation). modus-
can have the values
+1or-1. Ifmodus = -1only the topology will be calculated. nqeq-
each
nqeqcycle the partial charges will be calculated. Ifnqeq = 0, then the partial charges are calculated only in the first cycle, if the fileufftopologydoes not exist. iterm-
switch for the different types of force field terms:
100000-
bond terms will be calculated.
010000-
angle terms will be calculated.
001000-
torsion terms will be calculated.
000100-
inversion terms will be calculated.
000010-
non bonded van der Waals terms will be calculated.
000001-
non bonded electrostatic terms will be calculated.
econv,gconv-
convergence criteria for energy and gradient.
qtot-
total charge of the molecule.
dfac-
distance parameter to calculate the topology. If the distance between the atoms \(I\) and \(J\) is less than the sum of the covalent radii of the the atoms multiplied with
dfac, then there is a bond between \(I\) and \(J\). epssteep-
if the norm of the gradient is greater than
epssteep, a deepest-descent-step will be done. epssearch-
if the norm of the gradient is smaller than
epssearch, no line-search step will be done after the Newton step. dqmax-
max. displacement in a.u. for a coordinate in a relax step.
mxls,dhls,ahls-
parameters of linesearch:
ahls-
start value
dhls-
increment
mxls-
number of energy calculations
alpha,beta,gamma-
modification parameter for the eigenvalues of the Hessian (see below): \(f(x)=x*(\mathtt{alpha}+\mathtt{beta}*\exp(-\mathtt{gamma}*x))\).
transform-
a switch for the transformation in the principal axis system.
lnumhess-
a switch for the numerical Hessian.
lmd-
a switch for a MD calculation.
Input Data Blocks Needed by Uff
$coord-
cartesian coordinates of the atoms (default:
$coord file=coord) $ufftopology-
contains a list of the next neighbours of each atom (see Section 25.2.7). Sometimes it is useful to enter the connectivity (in the input block
nxtnei12in the fileufftopology) by hand (not always necessary; default:$ufftopology file=ufftopology).
Beyond this uff reads the force field parameters for the atoms from the file parms.in. If this file exists in the directory from which one starts an uff calculation the program will use this file, if not the program reads the data from the file $TURBODIR/uff/parms.in. If one wants own atom types, one has to add these atoms types in the file parms.in. For each new atom type one has to specify the natural bond distance, the natural bond angle, the natural non-bond distance, the well depth of the Lennard-Jones potential, the scaling factor \(\zeta\), the effective charge, torsional barriers invoking a pair of sp\(^3\) atoms, torsional barriers involving a pair of sp\(^2\) atoms, generalized Mulliken–Pauling electronegativities, the idem potentials, characteristic atomic size, lower bound of the partial charge, upper bound of the partial charge. Distances, energies and charges are in atomic units and angles are in rad.
Uff Output Data Blocks
$coord-
contains the (updated) Cartesian coordinates of the atoms (default:
$coord file=coord). $ufftopology-
contains the full information of the topology of the molecule and the whole force field terms (see below; default:
$ufftopology file=ufftopology). $uffgradient-
contains the accumulated Cartesian analytical gradients (default:
$uffgradient file=uffgradient). $uffhessian-
contains the Cartesian analytical Hessian;
(default:$uffhessian file=uffhessian0-0).
The file ufftopology
The topology file ufftopology contains the blocks nxtnei12, nxtenei13, nxtnei14, connectivity, angle, torsion, inversion, nonbond and qpartial. It starts with $ufftopology and ends with $end. The first three blocks (nxtnei12, nxtnei13, nxtnei14) have the same form: they start with the atom number and the number of its neighbours, in the next line are the numbers of the neighbour atoms. Then the connectivity-block follows starting with the number of bond terms. Each line contains one bond term: \[\begin{equation*}
I \qquad J \qquad \mbox{d} \qquad \mbox{BO}.
\end{equation*}\] Here are \(I\) and \(J\) the number of the atoms, d the distance in a.u. and BO is the bond order.
The angle terms follow, starting with the number of the angle terms. In each line is one angle term: \[\begin{equation*} J \qquad I \qquad K \qquad \mbox{wtyp} \qquad \theta \qquad nr_{JI} \qquad nr_{IK}. \end{equation*}\] Here are \(J, I\) and \(K\) the atoms number, where atom \(I\) is in the apex. “wtyp” is the angle type and has the following values:
- wtyp = 1
-
linear case
- wtyp = 2
-
trigonal planar case
- wtyp = 3
-
quadratic planar case
- wtyp = 6
-
octahedral case
- wtyp = 9
-
all other cases.
\(\theta\) is the angle value in degree. \(nr_{JI}\) and \(nr_{IK}\) are the number of the bonds between \(J\) and \(I\) and the bond between \(I\) and \(K\). The hybridization of atom \(I\) determines “wtyp”.
Then the torsion terms follow, starting with the number of the torsion terms. Each line contains one torsion term: \[\begin{equation*} I \qquad J \qquad K \qquad L \qquad nr_{JK} \qquad \mbox{ttyp} \qquad \phi \qquad \theta_{IJK} \qquad \theta_{JKL}. \end{equation*}\] Here are \(I, J, K\) and \(L\) the atom numbers. \(nr_{JK}\) is the number of the bond between \(J\) and \(K\). “ttyp” is the torsion type:
- ttyp = 1
-
\(J\) (sp\(^3\))–K (sp\(^3\))
- ttyp = 11
-
like ttyp=1, but one or both atoms are in Group 16
- ttyp = 2
-
\(J\) (sp\(^2\))–K (sp\(^3\)) or vice versa
- ttyp = 21
-
like ttyp=2, but one or both atoms are in Group 16
- ttyp = 22
-
like ttyp=2, but \(J\) or \(K\) is next a sp\(^2\) atom
- ttyp = 3
-
\(J\) (sp\(^2\))–K (sp\(^2\))
- ttyp = 9
-
all other cases.
\(\phi\) is the value of the torsion angle in degree. \(\theta_{IJK}\) is the angle value of (\(I-J-K\)) and \(\theta_{JKL}\) is the cwone for \(J-K-L\). The hybridizations of \(J\) and \(K\) determine “ttyp”.
The inversion terms follow starting with the number of inversion terms (e.g. the pyramidalisation of NH\(_3\)). In each line is one inversion term: \[\begin{equation*} I \qquad J \qquad K \qquad L \qquad \mbox{ityp1} \qquad \mbox{ityp2} \qquad \mbox{ityp3} \qquad \omega_1 \qquad \omega_2 \qquad \omega_3. \end{equation*}\] \(I, J, K\) and \(L\) are the atom numbers. Atom \(I\) is the central one. ityp1, ityp2, ityp3 are the types of the inversions:
- ityp = 10
-
atom \(I\) is C and atom \(L\) is O
- ityp = 11
-
like ityp=10, but \(L\) is any atom
- ityp = 2
-
\(I\) is P
- ityp = 3
-
\(I\) is As
- ityp = 4
-
\(I\) is Sb
- ityp = 5
-
\(I\) is Bi
- ityp = 9
-
all other cases.
\(\omega_1, \omega_2\) and \(\omega_3\) are the values of the inversion angles in degree.
The nonbond terms follow starting with the number of the non-bonded terms. In each line is one nonbond term: \[\begin{equation*} I \qquad J \qquad \mbox{d}\ . \end{equation*}\] Here \(I\) and \(J\) are the atom numbers, d the distance in a.u. Then the partial charges follow.
If the determination of the molecule connectivity failed, you can specify the block nxtnei12 in the file ufftopology. Then the program calculates the other blocks.
Based on the numbers of the next neighbours (block nxtnei12 in the file ufftopology) the program tries to determine the UFF type of an atom. The following rules are implemented: If the atom has three next neighbours and it is in the nitrogen group, then it has a hybridization three. If it is not in the nitrogen group, it has hybridization two. If the atom has four next neighbours and it is in the carbon group, it has hybridization three. If it is not in the carbon group, it becomes hybridization four. If the number of next neighbours is six, then it gets the hybridization six.
Since the smallest eigenvalues \(\lambda_i\) of the Hessian has the greatest influence on the convergence of the geometry optimization, one can shift these values with \[\begin{equation*} \tilde{\lambda}_i = \lambda_i \cdot \left( \alpha + \beta \cdot e^{-\gamma x} \right) \end{equation*}\] and calculates a new Hessian with these modified eigenvalues.