mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-11-19 04:22:21 +01:00
33 lines
682 B
OCaml
33 lines
682 B
OCaml
|
(** Two electron integral functor for operators that are separable among %{ $(x,y,z)$ %}.
|
||
|
It is parameterized by the [zero_m] function.
|
||
|
*)
|
||
|
|
||
|
open Qcaml_common
|
||
|
open Qcaml_operators
|
||
|
|
||
|
open Constants
|
||
|
let cutoff = integrals_cutoff
|
||
|
|
||
|
module T = struct
|
||
|
|
||
|
let name = "F12"
|
||
|
|
||
|
let class_of_contracted_shell_pair_couple ?operator shell_pair_couple =
|
||
|
let g =
|
||
|
match operator with
|
||
|
| Some (Operator.F12 f) -> f.gaussian
|
||
|
| _ -> failwith "Expected F12 operator"
|
||
|
in
|
||
|
F12_rr.contracted_class_shell_pair_couple
|
||
|
g.Gaussian_operator.expo_g_inv
|
||
|
g.Gaussian_operator.coef_g
|
||
|
shell_pair_couple
|
||
|
|
||
|
end
|
||
|
|
||
|
module M = Two_electron_integrals.Make(T)
|
||
|
include M
|
||
|
|
||
|
|
||
|
|