[Debichem-devel] Bug#695540: nwchem: Grave numerical errors in MCSCF analytical gradients and DFT semidirect calculations

Michael Banck mbanck at debian.org
Sun Dec 9 22:23:03 UTC 2012


Package: nwchem
Version: 6.1-3
Severity: serious
Justification: Renders package unfit for release

Version 6.1 has two grave regressions compared to 6.0:

1. Analytic MCSCF gradients are totally wrong, resulting in non
converging geometry optimizations

2. Semidirect DFT calculations result in qualitatively wrong energies

Ad 1:

This is the input file (QA/tests/mcscf_ch2/mcscf_ch2.nw in the source
tree):

--8<--
echo
start ch2

title "CASSCF for CH2 1A1 - 3B1 splitting at the 3B1 geometry"

geometry units au
  C    0   0     0
  H    0  1.87  -0.82
  symmetry c2v
end

basis
  C library 6-31g**
  H library 6-31g**
end

task scf

mcscf
  active  6
  actelec 6
  state   3B1
end

task mcscf optimize

mcscf
  state  1A1
end

task mcscf
--8<--

This is the output from 6.0-2, piped through "grep ^@ | cut -c -68":

@ Step       Energy      Delta E   Gmax     Grms     Xrms     Xmax  
@ ---- ---------------- -------- -------- -------- -------- --------
@    0     -38.95855140  0.0D+00  0.00740  0.00610  0.00000  0.00000
@    1     -38.95874023 -1.9D-04  0.00103  0.00059  0.00865  0.01516
@    2     -38.95876004 -2.0D-05  0.00046  0.00037  0.00637  0.01345
@    3     -38.95876065 -6.1D-07  0.00000  0.00000  0.00063  0.00132
@    3     -38.95876065 -6.1D-07  0.00000  0.00000  0.00063  0.00132

This is the output from 6.1-3:

@ Step       Energy      Delta E   Gmax     Grms     Xrms     Xmax  
@ ---- ---------------- -------- -------- -------- -------- --------
@    0     -38.95855140  0.0D+00  0.07784  0.07395  0.00000  0.00000
@    1     -38.95696026  1.6D-03  0.05334  0.04885  0.04900  0.10113
@    2     -38.95570226  1.3D-03  0.05502  0.04832  0.01535  0.02930
@    3     -38.95665326 -9.5D-04  0.06689  0.05471  0.01439  0.02852
@    4     -38.95717107 -5.2D-04  0.07566  0.06209  0.01026  0.01901
@    5     -38.95708206  8.9D-05  0.05443  0.05175  0.00229  0.00432
@    6     -38.95701518  6.7D-05  0.07294  0.05985  0.00118  0.00248
@    7     -38.95693884  7.6D-05  0.05269  0.05043  0.00121  0.00256
@    8     -38.95691119  2.8D-05  0.06577  0.05379  0.00042  0.00086
@    9     -38.95691174 -5.5D-07  0.18549  0.15361  0.00002  0.00004
@   10     -38.95697624 -6.4D-05  0.04261  0.03892  0.00115  0.00234
@   11     -38.95700216 -2.6D-05  0.04244  0.03878  0.00044  0.00075
@   12     -38.95842296 -1.4D-03  0.09093  0.07566  0.03564  0.06462
@   13     -38.95819225  2.3D-04  0.09130  0.07554  0.00882  0.01549
@   14     -38.95767335  5.2D-04  0.05886  0.05604  0.01328  0.02317
@   15     -38.95757527  9.8D-05  0.05789  0.05516  0.00206  0.00364
@   16     -38.95736754  2.1D-04  0.05598  0.05343  0.00407  0.00715
@   17     -38.95714460  2.2D-04  0.07376  0.06058  0.00401  0.00704
@   18     -38.95711506  3.0D-05  0.18058  0.14965  0.00049  0.00094
@   19     -38.95711712 -2.1D-06  0.05094  0.04951  0.00004  0.00006
@   20     -38.95711525  1.9D-06  0.04207  0.03840  0.00010  0.00025
@   20     -38.95711525  1.9D-06  0.04207  0.03840  0.00010  0.00025

Note the random values for Gmax (maximum gradient) and Grms (median
gradient).  The test suite calculation aborted after the default maximum
amount of 20 iterations without convergence.

Ad 2:

This is the input file (adopted from
QA/tests/dft_semidirect/dft_semidirect.nw in the source tree, which
shows the same behaviour, but is more expensive to run):

--8<--
echo

start dft_semidirect

memory stack 300 mb heap 150 mb global 250 mb

# do calculation with direct for comparison

set int:txs:limxmem 30000000

geometry units angstrom noautoz nocenter noautosym
O         0.00000000000000      0.00000000000000     -0.26192472620000
H         0.00000000000000      0.77162768440000      0.34261631290000
H         0.00000000000000     -0.77162768440000      0.34261631290000
end

basis "ao basis" spherical
  * library cc-pvdz
end

tddft
  nroots 2
end

dft
  xc b3lyp
  convergence energy 1e-8 density 1e-7 gradient 1e-7
  vectors input atomic
  direct
end

task tddft energy

# test new method of semidirect input

dft
  xc b3lyp
  convergence energy 1e-8 density 1e-7 gradient 1e-7
  vectors input atomic
  semidirect memsize 51200000 filesize 0 # use 400 mb of memory and no disk
end

task tddft energy

# test old method of semidirect input

scf
  semidirect memsize 51200000 filesize 0 # use 400 mb of memory and no disk
end

dft
  xc b3lyp
  convergence energy 1e-8 density 1e-7 gradient 1e-7
  vectors input atomic
end

task tddft energy
--8<--

This is the output from 6.0-2, piped through "egrep -e
'(Total.DFT|Excitation)'":

         Total DFT energy =      -76.420328702970
        Excitation energy =      0.272382539701
        Excitation energy =      0.245024871199
         Total DFT energy =      -76.420328702972
        Excitation energy =      0.272382539704
        Excitation energy =      0.245024871205
         Total DFT energy =      -76.420328702972
        Excitation energy =      0.272382539704
        Excitation energy =      0.245024871205

This is the output from 6.1-3:

         Total DFT energy =      -76.420328702972
        Excitation energy =      0.272382539701
        Excitation energy =      0.245024871199
         Total DFT energy =      -84.163008005292
        Excitation energy =      0.432147825828
        Excitation energy =      0.392466494410
         Total DFT energy =      -92.285951773846
        Excitation energy =      0.586049142135
        Excitation energy =      0.532145253480

Note how the total energies are different for 6.1-3 between the three
(physically identical) runs, same for the excitation energies.


Cheers,

Michael



More information about the Debichem-devel mailing list