WIEN2k-FAQ: The SCF cycle fails after a few iterations

©2001 by P. Blaha, K. Schwarz and J. Luitz

Back to:

In cases with larger unitcells and various atoms with more or less localized electronic states it can happen, that the scf cycle fails in the second (or after a few more) iteration. Possible error messages include:
  1. QTL-B value .gt. XXX in LAPW2
  2. Could not find E-TOP/E-Bottom in LAPW1
Usually in such cases the mixing factor in MIXER was too large and too large charge fluctuations occured (You may see this using 'grep :DIS case.scf' or 'grep :NTOxx case.scf'). In such a case
  1. remove the broyden and the scf files (rm *.broy* case.scf)
  2. generate a new starting density (x dstart (-up/-dn)).
  3. For a spin-polarized case consider to modify case.inst (or use instgen -ask) and provide a better guess for the final spinpolarization (eg. set elements like Oxygen as "non-magnetic", modify the total spin of an atom in case.inst (see UG, lstart) to better match the expected value in the solid). Then rerun x lstart and x dstart /-up/-dn (3 times).
  4. or reduce the mixing parameter from 0.2 to e.g. 0.1 in case.inm (sometimes even 0.01 and a change to PRATT-mixing for some iterations may be necessary. Note: final convergence should always be reached using MSEC1-mixing)
  5. and restart the scf cycle (run_lapw or runsp_lapw).

Another possibility is that an APW-E-parameter (eg 0.30 Ry) in case.in1 is too closeto some LO-energies, which results in ghostbands.

Check in case.scf1 whether or not a "searched" energy and a fixed one got too close like:

E( 1)= 0.3531
E( 1)= 0.2875 E(BOTTOM)= 0.395 E(TOP)= 0.180

In such cases increase the default 0.3531 (originating from 0.30 in case.in1, which is set automatically to EF-0.2) to something closer to/or even above EF, or fix the energy parameters without search (case.in1).

Peter Blaha,