libint
libint copied to clipboard
test-permute failure (Libint 2.7.2 with GCC-11.3.0)
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
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??