SCF - An Iterative Method

The Hartee-Fock equations (left side) are of third order in the coefficients, and can be iteratively solved to self consistency (Self Consistent Field) in the same way as a third order polynomial equation (right side) can be iteratively brought to a self consistent solution.

The Hartree-Fock equations together with an LCAO ansatz leed to the following set of eigenvalue equations in matrix formulation:

FC - SCE = 0.

F is the Fock-operator, C the matrix of the unkown coefficients, S the overlap matrix and E are the energy eigenvalues.This equation looks linear in the unknowns C and, hence, should be easy to solve.

The problem is, that the Fock-operator depends on the electron density, which contains the unknown coefficients in second order. Therefore we have really a system of equations of third order. The situation is very similar to the one on the right. We have third order, but it looks like first order, because we use an abbrevation for part of it (here F, on the right A).

This equivalence also means that we can try to solve them in a similar way. Assume for example at the beginning that the electron density is zero (all coefficients = 0). This reduces the problem to a Hueckel type one electron problem, which is easy to solve. Then use the coefficients (corresponding to an electric field) to build the Fock-operator F, with which you solve the system of linear equations again to get a new solution (a new electric field). Repeat this until the solution is no longer changing, i.e. is self consistent and you have your Self Consistent Field.

We look for the solution of the following equation: x3 - 7x + 6 = 0. It is of third order and is not easy to solve. Therefore we use the following trick: We rearrange the equation: (x2 - 7)x + 6 = 0. We assume further that we know the expression in the parenthesis and call it A, i.e. we have now Ax + 6 = 0. This is easy to solve: x = -6/A. If we know A, we get x, and if we know x, we get A = x2 - 7. This looks like running in a circle. But what, if we just assume a value for x, use it to calculate A, which is used again to get a new x? The new x we may use in a next iteration step etc. Put any start value for x in the first field below and see what you get from the iteration!

Start Value:
1. Iteration
2. Iteration
3. Iteration
4. Iteration
5. Iteration
6. Iteration
7. Iteration
8. Iteration
9. Iteration

Of course you have no guarantee that the result will converge. In this case it does. You could also get unexpected stable solutions (try once 2 or 3 as start value).

10. Iteration