Geometry Optimizations in ADF is based on a quasi Newton approach [6-8], using the Hessian for computing changes in the geometry so as to make the gradients vanish. The Hessian itself is initialized (for instance based on a force field) and updated in the process of optimization.
Several subkeys in the geometry block can be used for control of the Geometry Optimization procedure and related strategy parameters.
GEOMETRY
Optim {Cartesian / Internal / Delocal} {All / Selected}
Branch {Old / New}
Iterations Niter {Niter2}
Hessupd HessUpdate
Converge {E=TolE} {Grad=tolG} {Rad=TolR} {Angle=tolA}
Step {Rad=MaxRadStep} {Angle=MaxAngleStep} {TrustRadius=MaxRadius}
DIIS {N=NVect} {CYC=Ncyc}
End
Optim
Cartesian / Internal
Cartesian or Zmatrix (equivalently: internal) specifies the type of coordinates in which the minimization is carried out. By default the coordinate type is applied that was used in the ATOMS key for the input of the (initial) atomic positions. (Cartesian if atoms were input in zcart format).
Cartesian optimization is allowed if the atoms were input in Z-matrix format, but no constraints (see the key GEOVAR) can then be used: all coordinates are optimized. An attempt to explicitly freeze variables may result in an error abort. Optimization in Z-matrix coordinates is not allowed if only Cartesian coordinates were supplied in atoms: the program does not construct a Z-matrix by itself. One should then use the zcart format: give Cartesian coordinates and supply the structure of the Z-matrix. Again, in this case you cannot use constraints.
Delocal
Optimization in delocalized coordinates (Delocal) can only be used in geometry optimizations or transition state searches. Starting from ADF2007 with delocalized coordinates you can use constraints (see also NEWCONSTRAINTS key) and restraints, and you can supply the atoms in Z-matrix coordinates. You can not set the initial hessian, and you can not use dummy atoms, ghost atoms, or alternative elements. Starting from ADF2007 the adapted delocalized coordinates are used as described in Ref. [225].
Selected
Only those coordinates are optimized that are defined with the key GEOVAR.
All
(The default value) means that in principle all atomic coordinates will be varied. The key GEOVAR may modify this in the sense that some of the coordinates can be kept frozen or can be forced to remain equal to some other coordinates.
Branch
Old / New
Expert option. Specifies which branch of the code to use for making steps. Default the branch of code used depends on the optimization used. Optimization in delocalized coordinates can only be done with the new branch. Optimization in Z-matrix coordinates can only be done with the old branch. In case of Cartesian optimization default the old branch is used, but the new branch can also be used. The new branch can only be used in geometry optimizations and transition state searches, not in LT, IRC, and NEB.
Iterations
Niter
The maximum number of geometry iterations allowed to locate the desired
structure. The default is 30.
This is a fairly large number. If the geometry has not converged (at least to a
reasonable extent) within that many iterations you should sit down and
consider the underlying cause rather than simply increase the allowed number of
cycles and try again.
Niter2
An optional second parameter that plays only a role in a LinearTransit run, see the LT section. It must not be used in other runtypes.
Hessupd
HessUpdate
Specifies how the Hessian matrix is updated, using the gradient
values of the current and the previous geometry.
The methods available depend on the optimization branch being used.
For both the old and new branches, the following options are available:
(i) BFGS : Broyden-Fletcher-Goldfarb-Shanno
(ii) MS : Murtagh-Sargent
(iii) FARKAS : Farkas-Schlegel, Eq. (15) and (16) of Ref.
[139]
(iv) FARKAS-BOFILL : Farkas-Schlegel-Bofill, Eq. (15) and (14) of Ref.
[139]
In the old branch, the following extra options are available:
(i) DFP : Davidon-Fletcher-Powell
(ii) FS : Fletcher switch
(iii) HOSHINO : Hoshino
In the new branch, the following extra option is available:
(i) BAKKEN-HELGAKER: Bakken-Helgaker, see Ref.
[219]
The default is BFGS for geometry optimizations.
Converge
Convergence is monitored for three items: the energy, the
Cartesian gradients and the estimated uncertainty in the (chosen type of
optimization) coordinates. For the latter, lengths (Cartesian coordinates,
bond-lengths) and angles (bond-, dihedral-) are considered separately.
Convergence criteria can be specified separately for each of these items:
TolE
The criterion for changes in the energy, in Hartrees. Default: 1e-3.
TolG
Applies to gradients, in Hartree/angstrom. Default: 1e-2.
TolR
Refers to changes in the Cartesian coordinates or bond lengths, depending on in what coordinates you optimize, in angstrom. Default: 1e-2.
TolA
Refers to changes in bond- and dihedral angles, in degrees. This
is only meaningful if optimization takes place in Z-matrix coordinates.
Default: 0.5 degree.
If only a numerical value is supplied as argument for converge, rather than a
specification by name, it is considered to apply to the gradients (only). The
other aspects (energy and coordinates) retain their default settings then.
Remarks:
1. Molecules may differ very much in the stiffness around the energy minimum. Application of standard convergence thresholds without second thought is therefore not recommended. Strict criteria may require a large number of steps, a loose threshold may yield geometries that are far from the minimum as regards atom-atom distances, bond-angles etc. even when the total energy of the molecule might be very close to the value at the minimum. It is good practice to consider first what the objectives of the calculation are. The default settings in ADF are intended to be reasonable for most applications but inevitably situations may arise where they are inadequate.
2. The numerical integration precision parameter accint (see the key INTEGRATION)
should match the required level of convergence in gradients. Gradients are computed
as a combination of various integrals that are evaluated by numerical integration
in ADF. The integral values have a limited precision: roughly speaking the accint value is the number of decimal digits
in the value of the integrals that are correct. As soon as the gradients, which
are supposedly zero at the exact energy minimum, are of the order or 10**(-accint) they will, in worst cases,
become arbitrary and any attempt to continue convergence may not really
improve things. You may even find that, due to the numerical-integration noise,
the geometries start moving around in a random fashion, while the gradients
vary more or less arbitrarily. As a general rule: set the integration value
higher (by at least 1.0) than the
convergence level required for the gradients. Example: if gradients are to
be converged to 1e-3, set integration 4.5 (implying: higher by 1.5 than
the gradients convergence level).
3. The convergence threshold for the coordinates (TolL, TolA) is not a reliable
measure for the precision of the final coordinates. Usually it yields a reasonable
estimate (order of magnitude), but to get accurate results one should tighten
the criterion on the gradients, rather than on the steps (coordinates). The
reason for this is that the program-estimated uncertainty in the coordinates is
related to the used Hessian, which is updated during the optimization.
Quite often it stays rather far from an accurate representation of the true
Hessian. This does usually not prevent the program from converging nicely,
but it does imply a possibly incorrect calculation of the uncertainty in the
coordinates.
Step
Controls that changes in geometry from one cycle to another are not too large:
MaxRadStep
Can only be used in combination with the old branch. An upper bound on changes in Cartesian coordinates or bond lengths, as the case may be. Default: 0.3 angstrom when optimization is carried out in internal coordinates, 0.15 angstrom for Cartesian optimizations.
MaxAngleStep
Can only be used in combination with the old branch.
Similarly this option limits changes in bond angles and dihedral
angles. Default: 10 degrees.
Input for MaxRadStep, MaxAngleStep is
in angstrom and degrees respectively, independently of the units used for
atomic coordinates input.
Note: Optimization of ring structures carried out in internal (z-matrix) coordinates is sometimes tricky due to the ill-defined last segment of the ring. When problems arise, try Cartesian optimization or consider using smaller limits on the steps (in particular the angles) so as to prevent the program from breaking the ring beyond repair.
MaxRadius
Can only be used in combination with the new branch. By default, the trust radius is set to 0.2. Using the key, the user can override this, setting a constant value. A conservative value is 0.2. A large system (eg 100 atoms) typically needs a larger trust radius (eg 0.8).
DIIS N=NVect CYC=Ncyc
Can only be used in combination with the new branch. NVect is the number of vectors used by the DIIS interpolation method. NCYC is the number of geometry cycles run before the DIIS starts to modify the geometry steps. Default DIIS is used and default N=5 and CYC=0.




