Added gaussian basis

This commit is contained in:
Anthony Scemama 2021-01-04 23:15:27 +01:00
parent d28be0df9f
commit d2b4928352
21 changed files with 1044 additions and 485 deletions

View File

@ -18,6 +18,10 @@ docs/%.html: %/*.org %/lib/*.ml %/lib/*.mli %/test/*.ml
- ./bin/tangle.sh $*
- ./bin/build_doc.sh $*
docs/top.html: */*.org */lib/*.ml */lib/*.mli
- ./bin/tangle.sh top
- ./bin/build_doc.sh top
doc: $(DOCS)
build: doc

View File

@ -18,14 +18,25 @@
** Dimensions :noexports:
#+NAME: types
#+begin_src ocaml :tangle lib/ao_dim.mli :exports none
type t
#+end_src
** Type
** Polymorphic types
#+NAME: types
#+begin_src ocaml :tangle lib/basis_poly.mli
type t =
| Unknown
| Gaussian of Basis_gaussian.t
#+end_src
#+begin_src ocaml :tangle lib/basis_poly.ml :exports none
<<types>>
#+end_src
** Types
#+begin_src ocaml :tangle (eval mli)
type t
type ao = Ao_dim.t
@ -58,6 +69,16 @@ val of_nuclei_and_basis_filename :
| ~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~
#+begin_example
let b = Ao.Basis.of_nuclei_and_basis_filename ~nuclei filename;;
val b : Ao.Basis.t = Gaussian Basis, spherical, 15 AOs
#+end_example
#+begin_src ocaml :tangle (eval ml) :exports none
let of_nuclei_and_basis_filename ?(kind=`Gaussian) ?operators ?(cartesian=false)
~nuclei filename =
@ -214,10 +235,10 @@ val pp : Format.formatter -> t -> unit
#+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)@]"
begin
match t.ao_basis with
| Basis_poly.Gaussian b -> Basis_gaussian.pp ppf b
| _ -> not_implemented ()
end
#+end_src
** Tests

223
ao/basis_gaussian.org Normal file
View 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
* Gaussian basis
:PROPERTIES:
:header-args: :noweb yes :comments both
:END:
Data structure for Gaussian Atomic Orbitals:
$$
\chi(r) = P(X_A,Y_A,Z_A) \sum_k a_k \exp\left( -\alpha_k (\mathbf{r-R_A})^2 \right)
$$
where the polynomial $P$ and the Gaussian part are both centered on
nucleus $A$.
** Type
#+NAME: types
#+begin_src ocaml :tangle (eval mli)
open Common
open Particles
open Linear_algebra
open Gaussian_integrals
open Operators
type t
#+end_src
#+begin_src ocaml :tangle (eval ml) :exports none
open Linear_algebra
open Gaussian
open Gaussian_integrals
open Operators
module Basis = Gaussian.Basis
type t =
{
basis : Basis.t ;
overlap : Overlap.t lazy_t;
multipole : Multipole.t lazy_t;
ortho : Orthonormalization.t lazy_t;
eN_ints : Electron_nucleus.t lazy_t;
kin_ints : Kinetic.t lazy_t;
ee_ints : Eri.t lazy_t;
ee_lr_ints : Eri_long_range.t lazy_t;
f12_ints : F12.t lazy_t;
f12_over_r12_ints : Screened_eri.t lazy_t;
cartesian : bool ;
}
#+end_src
** Access
#+begin_src ocaml :tangle (eval mli)
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
#+end_src
| ~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 |
#+begin_src ocaml :tangle (eval ml) :exports none
let basis t = t.basis
let cartesian t = t.cartesian
let ee_ints t = Lazy.force t.ee_ints
let ee_lr_ints t = Lazy.force t.ee_lr_ints
let eN_ints t = Lazy.force t.eN_ints
let f12_ints t = Lazy.force t.f12_ints
let f12_over_r12_ints t = Lazy.force t.f12_over_r12_ints
let kin_ints t = Lazy.force t.kin_ints
let multipole t = Lazy.force t.multipole
let ortho t = Lazy.force t.ortho
let overlap t = Lazy.force t.overlap
let size t = Matrix.dim1 (Lazy.force t.overlap)
#+end_src
** Computation
#+begin_src ocaml :tangle (eval mli)
val values : t -> Coordinate.t -> Gaussian.Basis.t Vector.t
#+end_src
| ~values~ | Returns the values of all the AOs evaluated at a given point |
#+begin_src ocaml :tangle (eval ml) :exports none
module Cs = Contracted_shell
let values t point =
let result = Vector.create (Basis.size t.basis) in
let resultx = Vector.to_bigarray_inplace result in
Array.iter (fun shell ->
Cs.values shell point
|> Array.iteri
(fun i_c value ->
let i = Cs.index shell + i_c + 1 in
resultx.{i} <- value)
) (Basis.contracted_shells t.basis);
result
#+end_src
** Creation
#+begin_src ocaml :tangle (eval mli)
val make : basis:Gaussian.Basis.t ->
?operators:Operator.t list ->
?cartesian:bool ->
Nuclei.t -> t
#+end_src
Creates the data structure for atomic orbitals from a Gaussian basis and the
molecular geometry ~Nuclei.t~.
Defaults:
- ~operators~ : ~[]~
- ~cartesian~ : ~false~
#+begin_example
let b = Ao.Basis_gaussian.make ~basis nuclei ;;
val b : Ao.Basis_gaussian.t = Gaussian Basis, spherical, 15 AOs
#+end_example
#+begin_src ocaml :tangle (eval ml) :exports none
let make ~basis ?(operators=[]) ?(cartesian=false) nuclei =
let overlap = lazy (
Overlap.of_basis basis
) in
let ortho = lazy (
Lazy.force overlap
|> Orthonormalization.make ~cartesian ~basis
) in
let eN_ints = lazy (
Electron_nucleus.of_basis_nuclei ~basis nuclei
) in
let kin_ints = lazy (
Kinetic.of_basis basis
) in
let ee_ints = lazy (
Eri.of_basis basis
) in
let rec get_f12 = function
| (Operator.F12 _ as f) :: _ -> f
| [] -> failwith "Missing F12 operator"
| _ :: rest -> get_f12 rest
in
let rec get_rs = function
| (Operator.Range_sep _ as r) :: _ -> r
| [] -> failwith "Missing range-separation operator"
| _ :: rest -> get_rs rest
in
let ee_lr_ints = lazy (
Eri_long_range.of_basis basis~operator:(get_rs operators)
) in
let f12_ints = lazy (
F12.of_basis basis ~operator:(get_f12 operators)
) in
let f12_over_r12_ints = lazy (
Screened_eri.of_basis basis ~operator:(get_f12 operators)
) in
let multipole = lazy (
Multipole.of_basis basis
) in
{ basis ; overlap ; multipole ; ortho ; eN_ints ; kin_ints ; ee_ints ;
ee_lr_ints ; f12_ints ; f12_over_r12_ints ; cartesian }
#+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 =
let cart = if t.cartesian then "cartesian" else "spherical" in
let nao = size t in
Format.fprintf ppf "@[@[Gaussian Basis@], @[%s@], @[%d AOs@]@]"
cart nao
#+end_src

View File

@ -1,7 +1,6 @@
(* Dimensions :noexports:
*
* #+NAME: types *)
(* Dimensions :noexports: *)
(* [[file:~/QCaml/ao/basis.org::types][types]] *)
(* [[file:~/QCaml/ao/basis.org::*Dimensions][Dimensions:1]] *)
type t
(* types ends here *)
(* Dimensions:1 ends here *)

View File

@ -1,4 +1,4 @@
(* [[file:~/QCaml/ao/basis.org::*Type][Type:2]] *)
(* [[file:~/QCaml/ao/basis.org::*Types][Types:2]] *)
type t =
{ ao_basis : Basis_poly.t ;
cartesian : bool
@ -8,12 +8,22 @@ type ao = Ao_dim.t
open Linear_algebra
open Common
(* Type:2 ends here *)
(* Types: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 | *)
(* | ~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~
*
* #+begin_example
* let b = Ao.Basis.of_nuclei_and_basis_filename ~nuclei filename;;
* val b : Ao.Basis.t = Gaussian Basis, spherical, 15 AOs
* #+end_example *)
(* [[file:~/QCaml/ao/basis.org::*Conversions][Conversions:2]] *)
let of_nuclei_and_basis_filename ?(kind=`Gaussian) ?operators ?(cartesian=false)
@ -148,8 +158,9 @@ let values t point =
(* [[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)@]"
begin
match t.ao_basis with
| Basis_poly.Gaussian b -> Basis_gaussian.pp ppf b
| _ -> not_implemented ()
end
(* Printers:2 ends here *)

View File

@ -1,8 +1,7 @@
(* Type
*
* #+NAME: types *)
(* Types *)
(* [[file:~/QCaml/ao/basis.org::types][types]] *)
(* [[file:~/QCaml/ao/basis.org::*Types][Types:1]] *)
type t
type ao = Ao_dim.t
@ -10,7 +9,7 @@ open Common
open Particles
open Operators
open Linear_algebra
(* types ends here *)
(* Types:1 ends here *)
(* Conversions *)

View File

@ -1,3 +1,4 @@
(* [[file:~/QCaml/ao/basis_gaussian.org::*Type][Type:2]] *)
open Linear_algebra
open Gaussian
open Gaussian_integrals
@ -19,20 +20,45 @@ type t =
f12_over_r12_ints : Screened_eri.t lazy_t;
cartesian : bool ;
}
(* Type:2 ends here *)
(* | ~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 | *)
(* [[file:~/QCaml/ao/basis_gaussian.org::*Access][Access:2]] *)
let basis t = t.basis
let size t = Matrix.dim1 (Lazy.force t.overlap)
let overlap t = Lazy.force t.overlap
let multipole t = Lazy.force t.multipole
let ortho t = Lazy.force t.ortho
let eN_ints t = Lazy.force t.eN_ints
let kin_ints t = Lazy.force t.kin_ints
let cartesian t = t.cartesian
let ee_ints t = Lazy.force t.ee_ints
let ee_lr_ints t = Lazy.force t.ee_lr_ints
let eN_ints t = Lazy.force t.eN_ints
let f12_ints t = Lazy.force t.f12_ints
let f12_over_r12_ints t = Lazy.force t.f12_over_r12_ints
let cartesian t = t.cartesian
let kin_ints t = Lazy.force t.kin_ints
let multipole t = Lazy.force t.multipole
let ortho t = Lazy.force t.ortho
let overlap t = Lazy.force t.overlap
let size t = Matrix.dim1 (Lazy.force t.overlap)
(* Access:2 ends here *)
(* | ~values~ | Returns the values of all the AOs evaluated at a given point | *)
(* [[file:~/QCaml/ao/basis_gaussian.org::*Computation][Computation:2]] *)
module Cs = Contracted_shell
let values t point =
@ -46,8 +72,24 @@ let values t point =
resultx.{i} <- value)
) (Basis.contracted_shells t.basis);
result
(* Computation:2 ends here *)
(* Creates the data structure for atomic orbitals from a Gaussian basis and the
* molecular geometry ~Nuclei.t~.
*
* Defaults:
* - ~operators~ : ~[]~
* - ~cartesian~ : ~false~
*
* #+begin_example
* let b = Ao.Basis_gaussian.make ~basis nuclei ;;
* val b : Ao.Basis_gaussian.t = Gaussian Basis, spherical, 15 AOs
* #+end_example *)
(* [[file:~/QCaml/ao/basis_gaussian.org::*Creation][Creation:2]] *)
let make ~basis ?(operators=[]) ?(cartesian=false) nuclei =
let overlap = lazy (
@ -101,3 +143,12 @@ let make ~basis ?(operators=[]) ?(cartesian=false) nuclei =
{ basis ; overlap ; multipole ; ortho ; eN_ints ; kin_ints ; ee_ints ;
ee_lr_ints ; f12_ints ; f12_over_r12_ints ; cartesian }
(* Creation:2 ends here *)
(* [[file:~/QCaml/ao/basis_gaussian.org::*Printers][Printers:2]] *)
let pp ppf t =
let cart = if t.cartesian then "cartesian" else "spherical" in
let nao = size t in
Format.fprintf ppf "@[@[Gaussian Basis@], @[%s@], @[%d AOs@]@]"
cart nao
(* Printers:2 ends here *)

View File

@ -1,59 +1,55 @@
(** Data structure for Atomic Orbitals. *)
(* Type
*
* #+NAME: types *)
(* [[file:~/QCaml/ao/basis_gaussian.org::types][types]] *)
open Common
open Particles
open Linear_algebra
open Gaussian_integrals
open Operators
type t
(** {1 Accessors} *)
type t
(* types ends here *)
val size : t -> int
(** Number of atomic orbitals *)
(* Access *)
val basis : t -> Gaussian.Basis.t
(** One-electron basis set *)
val overlap : t -> Overlap.t
(** Overlap matrix *)
val multipole : t -> Multipole.t
(** Multipole matrices *)
val ortho : t -> Orthonormalization.t
(** Orthonormalization matrix of the overlap *)
val eN_ints : t -> Electron_nucleus.t
(** Electron-nucleus potential integrals *)
val ee_ints : t -> Eri.t
(** Electron-electron potential integrals *)
val ee_lr_ints : t -> Eri_long_range.t
(** Electron-electron long-range potential integrals *)
val f12_ints : t -> F12.t
(** Electron-electron potential integrals *)
(* [[file:~/QCaml/ao/basis_gaussian.org::*Access][Access:1]] *)
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
(** Electron-electron potential integrals *)
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
(* Access:1 ends here *)
val kin_ints : t -> Kinetic.t
(** Kinetic energy integrals *)
(* Computation *)
val cartesian : t -> bool
(** If true, use cartesian Gaussians (6d, 10f, ...) *)
(* [[file:~/QCaml/ao/basis_gaussian.org::*Computation][Computation:1]] *)
val values : t -> Coordinate.t -> Gaussian.Basis.t Vector.t
(** Values of the AOs evaluated at a given point *)
(* Computation:1 ends here *)
(* Creation *)
(* [[file:~/QCaml/ao/basis_gaussian.org::*Creation][Creation:1]] *)
val make : basis:Gaussian.Basis.t ->
?operators:Operator.t list ->
?cartesian:bool ->
Nuclei.t -> t
(* Creation:1 ends here *)
(** {1 Creators} *)
(* Printers *)
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}.
*)
(* [[file:~/QCaml/ao/basis_gaussian.org::*Printers][Printers:1]] *)
val pp : Format.formatter -> t -> unit
(* Printers:1 ends here *)

View File

@ -1,3 +1,5 @@
(* [[file:~/QCaml/ao/basis.org::*Polymorphic%20types][Polymorphic types:2]] *)
type t =
| Unknown
| Gaussian of Basis_gaussian.t
(* Polymorphic types:2 ends here *)

View File

@ -1,6 +1,9 @@
(** Polymorphic type for the basis (Gaussian, Slater, etc) *)
(* Polymorphic types
*
* #+NAME: types *)
(* [[file:~/QCaml/ao/basis.org::types][types]] *)
type t =
| Unknown
| Gaussian of Basis_gaussian.t
(* types ends here *)

View File

@ -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-04 Mon 09:19 -->
<!-- 2021-01-04 Mon 23:37 -->
<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>
@ -221,6 +221,28 @@
/*]]>*///-->
// @license-end
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
displayAlign: "center",
displayIndent: "0em",
"HTML-CSS": { scale: 100,
linebreaks: { automatic: "false" },
webFont: "TeX"
},
SVG: {scale: 100,
linebreaks: { automatic: "false" },
font: "TeX"},
NativeMML: {scale: 100},
TeX: { equationNumbers: {autoNumber: "AMS"},
MultLineWidth: "85%",
TagSide: "right",
TagIndent: ".8em"
}
});
</script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head>
<body>
<div id="content">
@ -229,42 +251,258 @@
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orge4f1e3b">1. Basis</a>
<li><a href="#org85ad534">1. Gaussian basis</a>
<ul>
<li><a href="#org82b7695">1.1. Dimensions&#xa0;&#xa0;&#xa0;<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>
<li><a href="#orgd5272b4">1.1. Type</a></li>
<li><a href="#orgaf2c5e0">1.2. Access</a></li>
<li><a href="#org2ef05ff">1.3. Computation</a></li>
<li><a href="#orgc96dbf4">1.4. Creation</a></li>
<li><a href="#org2ad4cb4">1.5. Printers</a></li>
</ul>
</li>
<li><a href="#org0b46c53">2. Basis</a>
<ul>
<li><a href="#org92f0c67">2.1. Dimensions&#xa0;&#xa0;&#xa0;<span class="tag"><span class="noexports">noexports</span></span></a></li>
<li><a href="#org30491e1">2.2. Polymorphic types</a></li>
<li><a href="#org7349692">2.3. Types</a></li>
<li><a href="#org7ec971a">2.4. Conversions</a></li>
<li><a href="#orgae6a1f6">2.5. Access</a></li>
<li><a href="#orgaa19d01">2.6. Printers</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="org-src-container">
<pre class="src src-ocaml" id="orgc2b232f"><span class="org-string">"Atomic basis set"</span>
<pre class="src src-ocaml" id="org9946305"><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 id="outline-container-org85ad534" class="outline-2">
<h2 id="org85ad534"><span class="section-number-2">1</span> Gaussian basis</h2>
<div class="outline-text-2" id="text-1">
<p>
Data structure for Gaussian Atomic Orbitals:
</p>
<p>
\[
\chi(r) = P(X_A,Y_A,Z_A) \sum_k a_k \exp\left( -\alpha_k (\mathbf{r-R_A})^2 \right)
\]
</p>
<p>
where the polynomial \(P\) and the Gaussian part are both centered on
nucleus \(A\).
</p>
</div>
<div id="outline-container-orgd5272b4" class="outline-3">
<h3 id="orgd5272b4"><span class="section-number-3">1.1</span> Type</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-ocaml" id="orgfc52bc7"><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">Linear_algebra</span>
<span class="org-tuareg-font-lock-governing">open </span><span class="org-tuareg-font-lock-module">Gaussian_integrals</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">type</span> <span class="org-type">t</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgaf2c5e0" class="outline-3">
<h3 id="orgaf2c5e0"><span class="section-number-3">1.2</span> Access</h3>
<div class="outline-text-3" id="text-1-2">
<div class="org-src-container">
<pre class="src src-ocaml"><span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">basis</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Gaussian.Basis.</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">-&gt;</span> bool
<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">-&gt;</span> <span class="org-tuareg-font-lock-module">Eri.</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">-&gt;</span> <span class="org-tuareg-font-lock-module">Eri_long_range.</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">-&gt;</span> <span class="org-tuareg-font-lock-module">Electron_nucleus.</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">-&gt;</span> <span class="org-tuareg-font-lock-module">F12.</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">-&gt;</span> <span class="org-tuareg-font-lock-module">Screened_eri.</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">-&gt;</span> <span class="org-tuareg-font-lock-module">Kinetic.</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">-&gt;</span> <span class="org-tuareg-font-lock-module">Multipole.</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">-&gt;</span> <span class="org-tuareg-font-lock-module">Orthonormalization.</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">-&gt;</span> <span class="org-tuareg-font-lock-module">Overlap.</span>t
<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">-&gt;</span> int
</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>basis</code></td>
<td class="org-left">One-electron basis set</td>
</tr>
<tr>
<td class="org-left"><code>cartesian</code></td>
<td class="org-left">If true, use cartesian Gaussians (6d, 10f, &#x2026;)</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>eN_ints</code></td>
<td class="org-left">Electron-nucleus 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>kin_ints</code></td>
<td class="org-left">Kinetic energy integrals</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>overlap</code></td>
<td class="org-left">Overlap matrix</td>
</tr>
<tr>
<td class="org-left"><code>size</code></td>
<td class="org-left">Number of atomic orbitals</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-org2ef05ff" class="outline-3">
<h3 id="org2ef05ff"><span class="section-number-3">1.3</span> Computation</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">values</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Coordinate.</span>t <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Gaussian.Basis.</span>t <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>values</code></td>
<td class="org-left">Returns the values of all the AOs evaluated at a given point</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-orgc96dbf4" class="outline-3">
<h3 id="orgc96dbf4"><span class="section-number-3">1.4</span> Creation</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">make</span> <span class="org-tuareg-font-lock-operator">:</span> <span class="org-tuareg-font-lock-label">basis</span><span class="org-tuareg-font-lock-operator">:</span><span class="org-tuareg-font-lock-module">Gaussian.Basis.</span>t <span class="org-tuareg-font-lock-operator">-&gt;</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">-&gt;</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">-&gt;</span>
<span class="org-tuareg-font-lock-module">Nuclei.</span>t <span class="org-tuareg-font-lock-operator">-&gt;</span> t
</pre>
</div>
<p>
Creates the data structure for atomic orbitals from a Gaussian basis and the
molecular geometry <code>Nuclei.t</code>.
</p>
<p>
Defaults:
</p>
<ul class="org-ul">
<li><code>operators</code> : <code>[]</code></li>
<li><code>cartesian</code> : <code>false</code></li>
</ul>
<pre class="example" id="org2235be7">
let b = Ao.Basis_gaussian.make ~basis nuclei ;;
val b : Ao.Basis_gaussian.t = Gaussian Basis, spherical, 15 AOs
</pre>
</div>
</div>
<div id="outline-container-org2ad4cb4" class="outline-3">
<h3 id="org2ad4cb4"><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">-&gt;</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> unit
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-org0b46c53" class="outline-2">
<h2 id="org0b46c53"><span class="section-number-2">2</span> Basis</h2>
<div class="outline-text-2" id="text-2">
<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&#xa0;&#xa0;&#xa0;<span class="tag"><span class="noexports">noexports</span></span></h3>
<div id="outline-container-org92f0c67" class="outline-3">
<h3 id="org92f0c67"><span class="section-number-3">2.1</span> Dimensions&#xa0;&#xa0;&#xa0;<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 id="outline-container-org30491e1" class="outline-3">
<h3 id="org30491e1"><span class="section-number-3">2.2</span> Polymorphic types</h3>
<div class="outline-text-3" id="text-2-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>
<pre class="src src-ocaml" id="org2d5449d"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span> <span class="org-tuareg-font-lock-operator">=</span>
<span class="org-tuareg-font-lock-operator">|</span> <span class="org-tuareg-font-lock-constructor">Unknown</span>
<span class="org-tuareg-font-lock-operator">|</span> <span class="org-tuareg-font-lock-constructor">Gaussian</span> <span class="org-keyword">of</span> <span class="org-tuareg-font-lock-module">Basis_gaussian.</span>t
</pre>
</div>
</div>
</div>
<div id="outline-container-org7349692" class="outline-3">
<h3 id="org7349692"><span class="section-number-3">2.3</span> Types</h3>
<div class="outline-text-3" id="text-2-3">
<div class="org-src-container">
<pre class="src src-ocaml"><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>
@ -276,9 +514,9 @@ Data structure for Atomic Orbitals.
</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 id="outline-container-org7ec971a" class="outline-3">
<h3 id="org7ec971a"><span class="section-number-3">2.4</span> Conversions</h3>
<div class="outline-text-3" id="text-2-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">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">:[&gt;</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">-&gt;</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">-&gt;</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">-&gt;</span>
@ -301,12 +539,26 @@ Data structure for Atomic Orbitals.
</tr>
</tbody>
</table>
<p>
Defaults:
</p>
<ul class="org-ul">
<li><code>kind</code> : <code>`Gaussian</code></li>
<li><code>operators</code> : <code>[]</code></li>
<li><code>cartesian</code> : <code>false</code></li>
</ul>
<pre class="example" id="orgaf90516">
let b = Ao.Basis.of_nuclei_and_basis_filename ~nuclei filename;;
val b : Ao.Basis.t = Gaussian Basis, spherical, 15 AOs
</pre>
</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 id="outline-container-orgae6a1f6" class="outline-3">
<h3 id="orgae6a1f6"><span class="section-number-3">2.5</span> Access</h3>
<div class="outline-text-3" id="text-2-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">size</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-&gt;</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">-&gt;</span> <span class="org-tuareg-font-lock-module">Basis_poly.</span>t
@ -403,24 +655,20 @@ Data structure for Atomic Orbitals.
</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 id="outline-container-orgaa19d01" class="outline-3">
<h3 id="orgaa19d01"><span class="section-number-3">2.6</span> Printers</h3>
<div class="outline-text-3" id="text-2-6">
<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">-&gt;</span> t <span class="org-tuareg-font-lock-operator">-&gt;</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-04 Mon 09:19</p>
<p class="date">Created: 2021-01-04 Mon 23:37</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

File diff suppressed because it is too large Load Diff

View File

@ -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 17:56 -->
<!-- 2021-01-04 Mon 23:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Gaussian</title>
@ -226,13 +226,13 @@
<div id="content">
<h1 class="title">Gaussian</h1>
<div class="org-src-container">
<pre class="src src-ocaml" id="orgf6e4858"><span class="org-string">"Gaussian basis sets"</span>
<pre class="src src-ocaml" id="org0a27d10"><span class="org-string">"Gaussian basis sets"</span>
</pre>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Anthony Scemama</p>
<p class="date">Created: 2021-01-01 Fri 17:56</p>
<p class="date">Created: 2021-01-04 Mon 23:32</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -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 17:56 -->
<!-- 2021-01-04 Mon 23:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Gaussian integrals</title>
@ -226,13 +226,13 @@
<div id="content">
<h1 class="title">Gaussian integrals</h1>
<div class="org-src-container">
<pre class="src src-ocaml" id="org7b17145"><span class="org-string">"Integrals on the Gaussian basis sets"</span>
<pre class="src src-ocaml" id="orgd1995a6"><span class="org-string">"Integrals on the Gaussian basis sets"</span>
</pre>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Anthony Scemama</p>
<p class="date">Created: 2021-01-01 Fri 17:56</p>
<p class="date">Created: 2021-01-04 Mon 23:32</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -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:54 -->
<!-- 2021-01-04 Mon 23:32 -->
<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="#org1264f30">1. Documentation of Modules</a></li>
<li><a href="#org5867ef0">1. Documentation of Modules</a></li>
</ul>
</div>
</div>
@ -239,7 +239,7 @@ It is written using literate programming with org-mode.
</p>
<div id="org66c1967" class="figure">
<div id="org0374b1d" class="figure">
<p><img src="./chamo_bg.png" alt="chamo_bg.png" />
</p>
</div>
@ -259,8 +259,8 @@ This loads all the sub-libraries provided with QCaml, and installs
the pretty printers.
</p>
<div id="outline-container-org1264f30" class="outline-2">
<h2 id="org1264f30"><span class="section-number-2">1</span> Documentation of Modules</h2>
<div id="outline-container-org5867ef0" class="outline-2">
<h2 id="org5867ef0"><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>
@ -282,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:54</p>
<p class="date">Created: 2021-01-04 Mon 23:32</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -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 17:56 -->
<!-- 2021-01-04 Mon 23:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Linear Algebra</title>
@ -226,13 +226,13 @@
<div id="content">
<h1 class="title">Linear Algebra</h1>
<div class="org-src-container">
<pre class="src src-ocaml" id="orgcf3854f"><span class="org-string">"Linear algebra utilities of QCaml libraries."</span>
<pre class="src src-ocaml" id="org5714b09"><span class="org-string">"Linear algebra utilities of QCaml libraries."</span>
</pre>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Anthony Scemama</p>
<p class="date">Created: 2021-01-01 Fri 17:56</p>
<p class="date">Created: 2021-01-04 Mon 23:32</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -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 17:56 -->
<!-- 2021-01-04 Mon 23:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Molecular orbitals</title>
@ -229,36 +229,36 @@
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org454a698">1. Frozen core</a>
<li><a href="#orgd297c1e">1. Frozen core</a>
<ul>
<li><a href="#orgc0ca98f">1.1. Type</a></li>
<li><a href="#org93b19fa">1.2. Creation</a></li>
<li><a href="#orgfd38ae0">1.3. Access</a></li>
<li><a href="#orgd1529c7">1.4. Printers</a></li>
<li><a href="#orgeb2eaff">1.1. Type</a></li>
<li><a href="#org80a3f74">1.2. Creation</a></li>
<li><a href="#orgc9563c7">1.3. Access</a></li>
<li><a href="#orgb3d6d1d">1.4. Printers</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="org-src-container">
<pre class="src src-ocaml" id="org75f70e3"><span class="org-string">"Molecular orbitals"</span>
<pre class="src src-ocaml" id="org68f4583"><span class="org-string">"Molecular orbitals"</span>
</pre>
</div>
<div id="outline-container-org454a698" class="outline-2">
<h2 id="org454a698"><span class="section-number-2">1</span> Frozen core</h2>
<div id="outline-container-orgd297c1e" class="outline-2">
<h2 id="orgd297c1e"><span class="section-number-2">1</span> Frozen core</h2>
<div class="outline-text-2" id="text-1">
<p>
Defines how the core electrons are frozen, for each atom.
</p>
</div>
<div id="outline-container-orgc0ca98f" class="outline-3">
<h3 id="orgc0ca98f"><span class="section-number-3">1.1</span> Type</h3>
<div id="outline-container-orgeb2eaff" class="outline-3">
<h3 id="orgeb2eaff"><span class="section-number-3">1.1</span> Type</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-ocaml" id="org75318eb"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">kind</span> <span class="org-tuareg-font-lock-operator">=</span>
<pre class="src src-ocaml" id="orgec8a3c0"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">kind</span> <span class="org-tuareg-font-lock-operator">=</span>
<span class="org-tuareg-font-lock-operator">|</span> <span class="org-tuareg-font-lock-constructor">All_electron</span>
<span class="org-tuareg-font-lock-operator">|</span> <span class="org-tuareg-font-lock-constructor">Small</span>
<span class="org-tuareg-font-lock-operator">|</span> Large
@ -272,8 +272,8 @@ Defines how the core electrons are frozen, for each atom.
</div>
</div>
<div id="outline-container-org93b19fa" class="outline-3">
<h3 id="org93b19fa"><span class="section-number-3">1.2</span> Creation</h3>
<div id="outline-container-org80a3f74" class="outline-3">
<h3 id="org80a3f74"><span class="section-number-3">1.2</span> Creation</h3>
<div class="outline-text-3" id="text-1-2">
<div class="org-src-container">
<pre class="src src-ocaml"><span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">make</span> <span class="org-tuareg-font-lock-operator">:</span> kind <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Particles.Nuclei.</span>t <span class="org-tuareg-font-lock-operator">-&gt;</span> t
@ -309,7 +309,7 @@ Defines how the core electrons are frozen, for each atom.
</tbody>
</table>
<pre class="example" id="orga1200ba">
<pre class="example" id="org2ee1cdc">
let f = Frozen_core.(make Small nuclei) ;;
val f : Frozen_core.t = [|0; 2; 2; 0|]
@ -319,8 +319,8 @@ val f : Frozen_core.t = [|0; 2; 2; 0|]
</div>
</div>
<div id="outline-container-orgfd38ae0" class="outline-3">
<h3 id="orgfd38ae0"><span class="section-number-3">1.3</span> Access</h3>
<div id="outline-container-orgc9563c7" class="outline-3">
<h3 id="orgc9563c7"><span class="section-number-3">1.3</span> Access</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">num_elec</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> int
@ -349,7 +349,7 @@ val f : Frozen_core.t = [|0; 2; 2; 0|]
</tbody>
</table>
<pre class="example" id="org0666c71">
<pre class="example" id="org2dbaeb1">
Frozen_core.num_elec f ;;
- : int = 4
@ -359,8 +359,8 @@ Frozen_core.num_mos f ;;
</div>
</div>
<div id="outline-container-orgd1529c7" class="outline-3">
<h3 id="orgd1529c7"><span class="section-number-3">1.4</span> Printers</h3>
<div id="outline-container-orgb3d6d1d" class="outline-3">
<h3 id="orgb3d6d1d"><span class="section-number-3">1.4</span> Printers</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">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">-&gt;</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> unit
@ -372,7 +372,7 @@ Frozen_core.num_mos f ;;
</div>
<div id="postamble" class="status">
<p class="author">Author: Anthony Scemama</p>
<p class="date">Created: 2021-01-01 Fri 17:56</p>
<p class="date">Created: 2021-01-04 Mon 23:32</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -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 23:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Common</title>
@ -251,75 +251,75 @@
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org68e7110">1. Electrons</a>
<li><a href="#orgd026c0b">1. Electrons</a>
<ul>
<li><a href="#org2e398e8">1.1. Type</a></li>
<li><a href="#orga8ea991">1.2. Creation</a></li>
<li><a href="#org9eb84bd">1.3. Access</a></li>
<li><a href="#org7515075">1.4. Printers</a></li>
<li><a href="#org12573ce">1.5. Tests</a></li>
<li><a href="#org78fdf96">1.1. Type</a></li>
<li><a href="#orgfb45c28">1.2. Creation</a></li>
<li><a href="#orgf3d89c9">1.3. Access</a></li>
<li><a href="#orga3177e1">1.4. Printers</a></li>
<li><a href="#org063ae8a">1.5. Tests</a></li>
</ul>
</li>
<li><a href="#org53d0bbb">2. Element</a>
<li><a href="#org37e44c4">2. Element</a>
<ul>
<li><a href="#org31e8ae2">2.1. Type</a></li>
<li><a href="#org78a0afd">2.2. Conversion</a></li>
<li><a href="#org86c3cbf">2.3. Database information</a></li>
<li><a href="#orge6cad03">2.4. Printers</a></li>
<li><a href="#org44a24ef">2.1. Type</a></li>
<li><a href="#org3151341">2.2. Conversion</a></li>
<li><a href="#orgd001261">2.3. Database information</a></li>
<li><a href="#org94fee9c">2.4. Printers</a></li>
</ul>
</li>
<li><a href="#orgdef29aa">3. Atomic mass</a></li>
<li><a href="#org03a37f3">4. Nuclei</a>
<li><a href="#orgfc124fd">3. Atomic mass</a></li>
<li><a href="#orgcd7e408">4. Nuclei</a>
<ul>
<li><a href="#org5a7662d">4.1. Type</a></li>
<li><a href="#org579c179">4.2. xyz file lexer/parser</a>
<li><a href="#org0691df2">4.1. Type</a></li>
<li><a href="#org8e208d0">4.2. xyz file lexer/parser</a>
<ul>
<li><a href="#orgce30d80">4.2.1. Lexer</a></li>
<li><a href="#org876ba4c">4.2.2. Parser</a></li>
<li><a href="#orgc268a5a">4.2.1. Lexer</a></li>
<li><a href="#orgde4d7fe">4.2.2. Parser</a></li>
</ul>
</li>
<li><a href="#orga50d036">4.3. Conversion</a></li>
<li><a href="#org4e8acc7">4.4. <span class="todo TODO">TODO</span> Query</a></li>
<li><a href="#org171171a">4.5. Printers</a></li>
<li><a href="#org7c7a0d9">4.6. Tests</a></li>
<li><a href="#org8e73084">4.3. Conversion</a></li>
<li><a href="#org4f3e29a">4.4. <span class="todo TODO">TODO</span> Query</a></li>
<li><a href="#org2ee319b">4.5. Printers</a></li>
<li><a href="#org786f8b3">4.6. Tests</a></li>
</ul>
</li>
<li><a href="#orgba1a0d0">5. Z-matrix</a>
<li><a href="#org504bab1">5. Z-matrix</a>
<ul>
<li><a href="#org9119847">5.1. Type</a></li>
<li><a href="#orgcbcf161">5.2. Conversion</a></li>
<li><a href="#org7612560">5.3. Printers</a></li>
<li><a href="#org6d42fe8">5.1. Type</a></li>
<li><a href="#orgdd6e9d8">5.2. Conversion</a></li>
<li><a href="#orgbeffa84">5.3. Printers</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="org-src-container">
<pre class="src src-ocaml" id="org3abd988"><span class="org-string">"Information relative to particles (electrons and nuclei)."</span>
<pre class="src src-ocaml" id="org1dcfffd"><span class="org-string">"Information relative to particles (electrons and nuclei)."</span>
</pre>
</div>
<div id="outline-container-org68e7110" class="outline-2">
<h2 id="org68e7110"><span class="section-number-2">1</span> Electrons</h2>
<div id="outline-container-orgd026c0b" class="outline-2">
<h2 id="orgd026c0b"><span class="section-number-2">1</span> Electrons</h2>
<div class="outline-text-2" id="text-1">
<p>
Data structure which contains the number of &alpha; and &beta; electrons.
</p>
</div>
<div id="outline-container-org2e398e8" class="outline-3">
<h3 id="org2e398e8"><span class="section-number-3">1.1</span> Type</h3>
<div id="outline-container-org78fdf96" class="outline-3">
<h3 id="org78fdf96"><span class="section-number-3">1.1</span> Type</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-ocaml" id="org027bb25"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span>
<pre class="src src-ocaml" id="org1875bfe"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orga8ea991" class="outline-3">
<h3 id="orga8ea991"><span class="section-number-3">1.2</span> Creation</h3>
<div id="outline-container-orgfb45c28" class="outline-3">
<h3 id="orgfb45c28"><span class="section-number-3">1.2</span> Creation</h3>
<div class="outline-text-3" id="text-1-2">
<div class="org-src-container">
<pre class="src src-ocaml"><span class="org-tuareg-font-lock-governing">open </span><span class="org-tuareg-font-lock-module">Common</span>
@ -358,8 +358,8 @@ Data structure which contains the number of &alpha; and &beta; electrons.
</div>
</div>
<div id="outline-container-org9eb84bd" class="outline-3">
<h3 id="org9eb84bd"><span class="section-number-3">1.3</span> Access</h3>
<div id="outline-container-orgf3d89c9" class="outline-3">
<h3 id="orgf3d89c9"><span class="section-number-3">1.3</span> Access</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">charge</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Charge.</span>t
@ -408,8 +408,8 @@ Data structure which contains the number of &alpha; and &beta; electrons.
</div>
</div>
<div id="outline-container-org7515075" class="outline-3">
<h3 id="org7515075"><span class="section-number-3">1.4</span> Printers</h3>
<div id="outline-container-orga3177e1" class="outline-3">
<h3 id="orga3177e1"><span class="section-number-3">1.4</span> Printers</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">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">-&gt;</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> unit
@ -418,24 +418,24 @@ Data structure which contains the number of &alpha; and &beta; electrons.
</div>
</div>
<div id="outline-container-org12573ce" class="outline-3">
<h3 id="org12573ce"><span class="section-number-3">1.5</span> Tests</h3>
<div id="outline-container-org063ae8a" class="outline-3">
<h3 id="org063ae8a"><span class="section-number-3">1.5</span> Tests</h3>
</div>
</div>
<div id="outline-container-org53d0bbb" class="outline-2">
<h2 id="org53d0bbb"><span class="section-number-2">2</span> Element</h2>
<div id="outline-container-org37e44c4" class="outline-2">
<h2 id="org37e44c4"><span class="section-number-2">2</span> Element</h2>
<div class="outline-text-2" id="text-2">
<p>
Chemical elements.
</p>
</div>
<div id="outline-container-org31e8ae2" class="outline-3">
<h3 id="org31e8ae2"><span class="section-number-3">2.1</span> Type</h3>
<div id="outline-container-org44a24ef" class="outline-3">
<h3 id="org44a24ef"><span class="section-number-3">2.1</span> Type</h3>
<div class="outline-text-3" id="text-2-1">
<div class="org-src-container">
<pre class="src src-ocaml" id="org61007f4"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span> <span class="org-tuareg-font-lock-operator">=</span>
<pre class="src src-ocaml" id="orgbf03032"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span> <span class="org-tuareg-font-lock-operator">=</span>
<span class="org-tuareg-font-lock-operator">|</span><span class="org-tuareg-font-lock-constructor">X</span>
<span class="org-tuareg-font-lock-operator">|</span><span class="org-tuareg-font-lock-constructor">H</span> <span class="org-tuareg-font-lock-operator">|</span><span class="org-tuareg-font-lock-constructor">He</span>
<span class="org-tuareg-font-lock-operator">|</span><span class="org-tuareg-font-lock-constructor">Li</span><span class="org-tuareg-font-lock-operator">|</span><span class="org-tuareg-font-lock-constructor">Be</span> <span class="org-tuareg-font-lock-operator">|</span><span class="org-tuareg-font-lock-constructor">B</span> <span class="org-tuareg-font-lock-operator">|</span><span class="org-tuareg-font-lock-constructor">C</span> <span class="org-tuareg-font-lock-operator">|</span><span class="org-tuareg-font-lock-constructor">N</span> <span class="org-tuareg-font-lock-operator">|</span><span class="org-tuareg-font-lock-constructor">O</span> <span class="org-tuareg-font-lock-operator">|</span><span class="org-tuareg-font-lock-constructor">F</span> <span class="org-tuareg-font-lock-operator">|</span><span class="org-tuareg-font-lock-constructor">Ne</span>
@ -452,8 +452,8 @@ Chemical elements.
</div>
</div>
<div id="outline-container-org78a0afd" class="outline-3">
<h3 id="org78a0afd"><span class="section-number-3">2.2</span> Conversion</h3>
<div id="outline-container-org3151341" class="outline-3">
<h3 id="org3151341"><span class="section-number-3">2.2</span> Conversion</h3>
<div class="outline-text-3" id="text-2-2">
<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_string</span> <span class="org-tuareg-font-lock-operator">:</span> string <span class="org-tuareg-font-lock-operator">-&gt;</span> t
@ -514,7 +514,7 @@ Chemical elements.
</tbody>
</table>
<pre class="example" id="orgf236f33">
<pre class="example" id="org9de730e">
Element.of_string "Fe" ;;
- : Element.t = Particles.Element.Fe
@ -533,8 +533,8 @@ Element.(to_string Fe);;
</div>
</div>
<div id="outline-container-org86c3cbf" class="outline-3">
<h3 id="org86c3cbf"><span class="section-number-3">2.3</span> Database information</h3>
<div id="outline-container-orgd001261" class="outline-3">
<h3 id="orgd001261"><span class="section-number-3">2.3</span> Database information</h3>
<div class="outline-text-3" id="text-2-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">covalent_radius</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Non_negative_float.</span>t
@ -583,8 +583,8 @@ Element.(to_string Fe);;
</div>
</div>
<div id="outline-container-orge6cad03" class="outline-3">
<h3 id="orge6cad03"><span class="section-number-3">2.4</span> Printers</h3>
<div id="outline-container-org94fee9c" class="outline-3">
<h3 id="org94fee9c"><span class="section-number-3">2.4</span> Printers</h3>
<div class="outline-text-3" id="text-2-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">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">-&gt;</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> unit
@ -595,30 +595,30 @@ Element.(to_string Fe);;
</div>
</div>
<div id="outline-container-orgdef29aa" class="outline-2">
<h2 id="orgdef29aa"><span class="section-number-2">3</span> Atomic mass</h2>
<div id="outline-container-orgfc124fd" class="outline-2">
<h2 id="orgfc124fd"><span class="section-number-2">3</span> Atomic mass</h2>
<div class="outline-text-2" id="text-3">
<p>
Atomic mass, a non-negative float.
</p>
<div class="org-src-container">
<pre class="src src-ocaml" id="org08cdb53"><span class="org-tuareg-font-lock-governing">include</span> <span class="org-tuareg-font-lock-governing">module type of</span> <span class="org-tuareg-font-lock-module">Common.Non_negative_float</span>
<pre class="src src-ocaml" id="orgbca64fa"><span class="org-tuareg-font-lock-governing">include</span> <span class="org-tuareg-font-lock-governing">module type of</span> <span class="org-tuareg-font-lock-module">Common.Non_negative_float</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org03a37f3" class="outline-2">
<h2 id="org03a37f3"><span class="section-number-2">4</span> Nuclei</h2>
<div id="outline-container-orgcd7e408" class="outline-2">
<h2 id="orgcd7e408"><span class="section-number-2">4</span> Nuclei</h2>
<div class="outline-text-2" id="text-4">
</div>
<div id="outline-container-org5a7662d" class="outline-3">
<h3 id="org5a7662d"><span class="section-number-3">4.1</span> Type</h3>
<div id="outline-container-org0691df2" class="outline-3">
<h3 id="org0691df2"><span class="section-number-3">4.1</span> Type</h3>
<div class="outline-text-3" id="text-4-1">
<div class="org-src-container">
<pre class="src src-ocaml" id="orgc560f39"><span class="org-tuareg-font-lock-governing">open </span><span class="org-tuareg-font-lock-module">Common</span>
<pre class="src src-ocaml" id="org0668b4e"><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">type</span> <span class="org-type">t</span> <span class="org-tuareg-font-lock-operator">=</span> <span class="org-tuareg-font-lock-operator">(</span><span class="org-tuareg-font-lock-module">Element.</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> array
</pre>
@ -626,12 +626,12 @@ Atomic mass, a non-negative float.
</div>
</div>
<div id="outline-container-org579c179" class="outline-3">
<h3 id="org579c179"><span class="section-number-3">4.2</span> xyz file lexer/parser</h3>
<div id="outline-container-org8e208d0" class="outline-3">
<h3 id="org8e208d0"><span class="section-number-3">4.2</span> xyz file lexer/parser</h3>
<div class="outline-text-3" id="text-4-2">
</div>
<div id="outline-container-orgce30d80" class="outline-4">
<h4 id="orgce30d80"><span class="section-number-4">4.2.1</span> Lexer</h4>
<div id="outline-container-orgc268a5a" class="outline-4">
<h4 id="orgc268a5a"><span class="section-number-4">4.2.1</span> Lexer</h4>
<div class="outline-text-4" id="text-4-2-1">
<p>
<code>nuclei_lexer.mll</code> contains the description of the lexemes used in
@ -684,8 +684,8 @@ rule read_all <span class="org-tuareg-font-lock-operator">=</span> parse
</div>
</div>
<div id="outline-container-org876ba4c" class="outline-4">
<h4 id="org876ba4c"><span class="section-number-4">4.2.2</span> Parser</h4>
<div id="outline-container-orgde4d7fe" class="outline-4">
<h4 id="orgde4d7fe"><span class="section-number-4">4.2.2</span> Parser</h4>
<div class="outline-text-4" id="text-4-2-2">
<p>
<code>xyz_parser.mly</code> parses nuclear coordinates in xyz format.
@ -804,8 +804,8 @@ an <code>xyz_file</code> data structure.
</div>
</div>
<div id="outline-container-orga50d036" class="outline-3">
<h3 id="orga50d036"><span class="section-number-3">4.3</span> Conversion</h3>
<div id="outline-container-org8e73084" class="outline-3">
<h3 id="org8e73084"><span class="section-number-3">4.3</span> Conversion</h3>
<div class="outline-text-3" id="text-4-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_xyz_string</span> <span class="org-tuareg-font-lock-operator">:</span> string <span class="org-tuareg-font-lock-operator">-&gt;</span> t
@ -864,8 +864,8 @@ an <code>xyz_file</code> data structure.
</div>
</div>
<div id="outline-container-org4e8acc7" class="outline-3">
<h3 id="org4e8acc7"><span class="section-number-3">4.4</span> <span class="todo TODO">TODO</span> Query</h3>
<div id="outline-container-org4f3e29a" class="outline-3">
<h3 id="org4f3e29a"><span class="section-number-3">4.4</span> <span class="todo TODO">TODO</span> Query</h3>
<div class="outline-text-3" id="text-4-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">formula</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> string
@ -914,8 +914,8 @@ an <code>xyz_file</code> data structure.
</div>
</div>
<div id="outline-container-org171171a" class="outline-3">
<h3 id="org171171a"><span class="section-number-3">4.5</span> Printers</h3>
<div id="outline-container-org2ee319b" class="outline-3">
<h3 id="org2ee319b"><span class="section-number-3">4.5</span> Printers</h3>
<div class="outline-text-3" id="text-4-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">-&gt;</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> unit
@ -924,31 +924,31 @@ an <code>xyz_file</code> data structure.
</div>
</div>
<div id="outline-container-org7c7a0d9" class="outline-3">
<h3 id="org7c7a0d9"><span class="section-number-3">4.6</span> Tests</h3>
<div id="outline-container-org786f8b3" class="outline-3">
<h3 id="org786f8b3"><span class="section-number-3">4.6</span> Tests</h3>
</div>
</div>
<div id="outline-container-orgba1a0d0" class="outline-2">
<h2 id="orgba1a0d0"><span class="section-number-2">5</span> Z-matrix</h2>
<div id="outline-container-org504bab1" class="outline-2">
<h2 id="org504bab1"><span class="section-number-2">5</span> Z-matrix</h2>
<div class="outline-text-2" id="text-5">
<p>
Z-matrix representation of nuclear coordinates.
</p>
</div>
<div id="outline-container-org9119847" class="outline-3">
<h3 id="org9119847"><span class="section-number-3">5.1</span> Type</h3>
<div id="outline-container-org6d42fe8" class="outline-3">
<h3 id="org6d42fe8"><span class="section-number-3">5.1</span> Type</h3>
<div class="outline-text-3" id="text-5-1">
<div class="org-src-container">
<pre class="src src-ocaml" id="org5d9ff03"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span>
<pre class="src src-ocaml" id="orga11fab8"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgcbcf161" class="outline-3">
<h3 id="orgcbcf161"><span class="section-number-3">5.2</span> Conversion</h3>
<div id="outline-container-orgdd6e9d8" class="outline-3">
<h3 id="orgdd6e9d8"><span class="section-number-3">5.2</span> Conversion</h3>
<div class="outline-text-3" id="text-5-2">
<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_string</span> <span class="org-tuareg-font-lock-operator">:</span> string <span class="org-tuareg-font-lock-operator">-&gt;</span> t
@ -983,7 +983,7 @@ Z-matrix representation of nuclear coordinates.
</tbody>
</table>
<pre class="example" id="orgab4373f">
<pre class="example" id="org3091e3e">
let zmt = Zmatrix.of_string "
n
n 1 nn
@ -1028,8 +1028,8 @@ H -0.568803 -0.793910 1.726048"
</div>
<div id="outline-container-org7612560" class="outline-3">
<h3 id="org7612560"><span class="section-number-3">5.3</span> Printers</h3>
<div id="outline-container-orgbeffa84" class="outline-3">
<h3 id="orgbeffa84"><span class="section-number-3">5.3</span> Printers</h3>
<div class="outline-text-3" id="text-5-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">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">-&gt;</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> unit
@ -1041,7 +1041,7 @@ H -0.568803 -0.793910 1.726048"
</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 23:32</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -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:28 -->
<!-- 2021-01-04 Mon 23:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Perturbation</title>
@ -229,31 +229,31 @@
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org310738f">1. MP2</a>
<li><a href="#orgf1e9352">1. MP2</a>
<ul>
<li><a href="#org791d8b4">1.1. Type</a></li>
<li><a href="#org3d234e6">1.2. Creation</a></li>
<li><a href="#org6f96dbb">1.3. Access</a></li>
<li><a href="#org30b589c">1.4. Printers</a></li>
<li><a href="#org107076b">1.5. Tests</a></li>
<li><a href="#orgca78e95">1.1. Type</a></li>
<li><a href="#orgf79c50f">1.2. Creation</a></li>
<li><a href="#org581cae2">1.3. Access</a></li>
<li><a href="#org1216130">1.4. Printers</a></li>
<li><a href="#org8d007c7">1.5. Tests</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="org-src-container">
<pre class="src src-ocaml" id="org2a31920"><span class="org-string">"Perturbation theory"</span>
<pre class="src src-ocaml" id="orgf8d8b0a"><span class="org-string">"Perturbation theory"</span>
</pre>
</div>
<div id="outline-container-org310738f" class="outline-2">
<h2 id="org310738f"><span class="section-number-2">1</span> MP2</h2>
<div id="outline-container-orgf1e9352" class="outline-2">
<h2 id="orgf1e9352"><span class="section-number-2">1</span> MP2</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-org791d8b4" class="outline-3">
<h3 id="org791d8b4"><span class="section-number-3">1.1</span> Type</h3>
<div id="outline-container-orgca78e95" class="outline-3">
<h3 id="orgca78e95"><span class="section-number-3">1.1</span> Type</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-ocaml"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span>
@ -262,8 +262,8 @@
</div>
</div>
<div id="outline-container-org3d234e6" class="outline-3">
<h3 id="org3d234e6"><span class="section-number-3">1.2</span> Creation</h3>
<div id="outline-container-orgf79c50f" class="outline-3">
<h3 id="orgf79c50f"><span class="section-number-3">1.2</span> Creation</h3>
<div class="outline-text-3" id="text-1-2">
<div class="org-src-container">
<pre class="src src-ocaml"><span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">make</span> <span class="org-tuareg-font-lock-operator">:</span> <span class="org-tuareg-font-lock-label">frozen_core</span><span class="org-tuareg-font-lock-operator">:</span><span class="org-tuareg-font-lock-module">Mo.Frozen_core.</span>t <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Mo.Basis.</span>t <span class="org-tuareg-font-lock-operator">-&gt;</span> t
@ -286,7 +286,7 @@
</tbody>
</table>
<pre class="example" id="org7915b05">
<pre class="example" id="org75b4482">
let mp2 =
Perturbation.Mp2.make ~frozen_core:(Mo.Frozen_core.(make Small nuclei)) mo_basis
;;
@ -295,8 +295,8 @@ val mp2 : Perturbation.Mp2.t = E(MP2)=-0.185523
</div>
</div>
<div id="outline-container-org6f96dbb" class="outline-3">
<h3 id="org6f96dbb"><span class="section-number-3">1.3</span> Access</h3>
<div id="outline-container-org581cae2" class="outline-3">
<h3 id="org581cae2"><span class="section-number-3">1.3</span> Access</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">energy</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> float
@ -331,14 +331,14 @@ val mp2 : Perturbation.Mp2.t = E(MP2)=-0.185523
</tbody>
</table>
<pre class="example" id="org1aeb8fb">
<pre class="example" id="org36fac7f">
</pre>
</div>
</div>
<div id="outline-container-org30b589c" class="outline-3">
<h3 id="org30b589c"><span class="section-number-3">1.4</span> Printers</h3>
<div id="outline-container-org1216130" class="outline-3">
<h3 id="org1216130"><span class="section-number-3">1.4</span> Printers</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">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">-&gt;</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> unit
@ -347,14 +347,14 @@ val mp2 : Perturbation.Mp2.t = E(MP2)=-0.185523
</div>
</div>
<div id="outline-container-org107076b" class="outline-3">
<h3 id="org107076b"><span class="section-number-3">1.5</span> Tests</h3>
<div id="outline-container-org8d007c7" class="outline-3">
<h3 id="org8d007c7"><span class="section-number-3">1.5</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:28</p>
<p class="date">Created: 2021-01-04 Mon 23:32</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -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 17:56 -->
<!-- 2021-01-04 Mon 23:37 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Top-level</title>
@ -226,13 +226,13 @@
<div id="content">
<h1 class="title">Top-level</h1>
<div class="org-src-container">
<pre class="src src-ocaml" id="orgc247e56"><span class="org-string">"Installs pretty printers for top-level."</span>
<pre class="src src-ocaml" id="org358e627"><span class="org-string">"Installs pretty printers for top-level."</span>
</pre>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Anthony Scemama</p>
<p class="date">Created: 2021-01-01 Fri 17:56</p>
<p class="date">Created: 2021-01-04 Mon 23:37</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -1,6 +1,8 @@
(* [[file:~/QCaml/top/install_printers.org::*Intall%20printers][Intall printers:3]] *)
let printers =
[
"Ao.Basis.pp" ;
"Ao.Basis_gaussian.pp" ;
"Common.Angular_momentum.pp" ;
"Common.Bitstring.pp" ;
"Common.Charge.pp" ;