Single Point immediately fails with DM alg and AUTOSAD guess

Hello,

I am consistently getting an issue in Q-Chem 6.0.2 where any combination of the DM SCF optimization algorithm and the AUTOSAD initial SCF guess immediately fail prior to any attempt to converge the SCF. Other combinations (guesses other than AUTOSAD with the DM algorithm, or algorithms other than DM with the AUTOSAD guess) seem to work, but this combination does not.

Here is the error:
"
Q-Chem fatal error occurred in module libmdc/newfileman.C, line 376:

FileMan error: End of file reached prematurely reading (2179872) bytes in file FILE_MO_COEFS
Path: /expanse/lustre/…/5_6-DM-B2PLYP-QChem-AUTOSAD-43080670/53.0

Please submit a crash report at Q-Chem Crash Reporter
"

And here is the input:

Input: 
$molecule
0 3
 C    0.7927183308    0.7454394837    -0.3427446254   
 C    -0.2003533756   -0.1482743079   -1.1271418072   
 C    -0.9693566182   -0.8952840491   -0.0770020186   
 C    -0.5383953122   -0.5379775751   1.1905764445    
 C    0.4736735207    0.401996042     1.114501686     
 O    1.1469597878    0.9952749928    2.0417410947    
 H    0.6413826192    1.8120363975    -0.5192614915   
 H    1.8380640415    0.5197172154    -0.5618321036   
 H    0.3372119084    -0.8234901635   -1.7989347999   
 H    -0.853929533    0.4626502468    -1.7562689606   
 H    -1.7485841707   -1.6103278151   -0.2892176398   
 H    -0.9193901988   -0.9217594675   2.1255852213    
$end

$rem
METHOD      B2PLYP
BASIS       def2-QZVPP
SYM_IGNORE   TRUE
INTERNAL_STABILITY  FALSE
SCF_GUESS   AUTOSAD
MAX_SCF_CYCLES 2000
SCF_ALGORITHM DM
mem_total 32000
mem_static 16000
$end

Why do you want to use SCF_ALGORITHM = DM? That’s typically an extremely slow convergence algorithm and likely your AUTOSAD atomic calculations are failing to converge. (There should be a note in the output if this is the case, saying that Q-Chem is switching to the CORE guess, which will be slow.) If you insist on using DM, then perhaps turn it off during the AUTOSAD step with

$rem_frgm
SCF_ALGORITHM DIIS
$end

but I would also recommend DIIS or DIIS_GDM for the regular SCF.

Thank you for the reply. I am exploring the various optimization algorithms available to address reviewer comments regarding that topic.

I tried implementing your suggestion, but that calculation failed with the same error. Both calculations seem (I think) to have finished generating the initial AUTOSAD guess given the following lines in the output:

 ================ Generating on-the-fly SAD Guess ================
...
 ============= Method Specific SAD Guess Constructed =============

Additionally, I worry this may be an issue with the combination of DM + AUTOSAD, as this combination failed for 15 separate calculations across 5 geometries and 3 methods, while no other combination of algorithm (8 were tested) + guess (5 were tested) failed in this same way.

I suspect the issue may be that AUTOSAD uses both METHOD and BASIS for the atomic fragment calculations and somehow the double hybrid functional is not playing well with that. I was able to get this to converge (even using DM algorithm) by a sequential process of (a) first converging B3LYP orbitals, which itself required basis-set projection due to the quadruple-zeta basis, then (b) reading those orbitals as a guess for B2PLYP calculation. Input file below.

$molecule
0 3
 C    0.7927183308    0.7454394837    -0.3427446254   
 C    -0.2003533756   -0.1482743079   -1.1271418072   
 C    -0.9693566182   -0.8952840491   -0.0770020186   
 C    -0.5383953122   -0.5379775751   1.1905764445    
 C    0.4736735207    0.401996042     1.114501686     
 O    1.1469597878    0.9952749928    2.0417410947    
 H    0.6413826192    1.8120363975    -0.5192614915   
 H    1.8380640415    0.5197172154    -0.5618321036   
 H    0.3372119084    -0.8234901635   -1.7989347999   
 H    -0.853929533    0.4626502468    -1.7562689606   
 H    -1.7485841707   -1.6103278151   -0.2892176398   
 H    -0.9193901988   -0.9217594675   2.1255852213    
$end

$rem
method b3lyp
basis def2-qzvpp
basis2 def2-sv(p)
thresh 12
s2thresh 14
purecart 2222
mem_total 10000
$end

@@@

$molecule
read
$end

$rem
scf_guess read
METHOD      B2PLYP
BASIS       def2-QZVPP
SYM_IGNORE   TRUE
INTERNAL_STABILITY  FALSE
!SCF_GUESS   AUTOSAD
MAX_SCF_CYCLES 2000
SCF_ALGORITHM DM
mem_total 32000
mem_static 16000
thresh 12
s2thresh 14
scf_print_frgm true
purecart 2222
$end


$rem_frgm
scf_algorithm diis_gdm
$end

What does this mean? If you want to check whether there are multiple SCF solutions for your studied molecule, maybe there is no need to try other initial guesses that are poor, slow or seldom used. My suggestion is to firstly check the wave function stability of the SCF part of B2PLYP, and see if the current KS-DFT wave function is stable. If it is not stable, there would be a stable wave function with lower electronic energy (thus you can find another and also better SCF solution). My experience is that perturbation methods (inluding MP2 and double hybrid DFT like B2PLYP) based on an instable reference wave function will lead to a larger correlation energy (i.e. a more negative value), so the total energy appears lower than that obtained from a stable reference wave function, but this is not a good thing and it easily makes users confused.

There are also many other useful techniques to find possible SCF solutions like starting from MOs obtained at another spin multiplicity. For example, if your target is a triplet calculation, the initial guess MOs can be a set of converged MOs from quintuplet or broken symmetry singlet. But again I want to address that when the triplet SCF is converged, it would be better to check the wave function stability. Using an instable wave function to perform the B2PLYP calculation is usually not a good choice (unless you are an expert and you know exactly what you are doing).