theochem / gbasis

Python library for analytical evaluation and integration of Gaussian-type basis functions and related quantities.
http://gbasis.qcdevs.org/
GNU Lesser General Public License v3.0
36 stars 22 forks source link

2-Electron Integrals #6

Closed FarnazH closed 5 years ago

FarnazH commented 5 years ago

Given 4 shells and centers compute integrals.

PaulWAyers commented 5 years ago

This would have a form like compute_2el(shell1,center1,shell2,center2,shell3,center3,shell4,center4,conventions) but could be a tuple of shells,centers,conventions too.

This should wrap a lower-level function that supports unconventional (e.g., range-separated) 2-electron integrals, something like `compute_2el_type(shells,centers,conventions,Boys_function) where different types of Boys functions can be passed depending on the integral of interest.

Algorithm should be basically Obara-Saika. Not so important to have bleeding-edge performance here but should try not to be stupid.... OS1 (cf. Helgaker) or Hamilton-Schaefer or PRISM or Ishida or....

I'm OK with McMurchie-Davidson too, though.

PaulWAyers commented 5 years ago

Use mpmath for the Boys function. It means that we get arbitrary-precision integrals 'for free.' Performance is good at standard precision too, and the next Intel hardware may even support arbitrary precision natively.

http://mpmath.org/

kimt33 commented 5 years ago

See https://github.com/theochem/gbasis/blob/master/gbasis/electron_repulsion.py