The SCF procedure is regulated with keys that set the maximum number of iterations, the convergence criterion, and various items that control the iterative update method. Molecules may display wildly different SCF-iteration behavior, ranging from easy and rapid convergence to troublesome oscillations. We expect that the default settings take care of most cases, but one should realize that this is a difficult and tricky subject. The user has a few (main) options to adapt the procedure to the situation at hand: simple damping or the DIIS procedure (Direct Inversion in the Iterative Subspace). Either of them can be combined with Level-Shifting.
At each cycle the density is computed as a summation of occupied orbitals (squared); the new density defines the new potential from which the orbitals are re-computed, et cetera, until convergence is reached. To speed-up convergence and to avoid non-convergent oscillatory behavior the values at the next iteration are constructed as a mixture of the computed new data and those used at the cycles before. This may involve only the previous cycle and is then called damping. Alternatively the DIIS procedure can be invoked, which is a generalization of damping to include more previous iterations.
Subkeys in the data block of the master key SCF control the aspects mentioned above. Each subkey is optional. Omission means the application of default values. Omission of the SCF key altogether implies defaults for all subkeys.
SCF
Iterations Niter
Converge SCFcnv { sconv2 }
mixing mix
diis {N=n} {OK=ok} {CX=cx} {CXX=cxx} {BFAC=bfac} {cyc=cyc}
lshift vshift {Err=shift_err} {Cyc=shift_cyc}
End
Niter
The maximum number of SCF cycles allowed. In case of Geometry Optimizations it applies separately to each of the SCF procedures that are executed. Default is 50 (in Create mode: 100). The program executes at least one cycle, even if you specify a non-positive number.
SCFcnv
The criterion to stop the SCF updates. The tested error is the commutator of the Fock matrix and the P-matrix (=density matrix in the representation of the basis functions) from which the F-matrix was obtained. This commutator is zero when absolute self-consistency is reached. Convergence is considered reached when the maximum element falls below SCFcnv and the norm of the matrix below 10*SCFcnv. The default is 1e-6 (in Create mode: 1e-8).
sconv2
A second criterion which plays a role a) during geometry optimizations and b) when the SCF
procedure has difficulty converging.
a) During an
optimization the SCF convergence
criterion is relaxed as long as the geometry has not yet converged. At the
start-up geometry, and at the final geometry, the normal criterion (SCFcnv) is applied, at intermediate cycles
the criterion is adjusted depending on how far the geometry has converged. sconv2 defines a minimum criterion: the
actual criterion in effect will not be less than sconv2.
b) When in
any SCF procedure the currently
applicable criterion does not seem to be achievable, the program stops the
SCF. When the secondary criterion (sconv2) has been met, only a warning is
issued and the program continues normally. If the secondary criterion was not
met either, the program terminates any further geometry optimizations,
frequency steps, etc. You can prevent the program from terminating in such a
case with the key ALLOW.
The default for sconv2 is
1e-3.
Mix
The relative weight of the new potential, as computed from the
occupied orbitals, to be mixed with the potential that was used in the
previous cycle, to define the potential for the next. Mixing is used only if,
and as long as, the DIIS procedure
(see below) is not operational. Default: 0.2.
For problematic systems that require strong damping, one should decrease the mix-parameter.
DIIS
The DIIS subkey specification(s) can be given to control
the DIIS procedure. Each of these
specifications is optional. Simple damping will be used during the first
few cycles, until the DIIS
procedure becomes operational. Two conditions must be satisfied for this: 1) at
least two iterations must have been done anyway (to build up sufficient
information for the DIIS to work
at all) and 2) the error must be small enough; see however the cyc option below.
There have been claims in the literature that the DIIS should not be used until fair convergence has been
reached. Our experience thus far does not indicate that this should be taken
too seriously, except in special situations. To allow the user complete
control, the start-up criteria can be set in input.
N
The number of expansion vectors used in the DIIS. The number of previous cycles
taken into the linear combination is then n-1 (the new computed potential is also
involved in the linear combination.
Default n=10.
An input value smaller than 2 disables the DIIS.
OK
The DIIS starting criterion. The DIIS procedure is not invoked until a) the maximum commutator element is smaller than OK (default: 0.5) or b) a certain number of SCF cycles has been executed.
Cyc
The SCF cycle no. at which the DIIS will start irrespective of the OK value above. Default: 5.
Cx
An upper bound on linear combination coefficients as applied in the DIIS. As soon as any coefficient exceeds cx, all information about older cycles but the last two is discarded and the DIIS starts again to accumulate info from the current cycle on. The computed linear combination, with the large coefficient(s), is used for the next iteration, however. Default=5.0
Cxx
A second upper bound on the coefficients (should in principle be bigger than cx). When a coefficient exceeds cxx, the computed linear combination is not used for the next cycle, but simple damping is applied.
Bfac
A factor to bias the DIIS combination vector in favor of the new computed potential. Default=0 (no bias). A sensible alternative value is 0.2
VShift
The level shifting parameter. The diagonal elements of the Fock matrix, in the representation of the orbitals of the previous iteration, are raised by vshift hartree energy units for the virtual orbitals. This may help to solve convergence problems when during the SCF iterations charge is sloshing back and forth between different orbitals that are close in energy and all located around the Fermi level. Level shifting is not supported in the case of Spin-Orbit coupling. At the moment properties that use virtuals, like excitation energies, response properties, NMR calculations, will give incorrect results if level shifting is applied.
Shift_err
Specifies that level shifting will be turned off by the program as soon as the SCF error drops below a threshold; default value: 0. (Note that the default value has changed in ADF2004.01, previous value: 1e-2).
Shift_cyc
Specifies that level shifting is not turned on before the given SCF cycle number (for the start-up geometry); default value: 1.
Note1: very strong damping, i.e. a very small value of mix such as 1e-3, may not combine very well with the DIIS procedure. The reason is that with strong damping successive SCF cycles tend to be very similar and the vectors building up the DIIS space become linearly dependent. We recommend in difficult cases either to use a not too strong damping (mix=0.03) or to use strong damping while the DIIS is disabled (by setting n=0 for the DIIS subkey) during a limited number of SCF iterations, and then restart with DIIS activated and less stringent damping.
Note2: Another feature, electron smearing, may be used to overcome convergence difficulties. The idea is to distribute electron occupations fractionally over a few states around the Fermi level, by a pseudo-thermal distribution function. This aspect is controlled with the Smear option to the Occupations key. One should be aware that the applied distribution of occupations is not really an approximation to the finite-temperature case. In fact, the results are unphysical and one should not use the results as a meaningful outcome. The smearing trick is only to be used to overcome convergence difficulties. Having reached convergence with it, one should typically do a follow-up restart calculation without smearing, using the converged outcomes to hopefully get the thing to converge properly. A typical 'allowed' application is the usage of smearing during geometry optimizations, because the intermediate geometries are not relevant anyway and only a step towards the final results. By default, the program does not apply any smearing unless during a geometry optimization. See the Occupations key for more details.




