# How to make SCF converge in SIESTA?

I am trying to optimize some 4 atom Ni clusters. There are 4 types: one linear, one zigzag, one 2D and one 3D.

Using the setup below, I don't get the calculations to converge even after 1000 SCF steps (which is huge!).

I already play with DM.MixingWeight, SCF.Mixer.History, SCF.Mixer.Variant, SCF.Mixer.Kick, and nothing works.

The tolerance is not even high, it is only 1E-3.

The input is below.

Any ideas, suggestions?

Regards,

Camps

SystemName          NiM4-1Dlinear
SystemLabel         NiM4-1Dlinear

LatticeConstant             12.787740 Ang
%block LatticeVectors
1.394587   0.000000 0.000000
0.000000   1.394587 0.000000
0.000000   0.000000 1.000000
%endblock LatticeVectors

NumberOfSpecies        1
NumberOfAtoms          4

%block ChemicalSpeciesLabel
1  28  Ni
%endblock ChemicalSpeciesLabel

AtomicCoordinatesFormat Ang

%block AtomicCoordinatesAndAtomicSpecies
8.9168000      8.7888600      9.6866000     1
8.9168000      8.7888600      7.5067061     1
8.9168000      8.7888600      3.1011000     1
8.9168000      8.7888600      5.2809939     1
%endblock AtomicCoordinatesAndAtomicSpecies

-- SELF-CONSISTENT FIELD --
PAO.BasisSize     DZP
MD.TypeOfRun  CG
MD.NumCGsteps     1000
MinSCFIterations  3
MaxSCFIterations  1000
SpinPolarized     T
MeshCutoff        500 Ry
DM.MixingWeight   0.25
SCF.Mixer.History  6   # replace DM.NumberPulay
#SCF.Mixer.Variant  GR
SCF.Mixer.Kick 3
DM.Tolerance  0.001
XC.functional     GGA
XC.authors        PBE
SolutionMethod diagon

• These are very strongly correlated systems, so even if your SCF converges, I doubt if the results are meaningful. You may consider multireference calculations, for example with DMRG, selected CI or FCIQMC, plus a PT2 treatment of dynamic correlation, which should be affordable for this system Commented Aug 13, 2021 at 6:30
• your problem will solve may be if you add the following tag in your fdf MD.VariableCell true and DM.NumberPulay 4 Commented Aug 30, 2022 at 4:47

A mixing weight of 0.25 is pretty high, if not excessively high in this case.

Did you try, say 0.02, or something like that?

Also, kicks are only necessary when you have problems with stalls in convergence. If you stall after 50 SCF, you should have a kick at that point, but definitely not at every 3rd SCF, that may worsen your convergence.

Generally one should try first without kicks, or at least a rather high kick value (50-100). As mentioned above kicks are for stalls in the SCF cycle.

The mixing weight is more flexible, a too low value will make it converge slower but is more likely to converge in the end. A higher value can make it converge faster but will be more likely to diverge in the SCF cycle.

The variant GR (guaranteed reduction) should in principle be better, but this has some of the downsides that also applies to "kicks". It may be good for the system or not, again, this is very dependent on the mixing weight.

Generally it is very difficult to provide good defaults for all systems as it depends.

• Yes, I tried with 0.02. Till now, the only thing that help to get convergence was to change the basis set to SZP, but, as this calculation is part of a bigger one (binding energy between the cluster an a nanotube) I don't think that making two calculations with different basis set is ok.
– Camps
Commented Aug 13, 2021 at 18:38
• Have you tried even lower, perhaps very small weight and linear mixing? You are in a trial and error branch of convergence. Commented Aug 16, 2021 at 6:21