If you’re running an electronic structure calculation like density functional theory (DFT) or Hartree Fock (HF), one of the most frustrating problems you may encounter is when the SCF (self-consistent field loop) won’t converge. Fortunately, there are several things you can do to address this problem and get your calculation back on track. In this article, we’ll explore some of the most effective strategies for solving SCF convergence issues. These tips are useful for a variety of DFT programs like Quantum ESPRESSO, VASP, TURBOMOLE, GAUSSIAN, QChem, PySCF, and many others.
1. Check for Convergence Issues
The first step in addressing SCF convergence issues is to determine whether you’re actually facing this problem. One way to tell is by checking the energy at each step of the calculation. If the energy is going down, then that’s a good sign. However, if the energy is going up or oscillating, then there is cause for concern.
2. Check Input File
Before diving into more complex solutions, it’s important to make sure there are no obvious errors in your input file. Some common mistakes that can cause convergence issues include incorrect units for atomic coordinates, incorrectly specifying the type of calculation, or a bad geometry. For example, you may mistakenly use atomic units (Bohrs) for coordinates when a program expects Angstrom. Or you may specify wrong values for charges or spin. Double-checking these details can save you a lot of time and frustration in the long run.
3. Try Different Initial Guesses
If you’re still having trouble with SCF convergence, it may be worth trying a different initial guess. Some researchers find that the extended hueckel theory guess and superposition of atomic potentials/densities work well. However, the simple core (1 electron) guess has been known to cause issues in the past.
4. Resume From Converged Orbitals
Another option is to resume from the converged orbitals obtained from a previous SCF calculation using a smaller basis set. Some codes like Turbomole allow for this.
5. Increase Maximum SCF Iterations
Increasing the maximum number of SCF iterations can also help in cases where convergence is slow. However, it’s important to be careful not to set this value too high, because if there is already another problem with your SCF calculation then you may waste a lot of computational resources if your calculation is left running overnight.
6. Use Damping and Mixing
If the SCF energy oscillates between two values, it means there are two orbitals close in energy. Using damping, mixing (i.e., the next iteration is 50% the old and 50% the updated iteration), Fermi broadening, etc. can help here.
7. Adjust Parameters
In cases where you’re using periodic boundary conditions, too few k-points, insufficient number of bands, too low cutoff energy, or a bad pseudopotential may cause problems. In such cases, changing these parameters can help to produce a more robust calculation.
8. Modify DIIS Subspace Size
When using DIIS or pulay mixing, modifying the DIIS subspace size (the number of Fock matrices to be used for extrapolation to the correct solution) can also help.
9. Be Patient
Finally, it’s important to remember that DFT calculations can be tricky and complicated, but don’t give up! With a little patience and troubleshooting, you’ll get it working. You can also seek help from Google or other online resources (I have listed many of those below) if you’re struggling to find a solution. Sometimes SCF optimization may take a long time, especially if your system is complicated. You may just need to be patient.
SCF convergence issues can be frustrating, but there are several strategies you can use to address them. By carefully checking your input file, trying different initial guesses, increasing the maximum number of SCF iterations, using damping and mixing, adjusting parameters, modifying the DIIS subspace size, and googling, you can overcome these issues and obtain the accurate results you need for your research.
References and Resources
- SCF Convergence Tips for VASP or Quantum ESPRESSO: https://wiki.wpi.edu/deskinsgroup/Convergence_Problems
- SCF Convergence Tips for GAMESS: https://chemistry.stackexchange.com/questions/27008/how-can-you-manage-scf-convergence-problems
- SCF Convergence for GAUSSIAN: https://nesvard.org/how-to-solve-scf-convergence-problems-in-gaussian-computational-chemistry-program/
- SCF Convergence tips for GPAW: https://wiki.fysik.dtu.dk/gpaw/documentation/convergence.html
- SCF Convergence Tips for TURBOMOLE: https://forum.turbomole.org/index.php?topic=195.0
- SCF Convergence Tips for QChem: https://manual.q-chem.com/5.0/sect-convergence.html
Ph.D. researcher at Friedrich-Schiller University Jena, Germany. I’m a physicist specializing in computational material science. I write efficient codes for simulating light-matter interactions at atomic scales. I like to develop Physics, DFT, and Machine Learning related apps and software from time to time. Can code in most of the popular languages. I like to share my knowledge in Physics and applications using this Blog and a YouTube channel.