wb97M-v convergence issue

Hello,

I am having difficulty getting my system to converge using wb97M-v/aug-cc-pvqz. It was optimized using MP2/AVDZ without any issues. I also ran a wB97M-v/aug-cc-pvdz single-point calculation, and since it had difficulty converging, I had to add the following lines to my input:

SCF_ALGORITHM DIIS_GDM
MAX_SCF_CYCLES 450

With these modifications, it converged successfully.

Now, the issue arises with the same system when using the aug-cc-pvqz basis set. I have tried various options for SCF_ALGORITHM , including DIIS, DIIS_DM, DIIS_GDM, RCA, and RCA_DIIS, but it consistently fails to converge.

I am unsure what I might have done wrong or what I am missing, and I am not sure how to resolve it. I suspect I might be making an error, which is why I am posting this thread instead to send the email.

Any help would be greatly appreciated!
Best


$molecule
0 1
C         1.330307651391     -0.817109243521      0.000000000000
H         0.175078118738      2.433949606421      0.000000000000
H         2.269377861117      1.155189431946      0.000000000000
C         1.330266678005      0.598376231046      0.000000000000
C         0.136265548388      1.338839799594      0.000000000000
C        -1.103236826001      0.675367879821      0.000000000000
O        -2.314598526645      1.336809213870      0.000000000000
H        -2.146369494397      2.290316020405      0.000000000000
C        -1.134850042814     -0.729374474159      0.000000000000
C         0.065084777839     -1.455828571205      0.000000000000
H        -0.006348990522     -2.545237686719      0.000000000000
H        -2.101295717888     -1.240267423042      0.000000000000
C         2.601287057729     -1.599117207218      0.000000000000
C         2.599810652671     -3.014500681441      0.000000000000
C         3.792790574188     -3.756574631924      0.000000000000
C         5.033081640692     -3.094667412419      0.000000000000
C         5.066449719913     -1.689924522553      0.000000000000
C         3.867368240973     -0.961901319386      0.000000000000
O         6.243669001787     -3.757504168867      0.000000000000
H         6.074345328813     -4.710818218505      0.000000000000
H         1.660223645840     -3.570456722770      0.000000000000
H         3.752496522501     -4.851617028506      0.000000000000
H         3.939960378501      0.127470165306      0.000000000000
H         6.033537199181     -1.180239036175      0.000000000000
$end

$rem
jobtype sp
method wb97m-v
basis aug-cc-pvqz
MAX_SCF_CYCLES 450 
mem_total 5000
mem_static 2000
SCF_ALGORITHM DIIS_GDM
$end

PS: The following code input was done using Q-chem 5.0 since my university does not provide the newest one

For that large of a basis set, you need to set THRESH = 14 and S2THRESH = 16; there is likely a warning to this effect in the Q-Chem output. I would try that with DIIS before resorting to DIIS_GDM, which is slow. If that doesn’t work, use basis-set projection by setting BASIS2 = 6-31G* or something along those lines (you can try aug-cc-pVTZ as your initial basis but often something rather small works okay).

Indeed, I ran your input and here is the message in the output (which you should always be reading for clues):

 Linear dependence detected in AO basis
 Tighter screening thresholds may be required for diffuse basis sets
 Use S2THRESH > 14 and THRESH = 14 in case of SCF convergence issues
 Number of orthogonalized atomic orbitals = 1560

You can see this paper for a discussion on why tightening thresholds can make jobs run faster in the presence of diffuse functions:
https://doi.org/10.1021/acs.jpca.4c00283

In later versions of Q-Chem than what you are using, the value of THRESH was tightened a bit by default, and I think Q-Chem v. 6.3 will have some additional automated tools along these lines.

Hello,

Thank you for the detailed explanation. I appreciate the recommendation regarding tightening the thresholds. I started by setting THRESH = 14 and S2THRESH = 16 with DIIS, and this has now made my calculation converge.

Thanks again for your help!

Good. In Q-Chem v. 5, the default is THRESH=8 for single-point calculations, which is simply too loose when there are (near)-linear dependencies, as will inevitably be the case in large basis sets and/or large molecules. Starting in v. 6 this was increased to THRESH=9 for single-point calculations, which is still too loose for large molecules, in my experience. A warning message gets printed telling you to tighten the thresholds when there are linear dependencies (as assessed based on eigenvalues of the overlap matrix), but most users ignore such messages. (They should not!)

Note that the defaults for geometry optimizations are tighter by a factor of 1000 (i.e., THRESH=12 starting in v. 6.0) and that is generally sufficient.