evaleev / libint

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

Enabling 3-Center ERI derivatives throws exception in libint compiler #86

Closed wavefunction91 closed 6 years ago

wavefunction91 commented 6 years ago

Configuring Libint with `--enable-eri3=1 causes an exception to be thrown in the libint compiler

RecurrenceRelation::generate_generic_code: target = < d100(0) k(1) | TwoPRep | unit(0) s(1) > ^ { {0} }

  WARNING! Caught a standard exception:
    vector::_M_range_check: __n (which is 6) >= this->size() (which is 6)

../../../src/lib/MakeRules:118: recipe for target 'tmp/libint/libint2_params.h' failed

with the configure invocation

../libint/configure \
--disable-1body-property-derivs \
--enable-eri=1 \
--enable-1body=1 \
--enable-eri3=1 \
--enable-eri2=1 \
--with-max-am=5 \
--with-opt-am=3 \
--disable-unrolling \
--enable-generic-code \
--enable-contracted-ints \
--with-incdirs='-I/home/dbwy/local/include/eigen3 -I/home/dbwy/local/boost/1.59/include/boost' \
--with-libdirs='-L/home/dbwy/local/boost/1.59/lib' \
--with-cxx=g++ \
--with-cxx-optflags="-std=c++11 -O3" \
--with-cxxgen-optflags="-std=c++11 -O3" \
--prefix=/home/dbwy/local

This problem happens both with gcc and icpc. No problems when --enable-eri3=0 is passed

wavefunction91 commented 6 years ago

Was this resolved in 0368483bc80ce10125f89dccf8134c3938d65843 ?

evaleev commented 6 years ago

I resolved the immediate issue raised by this, but I am still working on another related problem ... feel free to try, it might work already for your configuration.