Obtaining IP/EA using EOM-CC

Is there a simple way to obtain ionization potentials and electron attachment energies using the EOM-CC methods (EOM-CC2, EOM-CC3, EOM-CCSD)? Or do these methods only consider the neutral excitations?

I would like to do this via EOM-CC, i.e. diagonalizing the CC Hamiltonian in N-1 / N+1 space, rather than by doing an e.g. $\Delta$-CCSD energy calculation.

I’m not very familiar with EOM-CC, but if it won’t work with N-1/N+1 natively, you may be able to run on your reference state, and then change the electron counts in the wavefunction by altering the molecular charge/multiplicity and using force_soccpi and force_doccpi on the wavefunction before doing the EOM-CCSD call. So, in theory it would look something like this:

ref_e, ref_wfn = psi4.energy('scf', molecule=mol, return_wfn=True)

# update molecule
mol.set_molecular_charge(new_charge)
mol.set_multiplicity(new_multiplicity)

# update soccpi/doccpi
ref_wfn.force_soccpi(psi4.core.Dimension([new_soccpi]))
ref_wfn.force_doccpi(psi4.core.Dimension([new_doccpi]))

e_cas, wfn_cas = psi4.energy('eom-ccsd', ref_wfn=ref_wfn)

Note that you’ll need to run with ROHF or UHF, even for a singlet, since RHF Wavefunction objects force alpha and beta orbitals to be equally occupied. I haven’t tested the validity of this approach (and there may be a better way of doing this built into Psi4 already-- if there is I’d definitely recommend trying that first), but looking at these keywords might be a good starting point if you can’t get it sorted out any other way!