18.6: The Roothaan Matrix SCF Process
- Page ID
- 70188
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)The matrix SCF equations introduced earlier
\[ \sum\limits_\nu F_{\mu ,\nu}C_{\nu ,i} = \epsilon_i \sum\limits_\nu \textbf{S}_{\mu ,\nu} C_{\nu ,i} \nonumber \]
must be solved both for the occupied and virtual orbitals' energies \(\epsilon_i \text{ and } C_{\nu ,i}\) values. Only the occupied orbitals' \( C_{\nu ,i}\) coefficients enter into the Fock operator
\[ F_{\mu ,\nu} = \langle \chi_\mu \big| h \big| \chi_\nu \rangle + \sum\limits_{\delta ,\kappa} \left[ \langle \chi_\mu \chi_\delta \big| g \big| \chi_\nu \chi_\kappa \rangle - \gamma_{\delta ,\kappa}^{ex} \langle \chi_\mu \chi_\delta \big| g \big| \chi_\kappa \chi_\nu \rangle \right] , \nonumber \]
but both the occupied and virtual orbitals are solutions of the SCF equations. Once atomic basis sets have been chosen for each atom, the one- and two-electron integrals appearing in \(F_{\mu ,\nu}\) must be evaluated. Doing so is a time consuming process, but there are presently several highly efficient computer codes which allow such integrals to be computed for s, p, d, f, and even g, h, and i basis functions. After executing one of these 'integral packages' for a basis with a total of N functions, one has available (usually on the computer's hard disk) of the order of \(\frac{\textbf{N}^2}{2} \text{ one-electron and } \frac{\textbf{N}^4}{8}\) two-electron integrals over these atomic basis orbitals (the factors of \(\frac{1}{2}\text{ and } \frac{1}{8}\) arise from permutational symmetries of the integrals). When treating extremely large atomic orbital basis sets (e.g., 200 or more basis functions), modern computer programs calculate the requisite integrals but never store them on the disk. Instead, their contributions to \(F_{\mu ,\nu}\) are accumulated 'on the fly' after which the integrals are discarded.
To begin the SCF process, one must input to the computer routine which computes \(F_{\mu ,\nu}\) initial 'guesses' for the \(C_{\nu ,i}\) values corresponding to the occupied orbitals. These initial guesses are typically made in one of the following ways:
- If one has available C\(_{\nu ,i}\) values for the system from an SCF calculation performed earlier at a nearby molecular geometry, one can use these Cn,i values to begin the SCF process.
- If one has \(C_{\nu ,i}\) values appropriate to fragments of the system (e.g., for C and O atoms if the CO molecule is under study or for CH\(_2\) and O if H\(_2\)CO is being studied), one can use these.
- If one has no other information available, one can carry out one iteration of the SCF process in which the two-electron contributions to \(F_{\mu ,\nu}\) are ignored ( i.e., take \(F_{\mu ,\nu} = \langle \chi_\mu \big| h \big| \chi_\nu \rangle \)) and use the resultant solutions to \( \sum\limits_\nu F_{\mu ,\nu}C_{\nu ,i} = \epsilon_i \sum\limits_\nu \textbf{S}_{\mu ,\nu}C_{\nu ,i} \) as initial guesses for the \(C_{\nu ,i}\). Using only the one-electron part of the Hamiltonian to determine initial values for the LCAO-MO coefficients may seem like a rather severe step; it is, and the resultant \(C_{\nu ,i}\) values are usually far from the converged values which the SCF process eventually produces. However, the initial \(C_{\nu ,i}\) obtained in this manner have proper symmetries and nodal patterns because the one-electron part of the Hamiltonian has the same symmetry as the full Hamiltonian.
Once initial guesses are made for the \(C_{\nu ,i}\) of the occupied orbitals, the full \(F_{\mu ,\nu}\) matrix is formed and new \(\epsilon_i \text{ and } C_{\nu ,i}\) values are obtained by solving \( \sum\limits_\nu F_{\mu ,\nu}C_{\nu ,i} = \epsilon_i \sum\limits_\nu \textbf{S}_{\mu ,\nu}C_{\nu ,i} \). These new orbitals are then used to form a new \(F_{\mu ,\nu} \text{ matrix from which new } \epsilon_i \text{ and } C_{\nu ,i}\) are obtained. This iterative process is carried on until the \(\epsilon_i \text{ and } C_{\nu ,i}\) do not vary (within specified tolerances) from iteration to iteration, at which time one says that the SCF process has converged and reached self-consistency.
As presented, the Roothaan SCF process is carried out in a fully ab initio manner in that all one- and two-electron integrals are computed in terms of the specified basis set; no experimental data or other input is employed. As described in Appendix F, it is possible to introduce approximations to the coulomb and exchange integrals entering into the Fock matrix elements that permit many of the requisite \(F_{\mu ,\nu}\) elements to be evaluated in terms of experimental data or in terms of a small set of 'fundamental' orbital-level coulomb interaction integrals that can be computed in an ab initio manner. This approach forms the basis of so-called 'semi-empirical' methods. Appendix F provides the reader with a brief introduction to such approaches to the electronic structure problem and deals in some detail with the well known Hückel and CNDO- level approximations.