10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-11-09 15:43:41 +01:00
QCaml/MOBasis/MOBasis.mli

90 lines
2.0 KiB
OCaml
Raw Normal View History

2019-02-20 18:15:15 +01:00
(** Data structure to represent the molecular orbitals.
The MO indices start from 1.
2018-07-20 16:09:06 +02:00
2019-02-20 18:15:15 +01:00
*)
2018-07-20 16:09:06 +02:00
2019-02-20 18:15:15 +01:00
open Lacaml.D
2018-07-20 16:09:06 +02:00
type mo_type =
| RHF | ROHF | UHF | CASSCF | Projected
2019-02-20 18:15:15 +01:00
| Natural of string
| Localized of string
2018-07-20 16:09:06 +02:00
2019-02-20 18:15:15 +01:00
type t
(** {1 Accessors} *)
val simulation : t -> Simulation.t
(** Simulation which produced the MOs *)
val mo_type : t -> mo_type
(** Kind of MOs (RHF, CASSCF, Localized...) *)
val ao_basis : t -> AOBasis.t
(** Matrix of the MO coefficients in the AO basis *)
val mo_occupation : t -> Vec.t
(** Occupation numbers *)
val mo_coef : t -> Mat.t
(** Molecular orbitcal coefficients *)
val eN_ints : t -> NucInt.t
(** Electron-nucleus potential integrals *)
val ee_ints : t -> ERI.t
(** Electron-electron repulsion integrals *)
val kin_ints : t -> KinInt.t
(** Kinetic energy integrals *)
2018-07-20 16:09:06 +02:00
2019-02-22 00:18:32 +01:00
val one_e_ints : t -> Mat.t
(** One-electron integrals {% $\hat{T} + V$ %} *)
val two_e_ints : t -> ERI.t
(** Electron-electron repulsion integrals *)
2019-03-21 00:44:10 +01:00
val f12_ints : t -> F12.t
(** F12 integrals *)
2019-02-19 17:36:07 +01:00
val size : t -> int
(** Number of molecular orbitals in the basis *)
2019-03-18 23:38:01 +01:00
val mo_energies : t -> Vec.t
(** Fock MO energies *)
2020-04-19 18:38:14 +02:00
val values : t -> Coordinate.t -> Vec.t
(** Values of the MOs evaluated at a given coordinate. *)
2019-02-20 18:15:15 +01:00
(** {1 Creators} *)
val make : simulation:Simulation.t ->
2019-02-20 18:15:15 +01:00
mo_type:mo_type ->
mo_occupation:Vec.t ->
mo_coef:Mat.t ->
unit -> t
(** Function to build a data structure representing the molecular orbitals. *)
2019-03-01 21:56:46 +01:00
val of_hartree_fock : HartreeFock.t -> t
2019-02-20 18:15:15 +01:00
(** Build MOs from a Restricted Hartree-Fock calculation. *)
val of_mo_basis : Simulation.t -> t -> t
(** Project the MOs of the other basis on the current one. *)
2019-02-20 18:15:15 +01:00
2020-04-30 10:11:10 +02:00
val mo_matrix_of_ao_matrix : mo_coef:Mat.t -> Mat.t -> Mat.t
(** Build a matrix in MO basis from a matrix in AO basis. *)
val ao_matrix_of_mo_matrix : mo_coef:Mat.t -> ao_overlap:Mat.t -> Mat.t -> Mat.t
(** Build a matrix in AO basis from a matrix in MO basis. *)
2019-03-01 21:56:46 +01:00
(** {1 Printers} *)
2019-12-03 09:13:57 +01:00
val pp : ?start:int -> ?finish:int -> Format.formatter -> t -> unit
2019-03-01 21:56:46 +01:00