2018-06-13 17:49:58 +02:00
|
|
|
(** Data structure for Atomic Orbitals. *)
|
|
|
|
|
2018-07-04 18:08:38 +02:00
|
|
|
type t = private
|
2018-06-13 17:49:58 +02:00
|
|
|
{
|
|
|
|
basis : Basis.t ; (* One-electron basis set *)
|
|
|
|
overlap : Overlap.t lazy_t; (* Overlap matrix *)
|
|
|
|
ortho : Orthonormalization.t lazy_t; (* Orthonormalization matrix of the overlap *)
|
|
|
|
eN_ints : NucInt.t lazy_t; (* Electron-nucleus potential integrals *)
|
|
|
|
ee_ints : ERI.t lazy_t; (* Electron-electron potential integrals *)
|
|
|
|
kin_ints : KinInt.t lazy_t; (* Kinetic energy integrals *)
|
|
|
|
cartesian : bool ; (* If true, use cartesian Gaussians (6d, 10f, ...) *)
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
val make : cartesian:bool -> basis:Basis.t -> Nuclei.t -> t
|
|
|
|
(** Creates the data structure for atomic orbitals from a {Basis.t} and the
|
|
|
|
molecular geometry {Nuclei.t} *)
|
|
|
|
|
|
|
|
|
2018-07-05 00:39:17 +02:00
|
|
|
(** {2 Tests} *)
|
|
|
|
val test_case : t -> unit Alcotest.test_case list
|