## Developing a Hartree-Fock program, the algorithm

The Hartree-Fock algorithm can be broken down as follows. We recall that our Hartree-Fock matrix is $$\hat{h}_{\alpha\beta}^{HF}=\langle \alpha \vert\hat{h}_0 \vert \beta \rangle+ \sum_{j=1}^N\sum_{\gamma\delta} C^*_{j\gamma}C_{j\delta}\langle \alpha\gamma|V|\beta\delta\rangle_{AS}.$$ Normally we assume that the single-particle basis $$\vert\beta\rangle$$ forms an eigenbasis for the operator $$\hat{h}_0$$ (this is our case), meaning that the Hartree-Fock matrix becomes $$\hat{h}_{\alpha\beta}^{HF}=\epsilon_{\alpha}\delta_{\alpha,\beta}+ \sum_{j=1}^N\sum_{\gamma\delta} C^*_{j\gamma}C_{j\delta}\langle \alpha\gamma|V|\beta\delta\rangle_{AS}.$$ The Hartree-Fock eigenvalue problem $$\sum_{\beta}\hat{h}_{\alpha\beta}^{HF}C_{i\beta}=\epsilon_i^{\mathrm{HF}}C_{i\alpha},$$ can be written out in a more compact form as $$\hat{h}^{HF}\hat{C}=\epsilon^{\mathrm{HF}}\hat{C}.$$