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?



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

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
  • 2
    $\begingroup$ 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 $\endgroup$
    – wzkchem5
    Aug 13 at 6:30

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.

  • $\begingroup$ 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. $\endgroup$
    – Camps
    Aug 13 at 18:38
  • $\begingroup$ Have you tried even lower, perhaps very small weight and linear mixing? You are in a trial and error branch of convergence. $\endgroup$
    – zeroth
    Aug 16 at 6:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.