2019-03-23 14:54:59 +01:00
|
|
|
(** Two electron integral functor for operators that are separable among %{ $(x,y,z)$ %}.
|
|
|
|
It is parameterized by the [zero_m] function.
|
2019-03-13 22:02:08 +01:00
|
|
|
*)
|
|
|
|
|
2019-03-23 14:54:59 +01:00
|
|
|
open Constants
|
|
|
|
let cutoff = integrals_cutoff
|
|
|
|
|
2019-10-24 11:25:49 +02:00
|
|
|
module T = struct
|
2019-03-23 14:54:59 +01:00
|
|
|
|
|
|
|
let name = "F12"
|
|
|
|
|
2019-10-24 11:25:49 +02:00
|
|
|
let f12_factor = F12factor.gaussian_geminal 1.0
|
2019-03-23 14:54:59 +01:00
|
|
|
|
2019-10-24 11:25:49 +02:00
|
|
|
let class_of_contracted_shell_pair_couple shell_pair_couple =
|
|
|
|
let g = f12_factor.F12factor.gaussian in
|
|
|
|
F12RR.contracted_class_shell_pair_couple
|
|
|
|
g.GaussianOperator.expo_sg_inv
|
|
|
|
g.GaussianOperator.coef_g
|
|
|
|
shell_pair_couple
|
2019-03-23 14:54:59 +01:00
|
|
|
|
2019-10-24 11:25:49 +02:00
|
|
|
end
|
2019-03-23 14:54:59 +01:00
|
|
|
|
2019-10-24 11:25:49 +02:00
|
|
|
module M = TwoElectronIntegrals.Make(T)
|
|
|
|
include M
|
2019-03-23 14:54:59 +01:00
|
|
|
|
|
|
|
|
|
|
|
|