General FAQ > General FAQ

How to solve SCF convergence problems

(1/1)

uwe:
Convergence settings and hints for SCF convergence in Turbomole


* set the maximum number of SCF iterations with $scfiterlimit
       Remember that the orbitals are being changed during the energy calculation,
       so if SCF did not converge, restarting dscf or ridft will continue the job.

   
* use a higher DIIS damping  ($scfdamp),
     
      We recommend to start with a damping factor between 5 to 15.
      Turbomole will automatically adapt that value during the SCF
      iterations and decrease or increase it depending on the convergence
      behavior.

      If that does not help, try:

          a) set the damping factor to a high value like 15, and limit
             the number of SCF iterations to, say, 20.
             Delete DIIS scratch files after that run (files dens, ddens, errvec, oldfock).

          b) after that, reduce the damping factor to something like
             4 and continue with $scfiterlimit of 300 (or so).

        -> you might have to repeat step a) a few times with a slowly decreasing
           damping factor before continuing with step b).

        You can check the convergence graphically (if gnuplot is installed)
        by calling
             cgnce <output-filename>
        If the energy starts to oscillate, the damping factor is too high...


* use another orbital shift ($scforbitalshift)
 
      make sure that $scforbitalshift is set to 'automatic 0.1' and not
      'closed shell'. closed shell used to be the (very) old default, but
      the automatic setting is much more stable.


* use the converged orbitals from a calculation with smaller basis set:

      - first do the calculation in a smaller basis set (SVP, TZVP)

      - next, enter on the command line
          cpc bigbas
        this will create a new directory called bigbas and copies all input
        files in there
   
      - call define, change the basis set and you will get in the menu where
        you can generate start orbitals. Do NOT call 'eht' here, instead enter:
          use ../control
        this will read in the files of your first calculation and define
        will project the converged orbitals to the new basis set

      - continue with define and enter the ri sub-menu if you do RI-DFT
        calculations to assign auxiliary basis sets to your new basis set

      - finally, just start the energy calculation.


   
* if you do not have to stick to a specific multiplicity, try $fermi to do
      a pseudo-Fermi smearing for the occupation numbers. This will often give
      very good occupation numbers (and the spin state with the lowest energy),
      or sometimes half filled orbitals which indicates multi-reference
      cases or Jahn-Teller effects.

Navigation

[0] Message Index

Go to full version