Problem when passing a reference wavefunction to DF-CCSD in the' fnocc' module

#1

Dear Psi4 community,

when trying to run a DF-CCSD calculation from the fnocc module, I get the following error:

PSIO_ERROR: Can't find TOC Entry (Q|mn) Integrals
PSIO_ERROR: unit = 97, errval = 13
PSIO_ERROR: 13 (no such TOC entry)
Traceback (most recent call last):
  File "/home/dclaudino/psi4_build/bin/psi4", line 269, in <module>
    exec(content)
  File "<string>", line 36, in <module>
  File "/home/dclaudino/psi4_build/lib/psi4/driver/driver.py", line 444, in energy
    return driver_cbs._cbs_gufunc(energy, name, ptype='energy', **kwargs)
  File "/home/dclaudino/psi4_build/lib/psi4/driver/driver_cbs.py", line 1818, in _cbs_gufunc
    ptype_value, wfn = func(method_name, return_wfn=True, molecule=molecule, **kwargs)
  File "/home/dclaudino/psi4_build/lib/psi4/driver/driver.py", line 492, in energy
    wfn = procedures['energy'][lowername](lowername, molecule=molecule, **kwargs)
  File "/home/dclaudino/psi4_build/lib/psi4/driver/procrouting/proc.py", line 858, in select_ccsd_t_
    return func(name, **kwargs)
  File "/home/dclaudino/psi4_build/lib/psi4/driver/procrouting/proc.py", line 3908, in run_fnodfcc
    fnocc_wfn = core.fnocc(ref_wfn)

RuntimeError: 
Fatal Error: PSIO Error
Error occurred in file: /home/dclaudino/psi4/psi4/src/psi4/libpsio/error.cc on line: 129
The most recent 5 function calls were:

psi::PsiException::PsiException(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const*, int)
psi::PSIO::read(unsigned long, char const*, char*, unsigned long, psi::psio_address, psi::psio_address*)
psi::PSIO::read_entry(unsigned long, char const*, char*, unsigned long)
psi::fnocc::DFFrozenNO::ThreeIndexIntegrals()

which is similar to what was posted here, but the proposed solution is not working for me. I could in principle use the same functionality in the occ module, but unfortunately I found it to be very slow. This is a sample input that generates the same error:

molecule {
O
H 1 r
H 1 r 2 a

r=0.958
a=104.5

symmetry c1
}

set scf_type df
set cc_type df
set df_ints_io save
eng, wfn = psi4.energy('hf/cc-pvdz', return_wfn=True)
cc_eng, cc_wfn = psi4.energy('ccsd/cc-pvdz', ref_wfn=wfn)

Any help is appreciated!

#2

Paging @deprince, since we’re probably going to need the code author on this one.

Also, can you give us the header section of the input file? It’s useful for us to know which version of Psi you’re using.

#3

This one is easy. Give me a moment to get back to my office.

– This message has been scanned for viruses and
dangerous content by
, and is
believed to be clean.

#4

@jmisiewicz thanks for the prompt reply. I’m using version 1.3a1.dev221

#5

I thought this was going to be a “set df_ints_io save” issue, but you already had that! I can reproduce your error. I have no idea what actually causes it, but I can run the calculation if I take the basis set specification out of the energy call. Also, I removed the cc_wfn since return_wfn was not set to true. Try:

molecule {
O
H 1
H 1 r 2 a
r=0.958
a=104.5
symmetry c1
}

set basis cc-pvdz
set scf_type df
set cc_type df
set df_ints_io save
eng, wfn = psi4.energy(‘hf’, return_wfn=True)
cc_eng = psi4.energy(‘ccsd’, ref_wfn=wfn)

#6

Works like a charm! Thanks a lot!

#7

I’m glad this is solved, but I’m still puzzled why this bug is happening in the first place. So we don’t lose track, I added it to the issue tracker.