Add Gaussian.Atomic_shell_pair

This commit is contained in:
Anthony Scemama 2021-01-20 23:55:34 +01:00
parent d1a0145826
commit d0f61750da
31 changed files with 921 additions and 561 deletions

View File

@ -1,4 +1,5 @@
#+TITLE: Atomic Orbitals
#+HTML_LINK_HOME: index.html
#+SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis

View File

@ -25,6 +25,7 @@
** Type
<<<~Gaussian_basis.t~>>>
#+NAME: types
#+begin_src ocaml :tangle (eval mli)
open Common

View File

@ -1,5 +1,6 @@
(* Type
*
* <<<~Gaussian_basis.t~>>>
* #+NAME: types *)
(* [[file:~/QCaml/ao/basis_gaussian.org::types][types]] *)

View File

@ -1,4 +1,5 @@
#+TITLE: Common
#+HTML_LINK_HOME: index.html
#+SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup

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-07 Thu 09:10 -->
<!-- 2021-01-20 Wed 23:52 -->
<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>
@ -245,42 +245,46 @@
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head>
<body>
<div id="content">
<div id="org-div-home-and-up">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><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="#org2a03573">1. Gaussian basis</a>
<li><a href="#org372d71d">1. Gaussian basis</a>
<ul>
<li><a href="#orge0b8bc4">1.1. Type</a></li>
<li><a href="#orgcc77f3c">1.2. Access</a></li>
<li><a href="#orgcf498d9">1.3. Computation</a></li>
<li><a href="#org2055d70">1.4. Creation</a></li>
<li><a href="#orge0a9e0f">1.5. Printers</a></li>
<li><a href="#org569cf0d">1.1. Type</a></li>
<li><a href="#org1cc0115">1.2. Access</a></li>
<li><a href="#org8d029c7">1.3. Computation</a></li>
<li><a href="#orge9b9a74">1.4. Creation</a></li>
<li><a href="#orgd376854">1.5. Printers</a></li>
</ul>
</li>
<li><a href="#org7d95757">2. Basis</a>
<li><a href="#org0efb0c2">2. Basis</a>
<ul>
<li><a href="#org9729ac2">2.1. Dimensions&#xa0;&#xa0;&#xa0;<span class="tag"><span class="noexports">noexports</span></span></a></li>
<li><a href="#org9a18f6b">2.2. Polymorphic types</a></li>
<li><a href="#org959a3bc">2.3. Types</a></li>
<li><a href="#org9986f87">2.4. Conversions</a></li>
<li><a href="#org825a4be">2.5. Access</a></li>
<li><a href="#org657865c">2.6. Printers</a></li>
<li><a href="#orgfc56091">2.1. Dimensions&#xa0;&#xa0;&#xa0;<span class="tag"><span class="noexports">noexports</span></span></a></li>
<li><a href="#orga0a6bd2">2.2. Polymorphic types</a></li>
<li><a href="#orgf9a3143">2.3. Types</a></li>
<li><a href="#org1a171c4">2.4. Conversions</a></li>
<li><a href="#org3f1b82a">2.5. Access</a></li>
<li><a href="#org2155877">2.6. Printers</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="org-src-container">
<pre class="src src-ocaml" id="org5676495"><span class="org-string">"Atomic basis set"</span>
<pre class="src src-ocaml" id="org60f1a39"><span class="org-string">"Atomic basis set"</span>
</pre>
</div>
<div id="outline-container-org2a03573" class="outline-2">
<h2 id="org2a03573"><span class="section-number-2">1</span> Gaussian basis</h2>
<div id="outline-container-org372d71d" class="outline-2">
<h2 id="org372d71d"><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:
@ -298,11 +302,14 @@ nucleus \(A\).
</p>
</div>
<div id="outline-container-orge0b8bc4" class="outline-3">
<h3 id="orge0b8bc4"><span class="section-number-3">1.1</span> Type</h3>
<div id="outline-container-org569cf0d" class="outline-3">
<h3 id="org569cf0d"><span class="section-number-3">1.1</span> Type</h3>
<div class="outline-text-3" id="text-1-1">
<p>
<a id="org99abab3"><code>Gaussian_basis.t</code></a>
</p>
<div class="org-src-container">
<pre class="src src-ocaml" id="org576c159"><span class="org-tuareg-font-lock-governing">open </span><span class="org-tuareg-font-lock-module">Common</span>
<pre class="src src-ocaml" id="orgfe8c01d"><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>
@ -314,8 +321,8 @@ nucleus \(A\).
</div>
</div>
<div id="outline-container-orgcc77f3c" class="outline-3">
<h3 id="orgcc77f3c"><span class="section-number-3">1.2</span> Access</h3>
<div id="outline-container-org1cc0115" class="outline-3">
<h3 id="org1cc0115"><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
@ -406,8 +413,8 @@ nucleus \(A\).
</div>
</div>
<div id="outline-container-orgcf498d9" class="outline-3">
<h3 id="orgcf498d9"><span class="section-number-3">1.3</span> Computation</h3>
<div id="outline-container-org8d029c7" class="outline-3">
<h3 id="org8d029c7"><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
@ -432,8 +439,8 @@ nucleus \(A\).
</div>
</div>
<div id="outline-container-org2055d70" class="outline-3">
<h3 id="org2055d70"><span class="section-number-3">1.4</span> Creation</h3>
<div id="outline-container-orge9b9a74" class="outline-3">
<h3 id="orge9b9a74"><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>
@ -456,15 +463,15 @@ Defaults:
<li><code>cartesian</code> : <code>false</code></li>
</ul>
<pre class="example" id="org9015ed3">
<pre class="example" id="org3eab3c8">
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-orge0a9e0f" class="outline-3">
<h3 id="orge0a9e0f"><span class="section-number-3">1.5</span> Printers</h3>
<div id="outline-container-orgd376854" class="outline-3">
<h3 id="orgd376854"><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
@ -474,23 +481,23 @@ val b : Ao.Basis_gaussian.t = Gaussian Basis, spherical, 15 AOs
</div>
</div>
<div id="outline-container-org7d95757" class="outline-2">
<h2 id="org7d95757"><span class="section-number-2">2</span> Basis</h2>
<div id="outline-container-org0efb0c2" class="outline-2">
<h2 id="org0efb0c2"><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-org9729ac2" class="outline-3">
<h3 id="org9729ac2"><span class="section-number-3">2.1</span> Dimensions&#xa0;&#xa0;&#xa0;<span class="tag"><span class="noexports">noexports</span></span></h3>
<div id="outline-container-orgfc56091" class="outline-3">
<h3 id="orgfc56091"><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-org9a18f6b" class="outline-3">
<h3 id="org9a18f6b"><span class="section-number-3">2.2</span> Polymorphic types</h3>
<div id="outline-container-orga0a6bd2" class="outline-3">
<h3 id="orga0a6bd2"><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="org99746e4"><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="org7556cac"><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>
@ -498,8 +505,8 @@ Data structure for Atomic Orbitals.
</div>
</div>
<div id="outline-container-org959a3bc" class="outline-3">
<h3 id="org959a3bc"><span class="section-number-3">2.3</span> Types</h3>
<div id="outline-container-orgf9a3143" class="outline-3">
<h3 id="orgf9a3143"><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>
@ -514,8 +521,8 @@ Data structure for Atomic Orbitals.
</div>
</div>
<div id="outline-container-org9986f87" class="outline-3">
<h3 id="org9986f87"><span class="section-number-3">2.4</span> Conversions</h3>
<div id="outline-container-org1a171c4" class="outline-3">
<h3 id="org1a171c4"><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>
@ -549,15 +556,15 @@ Defaults:
<li><code>cartesian</code> : <code>false</code></li>
</ul>
<pre class="example" id="orgd8b19e0">
<pre class="example" id="orgd1e8c0c">
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-org825a4be" class="outline-3">
<h3 id="org825a4be"><span class="section-number-3">2.5</span> Access</h3>
<div id="outline-container-org3f1b82a" class="outline-3">
<h3 id="org3f1b82a"><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
@ -655,8 +662,8 @@ val b : Ao.Basis.t = Gaussian Basis, spherical, 15 AOs
</div>
<div id="outline-container-org657865c" class="outline-3">
<h3 id="org657865c"><span class="section-number-3">2.6</span> Printers</h3>
<div id="outline-container-org2155877" class="outline-3">
<h3 id="org2155877"><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
@ -668,7 +675,7 @@ val b : Ao.Basis.t = Gaussian Basis, spherical, 15 AOs
</div>
<div id="postamble" class="status">
<p class="author">Author: Anthony Scemama</p>
<p class="date">Created: 2021-01-07 Thu 09:10</p>
<p class="date">Created: 2021-01-20 Wed 23:52</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-07 Thu 09:20 -->
<!-- 2021-01-20 Wed 23:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Gaussian</title>
@ -245,39 +245,51 @@
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head>
<body>
<div id="content">
<div id="org-div-home-and-up">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Gaussian</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgf2aa138">1. Atomic shell</a>
<li><a href="#org493bb5e">1. Atomic shell</a>
<ul>
<li><a href="#org231e0f3">1.1. Type</a></li>
<li><a href="#org40ab169">1.2. Access</a></li>
<li><a href="#org6afcebe">1.3. Creation</a></li>
<li><a href="#org11fa7e3">1.4. Printers</a></li>
<li><a href="#org8b57b46">1.1. Type</a></li>
<li><a href="#org6ce19dc">1.2. Access</a></li>
<li><a href="#orgd728205">1.3. Creation</a></li>
<li><a href="#orgae3aa50">1.4. Printers</a></li>
</ul>
</li>
<li><a href="#org58ca204">2. Atomic shell pair couple</a>
<li><a href="#orgb8a46dc">2. Atomic shell pair couple</a>
<ul>
<li><a href="#org0ddc259">2.1. Type</a></li>
<li><a href="#org47743f8">2.2. Access</a></li>
<li><a href="#org704f15d">2.3. Creation</a></li>
<li><a href="#orge02d873">2.4. Printers</a></li>
<li><a href="#orgda54231">2.1. Type</a></li>
<li><a href="#orgce726a0">2.2. Access</a></li>
<li><a href="#org9a8f8ee">2.3. Creation</a></li>
<li><a href="#org4eb55a5">2.4. Printers</a></li>
</ul>
</li>
<li><a href="#org9d5af05">3. Atomic shell pair</a>
<ul>
<li><a href="#orgc038806">3.1. Type</a></li>
<li><a href="#org66f13a3">3.2. Access</a></li>
<li><a href="#orgbe94db4">3.3. Creation</a></li>
<li><a href="#org5f9e64f">3.4. Printers</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="org-src-container">
<pre class="src src-ocaml" id="orga58af5b"><span class="org-string">"Gaussian basis sets"</span>
<pre class="src src-ocaml" id="orgb7f41e9"><span class="org-string">"Gaussian basis sets"</span>
</pre>
</div>
<div id="outline-container-orgf2aa138" class="outline-2">
<h2 id="orgf2aa138"><span class="section-number-2">1</span> Atomic shell</h2>
<div id="outline-container-org493bb5e" class="outline-2">
<h2 id="org493bb5e"><span class="section-number-2">1</span> Atomic shell</h2>
<div class="outline-text-2" id="text-1">
<p>
Set of contracted Gaussians differing only by the powers of \(x\), \(y\) and \(z\), with a
@ -310,8 +322,8 @@ particular powers of \(x,y,z\) (<code>PrimitiveShell.norm_coef_scale</code>)</li
</div>
<div id="outline-container-org231e0f3" class="outline-3">
<h3 id="org231e0f3"><span class="section-number-3">1.1</span> Type</h3>
<div id="outline-container-org8b57b46" class="outline-3">
<h3 id="org8b57b46"><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>
@ -322,8 +334,8 @@ particular powers of \(x,y,z\) (<code>PrimitiveShell.norm_coef_scale</code>)</li
</div>
</div>
<div id="outline-container-org40ab169" class="outline-3">
<h3 id="org40ab169"><span class="section-number-3">1.2</span> Access</h3>
<div id="outline-container-org6ce19dc" class="outline-3">
<h3 id="org6ce19dc"><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">ang_mom</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">Angular_momentum.</span>t
@ -400,14 +412,14 @@ particular powers of \(x,y,z\) (<code>PrimitiveShell.norm_coef_scale</code>)</li
</tbody>
</table>
<pre class="example" id="org8274839">
<pre class="example" id="org62fa36c">
</pre>
</div>
</div>
<div id="outline-container-org6afcebe" class="outline-3">
<h3 id="org6afcebe"><span class="section-number-3">1.3</span> Creation</h3>
<div id="outline-container-orgd728205" class="outline-3">
<h3 id="orgd728205"><span class="section-number-3">1.3</span> Creation</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">make</span> <span class="org-tuareg-font-lock-operator">:</span> <span class="org-tuareg-font-lock-label">?index</span><span class="org-tuareg-font-lock-operator">:</span>int <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Contracted_shell.</span>t array <span class="org-tuareg-font-lock-operator">-&gt;</span> t
@ -439,8 +451,8 @@ particular powers of \(x,y,z\) (<code>PrimitiveShell.norm_coef_scale</code>)</li
</div>
</div>
<div id="outline-container-org11fa7e3" class="outline-3">
<h3 id="org11fa7e3"><span class="section-number-3">1.4</span> Printers</h3>
<div id="outline-container-orgae3aa50" class="outline-3">
<h3 id="orgae3aa50"><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
@ -450,8 +462,8 @@ particular powers of \(x,y,z\) (<code>PrimitiveShell.norm_coef_scale</code>)</li
</div>
</div>
<div id="outline-container-org58ca204" class="outline-2">
<h2 id="org58ca204"><span class="section-number-2">2</span> Atomic shell pair couple</h2>
<div id="outline-container-orgb8a46dc" class="outline-2">
<h2 id="orgb8a46dc"><span class="section-number-2">2</span> Atomic shell pair couple</h2>
<div class="outline-text-2" id="text-2">
<p>
An atomic shell pair couple is the cartesian product between two sets of functions, one
@ -467,8 +479,8 @@ acting on different electrons, since they will be coupled by a two-electron oper
</div>
<div id="outline-container-org0ddc259" class="outline-3">
<h3 id="org0ddc259"><span class="section-number-3">2.1</span> Type</h3>
<div id="outline-container-orgda54231" class="outline-3">
<h3 id="orgda54231"><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"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span>
@ -479,8 +491,8 @@ acting on different electrons, since they will be coupled by a two-electron oper
</div>
</div>
<div id="outline-container-org47743f8" class="outline-3">
<h3 id="org47743f8"><span class="section-number-3">2.2</span> Access</h3>
<div id="outline-container-orgce726a0" class="outline-3">
<h3 id="orgce726a0"><span class="section-number-3">2.2</span> Access</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">ang_mom</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">Angular_momentum.</span>t
@ -565,8 +577,8 @@ acting on different electrons, since they will be coupled by a two-electron oper
</div>
</div>
<div id="outline-container-org704f15d" class="outline-3">
<h3 id="org704f15d"><span class="section-number-3">2.3</span> Creation</h3>
<div id="outline-container-org9a8f8ee" class="outline-3">
<h3 id="org9a8f8ee"><span class="section-number-3">2.3</span> Creation</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">make</span> <span class="org-tuareg-font-lock-operator">:</span> <span class="org-tuareg-font-lock-label">?cutoff</span><span class="org-tuareg-font-lock-operator">:</span>float <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Atomic_shell_pair.</span>t <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Atomic_shell_pair.</span>t <span class="org-tuareg-font-lock-operator">-&gt;</span> t option
@ -592,14 +604,14 @@ Default cutoff is \(\epsilon\).
</tbody>
</table>
<pre class="example" id="org72b679b">
<pre class="example" id="org2b8686b">
</pre>
</div>
</div>
<div id="outline-container-orge02d873" class="outline-3">
<h3 id="orge02d873"><span class="section-number-3">2.4</span> Printers</h3>
<div id="outline-container-org4eb55a5" class="outline-3">
<h3 id="org4eb55a5"><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
@ -608,10 +620,148 @@ Default cutoff is \(\epsilon\).
</div>
</div>
</div>
<div id="outline-container-org9d5af05" class="outline-2">
<h2 id="org9d5af05"><span class="section-number-2">3</span> Atomic shell pair</h2>
<div class="outline-text-2" id="text-3">
<p>
Data structure to represent pairs of atomic shells. The products of
functions in the shell pair are one-electron functions.
</p>
<p>
An atomic shell pair is an array of pairs of contracted shells.
</p>
</div>
<div id="outline-container-orgc038806" class="outline-3">
<h3 id="orgc038806"><span class="section-number-3">3.1</span> Type</h3>
<div class="outline-text-3" id="text-3-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>
<span class="org-tuareg-font-lock-governing">open </span><span class="org-tuareg-font-lock-module">Common</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org66f13a3" class="outline-3">
<h3 id="org66f13a3"><span class="section-number-3">3.2</span> Access</h3>
<div class="outline-text-3" id="text-3-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">atomic_shell_a</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">Atomic_shell.</span>t
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">atomic_shell_b</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">Atomic_shell.</span>t
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">contracted_shell_pairs</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">Contracted_shell_pair.</span>t list
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">ang_mom</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">Angular_momentum.</span>t
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">monocentric</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">norm_scales</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> float array
<span class="org-tuareg-font-lock-governing">val</span> <span class="org-function-name">a_minus_b</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-governing">val</span> <span class="org-function-name">a_minus_b_sq</span> <span class="org-tuareg-font-lock-operator">:</span> t <span class="org-tuareg-font-lock-operator">-&gt;</span> float
</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>atomic_shell_a</code></td>
<td class="org-left">Returns the first <code>Atomic_shell.t</code> which was used to build the atomic shell pair.</td>
</tr>
<tr>
<td class="org-left"><code>atomic_shell_b</code></td>
<td class="org-left">Returns the second <code>Atomic_shell.t</code> which was used to build the atomic shell pair.</td>
</tr>
<tr>
<td class="org-left"><code>contracted_shell_pairs</code></td>
<td class="org-left">Returns an array of <code>ContractedShellPair.t</code>, containing all the pairs of contracted functions used to build the atomic shell pair.</td>
</tr>
<tr>
<td class="org-left"><code>norm_scales</code></td>
<td class="org-left">norm<sub>coef</sub>.(i) / norm<sub>coef</sub>.(0)</td>
</tr>
<tr>
<td class="org-left"><code>ang_mom</code></td>
<td class="org-left">Total angular Momentum</td>
</tr>
<tr>
<td class="org-left"><code>monocentric</code></td>
<td class="org-left">If true, the two atomic shells have the same center.</td>
</tr>
<tr>
<td class="org-left"><code>a_minus_b</code></td>
<td class="org-left">Returns \(A-B\)</td>
</tr>
<tr>
<td class="org-left"><code>a_minus_b_sq</code></td>
<td class="org-left">Returns \(\vert A-B \vert^2\)</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-orgbe94db4" class="outline-3">
<h3 id="orgbe94db4"><span class="section-number-3">3.3</span> Creation</h3>
<div class="outline-text-3" id="text-3-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">make</span> <span class="org-tuareg-font-lock-operator">:</span> <span class="org-tuareg-font-lock-label">?cutoff</span><span class="org-tuareg-font-lock-operator">:</span>float <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Atomic_shell.</span>t <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Atomic_shell.</span>t <span class="org-tuareg-font-lock-operator">-&gt;</span> t option
</pre>
</div>
<p>
Creates an atomic shell pair from two atomic shells.
</p>
<p>
The contracted shell pairs contains the only pairs of primitives for which
the norm is greater than <code>cutoff</code>.
</p>
<p>
If all the contracted shell pairs are not significant, the function returns
<code>None</code>.
</p>
<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_atomic_shell_array</span> <span class="org-tuareg-font-lock-operator">:</span> <span class="org-tuareg-font-lock-label">?cutoff</span><span class="org-tuareg-font-lock-operator">:</span>float <span class="org-tuareg-font-lock-operator">-&gt;</span> <span class="org-tuareg-font-lock-module">Atomic_shell.</span>t array <span class="org-tuareg-font-lock-operator">-&gt;</span> t option array array
</pre>
</div>
<p>
Creates all possible atomic shell pairs from an array of atomic shells.
If an atomic shell pair is not significant, sets the value to <code>None</code>.
</p>
</div>
</div>
<div id="outline-container-org5f9e64f" class="outline-3">
<h3 id="org5f9e64f"><span class="section-number-3">3.4</span> Printers</h3>
<div class="outline-text-3" id="text-3-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
</pre>
</div>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Anthony Scemama</p>
<p class="date">Created: 2021-01-07 Thu 09:20</p>
<p class="date">Created: 2021-01-20 Wed 23:52</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-07 Thu 09:10 -->
<!-- 2021-01-20 Wed 23:52 -->
<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>
@ -223,16 +223,20 @@
</script>
</head>
<body>
<div id="content">
<div id="org-div-home-and-up">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Gaussian integrals</h1>
<div class="org-src-container">
<pre class="src src-ocaml" id="org51c8dbc"><span class="org-string">"Integrals on the Gaussian basis sets"</span>
<pre class="src src-ocaml" id="org2519248"><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-07 Thu 09:10</p>
<p class="date">Created: 2021-01-20 Wed 23:52</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-07 Thu 09:10 -->
<!-- 2021-01-08 Fri 23:16 -->
<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,12 +229,12 @@
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgb829db3">1. Documentation of Modules</a></li>
<li><a href="#org5057d67">1. Documentation of Modules</a></li>
</ul>
</div>
</div>
<div id="orgdb65f9d" class="figure">
<div id="orga362751" 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-orgb829db3" class="outline-2">
<h2 id="orgb829db3"><span class="section-number-2">1</span> Documentation of Modules</h2>
<div id="outline-container-org5057d67" class="outline-2">
<h2 id="org5057d67"><span class="section-number-2">1</span> Documentation of Modules</h2>
<div class="outline-text-2" id="text-1">
<ul class="org-ul">
<li><a href="./ao.html">Ao</a></li>
@ -281,7 +281,7 @@ the pretty printers.
</div>
<div id="postamble" class="status">
<p class="author">Author: Anthony Scemama</p>
<p class="date">Created: 2021-01-07 Thu 09:10</p>
<p class="date">Created: 2021-01-08 Fri 23:16</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -24,20 +24,6 @@ ls ../*/README.org \
| cut -d '/' -f 2
#+end_src
#+RESULTS: modules
| ao |
| common |
| gaussian_integrals |
| gaussian |
| linear_algebra |
| mo |
| operators |
| particles |
| perturbation |
| qcaml |
| simulation |
| top |
#+NAME: list
#+begin_src python :var modules=modules :exports results :results output drawer
for m in modules:
@ -45,24 +31,3 @@ for m in modules:
m2 = m.replace("_"," ").capitalize()
print(f"- [[./{m}.html][{m2}]]")
#+end_src
#+RESULTS: list
:results:
- [[./ao.html][Ao]]
- [[./common.html][Common]]
- [[./gaussian_integrals.html][Gaussian integrals]]
- [[./gaussian.html][Gaussian]]
- [[./linear_algebra.html][Linear algebra]]
- [[./mo.html][Mo]]
- [[./operators.html][Operators]]
- [[./particles.html][Particles]]
- [[./perturbation.html][Perturbation]]
- [[./qcaml.html][Qcaml]]
- [[./simulation.html][Simulation]]
- [[./top.html][Top]]
:end:

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-07 Thu 09:10 -->
<!-- 2021-01-20 Wed 23:52 -->
<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>
@ -223,16 +223,20 @@
</script>
</head>
<body>
<div id="content">
<div id="org-div-home-and-up">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Linear Algebra</h1>
<div class="org-src-container">
<pre class="src src-ocaml" id="org768cba3"><span class="org-string">"Linear algebra utilities of QCaml libraries."</span>
<pre class="src src-ocaml" id="org3aac483"><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-07 Thu 09:10</p>
<p class="date">Created: 2021-01-20 Wed 23:52</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-07 Thu 09:10 -->
<!-- 2021-01-20 Wed 23:52 -->
<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>
@ -223,42 +223,46 @@
</script>
</head>
<body>
<div id="content">
<div id="org-div-home-and-up">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Molecular orbitals</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org353e188">1. Frozen core</a>
<li><a href="#org1294b69">1. Frozen core</a>
<ul>
<li><a href="#org80ba5eb">1.1. Type</a></li>
<li><a href="#org313e780">1.2. Creation</a></li>
<li><a href="#org7cd11a0">1.3. Access</a></li>
<li><a href="#org3333e7f">1.4. Printers</a></li>
<li><a href="#org6b6a0df">1.1. Type</a></li>
<li><a href="#orgd41d207">1.2. Creation</a></li>
<li><a href="#org9bc8cb6">1.3. Access</a></li>
<li><a href="#orga5ea7e6">1.4. Printers</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="org-src-container">
<pre class="src src-ocaml" id="org51cf850"><span class="org-string">"Molecular orbitals"</span>
<pre class="src src-ocaml" id="org7099c5c"><span class="org-string">"Molecular orbitals"</span>
</pre>
</div>
<div id="outline-container-org353e188" class="outline-2">
<h2 id="org353e188"><span class="section-number-2">1</span> Frozen core</h2>
<div id="outline-container-org1294b69" class="outline-2">
<h2 id="org1294b69"><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-org80ba5eb" class="outline-3">
<h3 id="org80ba5eb"><span class="section-number-3">1.1</span> Type</h3>
<div id="outline-container-org6b6a0df" class="outline-3">
<h3 id="org6b6a0df"><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="org5b3a866"><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="orgea93a5d"><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 +276,8 @@ Defines how the core electrons are frozen, for each atom.
</div>
</div>
<div id="outline-container-org313e780" class="outline-3">
<h3 id="org313e780"><span class="section-number-3">1.2</span> Creation</h3>
<div id="outline-container-orgd41d207" class="outline-3">
<h3 id="orgd41d207"><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 +313,7 @@ Defines how the core electrons are frozen, for each atom.
</tbody>
</table>
<pre class="example" id="orgc7e33cb">
<pre class="example" id="org033fa67">
let f = Frozen_core.(make Small nuclei) ;;
val f : Frozen_core.t = [|0; 2; 2; 0|]
@ -319,8 +323,8 @@ val f : Frozen_core.t = [|0; 2; 2; 0|]
</div>
</div>
<div id="outline-container-org7cd11a0" class="outline-3">
<h3 id="org7cd11a0"><span class="section-number-3">1.3</span> Access</h3>
<div id="outline-container-org9bc8cb6" class="outline-3">
<h3 id="org9bc8cb6"><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 +353,7 @@ val f : Frozen_core.t = [|0; 2; 2; 0|]
</tbody>
</table>
<pre class="example" id="orge7971ab">
<pre class="example" id="org5c22144">
Frozen_core.num_elec f ;;
- : int = 4
@ -359,8 +363,8 @@ Frozen_core.num_mos f ;;
</div>
</div>
<div id="outline-container-org3333e7f" class="outline-3">
<h3 id="org3333e7f"><span class="section-number-3">1.4</span> Printers</h3>
<div id="outline-container-orga5ea7e6" class="outline-3">
<h3 id="orga5ea7e6"><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 +376,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-07 Thu 09:10</p>
<p class="date">Created: 2021-01-20 Wed 23:52</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-07 Thu 09:10 -->
<!-- 2021-01-20 Wed 23:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Common</title>
@ -245,81 +245,85 @@
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head>
<body>
<div id="content">
<div id="org-div-home-and-up">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Common</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org4a56e32">1. Electrons</a>
<li><a href="#org775ffd4">1. Electrons</a>
<ul>
<li><a href="#orgdc40278">1.1. Type</a></li>
<li><a href="#org9bccf4d">1.2. Creation</a></li>
<li><a href="#org2a0877e">1.3. Access</a></li>
<li><a href="#org5884747">1.4. Printers</a></li>
<li><a href="#orga9ed18c">1.5. Tests</a></li>
<li><a href="#org8d7eb03">1.1. Type</a></li>
<li><a href="#org828c0b4">1.2. Creation</a></li>
<li><a href="#org7990560">1.3. Access</a></li>
<li><a href="#orge31a496">1.4. Printers</a></li>
<li><a href="#org810810a">1.5. Tests</a></li>
</ul>
</li>
<li><a href="#org69713dc">2. Element</a>
<li><a href="#org192b2be">2. Element</a>
<ul>
<li><a href="#org6215a28">2.1. Type</a></li>
<li><a href="#orge28cfdc">2.2. Conversion</a></li>
<li><a href="#orgc7c2a05">2.3. Database information</a></li>
<li><a href="#org79cee24">2.4. Printers</a></li>
<li><a href="#org8abd3f7">2.1. Type</a></li>
<li><a href="#orgfb1e8c0">2.2. Conversion</a></li>
<li><a href="#org7920ab5">2.3. Database information</a></li>
<li><a href="#orgd9e4111">2.4. Printers</a></li>
</ul>
</li>
<li><a href="#org1195826">3. Atomic mass</a></li>
<li><a href="#org8b815c1">4. Nuclei</a>
<li><a href="#org683f181">3. Atomic mass</a></li>
<li><a href="#org69bdfa4">4. Nuclei</a>
<ul>
<li><a href="#org7bba6ad">4.1. Type</a></li>
<li><a href="#org3a3515a">4.2. xyz file lexer/parser</a>
<li><a href="#orgd713019">4.1. Type</a></li>
<li><a href="#org4bd7221">4.2. xyz file lexer/parser</a>
<ul>
<li><a href="#org922119a">4.2.1. Lexer</a></li>
<li><a href="#org915bfcd">4.2.2. Parser</a></li>
<li><a href="#org7281519">4.2.1. Lexer</a></li>
<li><a href="#org0b56536">4.2.2. Parser</a></li>
</ul>
</li>
<li><a href="#org04a93d0">4.3. Conversion</a></li>
<li><a href="#org8a9faf6">4.4. <span class="todo TODO">TODO</span> Query</a></li>
<li><a href="#orgca89a9a">4.5. Printers</a></li>
<li><a href="#orgb58b45a">4.6. Tests</a></li>
<li><a href="#orgf5cc2de">4.3. Conversion</a></li>
<li><a href="#org070bc98">4.4. <span class="todo TODO">TODO</span> Query</a></li>
<li><a href="#org1ab3f3a">4.5. Printers</a></li>
<li><a href="#org59045e6">4.6. Tests</a></li>
</ul>
</li>
<li><a href="#orge5eeeb2">5. Z-matrix</a>
<li><a href="#org35f99d4">5. Z-matrix</a>
<ul>
<li><a href="#org25fe90a">5.1. Type</a></li>
<li><a href="#org8691da7">5.2. Conversion</a></li>
<li><a href="#orgb88a055">5.3. Printers</a></li>
<li><a href="#org74ef0d8">5.1. Type</a></li>
<li><a href="#org4b91a4e">5.2. Conversion</a></li>
<li><a href="#orgbec757c">5.3. Printers</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="org-src-container">
<pre class="src src-ocaml" id="org3f026d7"><span class="org-string">"Information relative to particles (electrons and nuclei)."</span>
<pre class="src src-ocaml" id="org5e7fdf1"><span class="org-string">"Information relative to particles (electrons and nuclei)."</span>
</pre>
</div>
<div id="outline-container-org4a56e32" class="outline-2">
<h2 id="org4a56e32"><span class="section-number-2">1</span> Electrons</h2>
<div id="outline-container-org775ffd4" class="outline-2">
<h2 id="org775ffd4"><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-orgdc40278" class="outline-3">
<h3 id="orgdc40278"><span class="section-number-3">1.1</span> Type</h3>
<div id="outline-container-org8d7eb03" class="outline-3">
<h3 id="org8d7eb03"><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="org1481732"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span>
<pre class="src src-ocaml" id="org777e0db"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org9bccf4d" class="outline-3">
<h3 id="org9bccf4d"><span class="section-number-3">1.2</span> Creation</h3>
<div id="outline-container-org828c0b4" class="outline-3">
<h3 id="org828c0b4"><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>
@ -351,15 +355,15 @@ Data structure which contains the number of &alpha; and &beta; electrons.
<tr>
<td class="org-left"><code>of_atoms</code></td>
<td class="org-left">Creates the data relative to electrons for a molecular system described by <code>Nuclei.t</code> for a given total charge and spin multiplicity.</td>
<td class="org-left">Creates the data relative to electrons for a molecular system described by <a href="#orgc195f64"><code>Nuclei.t</code></a> for a given total charge and spin multiplicity.</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-org2a0877e" class="outline-3">
<h3 id="org2a0877e"><span class="section-number-3">1.3</span> Access</h3>
<div id="outline-container-org7990560" class="outline-3">
<h3 id="org7990560"><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 +412,8 @@ Data structure which contains the number of &alpha; and &beta; electrons.
</div>
</div>
<div id="outline-container-org5884747" class="outline-3">
<h3 id="org5884747"><span class="section-number-3">1.4</span> Printers</h3>
<div id="outline-container-orge31a496" class="outline-3">
<h3 id="orge31a496"><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 +422,24 @@ Data structure which contains the number of &alpha; and &beta; electrons.
</div>
</div>
<div id="outline-container-orga9ed18c" class="outline-3">
<h3 id="orga9ed18c"><span class="section-number-3">1.5</span> Tests</h3>
<div id="outline-container-org810810a" class="outline-3">
<h3 id="org810810a"><span class="section-number-3">1.5</span> Tests</h3>
</div>
</div>
<div id="outline-container-org69713dc" class="outline-2">
<h2 id="org69713dc"><span class="section-number-2">2</span> Element</h2>
<div id="outline-container-org192b2be" class="outline-2">
<h2 id="org192b2be"><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-org6215a28" class="outline-3">
<h3 id="org6215a28"><span class="section-number-3">2.1</span> Type</h3>
<div id="outline-container-org8abd3f7" class="outline-3">
<h3 id="org8abd3f7"><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="org50fac02"><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="orgc857d0f"><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 +456,8 @@ Chemical elements.
</div>
</div>
<div id="outline-container-orge28cfdc" class="outline-3">
<h3 id="orge28cfdc"><span class="section-number-3">2.2</span> Conversion</h3>
<div id="outline-container-orgfb1e8c0" class="outline-3">
<h3 id="orgfb1e8c0"><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 +518,7 @@ Chemical elements.
</tbody>
</table>
<pre class="example" id="org49d5374">
<pre class="example" id="org6c6cf9f">
Element.of_string "Fe" ;;
- : Element.t = Particles.Element.Fe
@ -533,8 +537,8 @@ Element.(to_string Fe);;
</div>
</div>
<div id="outline-container-orgc7c2a05" class="outline-3">
<h3 id="orgc7c2a05"><span class="section-number-3">2.3</span> Database information</h3>
<div id="outline-container-org7920ab5" class="outline-3">
<h3 id="org7920ab5"><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 +587,8 @@ Element.(to_string Fe);;
</div>
</div>
<div id="outline-container-org79cee24" class="outline-3">
<h3 id="org79cee24"><span class="section-number-3">2.4</span> Printers</h3>
<div id="outline-container-orgd9e4111" class="outline-3">
<h3 id="orgd9e4111"><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 +599,34 @@ Element.(to_string Fe);;
</div>
</div>
<div id="outline-container-org1195826" class="outline-2">
<h2 id="org1195826"><span class="section-number-2">3</span> Atomic mass</h2>
<div id="outline-container-org683f181" class="outline-2">
<h2 id="org683f181"><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="org0781dc6"><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="org7467a2c"><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-org8b815c1" class="outline-2">
<h2 id="org8b815c1"><span class="section-number-2">4</span> Nuclei</h2>
<div id="outline-container-org69bdfa4" class="outline-2">
<h2 id="org69bdfa4"><span class="section-number-2">4</span> Nuclei</h2>
<div class="outline-text-2" id="text-4">
</div>
<div id="outline-container-org7bba6ad" class="outline-3">
<h3 id="org7bba6ad"><span class="section-number-3">4.1</span> Type</h3>
<div id="outline-container-orgd713019" class="outline-3">
<h3 id="orgd713019"><span class="section-number-3">4.1</span> Type</h3>
<div class="outline-text-3" id="text-4-1">
<p>
<a id="orgc195f64"><code>Nuclei.t</code></a>
</p>
<div class="org-src-container">
<pre class="src src-ocaml" id="orgce6c71b"><span class="org-tuareg-font-lock-governing">open </span><span class="org-tuareg-font-lock-module">Common</span>
<pre class="src src-ocaml" id="orgf7c74d8"><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 +634,12 @@ Atomic mass, a non-negative float.
</div>
</div>
<div id="outline-container-org3a3515a" class="outline-3">
<h3 id="org3a3515a"><span class="section-number-3">4.2</span> xyz file lexer/parser</h3>
<div id="outline-container-org4bd7221" class="outline-3">
<h3 id="org4bd7221"><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-org922119a" class="outline-4">
<h4 id="org922119a"><span class="section-number-4">4.2.1</span> Lexer</h4>
<div id="outline-container-org7281519" class="outline-4">
<h4 id="org7281519"><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 +692,8 @@ rule read_all <span class="org-tuareg-font-lock-operator">=</span> parse
</div>
</div>
<div id="outline-container-org915bfcd" class="outline-4">
<h4 id="org915bfcd"><span class="section-number-4">4.2.2</span> Parser</h4>
<div id="outline-container-org0b56536" class="outline-4">
<h4 id="org0b56536"><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 +812,8 @@ an <code>xyz_file</code> data structure.
</div>
</div>
<div id="outline-container-org04a93d0" class="outline-3">
<h3 id="org04a93d0"><span class="section-number-3">4.3</span> Conversion</h3>
<div id="outline-container-orgf5cc2de" class="outline-3">
<h3 id="orgf5cc2de"><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 +872,8 @@ an <code>xyz_file</code> data structure.
</div>
</div>
<div id="outline-container-org8a9faf6" class="outline-3">
<h3 id="org8a9faf6"><span class="section-number-3">4.4</span> <span class="todo TODO">TODO</span> Query</h3>
<div id="outline-container-org070bc98" class="outline-3">
<h3 id="org070bc98"><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 +922,8 @@ an <code>xyz_file</code> data structure.
</div>
</div>
<div id="outline-container-orgca89a9a" class="outline-3">
<h3 id="orgca89a9a"><span class="section-number-3">4.5</span> Printers</h3>
<div id="outline-container-org1ab3f3a" class="outline-3">
<h3 id="org1ab3f3a"><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 +932,31 @@ an <code>xyz_file</code> data structure.
</div>
</div>
<div id="outline-container-orgb58b45a" class="outline-3">
<h3 id="orgb58b45a"><span class="section-number-3">4.6</span> Tests</h3>
<div id="outline-container-org59045e6" class="outline-3">
<h3 id="org59045e6"><span class="section-number-3">4.6</span> Tests</h3>
</div>
</div>
<div id="outline-container-orge5eeeb2" class="outline-2">
<h2 id="orge5eeeb2"><span class="section-number-2">5</span> Z-matrix</h2>
<div id="outline-container-org35f99d4" class="outline-2">
<h2 id="org35f99d4"><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-org25fe90a" class="outline-3">
<h3 id="org25fe90a"><span class="section-number-3">5.1</span> Type</h3>
<div id="outline-container-org74ef0d8" class="outline-3">
<h3 id="org74ef0d8"><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="org759389e"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span>
<pre class="src src-ocaml" id="org7111155"><span class="org-tuareg-font-lock-governing">type</span> <span class="org-type">t</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org8691da7" class="outline-3">
<h3 id="org8691da7"><span class="section-number-3">5.2</span> Conversion</h3>
<div id="outline-container-org4b91a4e" class="outline-3">
<h3 id="org4b91a4e"><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 +991,7 @@ Z-matrix representation of nuclear coordinates.
</tbody>
</table>
<pre class="example" id="orgab6c45a">
<pre class="example" id="org4da0c8d">
let zmt = Zmatrix.of_string "
n
n 1 nn
@ -1028,8 +1036,8 @@ H -0.568803 -0.793910 1.726048"
</div>
<div id="outline-container-orgb88a055" class="outline-3">
<h3 id="orgb88a055"><span class="section-number-3">5.3</span> Printers</h3>
<div id="outline-container-orgbec757c" class="outline-3">
<h3 id="orgbec757c"><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 +1049,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-07 Thu 09:10</p>
<p class="date">Created: 2021-01-20 Wed 23:52</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-07 Thu 09:10 -->
<!-- 2021-01-20 Wed 23:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Perturbation</title>
@ -223,37 +223,41 @@
</script>
</head>
<body>
<div id="content">
<div id="org-div-home-and-up">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Perturbation</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org92cb6cc">1. MP2</a>
<li><a href="#org9499b78">1. MP2</a>
<ul>
<li><a href="#org6070c92">1.1. Type</a></li>
<li><a href="#org1425a1d">1.2. Creation</a></li>
<li><a href="#org5bca821">1.3. Access</a></li>
<li><a href="#orgc5aaf2b">1.4. Printers</a></li>
<li><a href="#org4355fa2">1.5. Tests</a></li>
<li><a href="#org7af70d6">1.1. Type</a></li>
<li><a href="#orgc9fb258">1.2. Creation</a></li>
<li><a href="#org874a939">1.3. Access</a></li>
<li><a href="#org4363bab">1.4. Printers</a></li>
<li><a href="#org9eebbb5">1.5. Tests</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="org-src-container">
<pre class="src src-ocaml" id="org3f49b15"><span class="org-string">"Perturbation theory"</span>
<pre class="src src-ocaml" id="org4748522"><span class="org-string">"Perturbation theory"</span>
</pre>
</div>
<div id="outline-container-org92cb6cc" class="outline-2">
<h2 id="org92cb6cc"><span class="section-number-2">1</span> MP2</h2>
<div id="outline-container-org9499b78" class="outline-2">
<h2 id="org9499b78"><span class="section-number-2">1</span> MP2</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-org6070c92" class="outline-3">
<h3 id="org6070c92"><span class="section-number-3">1.1</span> Type</h3>
<div id="outline-container-org7af70d6" class="outline-3">
<h3 id="org7af70d6"><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 +266,8 @@
</div>
</div>
<div id="outline-container-org1425a1d" class="outline-3">
<h3 id="org1425a1d"><span class="section-number-3">1.2</span> Creation</h3>
<div id="outline-container-orgc9fb258" class="outline-3">
<h3 id="orgc9fb258"><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 +290,7 @@
</tbody>
</table>
<pre class="example" id="orgb8185ad">
<pre class="example" id="orgb08821b">
let mp2 =
Perturbation.Mp2.make ~frozen_core:(Mo.Frozen_core.(make Small nuclei)) mo_basis
;;
@ -295,8 +299,8 @@ val mp2 : Perturbation.Mp2.t = E(MP2)=-0.185523
</div>
</div>
<div id="outline-container-org5bca821" class="outline-3">
<h3 id="org5bca821"><span class="section-number-3">1.3</span> Access</h3>
<div id="outline-container-org874a939" class="outline-3">
<h3 id="org874a939"><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 +335,14 @@ val mp2 : Perturbation.Mp2.t = E(MP2)=-0.185523
</tbody>
</table>
<pre class="example" id="orgc7da836">
<pre class="example" id="org487f614">
</pre>
</div>
</div>
<div id="outline-container-orgc5aaf2b" class="outline-3">
<h3 id="orgc5aaf2b"><span class="section-number-3">1.4</span> Printers</h3>
<div id="outline-container-org4363bab" class="outline-3">
<h3 id="org4363bab"><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 +351,14 @@ val mp2 : Perturbation.Mp2.t = E(MP2)=-0.185523
</div>
</div>
<div id="outline-container-org4355fa2" class="outline-3">
<h3 id="org4355fa2"><span class="section-number-3">1.5</span> Tests</h3>
<div id="outline-container-org9eebbb5" class="outline-3">
<h3 id="org9eebbb5"><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-07 Thu 09:10</p>
<p class="date">Created: 2021-01-20 Wed 23:52</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-07 Thu 09:20 -->
<!-- 2021-01-20 Wed 23:52 -->
<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>
@ -223,16 +223,20 @@
</script>
</head>
<body>
<div id="content">
<div id="org-div-home-and-up">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Top-level</h1>
<div class="org-src-container">
<pre class="src src-ocaml" id="org1883438"><span class="org-string">"Installs pretty printers for top-level."</span>
<pre class="src src-ocaml" id="orgfc71223"><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-07 Thu 09:20</p>
<p class="date">Created: 2021-01-20 Wed 23:52</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -1,4 +1,5 @@
#+TITLE: Gaussian
#+HTML_LINK_HOME: index.html
#+SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis

View File

@ -0,0 +1,161 @@
#+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
* Atomic shell pair
:PROPERTIES:
:header-args: :noweb yes :comments both
:END:
Data structure to represent pairs of atomic shells. The products of
functions in the shell pair are one-electron functions.
An atomic shell pair is an array of pairs of contracted shells.
** Type
#+begin_src ocaml :tangle (eval mli)
type t
open Common
#+end_src
#+begin_src ocaml :tangle (eval ml) :exports none
open Common
type t =
{
contracted_shell_pairs : Contracted_shell_pair.t list;
atomic_shell_a : Atomic_shell.t;
atomic_shell_b : Atomic_shell.t;
}
module Am = Angular_momentum
module As = Atomic_shell
module Co = Coordinate
module Cs = Contracted_shell
module Csp = Contracted_shell_pair
#+end_src
** Access
#+begin_src ocaml :tangle (eval mli)
val atomic_shell_a : t -> Atomic_shell.t
val atomic_shell_b : t -> Atomic_shell.t
val contracted_shell_pairs : t -> Contracted_shell_pair.t list
val ang_mom : t -> Angular_momentum.t
val monocentric : t -> bool
val norm_scales : t -> float array
val a_minus_b : t -> Coordinate.t
val a_minus_b_sq : t -> float
#+end_src
| ~atomic_shell_a~ | Returns the first ~Atomic_shell.t~ which was used to build the atomic shell pair. |
| ~atomic_shell_b~ | Returns the second ~Atomic_shell.t~ which was used to build the atomic shell pair. |
| ~contracted_shell_pairs~ | Returns an array of ~ContractedShellPair.t~, containing all the pairs of contracted functions used to build the atomic shell pair. |
| ~norm_scales~ | norm_coef.(i) / norm_coef.(0) |
| ~ang_mom~ | Total angular Momentum |
| ~monocentric~ | If true, the two atomic shells have the same center. |
| ~a_minus_b~ | Returns $A-B$ |
| ~a_minus_b_sq~ | Returns $\vert A-B \vert^2$ |
#+begin_src ocaml :tangle (eval ml) :exports none
let atomic_shell_a x = x.atomic_shell_a
let atomic_shell_b x = x.atomic_shell_b
let contracted_shell_pairs x = x.contracted_shell_pairs
let monocentric x =
Csp.monocentric @@ List.hd x.contracted_shell_pairs
let a_minus_b x =
Csp.a_minus_b @@ List.hd x.contracted_shell_pairs
let a_minus_b_sq x =
Csp.a_minus_b_sq @@ List.hd x.contracted_shell_pairs
let ang_mom x =
Csp.ang_mom @@ List.hd x.contracted_shell_pairs
let norm_scales x =
Csp.norm_scales @@ List.hd x.contracted_shell_pairs
#+end_src
** Creation
#+begin_src ocaml :tangle (eval mli)
val make : ?cutoff:float -> Atomic_shell.t -> Atomic_shell.t -> t option
#+end_src
Creates an atomic shell pair from two atomic shells.
The contracted shell pairs contains the only pairs of primitives for which
the norm is greater than ~cutoff~.
If all the contracted shell pairs are not significant, the function returns
~None~.
#+begin_src ocaml :tangle (eval mli)
val of_atomic_shell_array : ?cutoff:float -> Atomic_shell.t array -> t option array array
#+end_src
Creates all possible atomic shell pairs from an array of atomic shells.
If an atomic shell pair is not significant, sets the value to ~None~.
#+begin_src ocaml :tangle (eval ml) :exports none
let make ?(cutoff=Constants.epsilon) atomic_shell_a atomic_shell_b =
let l_a = Array.to_list (As.contracted_shells atomic_shell_a)
and l_b = Array.to_list (As.contracted_shells atomic_shell_b)
in
let contracted_shell_pairs =
List.concat_map (fun s_a ->
List.map (fun s_b ->
if Cs.index s_b <= Cs.index s_a then
Csp.make ~cutoff s_a s_b
else
None
) l_b
) l_a
|> Util.list_some
in
match contracted_shell_pairs with
| [] -> None
| _ -> Some { atomic_shell_a ; atomic_shell_b ; contracted_shell_pairs }
let of_atomic_shell_array ?(cutoff=Constants.epsilon) basis =
Array.mapi (fun i shell_a ->
Array.map (fun shell_b ->
make ~cutoff shell_a shell_b)
(Array.sub basis 0 (i+1))
) basis
#+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 s =
let open Format in
fprintf ppf "@[%a@ %a@]"
Atomic_shell.pp s.atomic_shell_a
Atomic_shell.pp s.atomic_shell_b
#+end_src

View File

@ -1,3 +1,4 @@
(* [[file:~/QCaml/gaussian/atomic_shell_pair.org::*Type][Type:2]] *)
open Common
type t =
@ -13,9 +14,48 @@ module As = Atomic_shell
module Co = Coordinate
module Cs = Contracted_shell
module Csp = Contracted_shell_pair
(* Type:2 ends here *)
(** Creates an atomic shell pair : an array of pairs of contracted shells.
*)
(* | ~atomic_shell_a~ | Returns the first ~Atomic_shell.t~ which was used to build the atomic shell pair. |
* | ~atomic_shell_b~ | Returns the second ~Atomic_shell.t~ which was used to build the atomic shell pair. |
* | ~contracted_shell_pairs~ | Returns an array of ~ContractedShellPair.t~, containing all the pairs of contracted functions used to build the atomic shell pair. |
* | ~norm_scales~ | norm_coef.(i) / norm_coef.(0) |
* | ~ang_mom~ | Total angular Momentum |
* | ~monocentric~ | If true, the two atomic shells have the same center. |
* | ~a_minus_b~ | Returns $A-B$ |
* | ~a_minus_b_sq~ | Returns $\vert A-B \vert^2$ | *)
(* [[file:~/QCaml/gaussian/atomic_shell_pair.org::*Access][Access:2]] *)
let atomic_shell_a x = x.atomic_shell_a
let atomic_shell_b x = x.atomic_shell_b
let contracted_shell_pairs x = x.contracted_shell_pairs
let monocentric x =
Csp.monocentric @@ List.hd x.contracted_shell_pairs
let a_minus_b x =
Csp.a_minus_b @@ List.hd x.contracted_shell_pairs
let a_minus_b_sq x =
Csp.a_minus_b_sq @@ List.hd x.contracted_shell_pairs
let ang_mom x =
Csp.ang_mom @@ List.hd x.contracted_shell_pairs
let norm_scales x =
Csp.norm_scales @@ List.hd x.contracted_shell_pairs
(* Access:2 ends here *)
(* Creates all possible atomic shell pairs from an array of atomic shells.
* If an atomic shell pair is not significant, sets the value to ~None~. *)
(* [[file:~/QCaml/gaussian/atomic_shell_pair.org::*Creation][Creation:3]] *)
let make ?(cutoff=Constants.epsilon) atomic_shell_a atomic_shell_b =
let l_a = Array.to_list (As.contracted_shells atomic_shell_a)
@ -38,29 +78,19 @@ let make ?(cutoff=Constants.epsilon) atomic_shell_a atomic_shell_b =
| _ -> Some { atomic_shell_a ; atomic_shell_b ; contracted_shell_pairs }
let atomic_shell_a x = x.atomic_shell_a
let atomic_shell_b x = x.atomic_shell_b
let contracted_shell_pairs x = x.contracted_shell_pairs
let monocentric x = Csp.monocentric @@ List.hd x.contracted_shell_pairs
let a_minus_b x = Csp.a_minus_b @@ List.hd x.contracted_shell_pairs
let a_minus_b_sq x = Csp.a_minus_b_sq @@ List.hd x.contracted_shell_pairs
let ang_mom x = Csp.ang_mom @@ List.hd x.contracted_shell_pairs
let norm_scales x = Csp.norm_scales @@ List.hd x.contracted_shell_pairs
(** The array of all shell pairs with their correspondance in the list
of contracted shells.
*)
let of_atomic_shell_array ?(cutoff=Constants.epsilon) basis =
Array.mapi (fun i shell_a ->
Array.map (fun shell_b ->
make ~cutoff shell_a shell_b)
(Array.sub basis 0 (i+1))
) basis
(* Creation:3 ends here *)
(* [[file:~/QCaml/gaussian/atomic_shell_pair.org::*Printers][Printers:2]] *)
let pp ppf s =
let open Format in
fprintf ppf "@[%a@ %a@]"
Atomic_shell.pp s.atomic_shell_a
Atomic_shell.pp s.atomic_shell_b
(* Printers:2 ends here *)

View File

@ -1,53 +1,51 @@
(** A datastructure to represent pairs of atomic shells.
*)
(* Type *)
(* [[file:~/QCaml/gaussian/atomic_shell_pair.org::*Type][Type:1]] *)
type t
open Common
(* Type:1 ends here *)
(* Access *)
val make : ?cutoff:float -> Atomic_shell.t -> Atomic_shell.t -> t option
(** Creates an atomic shell pair from two atomic shells.
The contracted shell pairs contains the only pairs of primitives for which
the norm is greater than [cutoff].
If all the contracted shell pairs are not significant, the function returns
[None].
*)
val of_atomic_shell_array : ?cutoff:float -> Atomic_shell.t array -> t option array array
(** Creates all possible atomic shell pairs from an array of atomic shells.
If an atomic shell pair is not significant, sets the value to [None].
*)
val atomic_shell_a : t -> Atomic_shell.t
(** Returns the first {!Atomic_shell.t} which was used to build the atomic
shell pair.
*)
val atomic_shell_b : t -> Atomic_shell.t
(** Returns the second {!Atomic_shell.t} which was used to build the atomic
shell pair.
*)
(* [[file:~/QCaml/gaussian/atomic_shell_pair.org::*Access][Access:1]] *)
val atomic_shell_a : t -> Atomic_shell.t
val atomic_shell_b : t -> Atomic_shell.t
val contracted_shell_pairs : t -> Contracted_shell_pair.t list
(** Returns an array of {!ContractedShellPair.t}, containing all the pairs of
contracted functions used to build the atomic shell pair.
*)
val ang_mom : t -> Angular_momentum.t
val monocentric : t -> bool
val norm_scales : t -> float array
val a_minus_b : t -> Coordinate.t
val a_minus_b_sq : t -> float
(* Access:1 ends here *)
val a_minus_b : t -> Coordinate.t
(* A-B *)
(* Creation *)
val a_minus_b_sq : t -> float
(* |A-B|^2 *)
val norm_scales : t -> float array
(* norm_coef.(i) / norm_coef.(0) *)
(* [[file:~/QCaml/gaussian/atomic_shell_pair.org::*Creation][Creation:1]] *)
val make : ?cutoff:float -> Atomic_shell.t -> Atomic_shell.t -> t option
(* Creation:1 ends here *)
val ang_mom : t -> Angular_momentum.t
(* Total angular Momentum *)
val monocentric : t -> bool
(** If true, the two atomic shells have the same center. *)
(* Creates an atomic shell pair from two atomic shells.
*
* The contracted shell pairs contains the only pairs of primitives for which
* the norm is greater than ~cutoff~.
*
* If all the contracted shell pairs are not significant, the function returns
* ~None~. *)
(* [[file:~/QCaml/gaussian/atomic_shell_pair.org::*Creation][Creation:2]] *)
val of_atomic_shell_array : ?cutoff:float -> Atomic_shell.t array -> t option array array
(* Creation:2 ends here *)
(* Printers *)
(* [[file:~/QCaml/gaussian/atomic_shell_pair.org::*Printers][Printers:1]] *)
val pp : Format.formatter -> t -> unit
(* Printers:1 ends here *)

View File

@ -1,4 +1,5 @@
#+TITLE: Gaussian integrals
#+HTML_LINK_HOME: index.html
#+SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis

View File

@ -1,4 +1,5 @@
#+TITLE: Linear Algebra
#+HTML_LINK_HOME: index.html
#+SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis

View File

@ -1,4 +1,5 @@
#+TITLE: Molecular orbitals
#+HTML_LINK_HOME: index.html
#+SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis

View File

@ -1,4 +1,5 @@
#+TITLE: Operators
#+HTML_LINK_HOME: index.html
#+SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis

View File

@ -1,4 +1,5 @@
#+TITLE: Common
#+HTML_LINK_HOME: index.html
#+SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis

View File

@ -1,4 +1,5 @@
(* Type
* <<<~Nuclei.t~>>>
*
* #+NAME: types *)

View File

@ -15,6 +15,7 @@
:END:
** Type
<<<~Nuclei.t~>>>
#+NAME: types
#+begin_src ocaml :tangle (eval mli)

View File

@ -1,4 +1,5 @@
#+TITLE: Perturbation
#+HTML_LINK_HOME: index.html
#+SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis

View File

@ -1,4 +1,5 @@
#+TITLE: QCaml
#+HTML_LINK_HOME: index.html
#+SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis

View File

@ -1,4 +1,5 @@
#+TITLE: Simulation
#+HTML_LINK_HOME: index.html
#+SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis

View File

@ -1,4 +1,5 @@
#+TITLE: Top-level
#+HTML_LINK_HOME: index.html
#+SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup

View File

@ -12,6 +12,7 @@ let printers =
"Common.Spin.pp" ;
"Common.Zkey.pp" ;
"Gaussian.Atomic_shell.pp" ;
"Gaussian.Atomic_shell_pair.pp" ;
"Gaussian.Atomic_shell_pair_couple.pp" ;
"Mo.Frozen_core.pp" ;
"Particles.Electrons.pp" ;