10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-06-30 00:44:18 +02:00
QCaml/ao/basis.org

7.0 KiB

Basis

Data structure for Atomic Orbitals.

Polymorphic types

<<<~Basis.t~>>>

type t =
| Unknown
| Gaussian of Basis_gaussian.t

Types

<<<~Basis.t~>>>

type t
type ao = Ao_dim.t 

open Common
open Particles
open Operators
open Linear_algebra

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

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

Printers

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