2020-10-02 23:35:56 +02:00
|
|
|
(** Data structure for Atomic Orbitals. *)
|
|
|
|
|
2020-10-09 09:47:57 +02:00
|
|
|
open Common
|
|
|
|
open Particles
|
|
|
|
open Operators
|
|
|
|
open Linear_algebra
|
2020-10-07 17:54:15 +02:00
|
|
|
|
2020-10-02 23:35:56 +02:00
|
|
|
type basis =
|
|
|
|
| Unknown
|
2020-10-09 09:38:52 +02:00
|
|
|
| Gaussian of Basis_gaussian.t
|
2020-10-02 23:35:56 +02:00
|
|
|
|
2020-10-07 17:54:15 +02:00
|
|
|
type t
|
|
|
|
|
|
|
|
(** {1 Accessors} *)
|
|
|
|
|
|
|
|
val size : t -> int
|
|
|
|
(** Number of atomic orbitals in the AO basis set *)
|
|
|
|
|
|
|
|
val ao_basis : t -> basis
|
|
|
|
(** One-electron basis set *)
|
|
|
|
|
|
|
|
val overlap : t -> ('a,'a) Matrix.t
|
|
|
|
(** Overlap matrix *)
|
|
|
|
|
|
|
|
val multipole : t -> ('a,'a) Matrix.t array
|
|
|
|
(** Multipole matrices *)
|
|
|
|
|
|
|
|
val ortho : t -> ('a,'a) Matrix.t
|
|
|
|
(** Orthonormalization matrix of the overlap *)
|
|
|
|
|
|
|
|
val eN_ints : t -> ('a,'a) Matrix.t
|
|
|
|
(** Electron-nucleus potential integrals *)
|
|
|
|
|
|
|
|
val kin_ints : t -> ('a,'a) Matrix.t
|
|
|
|
(** Kinetic energy integrals *)
|
|
|
|
|
|
|
|
val ee_ints : t -> 'a Four_idx_storage.t
|
|
|
|
(** Electron-electron potential integrals *)
|
|
|
|
|
|
|
|
val ee_lr_ints : t -> 'a Four_idx_storage.t
|
|
|
|
(** Electron-electron long-range potential integrals *)
|
|
|
|
|
|
|
|
val f12_ints : t -> 'a Four_idx_storage.t
|
|
|
|
(** Electron-electron potential integrals *)
|
|
|
|
|
|
|
|
val f12_over_r12_ints : t -> 'a Four_idx_storage.t
|
|
|
|
(** Electron-electron potential integrals *)
|
|
|
|
|
|
|
|
val cartesian : t -> bool
|
|
|
|
(** If true, use cartesian Gaussians (6d, 10f, ...) *)
|
|
|
|
|
|
|
|
val values : t -> Coordinate.t -> 'a Vector.t
|
|
|
|
(** Values of the AOs evaluated at a given point *)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(** {1 Creators} *)
|
|
|
|
|
|
|
|
val of_nuclei_and_basis_filename :
|
|
|
|
?kind:[> `Gaussian ] -> ?operators:Operator.t list -> ?cartesian:bool ->
|
|
|
|
nuclei:Nuclei.t -> string -> t
|
2020-10-09 09:38:52 +02:00
|
|
|
(** Creates the data structure for the atomic orbitals basis from a molecule
|
|
|
|
{Nuclei.t} and the name of the basis-set file *)
|