Lesson two: converging difficult SCF cases



Many systems, especially those which contain transition metals and/or make use of ECP basis sets, are very difficult to converge. This problem is typically related with the improper quality of initial guess orbitals.

Assume you have a transition metal complex formed by a transition metal atom(s) and some ligands. You need to perform geometry optimization, hovewer, you cannot even force SCF to converge at the initial geometry! Getting converged orbitals at the initial geometry most likely would solve your problems as during geometry optimization the orbilals from the previous point are used as the initial guess for the next point. Thus, the key problem is how to obtain converged SCF orbitals at the initial geometry.

Recognizing that tweaking PC GAMESS/Firefly SCF-related keywords does not help, you start thinking a little bit more productive. "Well, - you think - I was told that SCF converges much more easily for positively charged systems. What if I would split my system into two (or more) pieces, one with positively charged transition metal, and second with negatively charged ligands? Most likely, I'll be able to converge both systems easily. Could it be the case I can use these two sets of converged SCF orbitals of fragments to form better initial guess for the entire molecule? And how could I combine two sets of vectors into the united, single guess?"

This is exactly the problem which is addressed by the simple helper program called combo. The program itself, its (both Watcom Fortran 77 and generic Fortran 90 compatible) source code, program's input file with comments, as well as the necessary PC GAMESS/Firefly input files demonstrating the use of this approach, can be found here. Under Windows-based system, all that you need to see how it works is just to run enclosed batch file called sample.cmd and wait for some time. This batch file first runs PC GAMESS/Firefly twice to get the orbitals of two fragments, then executes combo.exe which produces combined guess, and finally executes PC GAMESS/Firefly instructing it to use this combined guess as a starting point for SCF cycles. The provided sample.cmd file can be easily adopted for Linux, and there should not be any problems to compile combo.f using, e.g., Intel's Fortran compiler.

Note you need to use exactly the same set of coordinates and numbering scheme of atoms for this simple program to work correctly. You are very restricted in modifying its input file (combo.inp or whatever). You cannot change the order of lines, add comments, etc..., you can only replace filenames to be used and values of numerical parameters to fit your needs, while leaving the entire structure of the file intact.




Last updated: August 2, 2007

Copyright © 2007 by Alex A. Granovsky

Back to the PC GAMESS/Firefly tutorials page