Natural Occupation number

How to print natural occupation number

We need to know the method you want to print occupation numbers of.

For HF, the spinorbital occupation numbers are all 1 or 0, as a consequence of the wavefunction being a single determinant. It looks like you develop electronic structure methods. Am I misunderstanding the question, or did you just need a reminder of a fairly basic fact?

For CASSCF (or to doublecheck HF), you can access the density matrix as a numpy array by wfn.Da_subset("MO").np (for a molecule with no symmetry) or as an element of the list wfn.Da_subset("MO").nph (for a molecule with symmetry). From there, you determine the occupation numbers by diagonalization. This requires that the method you’re using set the density matrix properly. Both CASSCF and HF do.