10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-06-30 00:44:18 +02:00
QCaml/gaussian_integrals/lib/two_electron_integrals.mli

37 lines
955 B
OCaml
Raw Normal View History

2020-09-26 16:45:52 +02:00
(** Two-electron integrals with an arbitrary operator, with a functorial interface
parameterized by the fundamental two-electron integrals.
{% $(00|00)^m = \int \int \phi_p(r1) \hat{O} \phi_q(r2) dr_1 dr_2 $ %} : Fundamental two-electron integral
*)
2020-10-09 09:47:57 +02:00
open Common
2020-10-10 10:59:09 +02:00
open Gaussian
2020-10-09 09:47:57 +02:00
open Linear_algebra
open Operators
2020-09-26 16:45:52 +02:00
module type Two_ei_structure =
sig
val name : string
(** Name of the kind of integrals, for printing purposes. *)
val class_of_contracted_shell_pair_couple :
2020-09-28 00:24:36 +02:00
?operator:Operator.t -> Contracted_shell_pair_couple.t -> float Zmap.t
2020-09-26 16:45:52 +02:00
(** Returns an integral class from a couple of contracted shells.
The results is stored in a Zmap.
*)
end
module Make : functor (T : Two_ei_structure) ->
sig
include module type of Four_idx_storage
2020-10-02 23:35:56 +02:00
type t = Basis.t Four_idx_storage.t
2020-09-26 16:45:52 +02:00
2020-10-02 23:35:56 +02:00
val of_basis : ?operator:Operator.t -> Basis.t -> t
2020-09-26 16:45:52 +02:00
(** Compute all ERI's for a given {!Basis.t}. *)
end