 |
Ti2O4: troubleshooting SCF convergence
Sample directory: adf/SCF_Ti2O4/
One can run into SCF convergence problems when calculating certain types of systems.
Some of the notorious examples are transition metal oxides and lantanide compounds.
Below, three approaches to solving the SCF convergence problem are demonstrated.
NewDIIS keyword
The first approach is to try a new DIIS algorithm, which will probably become
default in a future version. The new algorithm is switched on by using the
keyword NewDIIS anywhere in the input file:
$ADFBIN/adf << eor
Title Ti2O4 SCF aid test (NewDIIS)
Atoms
Ti 1.730 0.000 0.000
Ti -1.730 0.000 0.000
O 0.000 1.224 0.000
O 0.000 -1.224 0.000
O 3.850 0.000 0.000
O -3.850 0.000 0.000
End
XC
GGA Becke Perdew
End
Basis
Type DZ
Core Small
End
SCF
Iterations 300
End
NewDIIS
End input
eor
Multi-step smearing
Second approach is an extension to the so-called "electron smearing" method.
In this method, the electrons are distributed among orbitals around Fermi-level
using a pseudo-thermal distribution function. Although the result with fractional
occupation number has no physical sense, the method can be used to achieve
integer occupation numbers by reducing the smearing parameter step-wise.
In the example above, replace the NewDIIS keyword with the following line of text:
Occupations Smear=0.2,0.1,0.07,0.05,0.03,0.02,0.01,0.007,0.005,0.001
A few notes:
- You can specify up to ten comma-delimited values after Smear= (no spaces are allowed).
ADF will start from the first value and try to converge SCF using it. If it succeeds,
the next value will be picked and so on.
- Because the whole process may require many cycles to converge it is important to set
the number of SCF cycles to a large value to avoid a premature termination.
Steepest descent method
The third example demonstrates the use of the Occupations Steep= option
(see the User's Guide for details).
There are two differences from the previous example shown below:
SCF
Iterations 300
Mixing 0.05
DIIS N=0
End
Occupations Steep=0.5,0.3
One difference is, obviously, in the Occupations keyword. The other
difference is more subtle. For stable convergence, it is often essential to switch off
DIIS and set the mixing parameter to a low value. Of course, it will make convergence quite
(sometimes very) slow. Ultimately you should get either an aufbau configuration or
a configuration with exactly degenerate HOMO. In this example, the result is an aufbau
solution.
Both methods should, in principle, give the same result, which is the case in this example.
|