Convergence issues


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

Just Got Here
Dear all,

I should clarify that the above message was written by me. However, as I was (for some unknown reason) unable to post it, Bert was kind enough to do so for me.


Kind regards,
Thom

Forum Vet
It seems that the projection from a small basis to a large basis with linear dependencies is creating some problems. I don't know why you have to do the projection because either the cc-pVDZ or aug-cc-pVDZ converge in 9 iterations starting from a default atomic guess, using the input below.

Bert


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

dft
 xc becke88 1.0 lyp 1.0
tolerances tight
direct
iterations 100
end

task dft energy

set "ao basis" large

dft
 xc becke88 1.0 lyp 1.0
tolerances tight
direct
iterations 100
end

task dft energy

Just Got Here
Dear Bert,

Thank you for your reply. The reason I do the projection is because of SCF convergence problems with some of the larger molecules that I would like to calculate on. At least, starting directly from an atomic guess with a larger augmented basis such as aug-cc-pVTZ didn't work for those molecules, which I why I chose to do projection. I agree that projection is not needed for the above example (which was provided solely for demonstrating the projection problem).

Do you know if I can resolve this problem with the projection in some way?


Kind regards,
Thom

Forum Vet
Can you provide an input example of a real system you want to do that fails to converge? This case above is fine with a aug-cc-pVTZ basis set.

One trick I can suggest is to run a Hartree-Fock calculation first and use those vectors as a start for the DFT. An example:

scf
 vectors output test.movecs
end

task scf

dft
 vectors input test.movecs output dft.movecs
end

task dft

Just Got Here
I've tried using a converged Hartree-Fock calculation as starting vectors with a few of my molecules and found that this works well. Thank you for this suggestion.

Kind regards,
Thom

Just Got Here
SCF convergence Failure
Hi , I have been trying to find the ESP charges of NbO3SiO2- molecule but it fails to converge all the time. Can someone help me with this problem? Here is my input file.

kind regards,
Sahan

title cluster1_dft_opt
echo
print medium
geometry noautosym noautoz

Nb     0.000000     0.000000     0.000000
O 0.000000 0.000000 1.820000
O 1.576166 0.000000 -0.910000
O -1.818653 0.000000 -1.050000
Si -3.179196 0.000000 0.113196
O -4.725403 0.000000 -0.433471
O -3.355789 -1.342500 1.283926

end

basis
Nb library lanl2dz_ecp
O library 6-31+G*
Si library 6-31+G*
end

ecp
Nb library lanl2dz_ecp
end

charge -1

dft
iterations 200
xc b3lyp
decomp
end

task dft optimize
task esp

Forum Vet
Sahan92
Please post your NWChem questions to the Google Group, since this website will be shutdown very soon.
Here is the link for the new forum
https://groups.google.com/forum/#!forum/nwchem-forum


Forum >> NWChem's corner >> Running NWChem