Performing MRCC Calculation with Brueckner orbitals

Is it possible to save the Brueckner orbitals for use in a subsequent MRCC calculation?

First, disclaimer that I haven’t done any numerical tests of this myself.

That said, it should work. Get a wfn object from a Brueckner calculation, and pass that as the ref_wfn keyword argument to energy('mrcc'). The Brueckner orbitals are saved to the wavefunction object, and Psi uses the wavefunction orbitals to transform the integrals as part of the MRCC procedure.

Thanks! I’ll try doing that.

This was my attempt to implement what you suggested:
set {
reference rohf
basis aug-cc-pVTZ
print_MOs true
print 2
scf_type pk
guess sad
freeze_core true
}
benergy, b_wfn = energy(‘bccd(t)’,return_wfn = True)
energy(‘mrccsdt’, ref_wfn=b_wfn)

but after the bccd(t) calculation, it crashes with:

Traceback (most recent call last):
File “/home/kipeters/psi4/build/stage/bin/psi4”, line 333, in
exec(content)
File ““, line 34, in
File “/home/kipeters/psi4/build/stage/lib/psi4/driver/driver.py”, line 597, in energy
wfn = procedures[‘energy’][lowername](lowername, molecule=molecule, **kwargs)
File “/home/kipeters/psi4/build/stage/lib/psi4/driver/procrouting/proc.py”, line 4563, in run_mrcc
vscf = core.variable(‘SCF TOTAL ENERGY’)
File “/home/kipeters/psi4/build/stage/lib/psi4/driver/p4util/python_helpers.py”, line 859, in _core_variable
raise KeyError(“psi4.core.variable: Requested variable ” + key + ” was not set!\n”)
KeyError: ‘psi4.core.variable: Requested variable SCF TOTAL ENERGY was not set!\n’
Printing out the relevant lines from the Psithon → Python processed input file:
core.set_global_option(“PRINT”, 2)
core.set_global_option(“SCF_TYPE”, “pk”)
core.set_global_option(“GUESS”, “sad”)
core.set_global_option(“FREEZE_CORE”, “true”)
benergy, b_wfn = energy(‘bccd(t)’,return_wfn = True)
→ energy(‘mrccsdt’, ref_wfn=b_wfn)
!---------------------------------------------------------------------------!
! !
! ‘psi4.core.variable: Requested variable SCF TOTAL ENERGY was not set!\n’ !
! !
!---------------------------------------------------------------------------!

Thanks for the bug report. I’ve filed an issue. This looks like a simple one to fix, but no promises.

The bug has been fixed on the developer version of Psi4. If you want this feature, you’ll need to use that.

All I can promise is that Psi will get to the line of code where control hands over to MRCC, and I can triage any further issues you find. I don’t have the time to do the in-depth investigation I would need to say that this feature is working as intended.

Thank you so much! I’ll be trying it out.

Hi Jonathon,

looks like it now gets into preparing the input for MRCC just fine but dies with a segmentation fault when it starts the integral transformation.

-Kirk

Ah, thank you for the report. I naively assumed that making my minimal RHF example work would be enough, but there’s an additional ROHF-specific bug I wasn’t aware of.

My initial debugging suggests the problem is with how Psi’s CC code handles the wavefunction for Brueckner CC on top of an ROHF reference: RHF-Brueckner and ROHF-SCF both work fine when I pass them into MRCC. @crawdad may be able to either tap somebody to investigate this one or offer wisdom?