QCaml/Basis/AOBasis.ml

44 lines
729 B
OCaml

open Lacaml.D
type t =
{
basis : Basis.t ;
overlap : Overlap.t lazy_t;
ortho : Orthonormalization.t lazy_t;
eN_ints : NucInt.t lazy_t;
ee_ints : ERI.t lazy_t;
kin_ints : KinInt.t lazy_t;
cartesian : bool;
}
let make ~cartesian ~basis nuclei =
let overlap = lazy (
Overlap.of_basis basis
) in
let ortho = lazy (
Orthonormalization.make ~cartesian ~basis (Lazy.force overlap)
) in
let eN_ints = lazy (
NucInt.of_basis_nuclei ~basis nuclei
) in
let kin_ints = lazy (
KinInt.of_basis basis
) in
let ee_ints = lazy (
ERI.of_basis basis
) in
{ basis ; overlap ; ortho ; eN_ints ; kin_ints ; ee_ints ;
cartesian ;
}