open Lacaml.D (** Data structure representing the output of a Hartree-Fock caculation *) type s = { simulation : Simulation.t; (** Simulation which was used for HF calculation *) guess : Guess.t; (** Initial guess *) eigenvectors : Mat.t ; (** Final eigenvectors *) eigenvalues : Vec.t ; (** Final eigenvalues *) occupation : Vec.t ; (** Diagonal of the density matrix *) iterations : (float * float * float) array; energy : float ; (** Final energy *) nuclear_repulsion : float ; (** Nucleus-Nucleus potential energy *) kin_energy : float ; (** Kinetic energy *) eN_energy : float ; (** Electron-nucleus potential energy *) coulomb_energy : float ; (** Electron-Electron potential energy *) exchange_energy : float ; (** Exchange energy *) nocc : int ; (** Number of occupied MOs *) (** Energy, convergence and HOMO-LUMO gap of all iterations *) } type t = | RHF of s (** Restricted Hartree-Fock *) | ROHF of s (** Restricted Open-shell Hartree-Fock *) | UHF of s (** Unrestricted Hartree-Fock *) val to_string : t -> string (** Results of a Hartree-Fock calculation pretty-printed in a string. *)