mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-12-22 12:23:31 +01:00
44 lines
1.3 KiB
OCaml
44 lines
1.3 KiB
OCaml
(** Data structure to represent the molecular orbitals. *)
|
|
open Lacaml.D
|
|
|
|
type mo_class =
|
|
| Core of int
|
|
| Inactive of int
|
|
| Active of int
|
|
| Virtual of int
|
|
| Deleted of int
|
|
|
|
|
|
type mo_type =
|
|
| RHF | ROHF | CASSCF
|
|
| Natural of string
|
|
| Localized of string
|
|
|
|
|
|
type t = private
|
|
{
|
|
ao_basis : AOBasis.t; (* Atomic basis set on which the MOs are built. *)
|
|
mo_type : mo_type; (* Kind of MOs (RHF, CASSCF, Localized... *)
|
|
mo_class : mo_class array; (* CI-Class of the MOs *)
|
|
mo_occupation : Vec.t; (* Occupation numbers *)
|
|
mo_coef : Mat.t; (* Matrix of the MO coefficients in the AO basis *)
|
|
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 *)
|
|
}
|
|
|
|
|
|
|
|
val make : ao_basis:AOBasis.t ->
|
|
mo_type:mo_type ->
|
|
mo_class:mo_class array ->
|
|
mo_occupation:Vec.t ->
|
|
mo_coef:Mat.t ->
|
|
unit -> t
|
|
(** Function to build a data structure representing the molecular orbitals. *)
|
|
|
|
val of_hartree_fock : frozen_core:bool -> HartreeFock_type.t -> t
|
|
(** Build MOs from a Restricted Hartree-Fock calculation. *)
|
|
|
|
|