mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-10-04 23:36:08 +02:00
Added basis org
This commit is contained in:
parent
f55454899a
commit
d28be0df9f
@ -69,6 +69,7 @@ with open(dunetest,'w') as f:
|
||||
|
||||
#+name: noimplementation
|
||||
#+begin_src elisp
|
||||
(modules_without_implementation ao_dim)
|
||||
#+end_src
|
||||
|
||||
** Extra C files
|
||||
|
223
ao/basis.org
Normal file
223
ao/basis.org
Normal file
@ -0,0 +1,223 @@
|
||||
#+begin_src elisp tangle: no :results none :exports none
|
||||
(setq pwd (file-name-directory buffer-file-name))
|
||||
(setq name (file-name-nondirectory (substring buffer-file-name 0 -4)))
|
||||
(setq lib (concat pwd "lib/"))
|
||||
(setq testdir (concat pwd "test/"))
|
||||
(setq mli (concat lib name ".mli"))
|
||||
(setq ml (concat lib name ".ml"))
|
||||
(setq test-ml (concat testdir name ".ml"))
|
||||
(org-babel-tangle)
|
||||
#+end_src
|
||||
|
||||
* Basis
|
||||
:PROPERTIES:
|
||||
:header-args: :noweb yes :comments both
|
||||
:END:
|
||||
|
||||
Data structure for Atomic Orbitals.
|
||||
|
||||
** Dimensions :noexports:
|
||||
|
||||
#+NAME: types
|
||||
#+begin_src ocaml :tangle lib/ao_dim.mli :exports none
|
||||
type t
|
||||
#+end_src
|
||||
|
||||
** Type
|
||||
|
||||
#+NAME: types
|
||||
#+begin_src ocaml :tangle (eval mli)
|
||||
type t
|
||||
type ao = Ao_dim.t
|
||||
|
||||
open Common
|
||||
open Particles
|
||||
open Operators
|
||||
open Linear_algebra
|
||||
#+end_src
|
||||
|
||||
#+begin_src ocaml :tangle (eval ml) :exports none
|
||||
type t =
|
||||
{ ao_basis : Basis_poly.t ;
|
||||
cartesian : bool
|
||||
}
|
||||
|
||||
type ao = Ao_dim.t
|
||||
|
||||
open Linear_algebra
|
||||
open Common
|
||||
#+end_src
|
||||
|
||||
** Conversions
|
||||
|
||||
#+begin_src ocaml :tangle (eval mli)
|
||||
val of_nuclei_and_basis_filename :
|
||||
?kind:[> `Gaussian ] -> ?operators:Operator.t list -> ?cartesian:bool ->
|
||||
nuclei:Nuclei.t -> string -> t
|
||||
#+end_src
|
||||
|
||||
| ~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 |
|
||||
|
||||
#+begin_src ocaml :tangle (eval ml) :exports none
|
||||
let of_nuclei_and_basis_filename ?(kind=`Gaussian) ?operators ?(cartesian=false)
|
||||
~nuclei filename =
|
||||
match kind with
|
||||
| `Gaussian ->
|
||||
let basis =
|
||||
Gaussian.Basis.of_nuclei_and_basis_filename ~nuclei filename
|
||||
in
|
||||
let ao_basis =
|
||||
Basis_poly.Gaussian (Basis_gaussian.make ~basis ?operators ~cartesian nuclei )
|
||||
in
|
||||
{ ao_basis ; cartesian }
|
||||
| _ -> failwith "of_nuclei_and_basis_filename needs to be called with `Gaussian"
|
||||
#+end_src
|
||||
|
||||
|
||||
** Access
|
||||
|
||||
#+begin_src ocaml :tangle (eval mli)
|
||||
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
|
||||
#+end_src
|
||||
|
||||
| ~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 |
|
||||
|
||||
|
||||
#+begin_src ocaml :tangle (eval ml) :exports none
|
||||
let not_implemented () =
|
||||
Util.not_implemented "Only Gaussian is implemented"
|
||||
|
||||
let ao_basis t = t.ao_basis
|
||||
|
||||
let size t =
|
||||
match t.ao_basis with
|
||||
| Basis_poly.Gaussian b -> Basis_gaussian.size b
|
||||
| _ -> not_implemented ()
|
||||
|
||||
let overlap t =
|
||||
begin
|
||||
match t.ao_basis with
|
||||
| Basis_poly.Gaussian b -> Basis_gaussian.overlap b
|
||||
| _ -> not_implemented ()
|
||||
end
|
||||
|> Matrix.relabel
|
||||
|
||||
let multipole t =
|
||||
begin
|
||||
match t.ao_basis with
|
||||
| Basis_poly.Gaussian b ->
|
||||
let m = Basis_gaussian.multipole b in
|
||||
fun s ->
|
||||
Gaussian_integrals.Multipole.matrix m s
|
||||
|> Matrix.relabel
|
||||
| _ -> not_implemented ()
|
||||
end
|
||||
|
||||
let ortho t =
|
||||
begin
|
||||
match t.ao_basis with
|
||||
| Basis_poly.Gaussian b -> Basis_gaussian.ortho b
|
||||
| _ -> not_implemented ()
|
||||
end
|
||||
|> Matrix.relabel
|
||||
|
||||
let eN_ints t =
|
||||
begin
|
||||
match t.ao_basis with
|
||||
| Basis_poly.Gaussian b -> Basis_gaussian.eN_ints b
|
||||
| _ -> not_implemented ()
|
||||
end
|
||||
|> Matrix.relabel
|
||||
|
||||
let kin_ints t =
|
||||
begin
|
||||
match t.ao_basis with
|
||||
| Basis_poly.Gaussian b -> Basis_gaussian.kin_ints b
|
||||
| _ -> not_implemented ()
|
||||
end
|
||||
|> Matrix.relabel
|
||||
|
||||
let ee_ints t =
|
||||
begin
|
||||
match t.ao_basis with
|
||||
| Basis_poly.Gaussian b -> Basis_gaussian.ee_ints b
|
||||
| _ -> not_implemented ()
|
||||
end
|
||||
|> Four_idx_storage.relabel
|
||||
|
||||
let ee_lr_ints t =
|
||||
begin
|
||||
match t.ao_basis with
|
||||
| Basis_poly.Gaussian b -> Basis_gaussian.ee_lr_ints b
|
||||
| _ -> not_implemented ()
|
||||
end
|
||||
|> Four_idx_storage.relabel
|
||||
|
||||
let f12_ints t =
|
||||
begin
|
||||
match t.ao_basis with
|
||||
| Basis_poly.Gaussian b -> Basis_gaussian.f12_ints b
|
||||
| _ -> not_implemented ()
|
||||
end
|
||||
|> Four_idx_storage.relabel
|
||||
|
||||
let f12_over_r12_ints t =
|
||||
begin
|
||||
match t.ao_basis with
|
||||
| Basis_poly.Gaussian b -> Basis_gaussian.f12_over_r12_ints b
|
||||
| _ -> not_implemented ()
|
||||
end
|
||||
|> Four_idx_storage.relabel
|
||||
|
||||
let cartesian t = t.cartesian
|
||||
|
||||
|
||||
let values t point =
|
||||
begin
|
||||
match t.ao_basis with
|
||||
| Basis_poly.Gaussian b -> Basis_gaussian.values b point
|
||||
| _ -> not_implemented ()
|
||||
end
|
||||
|> Vector.relabel
|
||||
|
||||
#+end_src
|
||||
|
||||
** Printers
|
||||
|
||||
#+begin_src ocaml :tangle (eval mli)
|
||||
val pp : Format.formatter -> t -> unit
|
||||
#+end_src
|
||||
|
||||
#+begin_src ocaml :tangle (eval ml) :exports none
|
||||
let pp ppf t =
|
||||
if t.cartesian then
|
||||
Format.fprintf ppf "@[Basis (cartesian coord)@]"
|
||||
else
|
||||
Format.fprintf ppf "@[Basis (spherical coord)@]"
|
||||
#+end_src
|
||||
|
||||
** Tests
|
@ -1 +0,0 @@
|
||||
type t
|
@ -1 +1,7 @@
|
||||
(* Dimensions :noexports:
|
||||
*
|
||||
* #+NAME: types *)
|
||||
|
||||
(* [[file:~/QCaml/ao/basis.org::types][types]] *)
|
||||
type t
|
||||
(* types ends here *)
|
||||
|
@ -1,6 +1,4 @@
|
||||
open Linear_algebra
|
||||
open Common
|
||||
|
||||
(* [[file:~/QCaml/ao/basis.org::*Type][Type:2]] *)
|
||||
type t =
|
||||
{ ao_basis : Basis_poly.t ;
|
||||
cartesian : bool
|
||||
@ -8,6 +6,16 @@ type t =
|
||||
|
||||
type ao = Ao_dim.t
|
||||
|
||||
open Linear_algebra
|
||||
open Common
|
||||
(* Type:2 ends here *)
|
||||
|
||||
|
||||
|
||||
(* | ~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 | *)
|
||||
|
||||
|
||||
(* [[file:~/QCaml/ao/basis.org::*Conversions][Conversions:2]] *)
|
||||
let of_nuclei_and_basis_filename ?(kind=`Gaussian) ?operators ?(cartesian=false)
|
||||
~nuclei filename =
|
||||
match kind with
|
||||
@ -20,7 +28,27 @@ let of_nuclei_and_basis_filename ?(kind=`Gaussian) ?operators ?(cartesian=false)
|
||||
in
|
||||
{ ao_basis ; cartesian }
|
||||
| _ -> failwith "of_nuclei_and_basis_filename needs to be called with `Gaussian"
|
||||
(* Conversions:2 ends here *)
|
||||
|
||||
|
||||
|
||||
(* | ~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 | *)
|
||||
|
||||
|
||||
|
||||
(* [[file:~/QCaml/ao/basis.org::*Access][Access:2]] *)
|
||||
let not_implemented () =
|
||||
Util.not_implemented "Only Gaussian is implemented"
|
||||
|
||||
@ -116,4 +144,12 @@ let values t point =
|
||||
| _ -> not_implemented ()
|
||||
end
|
||||
|> Vector.relabel
|
||||
|
||||
(* Access:2 ends here *)
|
||||
|
||||
(* [[file:~/QCaml/ao/basis.org::*Printers][Printers:2]] *)
|
||||
let pp ppf t =
|
||||
if t.cartesian then
|
||||
Format.fprintf ppf "@[Basis (cartesian coord)@]"
|
||||
else
|
||||
Format.fprintf ppf "@[Basis (spherical coord)@]"
|
||||
(* Printers:2 ends here *)
|
||||
|
@ -1,60 +1,48 @@
|
||||
(** Data structure for Atomic Orbitals. *)
|
||||
(* Type
|
||||
*
|
||||
* #+NAME: types *)
|
||||
|
||||
(* [[file:~/QCaml/ao/basis.org::types][types]] *)
|
||||
type t
|
||||
type ao = Ao_dim.t
|
||||
|
||||
open Common
|
||||
open Particles
|
||||
open Operators
|
||||
open Linear_algebra
|
||||
(* types ends here *)
|
||||
|
||||
type t
|
||||
type ao = Ao_dim.t
|
||||
|
||||
(** {1 Accessors} *)
|
||||
|
||||
val size : t -> int
|
||||
(** Number of atomic orbitals in the AO basis set *)
|
||||
|
||||
val ao_basis : t -> Basis_poly.t
|
||||
(** One-electron basis set *)
|
||||
|
||||
val overlap : t -> (ao,ao) Matrix.t
|
||||
(** Overlap matrix *)
|
||||
|
||||
val multipole : t -> string -> (ao,ao) Matrix.t
|
||||
(** Multipole matrices *)
|
||||
|
||||
val ortho : t -> (ao,'a) Matrix.t
|
||||
(** Orthonormalization matrix of the overlap *)
|
||||
|
||||
val eN_ints : t -> (ao,ao) Matrix.t
|
||||
(** Electron-nucleus potential integrals *)
|
||||
|
||||
val kin_ints : t -> (ao,ao) Matrix.t
|
||||
(** Kinetic energy integrals *)
|
||||
|
||||
val ee_ints : t -> ao Four_idx_storage.t
|
||||
(** Electron-electron potential integrals *)
|
||||
|
||||
val ee_lr_ints : t -> ao Four_idx_storage.t
|
||||
(** Electron-electron long-range potential integrals *)
|
||||
|
||||
val f12_ints : t -> ao Four_idx_storage.t
|
||||
(** Electron-electron potential integrals *)
|
||||
|
||||
val f12_over_r12_ints : t -> ao Four_idx_storage.t
|
||||
(** Electron-electron potential integrals *)
|
||||
|
||||
val cartesian : t -> bool
|
||||
(** If true, use cartesian Gaussians (6d, 10f, ...) *)
|
||||
|
||||
val values : t -> Coordinate.t -> ao Vector.t
|
||||
(** Values of the AOs evaluated at a given point *)
|
||||
(* Conversions *)
|
||||
|
||||
|
||||
|
||||
(** {1 Creators} *)
|
||||
|
||||
(* [[file:~/QCaml/ao/basis.org::*Conversions][Conversions:1]] *)
|
||||
val of_nuclei_and_basis_filename :
|
||||
?kind:[> `Gaussian ] -> ?operators:Operator.t list -> ?cartesian:bool ->
|
||||
nuclei:Nuclei.t -> string -> t
|
||||
(** Creates the data structure for the atomic orbitals basis from a molecule
|
||||
{Nuclei.t} and the name of the basis-set file *)
|
||||
(* Conversions:1 ends here *)
|
||||
|
||||
(* Access *)
|
||||
|
||||
|
||||
(* [[file:~/QCaml/ao/basis.org::*Access][Access:1]] *)
|
||||
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
|
||||
(* Access:1 ends here *)
|
||||
|
||||
(* Printers *)
|
||||
|
||||
|
||||
(* [[file:~/QCaml/ao/basis.org::*Printers][Printers:1]] *)
|
||||
val pp : Format.formatter -> t -> unit
|
||||
(* Printers:1 ends here *)
|
||||
|
@ -12,7 +12,7 @@
|
||||
qcaml.gaussian_integrals
|
||||
qcaml.operators
|
||||
)
|
||||
|
||||
(modules_without_implementation ao_dim)
|
||||
|
||||
)
|
||||
|
||||
|
@ -41,7 +41,20 @@ type axis = X | Y | Z
|
||||
#+end_src
|
||||
|
||||
#+begin_src ocaml :tangle (eval ml) :exports none
|
||||
<<types>>
|
||||
type bohr
|
||||
type angstrom
|
||||
|
||||
type xyz = {
|
||||
x : float ;
|
||||
y : float ;
|
||||
z : float ;
|
||||
}
|
||||
|
||||
type 'a point = xyz
|
||||
|
||||
type t = bohr point
|
||||
|
||||
type axis = X | Y | Z
|
||||
#+end_src
|
||||
|
||||
** Creation
|
||||
@ -61,7 +74,7 @@ external make : 'a point -> t = "%identity"
|
||||
external make_angstrom : 'a point -> angstrom point = "%identity"
|
||||
|
||||
let zero =
|
||||
make { x = 0. ; y = 0. ; z = 0. }
|
||||
make { x = 0. ; y = 0. ; z = 0. }
|
||||
#+end_src
|
||||
|
||||
** Conversion
|
||||
|
@ -86,7 +86,7 @@ let angstrom_to_bohr { x ; y ; z } =
|
||||
|
||||
|
||||
|
||||
(* [[file:~/QCaml/common/coordinate.org::*Vector operations][Vector operations:2]] *)
|
||||
(* [[file:~/QCaml/common/coordinate.org::*Vector%20operations][Vector operations:2]] *)
|
||||
let get axis { x ; y ; z } =
|
||||
match axis with
|
||||
| X -> x
|
||||
|
@ -39,7 +39,7 @@ val angstrom_to_bohr : angstrom point -> bohr point
|
||||
(* Vector operations *)
|
||||
|
||||
|
||||
(* [[file:~/QCaml/common/coordinate.org::*Vector operations][Vector operations:1]] *)
|
||||
(* [[file:~/QCaml/common/coordinate.org::*Vector%20operations][Vector operations:1]] *)
|
||||
val neg : t -> t
|
||||
val get : axis -> bohr point -> float
|
||||
val dot : t -> t -> float
|
||||
|
194
docs/ao.html
194
docs/ao.html
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2021-01-01 Fri 18:06 -->
|
||||
<!-- 2021-01-04 Mon 09:19 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Atomic Orbitals</title>
|
||||
@ -225,14 +225,202 @@
|
||||
<body>
|
||||
<div id="content">
|
||||
<h1 class="title">Atomic Orbitals</h1>
|
||||
<div id="table-of-contents">
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#orge4f1e3b">1. Basis</a>
|
||||
<ul>
|
||||
<li><a href="#org82b7695">1.1. Dimensions   <span class="tag"><span class="noexports">noexports</span></span></a></li>
|
||||
<li><a href="#orge5723ea">1.2. Type</a></li>
|
||||
<li><a href="#orge671c68">1.3. Conversions</a></li>
|
||||
<li><a href="#orgb1f038a">1.4. Access</a></li>
|
||||
<li><a href="#orgb9db803">1.5. Printers</a></li>
|
||||
<li><a href="#org17d2579">1.6. Tests</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-ocaml" id="org455f96f"><span class="org-string">"Atomic basis set"</span>
|
||||
<pre class="src src-ocaml" id="orgc2b232f"><span class="org-string">"Atomic basis set"</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-orge4f1e3b" class="outline-2">
|
||||
<h2 id="orge4f1e3b"><span class="section-number-2">1</span> Basis</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
Data structure for Atomic Orbitals.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org82b7695" class="outline-3">
|
||||
<h3 id="org82b7695"><span class="section-number-3">1.1</span> Dimensions   <span class="tag"><span class="noexports">noexports</span></span></h3>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge5723ea" class="outline-3">
|
||||
<h3 id="orge5723ea"><span class="section-number-3">1.2</span> Type</h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-ocaml" id="org00d4d3c"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span>
|
||||
<span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">ao</span> <span class="org-tuareg-font-lock-operator">=</span> <span class="org-tuareg-font-lock-module">Ao_dim.</span>t
|
||||
|
||||
<span class="org-tuareg-font-lock-governing">open </span><span class="org-tuareg-font-lock-module">Common</span>
|
||||
<span class="org-tuareg-font-lock-governing">open </span><span class="org-tuareg-font-lock-module">Particles</span>
|
||||
<span class="org-tuareg-font-lock-governing">open </span><span class="org-tuareg-font-lock-module">Operators</span>
|
||||
<span class="org-tuareg-font-lock-governing">open </span><span class="org-tuareg-font-lock-module">Linear_algebra</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge671c68" class="outline-3">
|
||||
<h3 id="orge671c68"><span class="section-number-3">1.3</span> Conversions</h3>
|
||||
<div class="outline-text-3" id="text-1-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-ocaml"><span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">of_nuclei_and_basis_filename</span> <span class="org-tuareg-font-lock-operator">:</span>
|
||||
<span class="org-tuareg-font-lock-label">?kind</span><span class="org-tuareg-font-lock-operator">:[></span> <span class="org-tuareg-font-lock-constructor">`Gaussian</span> <span class="org-tuareg-font-lock-operator">]</span> <span class="org-tuareg-font-lock-operator">-></span> <span class="org-tuareg-font-lock-label">?operators</span><span class="org-tuareg-font-lock-operator">:</span><span class="org-tuareg-font-lock-module">Operator.</span>t list <span class="org-tuareg-font-lock-operator">-></span> <span class="org-tuareg-font-lock-label">?cartesian</span><span class="org-tuareg-font-lock-operator">:</span>bool <span class="org-tuareg-font-lock-operator">-></span>
|
||||
<span class="org-tuareg-font-lock-label">nuclei</span><span class="org-tuareg-font-lock-operator">:</span><span class="org-tuareg-font-lock-module">Nuclei.</span>t <span class="org-tuareg-font-lock-operator">-></span> string <span class="org-tuareg-font-lock-operator">-></span> t
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-left" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-left"><code>of_nuclei_and_basis_filename</code></td>
|
||||
<td class="org-left">Creates the data structure for the atomic orbitals basis from a molecule <code>Nuclei.t</code> and the name of the basis-set file</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb1f038a" class="outline-3">
|
||||
<h3 id="orgb1f038a"><span class="section-number-3">1.4</span> Access</h3>
|
||||
<div class="outline-text-3" id="text-1-4">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-ocaml"><span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">size</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> int
|
||||
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">ao_basis</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> <span class="org-tuareg-font-lock-module">Basis_poly.</span>t
|
||||
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">overlap</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> <span class="org-tuareg-font-lock-operator">(</span>ao<span class="org-tuareg-font-lock-operator">,</span>ao<span class="org-tuareg-font-lock-operator">)</span> <span class="org-tuareg-font-lock-module">Matrix.</span>t
|
||||
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">multipole</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> string <span class="org-tuareg-font-lock-operator">-></span> <span class="org-tuareg-font-lock-operator">(</span>ao<span class="org-tuareg-font-lock-operator">,</span>ao<span class="org-tuareg-font-lock-operator">)</span> <span class="org-tuareg-font-lock-module">Matrix.</span>t
|
||||
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">ortho</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> <span class="org-tuareg-font-lock-operator">(</span>ao<span class="org-tuareg-font-lock-operator">,</span>'a<span class="org-tuareg-font-lock-operator">)</span> <span class="org-tuareg-font-lock-module">Matrix.</span>t
|
||||
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">eN_ints</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> <span class="org-tuareg-font-lock-operator">(</span>ao<span class="org-tuareg-font-lock-operator">,</span>ao<span class="org-tuareg-font-lock-operator">)</span> <span class="org-tuareg-font-lock-module">Matrix.</span>t
|
||||
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">kin_ints</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> <span class="org-tuareg-font-lock-operator">(</span>ao<span class="org-tuareg-font-lock-operator">,</span>ao<span class="org-tuareg-font-lock-operator">)</span> <span class="org-tuareg-font-lock-module">Matrix.</span>t
|
||||
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">ee_ints</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> ao <span class="org-tuareg-font-lock-module">Four_idx_storage.</span>t
|
||||
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">ee_lr_ints</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> ao <span class="org-tuareg-font-lock-module">Four_idx_storage.</span>t
|
||||
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">f12_ints</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> ao <span class="org-tuareg-font-lock-module">Four_idx_storage.</span>t
|
||||
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">f12_over_r12_ints</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> ao <span class="org-tuareg-font-lock-module">Four_idx_storage.</span>t
|
||||
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">cartesian</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> bool
|
||||
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">values</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-></span> <span class="org-tuareg-font-lock-module">Coordinate.</span>t <span class="org-tuareg-font-lock-operator">-></span> ao <span class="org-tuareg-font-lock-module">Vector.</span>t
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-left" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-left"><code>size</code></td>
|
||||
<td class="org-left">Number of atomic orbitals in the AO basis set</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>ao_basis</code></td>
|
||||
<td class="org-left">One-electron basis set</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>overlap</code></td>
|
||||
<td class="org-left">Overlap matrix</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>multipole</code></td>
|
||||
<td class="org-left">Multipole matrices</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>ortho</code></td>
|
||||
<td class="org-left">Orthonormalization matrix of the overlap</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>eN_ints</code></td>
|
||||
<td class="org-left">Electron-nucleus potential integrals</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>kin_ints</code></td>
|
||||
<td class="org-left">Kinetic energy integrals</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>ee_ints</code></td>
|
||||
<td class="org-left">Electron-electron potential integrals</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>ee_lr_ints</code></td>
|
||||
<td class="org-left">Electron-electron long-range potential integrals</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>f12_ints</code></td>
|
||||
<td class="org-left">Electron-electron potential integrals</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>f12_over_r12_ints</code></td>
|
||||
<td class="org-left">Electron-electron potential integrals</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>cartesian</code></td>
|
||||
<td class="org-left">If true, use cartesian Gaussians (6d, 10f, …)</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>values</code></td>
|
||||
<td class="org-left">Values of the AOs evaluated at a given point</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-orgb9db803" class="outline-3">
|
||||
<h3 id="orgb9db803"><span class="section-number-3">1.5</span> Printers</h3>
|
||||
<div class="outline-text-3" id="text-1-5">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-ocaml"><span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">pp</span> <span class="org-tuareg-font-lock-operator">:</span> <span class="org-tuareg-font-lock-module">Format.</span>formatter <span class="org-tuareg-font-lock-operator">-></span> t <span class="org-tuareg-font-lock-operator">-></span> unit
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org17d2579" class="outline-3">
|
||||
<h3 id="org17d2579"><span class="section-number-3">1.6</span> Tests</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Anthony Scemama</p>
|
||||
<p class="date">Created: 2021-01-01 Fri 18:06</p>
|
||||
<p class="date">Created: 2021-01-04 Mon 09:19</p>
|
||||
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
462
docs/common.html
462
docs/common.html
File diff suppressed because it is too large
Load Diff
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2021-01-01 Fri 18:35 -->
|
||||
<!-- 2021-01-01 Fri 18:54 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>QCaml documentation</title>
|
||||
@ -229,7 +229,7 @@
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org010d4f6">1. Documentation of Modules</a></li>
|
||||
<li><a href="#org1264f30">1. Documentation of Modules</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@ -238,6 +238,12 @@ QCaml is an OCaml library for writing quantum chemistry codes.
|
||||
It is written using literate programming with org-mode.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org66c1967" class="figure">
|
||||
<p><img src="./chamo_bg.png" alt="chamo_bg.png" />
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
To use it interactively in the top level or in a Jupyter or org-mode
|
||||
notebook, use
|
||||
@ -253,8 +259,8 @@ This loads all the sub-libraries provided with QCaml, and installs
|
||||
the pretty printers.
|
||||
</p>
|
||||
|
||||
<div id="outline-container-org010d4f6" class="outline-2">
|
||||
<h2 id="org010d4f6"><span class="section-number-2">1</span> Documentation of Modules</h2>
|
||||
<div id="outline-container-org1264f30" class="outline-2">
|
||||
<h2 id="org1264f30"><span class="section-number-2">1</span> Documentation of Modules</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-org">- <span class="org-org-link"><a href="./ao.html">Ao</a></span>
|
||||
@ -276,7 +282,7 @@ the pretty printers.
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Anthony Scemama</p>
|
||||
<p class="date">Created: 2021-01-01 Fri 18:35</p>
|
||||
<p class="date">Created: 2021-01-01 Fri 18:54</p>
|
||||
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
Loading…
Reference in New Issue
Block a user