# Are any other orthonormalizations schemes besides Lowdin normally used when solving SCF equations?

When solving equations of the form:

$$F(C)C = SC\epsilon$$

(e.g. Hartree-Fock-Roothan or Kohn-Sham-Roothan) where $$F$$ is the fock matrix, $$C$$ is the coefficient matrix and $$S$$ the overlap matrix, the usual way to proceed is to first perform a change of basis and orthonormalize the AOs (atomic orbitals) by performing a Lowdin (Symmetric) orthogonalization. I know at least one case (The Psi4 program) where a different orthogonalization scheme is used (Canonical) but I haven't been able to find any information of other alternative orthogonalization schemes implemented in any programs. Are any other schemes used? If so, where and why?

• The Wikipedia article for Gram-Schmidt orthogonalization is widely used, but the source is behind a paywall. Possibly modified Gram-Schmidt, as it is more numerically stable. – Tyberius Nov 4 '18 at 0:35
• I was under the impression that Gram-Schmidt couldn't be written as a linear transformation and that a linear transformation was needed in order to transform the SCF equations into an eigenvalue problem. Is Gram-Schmidt used in this specific case or some other? – Ignacio Nov 4 '18 at 16:55
• I know that modified Gram-Schmidt is used in the Davidson procedure for CIS for instance, but that is not what I was asking about. – Ignacio Nov 4 '18 at 16:56
• As far as I know, regardless of how you make the orbitals orthogonal, doing so will put the SCF equations into standard eigenvalue form since it will turn the overlap matrix into the unit matrix. I don't have it with me at the moment, but I believe in Szabo and Ostlund they use Gram-Schmidt for one of the examples. @Ignacio – Tyberius Nov 4 '18 at 17:10
• Gram-Schmidt is just a form of QR factorisation (en.wikipedia.org/wiki/QR_decomposition) and thus is very much a linear transformation. In fact all the orthogonalisation procedures can be viewed as matrix factorisations, where one of the resulting matrices is unitary. – Ian Bush Jul 17 '19 at 7:28

Molcas developer here, currently implementing symmetric and canonical orthonormalization for the RASSCF module in addition to Gram-Schmidt.

As a rule of thumb you should treat those Orthonormalization schemes (ON-schemes) as different tools for different jobs.

If there are $$n$$ linear independent atomic orbitals (AOs), of which $$n$$ molecular orbitals (MOs) are to be constructed, then symmetric ON is probably the best, because the squared deviation of the MOs to the AOs is minimized. This means that your MOs are as close to the AOs as possible, while still being orthonormal. If there is linear dependency, symmetric orthogonalization can detect, but not cure it.

Canonical and Gram-Schmidt orthonormalization have the advantage, that they can be used to construct only $$m$$ MOs from $$n$$ AOs ($$n > m$$) and to cure linear dependence.

If you compare Gram-Schmidt with Canonical ON, Gram-Schmidt has the disadvantage, that it is not as numerically stable. Besides the AOs that are orthonormalized last, can look completely different after the procedure. If you manually constructed your basis with chemical knowledge, this is not what you want. Modified Gram-Schmidt cures the numerical instability, but still has the disadvantage, that MOs might look completely different to the initial AOs.

PS: Just an addition to the comments: Grahm-Schmidt can be written as linear transformation. Although one would rarely do this.

• Interesting! Thank you for the clarification on Gram-Schmidt, (also pointed out by Ian Bush in the comments). Are there any advantages or use cases for modified Gram-Schmidt you can think of? Any reason why it was implemented before symmetric/canonical in molcas? – Ignacio Jul 18 '19 at 22:43
• It is extremely easy to implement. You just need a Fortran compiler. For canonical or symmetric ON you need to diagonalize and hence need to link against BLAS libraries. – mcocdawc Jul 19 '19 at 6:20