10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-06-02 03:15:19 +02:00
QCaml/ao/basis_gaussian.org

6.8 KiB

Gaussian basis

Data structure for Gaussian Atomic Orbitals:

\[ \chi_i(\mathbf{r}) = P_i(\mathbf{r}) \sum_k c_k \exp\left( -\alpha_k (\mathbf{r-R_A})^2 \right) \]

where the polynomial $P_i$ and the Gaussian part are both centered on nucleus $A$.

Type

<<<~Gaussian_basis.t~>>>

open Common
open Particles
open Linear_algebra
open Gaussian_integrals
open Operators

type t

Access

val basis             : t -> Gaussian.Basis.t
val cartesian         : t -> bool
val ee_ints           : t -> Eri.t
val ee_lr_ints        : t -> Eri_long_range.t
val eN_ints           : t -> Electron_nucleus.t
val f12_ints          : t -> F12.t
val f12_over_r12_ints : t -> Screened_eri.t
val kin_ints          : t -> Kinetic.t
val multipole         : t -> Multipole.t
val ortho             : t -> Orthonormalization.t
val overlap           : t -> Overlap.t
val size              : t -> int
basis One-electron basis set
cartesian If true, use cartesian Gaussians (6d, 10f, …)
ee_ints Electron-electron potential integrals
ee_lr_ints Electron-electron long-range potential integrals
eN_ints Electron-nucleus potential integrals
f12_ints Electron-electron potential integrals
f12_over_r12_ints Electron-electron potential integrals
kin_ints Kinetic energy integrals
multipole Multipole matrices
ortho Orthonormalization matrix of the overlap
overlap Overlap matrix
size Number of atomic orbitals

Computation

val values : t ->
          Coordinate.t ->
          Gaussian.Basis.t Vector.t
values Returns the values of all the AOs evaluated at a given point

Creation

val make : basis:Gaussian.Basis.t ->
        ?operators:Operator.t list ->
        ?cartesian:bool ->
        Nuclei.t ->
        t

Creates the data structure for atomic orbitals from a Gaussian basis and the molecular geometry Nuclei.t.

Defaults:

  • operators : []
  • cartesian : false

Example:

let b = Ao.Basis_gaussian.make ~basis nuclei ;;
val b : Ao.Basis_gaussian.t = Gaussian Basis, spherical, 15 AOs

Printers

val pp : Format.formatter -> t -> unit