merzlab / QUICK

QUICK: A GPU-enabled ab intio quantum chemistry software package
Mozilla Public License 2.0
157 stars 43 forks source link

SCF fails with cc-pvtz basis set #64

Closed merzlab closed 3 years ago

merzlab commented 3 years ago

The following calculation fails after two SCF iterations.

Input: HF BASIS=cc-pvtz cutoff=1.0e-9 denserms=1.0e-6 zmake ENERGY DIPOLE CHARGE=+1

C -2.74724163 -0.83655480 0.85891890 C -1.45690243 -0.47166414 0.99917288 C -0.62772841 -0.22145348 -0.15324144 C 0.68944541 0.15260156 -0.20171919 C 1.48823343 0.36448923 0.95078019 N 2.73140279 0.71794292 0.90370531 H 1.15299007 0.29662735 -1.16123028 H -1.11028708 -0.34629454 -1.10667741 H 1.08266370 0.23672479 1.93583665 H -1.04825008 -0.36804581 1.98774361 H 3.26866760 0.85959058 1.73675486 H 3.20838915 0.86445595 0.03379823 H -3.36885475 -1.02411938 1.71303219 H -3.20113376 -0.95331433 -0.10812450

Output: @ Begin Energy Calculation

                                     SCF ENERGY

NCYC ENERGY DELTA_E SCF_TIME DII_CYC DII_TIME O_TIME DIAG_TIME MAX_ERR RMS_CHG MAX_CHG

| 1 -250.943537035 ------ 1.449 1 0.05 1.39 0.03 0.2731E+01 0.1150E+02 0.7259E+03 | 2 **** 0.557176E+08 1.796 2 0.06 1.74 0.03 0.1515E+06 0.2701E+02 0.1714E+04 DIIS FAILED !! PERFORM NORMAL SCF. (NOT FATAL.) | 3 **** 0.206646E+09 0.843 3 0.06 0.78 0.03 0.1524E+06 0.1093E+02 0.6932E+03 DIIS FAILED !! PERFORM NORMAL SCF. (NOT FATAL.)

QUICK version: v21.03, serial executable Compiler: GNU/9.3.1 System: Centos 7, 3.10.0-1127.18.2.el7.x86_64 CPU: Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz Memory: 64 GB

merzlab commented 3 years ago

The same thing happens with acetonitrile.

Input: HF BASIS=cc-pvtz cutoff=1.0e-9 denserms=1.0e-8 ENERGY

C 0.5534158569E+01 0.6730698228E+01 0.5166842228E+01 C 0.6324601204E+01 0.5969268875E+01 0.6087545514E+01 N 0.6971480788E+01 0.5354087606E+01 0.6840644671E+01 H 0.5969591663E+01 0.7717410041E+01 0.5009731708E+01 H 0.5472268339E+01 0.6224120606E+01 0.4203000810E+01 H 0.4520469187E+01 0.6860013384E+01 0.5548530178E+01

Output: SCF ENERGY

NCYC ENERGY DELTA_E SCF_TIME DII_CYC DII_TIME O_TIME DIAG_TIME MAX_ERR RMS_CHG MAX_CHG

| 1 -133.069120492 ------ 4.403 1 0.02 4.39 0.01 0.2435E+01 0.1140E-01 0.2684E+00 | 2 -131.868629004 -.120049E+01 8.231 2 0.02 8.21 0.01 0.4022E+00 0.2426E+02 0.1446E+04 | 3 100326.171892945 -.100458E+06 8.706 3 0.02 8.69 0.01 0.4360E+06 0.1827E+02 0.4156E+03 DIIS FAILED !! PERFORM NORMAL SCF. (NOT FATAL.) | 4 526721.171206998 -.426395E+06 8.650 4 0.02 8.63 0.01 0.6470E+06 0.1841E+02 0.3846E+03 DIIS FAILED !! PERFORM NORMAL SCF. (NOT FATAL.) | 5 **** -.264004E+07 8.677 5 0.02 8.66 0.01 0.1007E+07 0.1757E+02 0.4142E+03 DIIS FAILED !! PERFORM NORMAL SCF. (NOT FATAL.)

