QCaml/Simulation.ml

31 lines
697 B
OCaml
Raw Normal View History

2018-02-09 00:42:26 +01:00
type t = {
basis : Basis.t;
nuclei : Nuclei.t;
overlap : Overlap.t lazy_t;
eN_ints : NucInt.t lazy_t;
kin_ints : KinInt.t lazy_t;
ee_ints : ERI.t lazy_t;
2018-02-20 23:54:48 +01:00
nuclear_repulsion : float;
2018-02-09 00:42:26 +01:00
}
let make ~nuclei ~basis =
{
basis ; nuclei ;
overlap = lazy (Overlap.of_basis basis);
eN_ints = lazy (NucInt.of_basis_nuclei basis nuclei);
kin_ints = lazy (KinInt.of_basis basis);
ee_ints = lazy (ERI.of_basis basis);
2018-02-20 23:54:48 +01:00
nuclear_repulsion = Nuclei.repulsion nuclei;
2018-02-09 00:42:26 +01:00
}
let of_filenames ~basis ~nuclei =
let nuclei =
Nuclei.of_filename ~filename:nuclei
in
let basis =
Basis.of_nuclei_and_basis_filename ~nuclei ~filename:basis
in
make ~nuclei ~basis