Afterward

Quantum Chemistry

The series ends at H2 on purpose. The pacing was set by the rule "every page extends a single growing program" and that rule starts to break down past two electrons in the smallest basis. To go further, the program would either have to refactor (multi-angular-momentum integrals, AO-pair indexing, sparse storage) or stop being readable as a single flat file. Both directions are good, neither belongs in this series. What follows is a map of what we left out and where to look for each piece.


Higher angular momentum

Every integral in this series was over -type primitives. Real molecules need , , sometimes . The Boys function generalizes to for , and angular-momentum indices on the basis functions propagate through the Gaussian product theorem via a recursion (Obara-Saika, McMurchie-Davidson, or Head-Gordon-Pople). The resulting code is much longer but the structure is the same: build matrices, run SCF. The pedagogical reference is Helgaker, Jørgensen & Olsen's Molecular Electronic-Structure Theory; the production reference is libint or libcint.

Real basis sets

STO-3G was a bad basis chosen for clarity. Production work starts with split-valence sets like 6-31G**, then moves to correlation-consistent sets cc-pVDZ / cc-pVTZ / cc-pVQZ which are designed to extrapolate to the basis-set limit, then diffuse-augmented variants aug-cc-pVTZ for anions and excitations. The Basis Set Exchange (basissetexchange.org) distributes them in standard formats. None of the SCF code on pages 5-10 changes; only the input matrices grow.

Correlation

HF describes each electron as moving in the average field of the others; correlation is what's left. The recovery hierarchy:

All of these start from HF orbitals. The HF code on pages 5-10 is the foundation; correlation is layered on top.

Open shells and multireference

The H2 dissociation failure on page 10 is a multireference problem: the right wavefunction at long bond length is a sum of two Slater determinants, not one. Single-reference methods (everything in the previous list) get this wrong. Multireference methods — CASSCF, MR-CI, NEVPT2 — diagonalize within a chosen "active space" of important determinants and treat the rest perturbatively. This is the right tool for bond breaking, transition states, and transition-metal chemistry.

DFT

Density-functional theory is the parallel universe of electronic structure. The Hohenberg-Kohn theorems guarantee that the ground-state energy is a functional of the electron density alone; Kohn-Sham DFT writes that functional as a sum of a non-interacting kinetic part (which uses the same SCF-on-orbitals machinery we just built) plus an exchange-correlation functional that is, in principle, exact — and in practice, an approximation of varying quality. PBE, B3LYP, ωB97X-V are common choices. The DFT computer code is structurally very similar to HF, sharing the same SCF loop and integral machinery; the substantive difference is replacing the Hartree-Fock exchange-and-Coulomb with the exchange-correlation functional.

Beyond the Born-Oppenheimer surface

Everything on pages 1-10 fixes the nuclei in place and computes a single electronic energy. The full Born-Oppenheimer surface is that energy as a function of every nuclear coordinate. To get spectroscopy, geometry optimization, or molecular dynamics from it, you need analytical gradients (cheaper than finite differences), Hessians (for vibrational frequencies), and nonadiabatic couplings (for excited-state dynamics). All of these are well-developed and follow the same pattern: differentiate the HF energy expression with respect to the relevant parameter, solve some auxiliary equations, contract.


Texts

Production codes

If the goal is to actually do calculations: PySCF is the easiest entry point — Python, open source, permissive license, all the major methods. Psi4 is similar but C++ underneath with a Python front end. NWChem, Q-Chem, ORCA, Gaussian are the mainstream commercial-or-academic options. libint, libcint, and libxc are the best-known integral and exchange-correlation libraries; you can build a custom code on top of them without rewriting the integral evaluation. Knowing the contents of the previous ten pages is enough to read PySCF's SCF source and have a fighting chance of understanding what every line does.