Closed FarnazH closed 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.
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.
Given 4
shells
andcenters
compute integrals.