There is. The changes you need to make to your output file are as follows:
Change the last line to _, wfn = psi4.gradient('CCSD(T)', molecule=ion_geom, return_wfn=True)
. Three important things have changed. One is that we have changed from a properties call to a gradient call. One is that we are now asking to return the wavefunction. The third is that we are now saving the wavefunction as a variable. The goal of all this is to get the correlated response density on a wavefunction object.
This is exactly what oeprop
needs:
oeprop = psi4.core.OEProp(wfn)
oeprop.add("DIPOLE")
oeprop.compute()
Two words of warning.
- As developers, we strongly encourage you to use the built-in
properties
function instead ofOEProp
wherever possible. This is an exception. (OEProp
does not check that the density matrix attached to the wavefunction means what you think it means.properties
does.) - If you are going to do this, you must use an up-to-date version of Psi4! If you use Psi4 1.3, this method will give you wrong results. I strongly encourage you to use the current stable release of Psi4 1.4. If you use a development version of Psi, it must have PR #1964, which dates to 7/20/2020.