mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-11-07 06:33:39 +01:00
44 lines
729 B
OCaml
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 ;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|