Specifying orbital guesses for SCF manually

Hi,

In Psi4 I see the orbital read function is available as a way of getting good guess orbitals in something like a geometry optimization, but it’s not clear from the manual to me if there is a way to manually specify a guess in terms of raw orbital coefficients. For example if I’m doing a set of related but not identical SCF calculations and I would like to manage the guesses in the python interface, or perhaps if I’m testing a new method of guess generation that I compute myself before starting the SCF calculation. Is this functionality or a similar one currently available? Thanks in advance for any help on this!

Not in particularly simple fashion unfortunately. The lines where a guess is read is here: https://github.com/psi4/psi4/blob/master/psi4/driver/procrouting/proc.py#L1275

The relevant pieces are

scf_wfn.guess_Ca(Ca_occ)
scf_wfn.guess_Cb(Cb_occ)
scf_wfn.reset_occ(True)

Notice that it wants occupied orbitals only. The reset_occ flag is if you want to set a weird sized starting occupied orbital, the wavefunction will reset itself to a reasonable occupation count (particularly useful for incomplete cholesky guesses of a density).

If you want to play around with guesses there is the Psi4NumPy repository. The linked version is just as fast as the Psi4 one due to the JK builds through Psi4; however, you dont have to deal with all of the user-facing logic that makes many Psi operations simple.