evaleev / libint

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

Composite shells support. #189

Closed JensWehner closed 3 years ago

JensWehner commented 3 years ago

Hello,

I could not find any documentation on the issue and the intricacies of the source code are beyond me. I saw that libint::Shell supports contractions with different angular momenta. So it seems to support SP shells. Does it internally split those shells up into pure L shells or is there a performance benefit of using combined shells in libint? If supporting combined shells is useful, does libint also allow for SD or PF shells, i.e with a non-contiguous range of L. Can I make a SPDF shell?

Thanks for the great library.

evaleev commented 3 years ago

Dear @JensWehner : unfortunately the Engine does not yet support generally-contracted shells, e.g. see https://github.com/evaleev/libint/blob/master/include/libint2/engine.impl.h#L175 . For SP shells it should be possible to actually generate optimized code, but again lack of time and low priority keeps pushing this into the future ...

evaleev commented 3 years ago

Also: @JensWehner Shells are indeed completely general, so yes, a shell can be created with 1 P contraction and 1 F contraction, i.e. the PF shell. But Engine cannot use such Shells yet.

JensWehner commented 3 years ago

Thanks that makes the implementation easier.