evaleev / libint

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

Wrong sizes of libint2_build_3eri #102

Closed pseewald closed 6 years ago

pseewald commented 6 years ago

When I configure libint as

  $ ../configure --with-max-am=2,2 --with-eri-max-am=3,2 --with-eri3-max-am=3,2 --enable-eri=1 --enable-eri3=1 --enable-generic-code

the generated build eri function pointers are declared as follows (in libint2_iface.h):

extern void (*libint2_build_eri[4][4][4][4])(const Libint_t*);
extern void (*libint2_build_eri1[3][3][3][3])(const Libint_t*);
extern void (*libint2_build_3eri[4][3][3])(const Libint_t*);
extern void (*libint2_build_3eri1[3][3][3])(const Libint_t*);

If I'm not wrong all dimensions of libint2_build_3eri should be 4.

evaleev commented 6 years ago

To be able to specify the "fitting" center (center 1) max am separately (to reduce compilation time) since 6ae6d8bbc722db31053a53d5c5201c7a8bd78d5f max L on centers 2 and 3 are set to the values given by --with-max-am, and max L on center 1 is set by --with-eri3-max-am. See https://github.com/evaleev/libint/blame/master/src/bin/libint/build_libint.cc#L641

So the sizes are correct.