I am using PySCF, and checked that the molecular orbitals(MO) from the HF calculation are orthonormal. If S is the Overlap matrix, and V is the matrix of the MO coefficients, It can be seen from the equation, $ V^T * S * V = I $ when I is the Identity matrix. The S can be calculated from PySCF as,
S = mol.intor('int1e_ovlp')
Since $S$ is created from orthonormal orbitals, it has $1.00$ as diagonal elements. Now, the question is, I have a matrix of MO coefficients, which are not orthonormal. I was trying to orthonormalize them by using Lowdin symmetric orthogonalization. Which is actually, $ W' = S^{-1/2} W $ where, $W'$ is orthonormalized orbitals and S is calculated as before. However, the resulting orbitals are not orthonormal. Possible reasons:
- The Lowdin method only does orthogonalization, so first, I need to normalize them
- Use a different method, like the Gram-Schmidt method
- Motivated from the [answer here][1], create $S$ from non-orthogonal orbitals, find $S^{-1/2}$ and do the transformation from non-orthonormal to orthonormal orbitals using $ W' = S^{-1/2} W $ . However, I am confused as to why Lowdin orthogonalization does not give the answers.
Are there other methods to do such orthonormalization? [1]: https://chemistry.stackexchange.com/questions/102144/is-the-lowdin-orthogonalization-used-in-diagonalizing-the-atomic-orbitals-really