evaleev / libint

Libint: high-performance library for computing Gaussian integrals in quantum mechanics
Other
218 stars 96 forks source link

test-permute failure (Libint 2.7.2 with GCC-11.3.0) #252

Open benczaja opened 1 year ago

benczaja commented 1 year ago

When building Libint 2.7.2 with GCC-11.3.0 I am getting a failure with the test-permute. I am compiling/testing on a AMD EPYC 7H12 64-Core Processor with Red Hat Enterprise Linux 8.4.

The test output:

make[1]: Entering directory '/gpfs/scratch1/Libint/2.7.2/GCC-11.3.0-lmax-6-cp2k/libint-2.7.2/tests/unit'
./test

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test is a Catch v2.13.4 host application.
Run with -? for options

-------------------------------------------------------------------------------
2-e 3-c integrals permute correctly
  deriv_order=1
-------------------------------------------------------------------------------
test-permute.cc:542
...............................................................................

test-permute.cc:301: FAILED:
  REQUIRE( shellset[dd][ff123] == Approx(shellset_ref[d][f123]).margin(abs_precision) )
with expansion:
  0.0 == Approx( 0.5025276008 )

name=3-21g
name=6-311g**
name=6-31g
name=6-31g*
name=6-31g**
name=ano-rcc
name=aug-cc-pv5z-cabs
name=aug-cc-pvdz-cabs
name=aug-cc-pvqz-cabs
name=aug-cc-pvtz-cabs
name=augmentation-cc-pv5z
name=augmentation-cc-pv5z-jkfit
name=augmentation-cc-pv5z-ri
name=augmentation-cc-pv6z
name=augmentation-cc-pv6z-ri
name=augmentation-cc-pvdz
name=augmentation-cc-pvdz-jkfit
name=augmentation-cc-pvdz-ri
name=augmentation-cc-pvqz
name=augmentation-cc-pvqz-jkfit
name=augmentation-cc-pvqz-ri
name=augmentation-cc-pvtz
name=augmentation-cc-pvtz-jkfit
name=augmentation-cc-pvtz-ri
name=cc-pv5z
name=cc-pv5z-jkfit
name=cc-pv5z-ri
name=cc-pv6z
name=cc-pv6z-ri
name=cc-pvdz
name=cc-pvdz-f12
name=cc-pvdz-f12-cabs
name=cc-pvdz-jkfit
name=cc-pvdz-ri
name=cc-pvqz
name=cc-pvqz-f12
name=cc-pvqz-f12-cabs
name=cc-pvqz-jkfit
name=cc-pvqz-ri
name=cc-pvtz
name=cc-pvtz-f12
name=cc-pvtz-f12-cabs
name=cc-pvtz-jkfit
name=cc-pvtz-ri
name=def2-qzvp
name=def2-qzvp-c
name=def2-qzvp-j
name=def2-qzvp-jk
name=def2-qzvpd
name=def2-qzvpp
name=def2-qzvpp-c
name=def2-qzvpp-j
name=def2-qzvpp-jk
name=def2-qzvppd
name=def2-qzvppd-c
name=def2-sv
name=def2-sv(p)
name=def2-sv(p)-c
name=def2-sv(p)-j
name=def2-sv(p)-jk
name=def2-svp
name=def2-svp-c
name=def2-svp-j
name=def2-svp-jk
name=def2-svpd
name=def2-svpd-c
name=def2-tzvp
name=def2-tzvp-c
name=def2-tzvp-j
name=def2-tzvp-jk
name=def2-tzvpd
name=def2-tzvpd-c
name=def2-tzvpp
name=def2-tzvpp-c
name=def2-tzvpp-j
name=def2-tzvpp-jk
name=def2-tzvppd
name=def2-tzvppd-c
name=mini
name=sto-3g
name=sto-6g
===============================================================================
test cases:       17 |       16 passed | 1 failed
assertions: 19593395 | 19593394 passed | 1 failed
benczaja commented 1 year ago

I can "get around" the 2-e 3-c integrals permute deriv_order=1 test with the following patch:

diff -W 152 -Nru libint-2.7.2-orig/tests/unit/test-permute.cc libint-2.7.2/tests/unit/test-permute.cc
--- libint-2.7.2-orig/tests/unit/test-permute.cc        2022-06-20 07:51:55.000000000 +0200
+++ libint-2.7.2/tests/unit/test-permute.cc     2022-08-17 11:29:30.415136451 +0200
@@ -539,9 +539,9 @@
   SECTION( "deriv_order=0" ) {
     validate3<0>(obs, dfbs, atoms);
   }  // section
-  SECTION( "deriv_order=1" ) {
-    validate3<1>(obs, dfbs, atoms);
-  }  // section
+  //  SECTION( "deriv_order=1" ) {
+  // validate3<1>(obs, dfbs, atoms);
+  // }  // section
   SECTION( "deriv_order=2" ) {
     validate3<2>(obs, dfbs, atoms);
   }  // section

But I would like to check with you if this is ok to implement??