Skip to content

6. Solving SCF non-convergence problems

Many sobEDA users asked me how to solve SCF non-convergence problems in Gaussian calculations, which are often encountered in the sobEDA analysis. The ways to tackle this problem have been comprehensively described in my blog article http://sobereva.com/61

You can try most methods in the article. For example:

  • You can try to add SCF(novaracc,noincfock,conver=6,maxcyc=250) in the template.gjf.

  • You can try to use another reasonable computational level instead.

  • In rare cases, int=superfine may also be useful.

Avoid Incompatible Keywords

Note that scf=QC or scf=XQC should not be used, because output information of quadratic convergence code is incompatible with sobEDA.sh.
Keywords altering wavefunction guessing, such as guess=AM1, should also be avoided.

When SCF non-convergence is encountered at a specific computational level, it is often very useful to perform the calculation using another level (a different DFT functional or basis set). If the convergence is fortunately met, then read its converged wavefunction as initial guess for the computational level you actually want to use. Because now a much better initial guess is employed than default, SCF convergence should be much easier.

This scheme is also feasible for the fragment calculations in the sobEDA analysis. For example, if you want to perform sobEDA analysis at BHandHLYP/6-311+G(2d,p) level, but unfortunately find SCF cannot get converged during calculations of one or more fragments, while tests show that (or you believe that) convergence can be easily reached at ωB97XD/6-311+G(2d,p) level, what you should do is:

  1. Prepare all files for a common sobEDA (or sobEDAw) analysis:
    The current computational level in template.gjf is BHandHLYP/6-311+G(2d,p).

  2. Run genfraggjf.sh script:
    Run the genfraggjf.sh script in the sobEDA tutorial package, which will generate .gjf files for all fragments, namely fragment1.gjf, fragment2.gjf, etc.
    Manually replace the BHandHLYP keyword in them with wB97XD. Run them manually by Gaussian, and you will obtain .chk files containing converged fragment wavefunctions, namely fragment1_old.chk, fragment2_old.chk, etc.
    (Notice that the iCP settings in genfraggjf.sh and that in sobEDA.sh must be exactly the same.)

  3. Set iguessread in sobEDA.sh to 1, then run this script:
    In this case, during fragment calculations in sobEDA or sobEDAw analysis, guess=read keyword will be automatically added to all fragment .gjf files, and %oldchk=fragment1_old.chk will be automatically added to fragment1.gjf, similarly for other fragments.
    Hence, fragment calculations with BHandHLYP will read the converged wavefunctions with ωB97XD as initial guesses, and usually the SCF convergence can easily be reached.

Promolecular and Final State Calculations

Note that it is in principle impossible to read manually prepared converged wavefunctions as initial guesses for promolecular calculation and final state calculation.