I'm interested in writing a simple program (as an exercise) that takes an FCIDUMP file (e.g. from a Molpro calculation) and can determine FCI matrix elements (e.g. to construct the entire FCI matrix to diagonalise, or to use in FCIQMC). I would both like to know how to do it so that I can program it myself, and if there are any existing packages that do it for me (just that, not doing the entire FCI calculation).
Reading in the FCIDUMP file itself is just an exercise in programming (and can be done in one line with pySCF: pyscf.tools.fcidump.read("fcidump_file", molpro_orbsym=True)
), so let's start with all the integrals given $(\psi_i\psi_j|\psi_k\psi_l)$ and $h_{ij}$, as well as the extra parameters in the first block (which I am less sure how to use). How does one calculate the (FCI) Hamiltonian matrix element $H_{ij}$ given these values?
I'm aware of the Slater-Condon rules and know they will be needed here, but I'm not sure how to generate a general matrix element from these values, or how the parameters that come before the integrals are useful (presumably ORBSYM
can reduce the size of the matrix).