Next: Automatic determination of Kerker's Up: SCF convergence Previous: SCF convergence   Contents   Index

## General

Five charge mixing schemes in OpenMX Ver. 3.7 are available by the keyword 'scf.Mixing.Type':

• Simple mixing (Simple)

Relevant keywords: scf.Init.Mixing.Weight, scf.Min.Mixing.Weight, scf.Max.Mixing.Weight

• Residual minimization method in the direct inversion iterative subspace (RMM-DIIS) [40]

Relevant keywords: scf.Init.Mixing.Weight, scf.Min.Mixing.Weight, scf.Max.Mixing.Weight,
scf.Mixing.History, scf.Mixing.StartPulay

• Guaranteed reduction Pulay method (GR-Pulay) [39]

Relevant keywords: scf.Init.Mixing.Weight, scf.Min.Mixing.Weight, scf.Max.Mixing.Weight,
scf.Mixing.History, scf.Mixing.StartPulay

• Kerker mixing (Kerker) [41]

Relevant keywords: scf.Init.Mixing.Weight, scf.Min.Mixing.Weight, scf.Max.Mixing.Weight,
scf.Kerker.factor

• RMM-DIIS with Kerker metric (RMM-DIISK) [40]

Relevant keywords: scf.Init.Mixing.Weight, scf.Min.Mixing.Weight, scf.Max.Mixing.Weight,
scf.Mixing.History, scf.Mixing.StartPulay, scf.Mixing.EveryPulay, scf.Kerker.factor

In the first three schemes density matrices, which are regarded as a quantity in real space, are mixed to generate the input density matrix which can be easily converted into (spin) charge density. On the other hand, the charge mixing is made in Fourier space in the last two schemes. Generally, it is easier to achieve SCF convergence in large gap systems using any mixing scheme. However, it would be difficult to achieve a sufficient SCF convergence in smaller gap and metallic systems, since a charge sloshing problem in the SCF calculations becomes serious often. To handle such difficult systems, two mixing schemes are currently available: Kerker and RMM-DIISK methods. The two mixing schemes could be an effective way for achieving the SCF convergence of metallic systems. When 'Kerker' or 'RMM-DIISK' is used, the following prescriptions are helpful to obtain the convergence of SCF calculations:
• Increase of 'scf.Mixing.History'. A relatively larger vaule 30-50 may lead to the convergence. In addition, 'scf.Mixing.EveryPulay' should be set in 1.
• Use a rather larger value for 'scf.Mixing.StartPulay'. Before starting the Pulay-type mixing, achieve a convergence at some level. An appropriate value may be 10 to 30 for 'scf.Mixing.StartPulay'.
• Use a rather larger value for 'scf.ElectronicTemperature' in case of metallic systems. When 'scf.ElectronicTemperature' is small, numerical instabilities appear often.

In addition, the charge sloshing, which comes from charge components with long wave length, can be significantly suppressed by tuning Kerker's factor by the keyword 'scf.Kerker.factor', where Kerker's metric is defined by

where is the vector with the minimum magnitude except 0-vector. A larger significantly suppresses the charge sloshing, but leads to slower convergence. Since an optimum value depends on system, you may tune an appropriate value for your system.

Furthermore, the behavior of 'RMM-DIISK' can be controlled by the following keyword:

   scf.Mixing.EveryPulay    5   # default = 1


The residual vectors in the Pulay-type mixing schemes tend to become linearly dependent on each other as the mixing steps accumulate, and the linear dependence among the residual vectors makes the convergence difficult. A way of avoiding the linear dependence is to do the Pulay-type mixing occasionally during the Kerker mixing. With this prescription, you can specify the frequency using the keyword 'scf.Mixing.EveryPulay'. For example, in case of 'scf.Mixing.EveryPulay=5', the Pulay-mixing is made at every five SCF iterations, while the Kerker-type mixing is used at the other steps. 'scf.Mixing.EveryPulay=1' corresponds to the conventional Pulay-type mixing. It is noted that the keyword 'scf.Mixing.EveryPulay' is supported for only 'RMM-DIISK', and the default value is '1'.

The above prescription works in some cases. But the most recommended prescription to accelerate the convergence is the following:

• Increase of 'scf.Mixing.History'. A relatively larger vaule 30-50 may lead to the convergence. In addition, 'scf.Mixing.EveryPulay' should be set in 1.
Since the Pulay-type mixing such as RMM-DIIS and RMM-DIISK is based on a quasi Newton method, the convergence speed is governed by how a good approximate Hessian matrix can be found. As 'scf.Mixing.History' increases, the calculated Hessian may become more accurate.

In Fig. 6 a comparison of five mixing schemes is shown for the SCF convergence for (a) a sialic acid molecule, (b) a Pt cluster, and (c) a Pt cluster, where the norm of residual density matrix or charge density can be found as NormRD in the file '*.out' and the input files are 'SialicAcid.dat', 'Pt13.dat', and 'Pt63.dat' in the directory 'work'. We see that 'RMM-DIISK' works with robustness for all the systems shown in Fig. 6. In most cases, 'RMM-DIISK' will be the best choice, while the use of 'Kerker' is required with a large 'scf.Kerker.factor' and a small 'scf.Max.Mixing.Weight' for quite difficult cases in which the convergence is hardly obtained.

Next: Automatic determination of Kerker's Up: SCF convergence Previous: SCF convergence   Contents   Index
t-ozaki 2013-05-22