Building a Hamiltonian matrix

Note: there are other, more efficient ways to do this than the method we describe, but you will be able to produce a working code quickly.

As we coded in the first step, a Slater determinant \( | \alpha \rangle \) with index \( \alpha \) is a list of \( N \) occupied single-particle states \( i_1 < i_2 < i_3 \ldots i_N \).

Furthermore, for the two-body matrix elements \( V_{pqrs} \) we normally assume \( p < q \) and \( r < s \). For our specific project, the interaction is much simpler and you can use this to simplify considerably the setup of a shell-model code for project 2.

What follows here is a more general, but still brute force, approach.