Convergence issues


Click here for full thread
Forum Vet
Dear NWChem developers and community members,

I’m running into a problem that I am unable to resolve and would like to ask for your help. The problem is that I’m generally unable to achieve SCF convergence on relatively simple organic molecules when using a basis with diffuse functions. Specifically, basis sets of the aug-pc-X and aug-cc-pVXZ type are problematic. I’m encountering the problem with NWChem versions 6.0, 6.1, and 6.1.1.

To help with convergence, I first run an energy calculation with the basis set without diffuse functions, then read in the converged vectors for a second energy calculation with diffuse functions added. Unfortunately, this has not helped in the majority of cases. The calculation without diffuse functions runs fine, but the calculation with the diffuse functions has a large DIIS error from the start on and typically starts to diverge after a few iterations (below is an example).

d= 0,ls=0.0,diis     1   -539.3212395974 -1.31D+03  7.60D-01  9.07D+00   148.1
d= 0,ls=0.0,diis 2 -539.3492153346 -2.80D-02 9.04D-04 7.74D+03 203.8
d= 0,ls=0.0,diis 3 -539.3492043060 1.10D-05 5.63D-02 7.74D+03 259.4
d= 0,ls=0.0,diis 4 -539.3468186446 2.39D-03 3.37D-03 7.75D+03 315.1
d= 0,ls=0.0,diis 5 -539.3474219125 -6.03D-04 2.94D-02 7.75D+03 370.9
d= 0,ls=0.0,diis 6 -539.3484646008 -1.04D-03 5.10D-02 7.73D+03 426.6
d= 0,ls=0.0,diis 7 -539.3490772651 -6.13D-04 4.11D-02 7.73D+03 482.3
d= 0,ls=0.0,diis 8 -539.3475847257 1.49D-03 8.91D-02 7.73D+03 538.7
d= 0,ls=0.0,diis 9 -539.3447532079 2.83D-03 7.63D-03 7.73D+03 594.5
d= 0,ls=0.0,diis 10 -539.3450053401 -2.52D-04 7.80D-02 7.73D+03 650.2
d= 0,ls=0.0,diis 11 -539.3453092257 -3.04D-04 1.02D+04 7.74D+03 705.8
Grid integrated density: 94.000042075022
Requested integration accuracy: 0.10E-07
d= 0,ls=0.5,diis 12 -3005.8035648386 -2.47D+03 8.44D+02 3.75D+11 764.3
Grid integrated density: 94.000041943620
Requested integration accuracy: 0.10E-07
d= 0,ls=0.5,diis 13 -337.1543884878 2.67D+03 1.24D+03 7.09D+11 822.8
Grid integrated density: 94.000035846688
Requested integration accuracy: 0.10E-07
d= 0,ls=0.5,diis 14 375.2187617181 7.12D+02 1.09D+04 7.66D+10 881.2
Grid integrated density: 94.000021289358
Requested integration accuracy: 0.10E-07
d= 0,ls=0.5,diis 15 460.6161514873 8.54D+01 4.54D+03 4.84D+10 939.7
Grid integrated density: 94.000003943278
Requested integration accuracy: 0.10E-07
d= 0,ls=0.5,diis 16 -518.7285508120 -9.79D+02 3.60D+02 9.40D+06 998.2
Grid integrated density: 94.000003158007
Requested integration accuracy: 0.10E-07
d= 0,ls=0.5,diis 17 -533.3548415213 -1.46D+01 1.36D+02 1.18D+07 1056.7
Grid integrated density: 94.000003137809
Requested integration accuracy: 0.10E-07
d= 0,ls=0.5,diis 18 -430.1794423581 1.03D+02 5.55D+02 5.74D+09 1115.2
Grid integrated density: 94.000003397106
Requested integration accuracy: 0.10E-07
d= 0,ls=0.5,diis 19 -542.7589569074 -1.13D+02 3.70D+03 1.91D+07 1173.7
Grid integrated density: 94.000001434088
Requested integration accuracy: 0.10E-07
d= 0,ls=0.5,diis 20 -532.1381465702 1.06D+01 8.53D+00 2.94D+04 1231.3
Grid integrated density: 94.000001399588
Requested integration accuracy: 0.10E-07
d= 0,ls=0.5,diis 21 -531.7068488856 4.31D-01 1.79D+01 2.35D+04 1289.0
d= 0,ls=0.5,diis 22 -532.9625586983 -1.26D+00 4.52D+03 7.90D+03 1345.4


I’ve tried many things in order to improve convergence, such as increasing the accuracy of various cutoffs, improving the DFT grid, level shifting, dampening, all to no avail.

Strangely enough, however, I found that for many cases specifying “set lindep:n_dep 0” will cause the calculation to converge without a problem (provided the degree of partial linear dependence isn’t too large). When setting “set lindep:n_dep” or “set lindep:tol” such that only one vector is removed prior to the second calculation, the problem immediately reappears.

To me this makes no sense, as I understood that SCF convergence should usually improve upon removing linear dependent vectors, not worsen. Did I perhaps encounter a bug? Or did I overlook an important setting?

I would greatly appreciate if someone could help me with getting the calculation to convergence without having to set “set lindep:n_dep 0”. Below is the input of my calculation. Thank you in advance.


Kind regards,
Thom


start phenanthrene
geometry
C 0.00000000 2.84859800 0.88680600
C 0.00000000 3.57955900 -0.29438700
C 0.00000000 2.89936800 -1.53469700
C 0.00000000 1.50842000 -1.57667000
C 0.00000000 0.73043500 -0.38774400
C 0.00000000 1.42795200 0.87014000
C 0.00000000 -0.73043500 -0.38774400
C 0.00000000 -1.42795200 0.87014000
C 0.00000000 -0.68487000 2.10145900
C 0.00000000 0.68487000 2.10145900
C 0.00000000 -1.50842000 -1.57667000
C 0.00000000 -2.89936800 -1.53469700
C 0.00000000 -3.57955900 -0.29438700
C 0.00000000 -2.84859800 0.88680600
H 0.00000000 3.35683000 1.85437700
H 0.00000000 4.67108900 -0.26819800
H 0.00000000 -1.24321500 3.04075300
H 0.00000000 1.24321500 3.04075300
H 0.00000000 -1.01691100 -2.54926800
H 0.00000000 -3.46767400 -2.46710500
H 0.00000000 -4.67108900 -0.26819800
H 0.00000000 -3.35683000 1.85437700
H 0.00000000 3.46767400 -2.46710500
H 0.00000000 1.01691100 -2.54926800
symmetry c2v
end

basis "small" spherical
H library cc-pVDZ
C library cc-pVDZ
end

basis "large" spherical
H library aug-cc-pVDZ
C library aug-cc-pVDZ
end

set "ao basis" small

scf
tol2e 1e-12
end

dft
 xc becke88 1.0 lyp 1.0
grid xfine
tolerances tight
direct
iterations 100
vectors input atomic output smallbasis.movecs
end

task dft energy

set "ao basis" large

dft
xc becke88 1.0 lyp 1.0
grid xfine
tolerances tight
direct
iterations 100
vectors input project "small" smallbasis.movecs output largebasis.movecs
end

task dft energy