**Fatal Error: SCF::DF: Disk based algorithm requires


Hi everyone,
In the last few days, I’m trying to run a sapt2 calculation to determine inter-molecular interactions for the protein-ligand system. And each time the calculation ends up in the following error.

==> Integral Setup <==
Traceback (most recent call last):
File “/home/rinsha/psi4conda/bin/psi4”, line 287, in
File “”, line 625, in
File “/home/rinsha/psi4conda/lib//python3.7/site-packages/psi4/driver/driver.py”, line 556, in energy
wfn = procedures[‘energy’][lowername](lowername, molecule=molecule, **kwargs)
File “/home/rinsha/psi4conda/lib//python3.7/site-packages/psi4/driver/procrouting/proc.py”, line 3309, in run_sapt
dimer_wfn = scf_helper(‘RHF’, molecule=sapt_dimer, **kwargs)
File “/home/rinsha/psi4conda/lib//python3.7/site-packages/psi4/driver/procrouting/proc.py”, line 1363, in scf_helper
e_scf = scf_wfn.compute_energy()
File “/home/rinsha/psi4conda/lib//python3.7/site-packages/psi4/driver/procrouting/scf_proc/scf_iterator.py”, line 84, in scf_compute_energy
File “/home/rinsha/psi4conda/lib//python3.7/site-packages/psi4/driver/procrouting/scf_proc/scf_iterator.py”, line 198, in scf_initialize
self.initialize_jk(self.memory_jk_, jk=jk)
File “/home/rinsha/psi4conda/lib//python3.7/site-packages/psi4/driver/procrouting/scf_proc/scf_iterator.py”, line 125, in initialize_jk
Fatal Error: SCF::DF: Disk based algorithm requires 2 (A|B) fitting metrics and an (A|mn) chunk on core.
This is 2Q^2 + QNP doubles, where Q is the auxiliary basis size, N is the
primary basis size, and P is the maximum number of functions in a primary shell.
For this problem, that is 14017849608 bytes before taxes,20025499440 bytes after taxes.
Error occurred in file: /scratch/psilocaluser/conda-builds/psi4-multiout_1555110430845/work/psi4/src/psi4/libfock/DiskDFJK.cc on line: 734
The most recent 5 function calls were:
Printing out the relevant lines from the Psithon --> Python processed input file:
core.set_global_option(“BASIS”, “jun-cc-pVDZ”)
core.set_global_option(“SCF_TYPE”, “DF”)
core.set_global_option(“FREEZE_CORE”, “True”)
–> energy(‘sapt2’)
Psi4 stopped on: Monday, 06 May 2019 11:19PM
Psi4 wall time for execution: 1:06:42.76
*** Psi4 encountered an error. Buy a developer more coffee!

when I tried the same with smaller basis set and on a small portion of the protein with ligand it shows,

Fatal Error: Not enough memory
Error occurred in file: /scratch/psilocaluser/conda-builds/psi4-multiout_1555110430845/work/psi4/src/psi4/libsapt_solver/sapt2.cc on line: 224
The most recent 5 function calls were:

so, how can I solve this? is there a limit to the number of atoms for sapt calculation in psi4?


Hi @rinsha,
It looks like your computation is failing in the stage where the molecular orbitals for the dimer (full protein–ligand complex) are being constructed. Psi4 is complaining with the following error message:

which means that even though Psi4 has correctly identified the DISK_DF algorithm for performing this part of the job, it’s not finding enough memory to store necessary intermediate quantities that it needs to work with to generate the orbitals. This line in the error message

indicates that for your system, you’ll need just over 20 GB of memory on the machine you’re running on — which Psi4 isn’t finding, so it’s given up. In order to address this, you’ll likely need to significantly
truncate your protein–ligand system so that there are fewer atoms. Any reduction in the overall system size will reduce this memory requirement, making the construction of the dimer MOs more tractable.

Furthermore, I’d suggest abandoning SAPT2 in favor of SAPT0 — especially if you have a large system — for three main reasons:

  1. Even if you get the dimer Hartree–Fock to finish, the SAPT2 computation will likely still fail (or at least take a long time to finish), since there are three different O(N^5) components to SAPT2, where N is the number of atoms. For example, an O(N^5) computation on 195 atoms takes ~4 days to finish on the Sherrill group’s beefy workstation computers, which is nearly a best-case scenario.
  2. SAPT0 still provides a physically meaningful breakdown of interaction energy components, albeit at the expense of neglecting intramolecular electron correlation. For most systems this is an acceptable tradeoff, as SAPT0/jun-cc-pVDZ still compares favorably to CCSD(T) interaction energies to within about 1 kcal/mol.
  3. If you are okay with SAPT0, you can leverage the functional-group partition scheme (F-SAPT0) to probe particular functional group interactions (i.e., how much does residue X like or dislike my ligand?), which has previously been applied successfully to study peptide bond contacts in factor Xa systems (see more here).

Exactly how large is your system, i.e., how many atoms are in each of your “monomers” (the protein & ligand)?

Hope that helps!
~ Dom

1 Like

Thanks a lot for your response, Dom.
Initially, I used the whole protein (6288 atoms) with ligand (101) but that one terminated with previously mentioned error so I tried with truncated protein (324 atoms) keeping ligand as such at that time also it shows the same error. That’s why I asked about it.