Madu86 commented 3 years ago

I have fixed this problem in serial and MPI versions. The cause was wrong Boys function values computed for high angular momentum ERIs. This has been resolved in issue #84. The acetnotirile HF/CC-pVTZ example now converges nicely.

@ Begin Energy Calculation

                                         SCF ENERGY
------------------------------------------------------------------------------------------------------------------------
NCYC       ENERGY         DELTA_E      SCF_TIME  DII_CYC   DII_TIME   O_TIME  DIAG_TIME    MAX_ERR    RMS_CHG    MAX_CHG
------------------------------------------------------------------------------------------------------------------------
|  1   -133.069120188      ------         4.637     1        0.02      4.61      0.01    0.2435E+01  0.1140E-01  0.2685E+00
|  2   -131.864393956  -.120473E+01       8.635     2        0.02      8.61      0.01    0.1298E+00  0.4285E-02  0.9198E-01
|  3   -131.914560352  0.501664E-01       8.651     3        0.02      8.63      0.01    0.1258E+00  0.2384E-02  0.7557E-01
|  4   -131.966149957  0.515896E-01       8.661     4        0.02      8.64      0.01    0.1727E-01  0.6568E-03  0.1160E-01
|  5   -131.969769421  0.361946E-02       8.644     5        0.02      8.62      0.01    0.8351E-02  0.3203E-03  0.6001E-02
|  6   -131.970593390  0.823969E-03       8.660     6        0.02      8.64      0.01    0.5042E-02  0.1728E-03  0.3699E-02
|  7   -131.970890706  0.297317E-03       8.647     7        0.02      8.62      0.01    0.2350E-02  0.1106E-03  0.2406E-02
|  8   -131.970972556  0.818501E-04       8.645     8        0.02      8.62      0.01    0.7797E-03  0.3551E-04  0.6529E-03
|  9   -131.970978595  0.603913E-05       8.652     9        0.02      8.63      0.01    0.1658E-03  0.6300E-05  0.1093E-03
| 10   -131.970978771  0.175631E-06       8.646    10        0.02      8.62      0.01    0.3057E-04  0.9155E-06  0.1712E-04
    | -------------- 2E-INT CUTOFF CHANGE TO 0.1000E-09 ------------
| 11   -131.970978778  0.704242E-08       8.905     1        0.02      8.88      0.01    0.5298E-05  0.2726E-06  0.5137E-05
| 12   -131.970978779  0.382819E-09       8.897     2        0.02      8.87      0.01    0.1524E-05  0.7440E-07  0.1204E-05
    | -------------- 2E-INT CUTOFF CHANGE TO 0.1000E-10 ------------
| 13   -131.970978779  0.384617E-10       9.128     3        0.02      9.11      0.01    0.5188E-06  0.2232E-07  0.3901E-06
| 14   -131.970978779  0.191136E-11       9.123     4        0.02      9.10      0.01    0.2013E-06  0.5436E-08  0.9184E-07
------------------------------------------------------------------------------------------------------------------------
| REACH CONVERGENCE AFTER  14 CYLCES
| MAX ERROR = 0.201310E-06   RMS CHANGE = 0.543573E-08   MAX CHANGE = 0.918411E-07
 -----------------------------------------------
 ELECTRONIC ENERGY    =  -190.572869826
 CORE_CORE REPULSION  =    58.601891048
 TOTAL ENERGY         =  -131.970978779

 @ End Energy calculation
Madu86 commented 3 years ago

In CUDA version, fixing FmT partially solves the issue (eg. water90 B3LYP/DEF2-SVPD). However, there is a second issue related to f kernels, which requires further investigation. Until this is resolved, we will temporarily disable energy calculations with f functions in CUDA version.