QCaml/Basis/F12.ml

31 lines
682 B
OCaml
Raw Normal View History

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"
2020-05-08 01:12:31 +02:00
let class_of_contracted_shell_pair_couple ~basis shell_pair_couple =
2020-05-08 01:16:55 +02:00
let f12 =
match Basis.f12 basis with
| Some f12 -> f12
| None -> invalid_arg "f12 factor should not be None"
in
let g = f12.F12factor.gaussian in
2020-05-08 01:12:31 +02:00
F12RR.contracted_class_shell_pair_couple ~basis
2020-02-17 19:45:53 +01:00
g.GaussianOperator.expo_g_inv
2019-10-24 11:25:49 +02:00
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