CCSD convergence problems with tighter lindep:tol parameter


Just Got Here
Dear NWChem experts,

I have tried the following input to compute the CCSD(T) energy of a benzaldehyde (C7H6O) molecule.

memory stack 1000 heap 100 global 1000 mb
set lindep:tol 1.0e-06

geometry units angstrom
H       8.75720      7.92160     10.48820
H       8.72660      9.04960      8.06760
O       9.88060      8.29200      6.51940
H      11.81780      4.40680      8.51600
H      10.97580      6.22220      7.12940
H       9.60020      6.10680     11.87500
C       9.41580      7.18320     10.03340
C       9.43300      8.26860      7.70880
C       9.83040      7.20160      8.65980
C      10.67580      6.19220      8.17620
C      11.15960      5.14540      8.97080
H      11.03620      4.34320     11.04200
C      10.74500      5.12720     10.34440
C       9.90000      6.13660     10.82820
end

basis spherical
 * library aug-cc-pvdz
end

scf
 semidirect memsize 50000000 filesize 0
 thresh 1.0e-08
end

ccsd
 freeze atomic
 thresh 1.0e-06
 maxiter 200
 diisbas 5
end

task ccsd(t)


The problem here is that during the CCSD iterations the rms error decreases only slowly, and it is hard to get it below 1e-4. Increasing the "diisbas" space to values larger than 5 only helps to stabilize the convergence in general, but still after hundreds of iterations it seems impossible to meet the default convergence criterion for the rms error (less than 1e-6). Playing with the "tol2e" parameter did not help either.

...
-------------------------------------------------------------------------
 iter     correlation     delta       rms       T2     Non-T2      Main
             energy      energy      error      ampl     ampl      Block
                                                time     time      time
-------------------------------------------------------------------------
   1     -1.1314730748 -1.131D+00  5.507D-02    19.33     0.00    12.95
   2     -1.1704806544 -3.901D-02  2.914D-01    18.98     0.01    13.06
   3     -1.1694014932  1.079D-03  8.983D-03    19.15     0.01    13.22
   4     -1.1736828196 -4.281D-03  3.105D-03    19.07     0.01    13.08
   5     -1.1750358517 -1.353D-03  2.367D-03    19.22     0.01    13.22
   6     -1.1750616952 -2.584D-05  4.917D-03    19.15     0.01    13.15
...
  20     -1.1750283271  9.944D-08  2.207D-03    19.39     0.01    13.38
  21     -1.1750291661 -8.389D-07  9.038D-04    19.61     0.01    13.52
  22     -1.1750320100 -2.844D-06  9.332D-04    19.29     0.01    13.28
  23     -1.1750339244 -1.914D-06  9.920D-04    19.15     0.01    13.17
  24     -1.1750237095  1.021D-05  1.520D-03    19.34     0.01    13.33
  25     -1.1750229066  8.029D-07  2.125D-04    19.35     0.01    13.40
  26     -1.1750153962  7.510D-06  7.016D-04    19.15     0.01    13.14
  27     -1.1750172859 -1.890D-06  2.798D-03    19.09     0.01    13.16
...


I also tried to employ the TCE instead of the classical CC code of NWChem:

...
tce
 freeze atomic
 thresh 1.0e-06
 maxiter 200
 diis 5
 lshift 0.0
 2eorb
 2emet 15
 ccsd(t)
end

task tce energy


Same kind of convergence problem here, the CCSD residuum never reaches the default convergence threshold (1e-6), there seems to be a hard limit somewhere around 3e-5, also with different values for the "diis" and "lshift" parameters. The strange thing here is also that the residuum increases during the microcycles:

...
   15   0.0058721120400  -1.1749892104618    41.5    41.7    10.1
 MICROCYCLE DIIS UPDATE:                    15                     5
   16   0.0015301379633  -1.1749241746419    42.9    43.2    10.3
   17   0.0019761456618  -1.1749602667130    42.9    43.1    10.4
   18   0.0031609178508  -1.1749794233376    43.1    43.3    10.2
   19   0.0056086793834  -1.1749960594225    43.3    43.6    10.1
   20   0.0105295930888  -1.1750045587169    42.8    43.0    10.4
 MICROCYCLE DIIS UPDATE:                    20                     5
   21   0.0009727911900  -1.1749396410455    43.1    43.3    10.2
...
   55   0.0004747240041  -1.1750166044034    42.7    42.9    10.3
 MICROCYCLE DIIS UPDATE:                    55                     5
   56   0.0001816606161  -1.1750106882977    42.7    42.9    10.3
   57   0.0001925416601  -1.1750145241198    43.0    43.2    10.2
   58   0.0002210206154  -1.1750151612139    42.7    43.0    10.2
   59   0.0002765153736  -1.1750162777920    42.8    43.1     9.9
   60   0.0003889740905  -1.1750168095973    43.4    43.7     9.9
 MICROCYCLE DIIS UPDATE:                    60                     5
   61   0.0001419390062  -1.1750221743333    43.1    43.3    10.3
...
  195   0.0000364980173  -1.1750178652350    42.3    42.6    10.3
 MICROCYCLE DIIS UPDATE:                   195                     5
  196   0.0000329190537  -1.1750178325642    42.1    42.3    10.5
  197   0.0000329329384  -1.1750178699136    41.9    42.2    10.4
  198   0.0000329950449  -1.1750178580599    42.0    42.3    10.5
  199   0.0000331467713  -1.1750178626538    40.4    40.7     9.7
  200   0.0000335334615  -1.1750178620145    40.5    40.7     9.6


I know that the problem I am having here in general disappears when the "set lindep:tol" parameter in line 2 of the input would be left at its default. But I need to keep this line to ensure that the HF, MP2, and CCSD(T) energies really correspond to the full aug-cc-pVDZ basis set, i.e., no elimination of near linear dependencies. The TCE even issues a warning when linear dependencies were removed "!! WARNING !! The number of MO is less than the number of AO".

Somebody with an idea how to get reasonable CCSD convergence behaviour for systems of the kind described here?

Sincerely,
Christian


Forum >> NWChem's corner >> Running NWChem