mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-11-19 04:22:21 +01:00
43 lines
1.2 KiB
OCaml
43 lines
1.2 KiB
OCaml
(** 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
|
|
|
|
*)
|
|
|
|
|
|
module type Zero_mType =
|
|
sig
|
|
val name : string
|
|
(** Name of the kind of integrals, for printing purposes. *)
|
|
|
|
val zero_m : Zero_m_parameters.t -> float array
|
|
(** The returned float array contains all the {% $(00|00)^m$ %} values, where
|
|
[m] is the index of the array.
|
|
|
|
- [maxm] : Maximum total angular momentum
|
|
- [expo_pq_inv] : {% $1/p + 1/q$ %} where {% $p$ %} and {% $q$ %} are the
|
|
exponents of {% $\phi_p$ %} and {% $\phi_q$ %}
|
|
- [norm_pq_sq] : square of the distance between the centers of
|
|
{% $\phi_p$ %} and {% $\phi_q$ %}
|
|
|
|
*)
|
|
|
|
end
|
|
|
|
|
|
module Make : functor (Zero_m : Zero_mType) ->
|
|
sig
|
|
include module type of FourIdxStorage
|
|
|
|
val filter_contracted_shell_pairs :
|
|
?cutoff:float ->
|
|
ContractedShellPair.t list -> ContractedShellPair.t list
|
|
(** Uses Schwartz screening on contracted shell pairs. *)
|
|
|
|
val of_basis : Basis.t -> t
|
|
(** Compute all ERI's for a given {!Basis.t}. *)
|
|
|
|
end
|
|
|