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 +1 or -1. If modus = -1 only the topology will be calculated.

nqeq

each nqeq cycle the partial charges will be calculated. If nqeq = 0, then the partial charges are calculated only in the first cycle, if the file ufftopology does 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 nxtnei12 in the file ufftopology) 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 $uff­to­pol­o­gy 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.