UP | HOME

Atomic Orbitals

Table of Contents

1 Summary

This modules contains the data structures used to characterize the atomic basis set.

2 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\).

2.1 Type

Gaussian_basis.t

open Common
open Particles
open Linear_algebra
open Gaussian_integrals
open Operators

type t

2.2 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

2.3 Computation

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

2.4 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

2.5 Printers

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

3 Basis

Data structure for Atomic Orbitals.

3.1 Polymorphic types

Basis.t

type t =
  | Unknown
  | Gaussian of Basis_gaussian.t

3.2 Types

Basis.t

type t
type ao = Ao_dim.t

open Common
open Particles
open Operators
open Linear_algebra

3.3 Conversions

val of_nuclei_and_basis_filename :
  ?kind:[> `Gaussian ] ->
  ?operators:Operator.t list ->
  ?cartesian:bool ->
  nuclei:Nuclei.t ->
  string ->
  t
of_nuclei_and_basis_filename Creates the data structure for the atomic orbitals basis from a molecule Nuclei.t and the name of the basis-set file

Defaults:

  • kind : `Gaussian
  • operators : []
  • cartesian : false

Example:

let b = Ao.Basis.of_nuclei_and_basis_filename ~nuclei filename;;
val b : Ao.Basis.t = Gaussian Basis, spherical, 15 AOs

3.4 Access

val size              : t -> int
val ao_basis          : t -> Basis_poly.t
val overlap           : t -> (ao,ao) Matrix.t
val multipole         : t -> string -> (ao,ao) Matrix.t
val ortho             : t -> (ao,'a) Matrix.t
val eN_ints           : t -> (ao,ao) Matrix.t
val kin_ints          : t -> (ao,ao) Matrix.t
val ee_ints           : t -> ao Four_idx_storage.t
val ee_lr_ints        : t -> ao Four_idx_storage.t
val f12_ints          : t -> ao Four_idx_storage.t
val f12_over_r12_ints : t -> ao Four_idx_storage.t
val cartesian         : t -> bool
val values            : t -> Coordinate.t -> ao Vector.t
size Number of atomic orbitals in the AO basis set
ao_basis One-electron basis set
overlap Overlap matrix
multipole Multipole matrices
ortho Orthonormalization matrix of the overlap
eN_ints Electron-nucleus potential integrals
kin_ints Kinetic energy integrals
ee_ints Electron-electron potential integrals
ee_lr_ints Electron-electron long-range potential integrals
f12_ints Electron-electron potential integrals
f12_over_r12_ints Electron-electron potential integrals
cartesian If true, use cartesian Gaussians (6d, 10f, …)
values Values of the AOs evaluated at a given point

3.5 TREXIO

3.5.1 Read

(*
val of_trexio : Trexio.trexio_file -> t
*)

3.5.2 Write

(*
val to_trexio : Trexio.trexio_file -> t -> unit
*)

3.6 Printers

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

Author: Anthony Scemama

Created: 2023-04-24 Mon 18:06

Validate