1
0
mirror of https://github.com/TREX-CoE/qmckl.git synced 2025-04-28 11:24:46 +02:00

Deploying to gh-pages from @ TREX-CoE/qmckl@53e2e7bb05 🚀

This commit is contained in:
scemama 2022-01-06 01:30:32 +00:00
parent 94f659e5e8
commit 828385bf92
20 changed files with 3422 additions and 3351 deletions

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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>QMCkl source code documentation</title>
@ -324,7 +324,6 @@ for the JavaScript code in this tag.
<li><a href="./qmckl_memory.html">Memory management</a></li>
<li><a href="./qmckl_mo.html">Molecular Orbitals</a></li>
<li><a href="./qmckl_numprec.html">Numerical precision</a></li>
<li><a href="./qmckl_distance.html">Inter-particle distances</a></li>
<li><a href="./qmckl_nucleus.html">Nucleus</a></li>
<li><a href="./qmckl_sherman_morrison_woodbury.html">Sherman-Morrison-Woodbury</a></li>
<li><a href="./qmckl_utils.html">Utility functions</a></li>
@ -362,7 +361,7 @@ and bug reports should be submitted at
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Introduction</title>
@ -333,30 +333,30 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgab74a83">1. Using QMCkl</a></li>
<li><a href="#org5412c18">2. Developing in QMCkl</a>
<li><a href="#org70eb4b7">1. Using QMCkl</a></li>
<li><a href="#org2e758ff">2. Developing in QMCkl</a>
<ul>
<li><a href="#org0eb11fd">2.1. Literate programming</a></li>
<li><a href="#org12ac7a7">2.2. Source code editing</a></li>
<li><a href="#orgdbf37cb">2.3. Choice of the programming language</a></li>
<li><a href="#orgdcb129a">2.4. Coding rules</a></li>
<li><a href="#orgffea1ec">2.5. Design of the library</a></li>
<li><a href="#org91b48e6">2.6. Naming conventions</a></li>
<li><a href="#orgce408b3">2.7. Application programming interface</a></li>
<li><a href="#org431972d">2.8. Global state</a></li>
<li><a href="#org0380d6e">2.9. Headers</a></li>
<li><a href="#orgdebde9a">2.10. Low-level functions</a></li>
<li><a href="#org0637504">2.11. High-level functions</a></li>
<li><a href="#org176357d">2.12. Numerical precision</a></li>
<li><a href="#orgc5bcc62">2.13. Algorithms</a></li>
<li><a href="#org6481df2">2.1. Literate programming</a></li>
<li><a href="#orgdc0a908">2.2. Source code editing</a></li>
<li><a href="#org6f1d777">2.3. Choice of the programming language</a></li>
<li><a href="#org1648c06">2.4. Coding rules</a></li>
<li><a href="#org17cc0e6">2.5. Design of the library</a></li>
<li><a href="#orge9d550d">2.6. Naming conventions</a></li>
<li><a href="#org897a7fb">2.7. Application programming interface</a></li>
<li><a href="#org0dd9899">2.8. Global state</a></li>
<li><a href="#org7c673cd">2.9. Headers</a></li>
<li><a href="#orgd953ad5">2.10. Low-level functions</a></li>
<li><a href="#org7d90cca">2.11. High-level functions</a></li>
<li><a href="#orgb23efd3">2.12. Numerical precision</a></li>
<li><a href="#org552c2c5">2.13. Algorithms</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-orgab74a83" class="outline-2">
<h2 id="orgab74a83"><span class="section-number-2">1</span> Using QMCkl</h2>
<div id="outline-container-org70eb4b7" class="outline-2">
<h2 id="org70eb4b7"><span class="section-number-2">1</span> Using QMCkl</h2>
<div class="outline-text-2" id="text-1">
<p>
The <code>qmckl.h</code> header file installed in the <code>${prefix}/include</code> directory
@ -385,12 +385,12 @@ Both files are located in the <code>include/</code> directory.
</div>
</div>
<div id="outline-container-org5412c18" class="outline-2">
<h2 id="org5412c18"><span class="section-number-2">2</span> Developing in QMCkl</h2>
<div id="outline-container-org2e758ff" class="outline-2">
<h2 id="org2e758ff"><span class="section-number-2">2</span> Developing in QMCkl</h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-org0eb11fd" class="outline-3">
<h3 id="org0eb11fd"><span class="section-number-3">2.1</span> Literate programming</h3>
<div id="outline-container-org6481df2" class="outline-3">
<h3 id="org6481df2"><span class="section-number-3">2.1</span> Literate programming</h3>
<div class="outline-text-3" id="text-2-1">
<p>
In a traditional source code, most of the lines of source files of a program
@ -435,8 +435,8 @@ interactively, in the same spirit as Jupyter notebooks.
</div>
</div>
<div id="outline-container-org12ac7a7" class="outline-3">
<h3 id="org12ac7a7"><span class="section-number-3">2.2</span> Source code editing</h3>
<div id="outline-container-orgdc0a908" class="outline-3">
<h3 id="orgdc0a908"><span class="section-number-3">2.2</span> Source code editing</h3>
<div class="outline-text-3" id="text-2-2">
<p>
For a tutorial on literate programming with org-mode, follow <a href="http://www.howardism.org/Technical/Emacs/literate-programming-tutorial.html">this link</a>.
@ -467,8 +467,8 @@ org-mode.
</div>
</div>
<div id="outline-container-orgdbf37cb" class="outline-3">
<h3 id="orgdbf37cb"><span class="section-number-3">2.3</span> Choice of the programming language</h3>
<div id="outline-container-org6f1d777" class="outline-3">
<h3 id="org6f1d777"><span class="section-number-3">2.3</span> Choice of the programming language</h3>
<div class="outline-text-3" id="text-2-3">
<p>
Most of the codes of the <a href="https://trex-coe.eu">TREX CoE</a> are written in Fortran with some scripts in
@ -516,8 +516,8 @@ For more guidelines on using Fortran to generate a C interface, see
</div>
</div>
<div id="outline-container-orgdcb129a" class="outline-3">
<h3 id="orgdcb129a"><span class="section-number-3">2.4</span> Coding rules</h3>
<div id="outline-container-org1648c06" class="outline-3">
<h3 id="org1648c06"><span class="section-number-3">2.4</span> Coding rules</h3>
<div class="outline-text-3" id="text-2-4">
<p>
The authors should follow the recommendations of the C99
@ -535,8 +535,8 @@ Compliance can be checked with <code>cppcheck</code> as:
</div>
</div>
<div id="outline-container-orgffea1ec" class="outline-3">
<h3 id="orgffea1ec"><span class="section-number-3">2.5</span> Design of the library</h3>
<div id="outline-container-org17cc0e6" class="outline-3">
<h3 id="org17cc0e6"><span class="section-number-3">2.5</span> Design of the library</h3>
<div class="outline-text-3" id="text-2-5">
<p>
The proposed API should allow the library to: deal with memory transfers
@ -547,8 +547,8 @@ functions (see below).
</div>
</div>
<div id="outline-container-org91b48e6" class="outline-3">
<h3 id="org91b48e6"><span class="section-number-3">2.6</span> Naming conventions</h3>
<div id="outline-container-orge9d550d" class="outline-3">
<h3 id="orge9d550d"><span class="section-number-3">2.6</span> Naming conventions</h3>
<div class="outline-text-3" id="text-2-6">
<p>
To avoid namespace collisions, we use <code>qmckl_</code> as a prefix for all exported
@ -573,8 +573,8 @@ form is allowed.
</div>
</div>
<div id="outline-container-orgce408b3" class="outline-3">
<h3 id="orgce408b3"><span class="section-number-3">2.7</span> Application programming interface</h3>
<div id="outline-container-org897a7fb" class="outline-3">
<h3 id="org897a7fb"><span class="section-number-3">2.7</span> Application programming interface</h3>
<div class="outline-text-3" id="text-2-7">
<p>
In the C language, the number of bits used by the integer types can change
@ -606,15 +606,15 @@ bindings in other languages in other repositories.
</div>
</div>
<div id="outline-container-org431972d" class="outline-3">
<h3 id="org431972d"><span class="section-number-3">2.8</span> Global state</h3>
<div id="outline-container-org0dd9899" class="outline-3">
<h3 id="org0dd9899"><span class="section-number-3">2.8</span> Global state</h3>
<div class="outline-text-3" id="text-2-8">
<p>
Global variables should be avoided in the library, because it is
possible that one single program needs to use multiple instances
of the library. To solve this problem we propose to use a pointer
to a <a href="./qmckl_context.html"><code>context</code></a> variable, built by the library with the
<code>qmckl_context_create</code> function. The <a id="org68f8f9a">=context=</a> contains the global
<code>qmckl_context_create</code> function. The <a id="org19de672">=context=</a> contains the global
state of the library, and is used as the first argument of many
QMCkl functions.
</p>
@ -628,8 +628,8 @@ the state is done by setters and getters, prefixed by
</div>
</div>
<div id="outline-container-org0380d6e" class="outline-3">
<h3 id="org0380d6e"><span class="section-number-3">2.9</span> Headers</h3>
<div id="outline-container-org7c673cd" class="outline-3">
<h3 id="org7c673cd"><span class="section-number-3">2.9</span> Headers</h3>
<div class="outline-text-3" id="text-2-9">
<p>
A single <code>qmckl.h</code> header to be distributed by the library
@ -717,8 +717,8 @@ and the types definitions should be written in the <code>*fh_type.f90</code> fil
</div>
</div>
<div id="outline-container-orgdebde9a" class="outline-3">
<h3 id="orgdebde9a"><span class="section-number-3">2.10</span> Low-level functions</h3>
<div id="outline-container-orgd953ad5" class="outline-3">
<h3 id="orgd953ad5"><span class="section-number-3">2.10</span> Low-level functions</h3>
<div class="outline-text-3" id="text-2-10">
<p>
Low-level functions are very simple functions which are leaves of
@ -727,14 +727,14 @@ the function call tree (they don't call any other QMCkl function).
<p>
These functions are <i>pure</i>, and unaware of the QMCkl
<a href="#org68f8f9a"><code>context</code></a>. They are not allowed to allocate/deallocate memory, and
<a href="#org19de672"><code>context</code></a>. They are not allowed to allocate/deallocate memory, and
if they need temporary memory it should be provided in input.
</p>
</div>
</div>
<div id="outline-container-org0637504" class="outline-3">
<h3 id="org0637504"><span class="section-number-3">2.11</span> High-level functions</h3>
<div id="outline-container-org7d90cca" class="outline-3">
<h3 id="org7d90cca"><span class="section-number-3">2.11</span> High-level functions</h3>
<div class="outline-text-3" id="text-2-11">
<p>
High-level functions are at the top of the function call tree.
@ -747,20 +747,20 @@ temporary storage, to simplify the use of accelerators.
<p>
The high-level functions should be pure, unless the introduction
of non-purity is justified. All the side effects should be made in
the <a href="#org68f8f9a"><code>context</code></a> variable.
the <a href="#org19de672"><code>context</code></a> variable.
</p>
</div>
</div>
<div id="outline-container-org176357d" class="outline-3">
<h3 id="org176357d"><span class="section-number-3">2.12</span> Numerical precision</h3>
<div id="outline-container-orgb23efd3" class="outline-3">
<h3 id="orgb23efd3"><span class="section-number-3">2.12</span> Numerical precision</h3>
<div class="outline-text-3" id="text-2-12">
<p>
The number of bits of precision required for a function should be
given as an input of low-level computational functions. This input
will be used to define the values of the different thresholds that
might be used to avoid computing unnecessary noise. High-level
functions will use the precision specified in the <a href="#org68f8f9a"><code>context</code></a>
functions will use the precision specified in the <a href="#org19de672"><code>context</code></a>
variable.
</p>
@ -830,8 +830,8 @@ following points :
</div>
</div>
<div id="outline-container-orgc5bcc62" class="outline-3">
<h3 id="orgc5bcc62"><span class="section-number-3">2.13</span> Algorithms</h3>
<div id="outline-container-org552c2c5" class="outline-3">
<h3 id="org552c2c5"><span class="section-number-3">2.13</span> Algorithms</h3>
<div class="outline-text-3" id="text-2-13">
<p>
Reducing the scaling of an algorithm usually implies also reducing
@ -847,7 +847,7 @@ implemented adapted to different problem sizes.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

File diff suppressed because it is too large Load Diff

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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Context</title>
@ -311,21 +311,21 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org0e50615">1. Context handling</a>
<li><a href="#org87af319">1. Context handling</a>
<ul>
<li><a href="#org2c64599">1.1. Data structure</a></li>
<li><a href="#org2c1cb69">1.2. Creation</a></li>
<li><a href="#org5b55aec">1.3. Locking</a></li>
<li><a href="#org26ce3a8">1.4. <span class="todo TODO">TODO</span> Copy</a></li>
<li><a href="#org1850941">1.5. Destroy</a></li>
<li><a href="#org7d5b5fe">1.1. Data structure</a></li>
<li><a href="#org5841d5d">1.2. Creation</a></li>
<li><a href="#orgac3fc43">1.3. Locking</a></li>
<li><a href="#orgf0c5562">1.4. <span class="todo TODO">TODO</span> Copy</a></li>
<li><a href="#org58c1b1d">1.5. Destroy</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org0e50615" class="outline-2">
<h2 id="org0e50615"><span class="section-number-2">1</span> Context handling</h2>
<div id="outline-container-org87af319" class="outline-2">
<h2 id="org87af319"><span class="section-number-2">1</span> Context handling</h2>
<div class="outline-text-2" id="text-1">
<p>
The context variable is a handle for the state of the library,
@ -338,7 +338,7 @@ A value of <code>QMCKL_NULL_CONTEXT</code> for the context is equivalent to a
</p>
<div class="org-src-container">
<pre class="src src-c" id="org8f454c0"><span style="color: #a020f0;">typedef</span> <span style="color: #228b22;">int64_t</span> <span style="color: #228b22;">qmckl_context</span> ;
<pre class="src src-c" id="org932e3de"><span style="color: #a020f0;">typedef</span> <span style="color: #228b22;">int64_t</span> <span style="color: #228b22;">qmckl_context</span> ;
<span style="color: #483d8b;">#define</span> <span style="color: #a0522d;">QMCKL_NULL_CONTEXT</span> (qmckl_context) 0
</pre>
</div>
@ -356,8 +356,8 @@ and <code>ctx</code> is a <code>qmckl_context_struct*</code> pointer.
</p>
</div>
<div id="outline-container-org2c64599" class="outline-3">
<h3 id="org2c64599"><span class="section-number-3">1.1</span> Data structure</h3>
<div id="outline-container-org7d5b5fe" class="outline-3">
<h3 id="org7d5b5fe"><span class="section-number-3">1.1</span> Data structure</h3>
<div class="outline-text-3" id="text-1-1">
<p>
The context keeps a ``date'' that allows to check which data needs
@ -367,7 +367,7 @@ coordinates are updated.
<p>
When a new element is added to the context, the functions
<a href="#org2c1cb69">qmckl<sub>context</sub><sub>create</sub></a>, <a href="#org1850941">qmckl<sub>context</sub><sub>destroy</sub></a> and <a href="#org26ce3a8">qmckl<sub>context</sub><sub>copy</sub></a>
<a href="#org5841d5d">qmckl<sub>context</sub><sub>create</sub></a>, <a href="#org58c1b1d">qmckl<sub>context</sub><sub>destroy</sub></a> and <a href="#orgf0c5562">qmckl<sub>context</sub><sub>copy</sub></a>
should be updated inorder to make deep copies.
</p>
@ -416,8 +416,8 @@ if the context is valid, <code>QMCKL_NULL_CONTEXT</code> otherwise.
</div>
</div>
<div id="outline-container-org2c1cb69" class="outline-3">
<h3 id="org2c1cb69"><span class="section-number-3">1.2</span> Creation</h3>
<div id="outline-container-org5841d5d" class="outline-3">
<h3 id="org5841d5d"><span class="section-number-3">1.2</span> Creation</h3>
<div class="outline-text-3" id="text-1-2">
<p>
To create a new context, <code>qmckl_context_create()</code> should be used.
@ -508,8 +508,8 @@ To create a new context, <code>qmckl_context_create()</code> should be used.
</div>
</div>
</div>
<div id="outline-container-org5b55aec" class="outline-3">
<h3 id="org5b55aec"><span class="section-number-3">1.3</span> Locking</h3>
<div id="outline-container-orgac3fc43" class="outline-3">
<h3 id="orgac3fc43"><span class="section-number-3">1.3</span> Locking</h3>
<div class="outline-text-3" id="text-1-3">
<p>
For thread safety, the context may be locked/unlocked. The lock is
@ -554,8 +554,8 @@ number of times the thread has locked it is saved in the
</div>
</div>
<div id="outline-container-org26ce3a8" class="outline-3">
<h3 id="org26ce3a8"><span class="section-number-3">1.4</span> <span class="todo TODO">TODO</span> Copy</h3>
<div id="outline-container-orgf0c5562" class="outline-3">
<h3 id="orgf0c5562"><span class="section-number-3">1.4</span> <span class="todo TODO">TODO</span> Copy</h3>
<div class="outline-text-3" id="text-1-4">
<p>
<code>qmckl_context_copy</code> makes a deep copy of a context. It returns
@ -603,8 +603,8 @@ number of times the thread has locked it is saved in the
</div>
</div>
</div>
<div id="outline-container-org1850941" class="outline-3">
<h3 id="org1850941"><span class="section-number-3">1.5</span> Destroy</h3>
<div id="outline-container-org58c1b1d" class="outline-3">
<h3 id="org58c1b1d"><span class="section-number-3">1.5</span> Destroy</h3>
<div class="outline-text-3" id="text-1-5">
<p>
The context is destroyed with <code>qmckl_context_destroy</code>, leaving the ancestors untouched.
@ -658,7 +658,7 @@ It frees the context, and returns the previous context.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Slater Determinant</title>
@ -311,33 +311,32 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org1331294">1. Context</a>
<li><a href="#orgd7c3904">1. Context</a>
<ul>
<li><a href="#org0d81e35">1.1. Data structure</a></li>
<li><a href="#orgccc8870">1.2. Access functions</a></li>
<li><a href="#orga09fb73">1.3. Initialization functions</a></li>
<li><a href="#orga038b05">1.4. Fortran Interfaces</a></li>
<li><a href="#org7117913">1.5. Test</a></li>
<li><a href="#orgd734c5e">1.1. Data structure</a></li>
<li><a href="#org9d43a4d">1.2. Access functions</a></li>
<li><a href="#org519b41c">1.3. Initialization functions</a></li>
<li><a href="#org3402e16">1.4. Fortran Interfaces</a></li>
<li><a href="#org84346d2">1.5. Test</a></li>
</ul>
</li>
<li><a href="#orgc578ede">2. Computation</a>
<li><a href="#org4ee9d46">2. Computation</a>
<ul>
<li><a href="#orge2c9645">2.1. Determinant matrix</a>
<li><a href="#org9fe945d">2.1. Determinant matrix</a>
<ul>
<li><a href="#org3c4776b">2.1.1. Get</a></li>
<li><a href="#org5abc4df">2.1.2. Provide</a></li>
<li><a href="#orga4b4aec">2.1.3. Compute alpha</a></li>
<li><a href="#org4ce58be">2.1.4. Compute beta</a></li>
<li><a href="#orga3989c2">2.1.5. Test</a></li>
<li><a href="#org5e9870c">2.1.1. Get</a></li>
<li><a href="#orga13e234">2.1.2. Provide</a></li>
<li><a href="#org3aae634">2.1.3. Compute alpha</a></li>
<li><a href="#orga2547a7">2.1.4. Compute beta</a></li>
<li><a href="#org4581e35">2.1.5. Test</a></li>
</ul>
</li>
<li><a href="#orge7ec98d">2.2. Inverse of Determinant matrix</a>
<li><a href="#org607c596">2.2. Inverse of Determinant matrix</a>
<ul>
<li><a href="#org354d14c">2.2.1. Get</a></li>
<li><a href="#org0016790">2.2.2. Provide</a></li>
<li><a href="#orgad58f25">2.2.3. Compute alpha</a></li>
<li><a href="#orgc942dfa">2.2.4. Compute beta</a></li>
<li><a href="#orgf853660">2.2.5. Test</a></li>
<li><a href="#orgf8c0b42">2.2.1. Get</a></li>
<li><a href="#orgced3278">2.2.2. Provide</a></li>
<li><a href="#orgd2141ca">2.2.3. Compute alpha</a></li>
<li><a href="#orgb5e2d17">2.2.4. Compute beta</a></li>
</ul>
</li>
</ul>
@ -346,8 +345,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org1331294" class="outline-2">
<h2 id="org1331294"><span class="section-number-2">1</span> Context</h2>
<div id="outline-container-orgd7c3904" class="outline-2">
<h2 id="orgd7c3904"><span class="section-number-2">1</span> Context</h2>
<div class="outline-text-2" id="text-1">
<p>
The following arrays are stored in the context:
@ -529,8 +528,8 @@ Computed data:
</table>
</div>
<div id="outline-container-org0d81e35" class="outline-3">
<h3 id="org0d81e35"><span class="section-number-3">1.1</span> Data structure</h3>
<div id="outline-container-orgd734c5e" class="outline-3">
<h3 id="orgd734c5e"><span class="section-number-3">1.1</span> Data structure</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">qmckl_determinant_struct</span> {
@ -599,8 +598,8 @@ this mechanism.
</div>
</div>
<div id="outline-container-orgccc8870" class="outline-3">
<h3 id="orgccc8870"><span class="section-number-3">1.2</span> Access functions</h3>
<div id="outline-container-org9d43a4d" class="outline-3">
<h3 id="org9d43a4d"><span class="section-number-3">1.2</span> Access functions</h3>
<div class="outline-text-3" id="text-1-2">
<p>
When all the data for the slater determinants have been provided, the following
@ -614,8 +613,8 @@ function returns <code>true</code>.
</div>
</div>
<div id="outline-container-orga09fb73" class="outline-3">
<h3 id="orga09fb73"><span class="section-number-3">1.3</span> Initialization functions</h3>
<div id="outline-container-org519b41c" class="outline-3">
<h3 id="org519b41c"><span class="section-number-3">1.3</span> Initialization functions</h3>
<div class="outline-text-3" id="text-1-3">
<p>
To set the basis set, all the following functions need to be
@ -639,24 +638,24 @@ computed to accelerate the calculations.
</div>
</div>
<div id="outline-container-orga038b05" class="outline-3">
<h3 id="orga038b05"><span class="section-number-3">1.4</span> Fortran Interfaces</h3>
<div id="outline-container-org3402e16" class="outline-3">
<h3 id="org3402e16"><span class="section-number-3">1.4</span> Fortran Interfaces</h3>
</div>
<div id="outline-container-org7117913" class="outline-3">
<h3 id="org7117913"><span class="section-number-3">1.5</span> Test</h3>
<div id="outline-container-org84346d2" class="outline-3">
<h3 id="org84346d2"><span class="section-number-3">1.5</span> Test</h3>
</div>
</div>
<div id="outline-container-orgc578ede" class="outline-2">
<h2 id="orgc578ede"><span class="section-number-2">2</span> Computation</h2>
<div id="outline-container-org4ee9d46" class="outline-2">
<h2 id="org4ee9d46"><span class="section-number-2">2</span> Computation</h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-orge2c9645" class="outline-3">
<h3 id="orge2c9645"><span class="section-number-3">2.1</span> Determinant matrix</h3>
<div id="outline-container-org9fe945d" class="outline-3">
<h3 id="org9fe945d"><span class="section-number-3">2.1</span> Determinant matrix</h3>
<div class="outline-text-3" id="text-2-1">
</div>
<div id="outline-container-org3c4776b" class="outline-4">
<h4 id="org3c4776b"><span class="section-number-4">2.1.1</span> Get</h4>
<div id="outline-container-org5e9870c" class="outline-4">
<h4 id="org5e9870c"><span class="section-number-4">2.1.1</span> Get</h4>
<div class="outline-text-4" id="text-2-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_det_vgl_alpha</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">det_vgl_alpha</span>);
@ -666,14 +665,14 @@ computed to accelerate the calculations.
</div>
</div>
<div id="outline-container-org5abc4df" class="outline-4">
<h4 id="org5abc4df"><span class="section-number-4">2.1.2</span> Provide</h4>
<div id="outline-container-orga13e234" class="outline-4">
<h4 id="orga13e234"><span class="section-number-4">2.1.2</span> Provide</h4>
</div>
<div id="outline-container-orga4b4aec" class="outline-4">
<h4 id="orga4b4aec"><span class="section-number-4">2.1.3</span> Compute alpha</h4>
<div id="outline-container-org3aae634" class="outline-4">
<h4 id="org3aae634"><span class="section-number-4">2.1.3</span> Compute alpha</h4>
<div class="outline-text-4" id="text-2-1-3">
<table id="org78687a6" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org0688fbd" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -685,73 +684,81 @@ computed to accelerate the calculations.
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Variable</th>
<th scope="col" class="org-left">Type</th>
<th scope="col" class="org-left">In/Out</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left"><code>qmckl_context</code></td>
<td class="org-left"><code>context</code></td>
<td class="org-left"><code>qmckl_context</code></td>
<td class="org-left">in</td>
<td class="org-left">Global state</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>det_num_alpha</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of determinants</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>walk_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of walkers</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>alpha_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of electrons</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>beta_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of electrons</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>elec_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of electrons</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>mo_index_alpha[det_num_alpha][walk_num][alpha_num]</code></td>
<td class="org-left"><code>mo_index_alpha</code></td>
<td class="org-left"><code>int64_t[det_num_alpha][walk_num][alpha_num]</code></td>
<td class="org-left">in</td>
<td class="org-left">MO indices for electrons</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>mo_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of MOs</td>
</tr>
<tr>
<td class="org-left"><code>double</code></td>
<td class="org-left"><code>mo_vgl[5][elec_num][mo_num]</code></td>
<td class="org-left"><code>mo_vgl</code></td>
<td class="org-left"><code>double[5][elec_num][mo_num]</code></td>
<td class="org-left">in</td>
<td class="org-left">Value, gradients and Laplacian of the MOs</td>
</tr>
<tr>
<td class="org-left"><code>double</code></td>
<td class="org-left"><code>det_vgl_alpha[det_num_alpha][walk_num][5][alpha_num][alpha_num]</code></td>
<td class="org-left"><code>det_vgl_alpha</code></td>
<td class="org-left"><code>double[det_num_alpha][walk_num][5][alpha_num][alpha_num]</code></td>
<td class="org-left">out</td>
<td class="org-left">Value, gradients and Laplacian of the Det</td>
</tr>
@ -839,10 +846,10 @@ computed to accelerate the calculations.
</div>
</div>
<div id="outline-container-org4ce58be" class="outline-4">
<h4 id="org4ce58be"><span class="section-number-4">2.1.4</span> Compute beta</h4>
<div id="outline-container-orga2547a7" class="outline-4">
<h4 id="orga2547a7"><span class="section-number-4">2.1.4</span> Compute beta</h4>
<div class="outline-text-4" id="text-2-1-4">
<table id="org3a922fa" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org3c92be0" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -854,73 +861,81 @@ computed to accelerate the calculations.
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Variable</th>
<th scope="col" class="org-left">Type</th>
<th scope="col" class="org-left">In/Out</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left"><code>qmckl_context</code></td>
<td class="org-left"><code>context</code></td>
<td class="org-left"><code>qmckl_context</code></td>
<td class="org-left">in</td>
<td class="org-left">Global state</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>det_num_beta</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of determinants</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>walk_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of walkers</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>alpha_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of electrons</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>beta_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of electrons</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>elec_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of electrons</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>mo_index_beta[det_num_beta][walk_num][beta_num]</code></td>
<td class="org-left"><code>mo_index_beta</code></td>
<td class="org-left"><code>int64_t[det_num_beta][walk_num][beta_num]</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of electrons</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>mo_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of MOs</td>
</tr>
<tr>
<td class="org-left"><code>double</code></td>
<td class="org-left"><code>mo_vgl[5][elec_num][mo_num]</code></td>
<td class="org-left"><code>mo_vgl</code></td>
<td class="org-left"><code>double[5][elec_num][mo_num]</code></td>
<td class="org-left">in</td>
<td class="org-left">Value, gradients and Laplacian of the MOs</td>
</tr>
<tr>
<td class="org-left"><code>double</code></td>
<td class="org-left"><code>det_vgl_beta[det_num_beta][walk_num][5][beta_num][beta_num]</code></td>
<td class="org-left"><code>det_vgl_beta</code></td>
<td class="org-left"><code>double[det_num_beta][walk_num][5][beta_num][beta_num]</code></td>
<td class="org-left">out</td>
<td class="org-left">Value, gradients and Laplacian of the Det</td>
</tr>
@ -1008,18 +1023,18 @@ computed to accelerate the calculations.
</div>
</div>
<div id="outline-container-orga3989c2" class="outline-4">
<h4 id="orga3989c2"><span class="section-number-4">2.1.5</span> Test</h4>
<div id="outline-container-org4581e35" class="outline-4">
<h4 id="org4581e35"><span class="section-number-4">2.1.5</span> Test</h4>
</div>
</div>
<div id="outline-container-orge7ec98d" class="outline-3">
<h3 id="orge7ec98d"><span class="section-number-3">2.2</span> Inverse of Determinant matrix</h3>
<div id="outline-container-org607c596" class="outline-3">
<h3 id="org607c596"><span class="section-number-3">2.2</span> Inverse of Determinant matrix</h3>
<div class="outline-text-3" id="text-2-2">
</div>
<div id="outline-container-org354d14c" class="outline-4">
<h4 id="org354d14c"><span class="section-number-4">2.2.1</span> Get</h4>
<div id="outline-container-orgf8c0b42" class="outline-4">
<h4 id="orgf8c0b42"><span class="section-number-4">2.2.1</span> Get</h4>
<div class="outline-text-4" id="text-2-2-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_det_inv_matrix_alpha</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">det_inv_matrix_alpha</span>);
@ -1033,14 +1048,14 @@ computed to accelerate the calculations.
</div>
</div>
<div id="outline-container-org0016790" class="outline-4">
<h4 id="org0016790"><span class="section-number-4">2.2.2</span> Provide</h4>
<div id="outline-container-orgced3278" class="outline-4">
<h4 id="orgced3278"><span class="section-number-4">2.2.2</span> Provide</h4>
</div>
<div id="outline-container-orgad58f25" class="outline-4">
<h4 id="orgad58f25"><span class="section-number-4">2.2.3</span> Compute alpha</h4>
<div id="outline-container-orgd2141ca" class="outline-4">
<h4 id="orgd2141ca"><span class="section-number-4">2.2.3</span> Compute alpha</h4>
<div class="outline-text-4" id="text-2-2-3">
<table id="org5fe46b9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgbfeac8f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1052,59 +1067,67 @@ computed to accelerate the calculations.
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Variable</th>
<th scope="col" class="org-left">Type</th>
<th scope="col" class="org-left">In/Out</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left"><code>qmckl_context</code></td>
<td class="org-left"><code>context</code></td>
<td class="org-left"><code>qmckl_context</code></td>
<td class="org-left">in</td>
<td class="org-left">Global state</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>det_num_alpha</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of determinants</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>walk_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of walkers</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>alpha_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of electrons</td>
</tr>
<tr>
<td class="org-left"><code>double</code></td>
<td class="org-left"><code>det_vgl_alpha[det_num_alpha][walk_num][5][alpha_num][alpha_num]</code></td>
<td class="org-left"><code>det_vgl_alpha</code></td>
<td class="org-left"><code>double[det_num_alpha][walk_num][5][alpha_num][alpha_num]</code></td>
<td class="org-left">in</td>
<td class="org-left">determinant matrix Value, gradients and Laplacian of the MOs</td>
</tr>
<tr>
<td class="org-left"><code>double</code></td>
<td class="org-left"><code>det_value_alpha[det_num_alpha][walk_num]</code></td>
<td class="org-left"><code>det_value_alpha</code></td>
<td class="org-left"><code>double[det_num_alpha][walk_num]</code></td>
<td class="org-left">out</td>
<td class="org-left">value of determinant matrix</td>
</tr>
<tr>
<td class="org-left"><code>double</code></td>
<td class="org-left"><code>det_adj_matrix_alpha[det_num_alpha][walk_num][alpha_num][alpha_num]</code></td>
<td class="org-left"><code>det_adj_matrix_alpha</code></td>
<td class="org-left"><code>double[det_num_alpha][walk_num][alpha_num][alpha_num]</code></td>
<td class="org-left">out</td>
<td class="org-left">adjoint of determinant matrix</td>
</tr>
<tr>
<td class="org-left"><code>double</code></td>
<td class="org-left"><code>det_inv_matrix_alpha[det_num_alpha][walk_num][alpha_num][alpha_num]</code></td>
<td class="org-left"><code>det_inv_matrix_alpha</code></td>
<td class="org-left"><code>double[det_num_alpha][walk_num][alpha_num][alpha_num]</code></td>
<td class="org-left">out</td>
<td class="org-left">inverse of determinant matrix</td>
</tr>
@ -1155,14 +1178,23 @@ computed to accelerate the calculations.
LDA = alpha_num
<span style="color: #a020f0;">do</span> idet = 1, det_num_alpha
<span style="color: #a020f0;">do</span> iwalk = 1, walk_num
! <span style="color: #b22222;">Value</span>
matA(1:alpha_num,1:alpha_num) = det_vgl_alpha(1:alpha_num, 1:alpha_num, 1, iwalk, idet)
res = qmckl_adjugate(context, alpha_num, LDA, matA, det_l)
det_adj_matrix_alpha(1:alpha_num, 1:alpha_num, iwalk, idet) = matA
det_inv_matrix_alpha(1:alpha_num, 1:alpha_num, iwalk, idet) = matA/det_l
det_value_alpha(iwalk, idet) = det_l
<span style="color: #a020f0;">end do</span>
<span style="color: #a020f0;">do</span> iwalk = 1, walk_num
! <span style="color: #b22222;">Value</span>
matA(1:alpha_num,1:alpha_num) = <span style="color: #a020f0;">&amp;</span>
det_vgl_alpha(1:alpha_num, 1:alpha_num, 1, iwalk, idet)
res = qmckl_adjugate(context, <span style="color: #a020f0;">&amp;</span>
alpha_num, matA, LDA, <span style="color: #a020f0;">&amp;</span>
det_adj_matrix_alpha(1, 1, iwalk, idet), <span style="color: #a020f0;">&amp;</span>
<span style="color: #a020f0;">int</span>(<span style="color: #a020f0;">size</span>(det_adj_matrix_alpha,1),8), <span style="color: #a020f0;">&amp;</span>
det_l)
det_inv_matrix_alpha(1:alpha_num, 1:alpha_num, iwalk, idet) = <span style="color: #a020f0;">&amp;</span>
(1.d0/det_l) * <span style="color: #a020f0;">&amp;</span>
det_adj_matrix_alpha(1:alpha_num, 1:alpha_num, iwalk, idet)
det_value_alpha(iwalk, idet) = det_l
<span style="color: #a020f0;">end do</span>
<span style="color: #a020f0;">end do</span>
<span style="color: #a020f0;">deallocate</span>(matA)
@ -1185,10 +1217,10 @@ computed to accelerate the calculations.
</div>
</div>
<div id="outline-container-orgc942dfa" class="outline-4">
<h4 id="orgc942dfa"><span class="section-number-4">2.2.4</span> Compute beta</h4>
<div id="outline-container-orgb5e2d17" class="outline-4">
<h4 id="orgb5e2d17"><span class="section-number-4">2.2.4</span> Compute beta</h4>
<div class="outline-text-4" id="text-2-2-4">
<table id="orgf4a4d40" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgdb5f99b" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1200,59 +1232,67 @@ computed to accelerate the calculations.
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Variable</th>
<th scope="col" class="org-left">Type</th>
<th scope="col" class="org-left">In/Out</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left"><code>qmckl_context</code></td>
<td class="org-left"><code>context</code></td>
<td class="org-left"><code>qmckl_context</code></td>
<td class="org-left">in</td>
<td class="org-left">Global state</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>det_num_beta</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of determinants</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>walk_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of walkers</td>
</tr>
<tr>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left"><code>beta_num</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of electrons</td>
</tr>
<tr>
<td class="org-left"><code>double</code></td>
<td class="org-left"><code>det_vgl_beta[det_num_beta][walk_num][5][beta_num][beta_num]</code></td>
<td class="org-left"><code>det_vgl_beta</code></td>
<td class="org-left"><code>double[det_num_beta][walk_num][5][beta_num][beta_num]</code></td>
<td class="org-left">in</td>
<td class="org-left">determinant matrix Value, gradients and Laplacian of the MOs</td>
</tr>
<tr>
<td class="org-left"><code>double</code></td>
<td class="org-left"><code>det_value_beta[det_num_beta][walk_num]</code></td>
<td class="org-left"><code>det_value_beta</code></td>
<td class="org-left"><code>double[det_num_beta][walk_num]</code></td>
<td class="org-left">out</td>
<td class="org-left">value of determinant matrix</td>
</tr>
<tr>
<td class="org-left"><code>double</code></td>
<td class="org-left"><code>det_adj_matrix_beta[det_num_beta][walk_num][beta_num][beta_num]</code></td>
<td class="org-left"><code>det_adj_matrix_beta</code></td>
<td class="org-left"><code>double[det_num_beta][walk_num][beta_num][beta_num]</code></td>
<td class="org-left">out</td>
<td class="org-left">adjoint of determinant matrix</td>
</tr>
<tr>
<td class="org-left"><code>double</code></td>
<td class="org-left"><code>det_inv_matrix_beta[det_num_beta][walk_num][beta_num][beta_num]</code></td>
<td class="org-left"><code>det_inv_matrix_beta</code></td>
<td class="org-left"><code>double[det_num_beta][walk_num][beta_num][beta_num]</code></td>
<td class="org-left">out</td>
<td class="org-left">inverse of determinant matrix</td>
</tr>
@ -1303,16 +1343,26 @@ computed to accelerate the calculations.
LDA = beta_num
<span style="color: #a020f0;">do</span> idet = 1, det_num_beta
<span style="color: #a020f0;">do</span> iwalk = 1, walk_num
! <span style="color: #b22222;">Value</span>
matA(1:beta_num,1:beta_num) = det_vgl_beta(1:beta_num, 1:beta_num, 1, iwalk, idet)
res = qmckl_adjugate(context, beta_num, LDA, matA, det_l)
det_adj_matrix_beta(1:beta_num, 1:beta_num, iwalk, idet) = matA
det_inv_matrix_beta(1:beta_num, 1:beta_num, iwalk, idet) = matA/det_l
det_value_beta(iwalk, idet) = det_l
<span style="color: #a020f0;">end do</span>
<span style="color: #a020f0;">do</span> iwalk = 1, walk_num
! <span style="color: #b22222;">Value</span>
matA(1:beta_num,1:beta_num) = <span style="color: #a020f0;">&amp;</span>
det_vgl_beta(1:beta_num, 1:beta_num, 1, iwalk, idet)
res = qmckl_adjugate(context, <span style="color: #a020f0;">&amp;</span>
beta_num, matA, LDA, <span style="color: #a020f0;">&amp;</span>
det_adj_matrix_beta(1, 1, iwalk, idet), <span style="color: #a020f0;">&amp;</span>
<span style="color: #a020f0;">int</span>(<span style="color: #a020f0;">size</span>(det_adj_matrix_beta,1),8), <span style="color: #a020f0;">&amp;</span>
det_l)
det_inv_matrix_beta(1:beta_num, 1:beta_num, iwalk, idet) = <span style="color: #a020f0;">&amp;</span>
(1.d0/det_l) * <span style="color: #a020f0;">&amp;</span>
det_adj_matrix_beta(1:beta_num, 1:beta_num, iwalk, idet)
det_value_beta(iwalk, idet) = det_l
<span style="color: #a020f0;">end do</span>
<span style="color: #a020f0;">end do</span>
<span style="color: #a020f0;">deallocate</span>(matA)
<span style="color: #a020f0;">end function</span> <span style="color: #0000ff;">qmckl_compute_det_inv_matrix_beta_f</span>
</pre>
@ -1332,16 +1382,12 @@ computed to accelerate the calculations.
</div>
</div>
</div>
<div id="outline-container-orgf853660" class="outline-4">
<h4 id="orgf853660"><span class="section-number-4">2.2.5</span> Test</h4>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Inter-particle distances</title>
@ -333,64 +333,54 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org26d73a0">1. Squared distance</a>
<li><a href="#org661c037">1. Squared distance</a>
<ul>
<li><a href="#orgf6dc539">1.1. <code>qmckl_distance_sq</code></a>
<li><a href="#orga4f7403">1.1. <code>qmckl_distance_sq</code></a>
<ul>
<li><a href="#org091fef9">1.1.1. Requirements</a></li>
<li><a href="#org1081ae4">1.1.2. C header</a></li>
<li><a href="#org186b2f0">1.1.3. Source</a></li>
<li><a href="#orgb5adcdd">1.1.4. Performance</a></li>
<li><a href="#org3df98a2">1.1.1. Performance</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org7849972">2. Distance</a>
<li><a href="#orgef6fecb">2. Distance</a>
<ul>
<li><a href="#org83e7f11">2.1. <code>qmckl_distance</code></a>
<li><a href="#org03de45d">2.1. <code>qmckl_distance</code></a>
<ul>
<li><a href="#orgcea3e7e">2.1.1. Requirements</a></li>
<li><a href="#org9c3d78a">2.1.2. C header</a></li>
<li><a href="#orgf420b9d">2.1.3. Source</a></li>
<li><a href="#orgde65326">2.1.4. Performance</a></li>
<li><a href="#org1a6364f">2.1.1. Requirements</a></li>
<li><a href="#orga6c8b11">2.1.2. C header</a></li>
<li><a href="#org1264797">2.1.3. Source</a></li>
<li><a href="#org4666ae2">2.1.4. Performance</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org70cdbfe">3. Rescaled Distance</a>
<li><a href="#org9f4d5c5">3. Rescaled Distance</a>
<ul>
<li><a href="#orgbbeb291">3.1. <code>qmckl_distance_rescaled</code></a>
<li><a href="#org0c05035">3.1. <code>qmckl_distance_rescaled</code></a>
<ul>
<li><a href="#org3377c73">3.1.1. Requirements</a></li>
<li><a href="#org4665f2a">3.1.2. C header</a></li>
<li><a href="#orgb46f496">3.1.3. Source</a></li>
<li><a href="#orge160286">3.1.4. Performance</a></li>
<li><a href="#orgf548f4f">3.1.1. Requirements</a></li>
<li><a href="#org19cfbb2">3.1.2. C header</a></li>
<li><a href="#org91880af">3.1.3. Source</a></li>
<li><a href="#org668986a">3.1.4. Performance</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#orgaf694da">4. Rescaled Distance Derivatives</a>
<li><a href="#org2958eaa">4. Rescaled Distance Derivatives</a>
<ul>
<li><a href="#orga44afe0">4.1. <code>qmckl_distance_rescaled_deriv_e</code></a>
<ul>
<li><a href="#org8c0b0ab">4.1.1. Requirements</a></li>
<li><a href="#orgf88eabb">4.1.2. C header</a></li>
<li><a href="#org4e29dd5">4.1.3. Source</a></li>
<li><a href="#org37f6f93">4.1.4. Performance</a></li>
</ul>
</li>
<li><a href="#org93bb3aa">4.1. <code>qmckl_distance_rescaled_deriv_e</code></a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org26d73a0" class="outline-2">
<h2 id="org26d73a0"><span class="section-number-2">1</span> Squared distance</h2>
<div id="outline-container-org661c037" class="outline-2">
<h2 id="org661c037"><span class="section-number-2">1</span> Squared distance</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-orgf6dc539" class="outline-3">
<h3 id="orgf6dc539"><span class="section-number-3">1.1</span> <code>qmckl_distance_sq</code></h3>
<div id="outline-container-orga4f7403" class="outline-3">
<h3 id="orga4f7403"><span class="section-number-3">1.1</span> <code>qmckl_distance_sq</code></h3>
<div class="outline-text-3" id="text-1-1">
<p>
<code>qmckl_distance_sq</code> computes the matrix of the squared distances
@ -403,7 +393,7 @@ between all pairs of points in two sets, one point within each set:
\]
</p>
<table id="org0ca29d0" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org30c3515" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -415,90 +405,98 @@ between all pairs of points in two sets, one point within each set:
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Variable</th>
<th scope="col" class="org-left">Type</th>
<th scope="col" class="org-left">In/Out</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">qmckl<sub>context</sub></td>
<td class="org-left">context</td>
<td class="org-left"><code>context</code></td>
<td class="org-left"><code>qmckl_context</code></td>
<td class="org-left">in</td>
<td class="org-left">Global state</td>
</tr>
<tr>
<td class="org-left">char</td>
<td class="org-left">transa</td>
<td class="org-left"><code>transa</code></td>
<td class="org-left"><code>char</code></td>
<td class="org-left">in</td>
<td class="org-left">Array <code>A</code> is <code>'N'</code>: Normal, <code>'T'</code>: Transposed</td>
</tr>
<tr>
<td class="org-left">char</td>
<td class="org-left">transb</td>
<td class="org-left"><code>transb</code></td>
<td class="org-left"><code>char</code></td>
<td class="org-left">in</td>
<td class="org-left">Array <code>B</code> is <code>'N'</code>: Normal, <code>'T'</code>: Transposed</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">m</td>
<td class="org-left"><code>m</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of points in the first set</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">n</td>
<td class="org-left"><code>n</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of points in the second set</td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">A[][lda]</td>
<td class="org-left"><code>A</code></td>
<td class="org-left"><code>double[][lda]</code></td>
<td class="org-left">in</td>
<td class="org-left">Array containing the \(m \times 3\) matrix \(A\)</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">lda</td>
<td class="org-left"><code>lda</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Leading dimension of array <code>A</code></td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">B[][ldb]</td>
<td class="org-left"><code>B</code></td>
<td class="org-left"><code>double[][ldb]</code></td>
<td class="org-left">in</td>
<td class="org-left">Array containing the \(n \times 3\) matrix \(B\)</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">ldb</td>
<td class="org-left"><code>ldb</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Leading dimension of array <code>B</code></td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">C[n][ldc]</td>
<td class="org-left"><code>C</code></td>
<td class="org-left"><code>double[n][ldc]</code></td>
<td class="org-left">out</td>
<td class="org-left">Array containing the \(m \times n\) matrix \(C\)</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">ldc</td>
<td class="org-left"><code>ldc</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Leading dimension of array <code>C</code></td>
</tr>
</tbody>
</table>
</div>
<div id="outline-container-org091fef9" class="outline-4">
<h4 id="org091fef9"><span class="section-number-4">1.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-1-1-1">
<p>
Requirements:
</p>
<ul class="org-ul">
<li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li>
<li><code>m &gt; 0</code></li>
@ -512,12 +510,7 @@ between all pairs of points in two sets, one point within each set:
<li><code>B</code> is allocated with at least \(3 \times n \times 8\) bytes</li>
<li><code>C</code> is allocated with at least \(m \times n \times 8\) bytes</li>
</ul>
</div>
</div>
<div id="outline-container-org1081ae4" class="outline-4">
<h4 id="org1081ae4"><span class="section-number-4">1.1.2</span> C header</h4>
<div class="outline-text-4" id="text-1-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_distance_sq</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
@ -533,12 +526,7 @@ between all pairs of points in two sets, one point within each set:
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">ldc</span> );
</pre>
</div>
</div>
</div>
<div id="outline-container-org186b2f0" class="outline-4">
<h4 id="org186b2f0"><span class="section-number-4">1.1.3</span> Source</h4>
<div class="outline-text-4" id="text-1-1-3">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">integer</span><span style="color: #a0522d;"> function qmckl_distance_sq_f(context, transa, transb, m, n, </span><span style="color: #a020f0;">&amp;</span>
A, LDA, B, LDB, C, LDC) <span style="color: #a020f0;">&amp;</span>
@ -670,11 +658,10 @@ between all pairs of points in two sets, one point within each set:
</pre>
</div>
</div>
</div>
<div id="outline-container-orgb5adcdd" class="outline-4">
<h4 id="orgb5adcdd"><span class="section-number-4">1.1.4</span> Performance</h4>
<div class="outline-text-4" id="text-1-1-4">
<div id="outline-container-org3df98a2" class="outline-4">
<h4 id="org3df98a2"><span class="section-number-4">1.1.1</span> Performance</h4>
<div class="outline-text-4" id="text-1-1-1">
<p>
This function is more efficient when <code>A</code> and <code>B</code> are
transposed.
@ -683,12 +670,12 @@ transposed.
</div>
</div>
</div>
<div id="outline-container-org7849972" class="outline-2">
<h2 id="org7849972"><span class="section-number-2">2</span> Distance</h2>
<div id="outline-container-orgef6fecb" class="outline-2">
<h2 id="orgef6fecb"><span class="section-number-2">2</span> Distance</h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-org83e7f11" class="outline-3">
<h3 id="org83e7f11"><span class="section-number-3">2.1</span> <code>qmckl_distance</code></h3>
<div id="outline-container-org03de45d" class="outline-3">
<h3 id="org03de45d"><span class="section-number-3">2.1</span> <code>qmckl_distance</code></h3>
<div class="outline-text-3" id="text-2-1">
<p>
<code>qmckl_distance</code> computes the matrix of the distances between all
@ -706,7 +693,7 @@ If the input array is normal (<code>'N'</code>), the xyz coordinates are in
the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortran.
</p>
<table id="org5f02497" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org52d18c6" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -718,80 +705,88 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Variable</th>
<th scope="col" class="org-left">Type</th>
<th scope="col" class="org-left">In/Out</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">qmckl<sub>context</sub></td>
<td class="org-left">context</td>
<td class="org-left"><code>context</code></td>
<td class="org-left"><code>qmckl_context</code></td>
<td class="org-left">in</td>
<td class="org-left">Global state</td>
</tr>
<tr>
<td class="org-left">char</td>
<td class="org-left">transa</td>
<td class="org-left"><code>transa</code></td>
<td class="org-left"><code>char</code></td>
<td class="org-left">in</td>
<td class="org-left">Array <code>A</code> is <code>'N'</code>: Normal, <code>'T'</code>: Transposed</td>
</tr>
<tr>
<td class="org-left">char</td>
<td class="org-left">transb</td>
<td class="org-left"><code>transb</code></td>
<td class="org-left"><code>char</code></td>
<td class="org-left">in</td>
<td class="org-left">Array <code>B</code> is <code>'N'</code>: Normal, <code>'T'</code>: Transposed</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">m</td>
<td class="org-left"><code>m</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of points in the first set</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">n</td>
<td class="org-left"><code>n</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of points in the second set</td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">A[][lda]</td>
<td class="org-left"><code>A</code></td>
<td class="org-left"><code>double[][lda]</code></td>
<td class="org-left">in</td>
<td class="org-left">Array containing the \(m \times 3\) matrix \(A\)</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">lda</td>
<td class="org-left"><code>lda</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Leading dimension of array <code>A</code></td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">B[][ldb]</td>
<td class="org-left"><code>B</code></td>
<td class="org-left"><code>double[][ldb]</code></td>
<td class="org-left">in</td>
<td class="org-left">Array containing the \(n \times 3\) matrix \(B\)</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">ldb</td>
<td class="org-left"><code>ldb</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Leading dimension of array <code>B</code></td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">C[n][ldc]</td>
<td class="org-left"><code>C</code></td>
<td class="org-left"><code>double[n][ldc]</code></td>
<td class="org-left">out</td>
<td class="org-left">Array containing the \(m \times n\) matrix \(C\)</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">ldc</td>
<td class="org-left"><code>ldc</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Leading dimension of array <code>C</code></td>
</tr>
@ -799,8 +794,8 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
</table>
</div>
<div id="outline-container-orgcea3e7e" class="outline-4">
<h4 id="orgcea3e7e"><span class="section-number-4">2.1.1</span> Requirements</h4>
<div id="outline-container-org1a6364f" class="outline-4">
<h4 id="org1a6364f"><span class="section-number-4">2.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-2-1-1">
<ul class="org-ul">
<li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li>
@ -818,8 +813,8 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
</div>
</div>
<div id="outline-container-org9c3d78a" class="outline-4">
<h4 id="org9c3d78a"><span class="section-number-4">2.1.2</span> C header</h4>
<div id="outline-container-orga6c8b11" class="outline-4">
<h4 id="orga6c8b11"><span class="section-number-4">2.1.2</span> C header</h4>
<div class="outline-text-4" id="text-2-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_distance</span> (
@ -839,8 +834,8 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
</div>
</div>
<div id="outline-container-orgf420b9d" class="outline-4">
<h4 id="orgf420b9d"><span class="section-number-4">2.1.3</span> Source</h4>
<div id="outline-container-org1264797" class="outline-4">
<h4 id="org1264797"><span class="section-number-4">2.1.3</span> Source</h4>
<div class="outline-text-4" id="text-2-1-3">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">integer</span><span style="color: #a0522d;"> function qmckl_distance_f(context, transa, transb, m, n, </span><span style="color: #a020f0;">&amp;</span>
@ -1007,8 +1002,8 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
</div>
</div>
<div id="outline-container-orgde65326" class="outline-4">
<h4 id="orgde65326"><span class="section-number-4">2.1.4</span> Performance</h4>
<div id="outline-container-org4666ae2" class="outline-4">
<h4 id="org4666ae2"><span class="section-number-4">2.1.4</span> Performance</h4>
<div class="outline-text-4" id="text-2-1-4">
<p>
This function is more efficient when <code>A</code> and <code>B</code> are transposed.
@ -1018,12 +1013,12 @@ This function is more efficient when <code>A</code> and <code>B</code> are trans
</div>
</div>
<div id="outline-container-org70cdbfe" class="outline-2">
<h2 id="org70cdbfe"><span class="section-number-2">3</span> Rescaled Distance</h2>
<div id="outline-container-org9f4d5c5" class="outline-2">
<h2 id="org9f4d5c5"><span class="section-number-2">3</span> Rescaled Distance</h2>
<div class="outline-text-2" id="text-3">
</div>
<div id="outline-container-orgbbeb291" class="outline-3">
<h3 id="orgbbeb291"><span class="section-number-3">3.1</span> <code>qmckl_distance_rescaled</code></h3>
<div id="outline-container-org0c05035" class="outline-3">
<h3 id="org0c05035"><span class="section-number-3">3.1</span> <code>qmckl_distance_rescaled</code></h3>
<div class="outline-text-3" id="text-3-1">
<p>
<code>qmckl_distance_rescaled</code> computes the matrix of the rescaled distances between all
@ -1041,7 +1036,7 @@ If the input array is normal (<code>'N'</code>), the xyz coordinates are in
the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortran.
</p>
<table id="org81f3517" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org521eabe" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1053,87 +1048,95 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Variable</th>
<th scope="col" class="org-left">Type</th>
<th scope="col" class="org-left">In/Out</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">qmckl<sub>context</sub></td>
<td class="org-left">context</td>
<td class="org-left"><code>context</code></td>
<td class="org-left"><code>qmckl_context</code></td>
<td class="org-left">in</td>
<td class="org-left">Global state</td>
</tr>
<tr>
<td class="org-left">char</td>
<td class="org-left">transa</td>
<td class="org-left"><code>transa</code></td>
<td class="org-left"><code>char</code></td>
<td class="org-left">in</td>
<td class="org-left">Array <code>A</code> is <code>'N'</code>: Normal, <code>'T'</code>: Transposed</td>
</tr>
<tr>
<td class="org-left">char</td>
<td class="org-left">transb</td>
<td class="org-left"><code>transb</code></td>
<td class="org-left"><code>char</code></td>
<td class="org-left">in</td>
<td class="org-left">Array <code>B</code> is <code>'N'</code>: Normal, <code>'T'</code>: Transposed</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">m</td>
<td class="org-left"><code>m</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of points in the first set</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">n</td>
<td class="org-left"><code>n</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of points in the second set</td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">A[][lda]</td>
<td class="org-left"><code>A</code></td>
<td class="org-left"><code>double[][lda]</code></td>
<td class="org-left">in</td>
<td class="org-left">Array containing the \(m \times 3\) matrix \(A\)</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">lda</td>
<td class="org-left"><code>lda</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Leading dimension of array <code>A</code></td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">B[][ldb]</td>
<td class="org-left"><code>B</code></td>
<td class="org-left"><code>double[][ldb]</code></td>
<td class="org-left">in</td>
<td class="org-left">Array containing the \(n \times 3\) matrix \(B\)</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">ldb</td>
<td class="org-left"><code>ldb</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Leading dimension of array <code>B</code></td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">C[n][ldc]</td>
<td class="org-left"><code>C</code></td>
<td class="org-left"><code>double[n][ldc]</code></td>
<td class="org-left">out</td>
<td class="org-left">Array containing the \(m \times n\) matrix \(C\)</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">ldc</td>
<td class="org-left"><code>ldc</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Leading dimension of array <code>C</code></td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">rescale<sub>factor</sub><sub>kappa</sub></td>
<td class="org-left"><code>rescale_factor_kappa</code></td>
<td class="org-left"><code>double</code></td>
<td class="org-left">in</td>
<td class="org-left">Factor for calculating rescaled distances</td>
</tr>
@ -1141,8 +1144,8 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
</table>
</div>
<div id="outline-container-org3377c73" class="outline-4">
<h4 id="org3377c73"><span class="section-number-4">3.1.1</span> Requirements</h4>
<div id="outline-container-orgf548f4f" class="outline-4">
<h4 id="orgf548f4f"><span class="section-number-4">3.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-3-1-1">
<ul class="org-ul">
<li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li>
@ -1160,8 +1163,8 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
</div>
</div>
<div id="outline-container-org4665f2a" class="outline-4">
<h4 id="org4665f2a"><span class="section-number-4">3.1.2</span> C header</h4>
<div id="outline-container-org19cfbb2" class="outline-4">
<h4 id="org19cfbb2"><span class="section-number-4">3.1.2</span> C header</h4>
<div class="outline-text-4" id="text-3-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_distance_rescaled</span> (
@ -1182,8 +1185,8 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
</div>
</div>
<div id="outline-container-orgb46f496" class="outline-4">
<h4 id="orgb46f496"><span class="section-number-4">3.1.3</span> Source</h4>
<div id="outline-container-org91880af" class="outline-4">
<h4 id="org91880af"><span class="section-number-4">3.1.3</span> Source</h4>
<div class="outline-text-4" id="text-3-1-3">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">integer</span><span style="color: #a0522d;"> function qmckl_distance_rescaled_f(context, transa, transb, m, n, </span><span style="color: #a020f0;">&amp;</span>
@ -1353,8 +1356,8 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
</div>
</div>
<div id="outline-container-orge160286" class="outline-4">
<h4 id="orge160286"><span class="section-number-4">3.1.4</span> Performance</h4>
<div id="outline-container-org668986a" class="outline-4">
<h4 id="org668986a"><span class="section-number-4">3.1.4</span> Performance</h4>
<div class="outline-text-4" id="text-3-1-4">
<p>
This function is more efficient when <code>A</code> and <code>B</code> are transposed.
@ -1363,12 +1366,12 @@ This function is more efficient when <code>A</code> and <code>B</code> are trans
</div>
</div>
</div>
<div id="outline-container-orgaf694da" class="outline-2">
<h2 id="orgaf694da"><span class="section-number-2">4</span> Rescaled Distance Derivatives</h2>
<div id="outline-container-org2958eaa" class="outline-2">
<h2 id="org2958eaa"><span class="section-number-2">4</span> Rescaled Distance Derivatives</h2>
<div class="outline-text-2" id="text-4">
</div>
<div id="outline-container-orga44afe0" class="outline-3">
<h3 id="orga44afe0"><span class="section-number-3">4.1</span> <code>qmckl_distance_rescaled_deriv_e</code></h3>
<div id="outline-container-org93bb3aa" class="outline-3">
<h3 id="org93bb3aa"><span class="section-number-3">4.1</span> <code>qmckl_distance_rescaled_deriv_e</code></h3>
<div class="outline-text-3" id="text-4-1">
<p>
<code>qmckl_distance_rescaled_deriv_e</code> computes the matrix of the gradient and laplacian of the
@ -1435,7 +1438,7 @@ If the input array is normal (<code>'N'</code>), the xyz coordinates are in
the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortran.
</p>
<table id="org2818756" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org291bca7" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1447,97 +1450,105 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Variable</th>
<th scope="col" class="org-left">Type</th>
<th scope="col" class="org-left">In/Out</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">qmckl<sub>context</sub></td>
<td class="org-left">context</td>
<td class="org-left"><code>context</code></td>
<td class="org-left"><code>qmckl_context</code></td>
<td class="org-left">in</td>
<td class="org-left">Global state</td>
</tr>
<tr>
<td class="org-left">char</td>
<td class="org-left">transa</td>
<td class="org-left"><code>transa</code></td>
<td class="org-left"><code>char</code></td>
<td class="org-left">in</td>
<td class="org-left">Array <code>A</code> is <code>'N'</code>: Normal, <code>'T'</code>: Transposed</td>
</tr>
<tr>
<td class="org-left">char</td>
<td class="org-left">transb</td>
<td class="org-left"><code>transb</code></td>
<td class="org-left"><code>char</code></td>
<td class="org-left">in</td>
<td class="org-left">Array <code>B</code> is <code>'N'</code>: Normal, <code>'T'</code>: Transposed</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">m</td>
<td class="org-left"><code>m</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of points in the first set</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">n</td>
<td class="org-left"><code>n</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Number of points in the second set</td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">A[][lda]</td>
<td class="org-left"><code>A</code></td>
<td class="org-left"><code>double[][lda]</code></td>
<td class="org-left">in</td>
<td class="org-left">Array containing the \(m \times 3\) matrix \(A\)</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">lda</td>
<td class="org-left"><code>lda</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Leading dimension of array <code>A</code></td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">B[][ldb]</td>
<td class="org-left"><code>B</code></td>
<td class="org-left"><code>double[][ldb]</code></td>
<td class="org-left">in</td>
<td class="org-left">Array containing the \(n \times 3\) matrix \(B\)</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">ldb</td>
<td class="org-left"><code>ldb</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Leading dimension of array <code>B</code></td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">C[4][n][ldc]</td>
<td class="org-left"><code>C</code></td>
<td class="org-left"><code>double[4][n][ldc]</code></td>
<td class="org-left">out</td>
<td class="org-left">Array containing the \(4 \times m \times n\) matrix \(C\)</td>
</tr>
<tr>
<td class="org-left">int64<sub>t</sub></td>
<td class="org-left">ldc</td>
<td class="org-left"><code>ldc</code></td>
<td class="org-left"><code>int64_t</code></td>
<td class="org-left">in</td>
<td class="org-left">Leading dimension of array <code>C</code></td>
</tr>
<tr>
<td class="org-left">double</td>
<td class="org-left">rescale<sub>factor</sub><sub>kappa</sub></td>
<td class="org-left"><code>rescale_factor_kappa</code></td>
<td class="org-left"><code>double</code></td>
<td class="org-left">in</td>
<td class="org-left">Factor for calculating rescaled distances derivatives</td>
</tr>
</tbody>
</table>
</div>
<div id="outline-container-org8c0b0ab" class="outline-4">
<h4 id="org8c0b0ab"><span class="section-number-4">4.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-4-1-1">
<p>
Requirements:
</p>
<ul class="org-ul">
<li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li>
<li><code>m &gt; 0</code></li>
@ -1551,12 +1562,7 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
<li><code>B</code> is allocated with at least \(3 \times n \times 8\) bytes</li>
<li><code>C</code> is allocated with at least \(4 \times m \times n \times 8\) bytes</li>
</ul>
</div>
</div>
<div id="outline-container-orgf88eabb" class="outline-4">
<h4 id="orgf88eabb"><span class="section-number-4">4.1.2</span> C header</h4>
<div class="outline-text-4" id="text-4-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_distance_rescaled_deriv_e</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
@ -1573,12 +1579,7 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> <span style="color: #a0522d;">rescale_factor_kappa</span> );
</pre>
</div>
</div>
</div>
<div id="outline-container-org4e29dd5" class="outline-4">
<h4 id="org4e29dd5"><span class="section-number-4">4.1.3</span> Source</h4>
<div class="outline-text-4" id="text-4-1-3">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">integer</span><span style="color: #a0522d;"> function qmckl_distance_rescaled_deriv_e_f(context, transa, transb, m, n, </span><span style="color: #a020f0;">&amp;</span>
A, LDA, B, LDB, C, LDC, rescale_factor_kappa) <span style="color: #a020f0;">&amp;</span>
@ -1765,12 +1766,7 @@ the leading dimension: <code>[n][3]</code> in C and <code>(3,n)</code> in Fortra
<span style="color: #a020f0;">end function</span> <span style="color: #0000ff;">qmckl_distance_rescaled_deriv_e_f</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org37f6f93" class="outline-4">
<h4 id="org37f6f93"><span class="section-number-4">4.1.4</span> Performance</h4>
<div class="outline-text-4" id="text-4-1-4">
<p>
This function is more efficient when <code>A</code> and <code>B</code> are transposed.
</p>
@ -1778,10 +1774,9 @@ This function is more efficient when <code>A</code> and <code>B</code> are trans
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Error handling</title>
@ -311,17 +311,17 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org81551bd">1. Decoding errors</a></li>
<li><a href="#org88da79c">2. Data structure in context</a></li>
<li><a href="#orgafe3d5f">3. Updating errors in the context</a></li>
<li><a href="#orge1a71a0">4. Get the error</a></li>
<li><a href="#org9b91c82">5. Failing</a></li>
<li><a href="#orgcbc41ae">1. Decoding errors</a></li>
<li><a href="#org8a6dd62">2. Data structure in context</a></li>
<li><a href="#org46605ff">3. Updating errors in the context</a></li>
<li><a href="#orgf8294ca">4. Get the error</a></li>
<li><a href="#org505abe1">5. Failing</a></li>
</ul>
</div>
</div>
<div id="outline-container-org81551bd" class="outline-2">
<h2 id="org81551bd"><span class="section-number-2">1</span> Decoding errors</h2>
<div id="outline-container-orgcbc41ae" class="outline-2">
<h2 id="orgcbc41ae"><span class="section-number-2">1</span> Decoding errors</h2>
<div class="outline-text-2" id="text-1">
<p>
To decode the error messages, <code>qmckl_string_of_error</code> converts an
@ -451,8 +451,8 @@ The text strings are extracted from the previous table.
</div>
</div>
<div id="outline-container-org88da79c" class="outline-2">
<h2 id="org88da79c"><span class="section-number-2">2</span> Data structure in context</h2>
<div id="outline-container-org8a6dd62" class="outline-2">
<h2 id="org8a6dd62"><span class="section-number-2">2</span> Data structure in context</h2>
<div class="outline-text-2" id="text-2">
<p>
The strings are declared with a maximum fixed size to avoid
@ -475,8 +475,8 @@ dynamic memory allocation.
</div>
</div>
<div id="outline-container-orgafe3d5f" class="outline-2">
<h2 id="orgafe3d5f"><span class="section-number-2">3</span> Updating errors in the context</h2>
<div id="outline-container-org46605ff" class="outline-2">
<h2 id="org46605ff"><span class="section-number-2">3</span> Updating errors in the context</h2>
<div class="outline-text-2" id="text-3">
<p>
The error is updated in the context using <code>qmckl_set_error</code>.
@ -522,8 +522,8 @@ explaining the error. The exit code can't be <code>QMCKL_SUCCESS</code>.
</div>
</div>
<div id="outline-container-orge1a71a0" class="outline-2">
<h2 id="orge1a71a0"><span class="section-number-2">4</span> Get the error</h2>
<div id="outline-container-orgf8294ca" class="outline-2">
<h2 id="orgf8294ca"><span class="section-number-2">4</span> Get the error</h2>
<div class="outline-text-2" id="text-4">
<p>
Upon error, the error type and message can be obtained from the
@ -575,8 +575,8 @@ function name and message is mandatory.
</div>
</div>
<div id="outline-container-org9b91c82" class="outline-2">
<h2 id="org9b91c82"><span class="section-number-2">5</span> Failing</h2>
<div id="outline-container-org505abe1" class="outline-2">
<h2 id="org505abe1"><span class="section-number-2">5</span> Failing</h2>
<div class="outline-text-2" id="text-5">
<p>
To make a function fail, the <code>qmckl_failwith</code> function should be
@ -639,7 +639,7 @@ For example, this function can be used as
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Local Energy</title>
@ -333,43 +333,43 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org395911e">1. Context</a>
<li><a href="#org5b50826">1. Context</a>
<ul>
<li><a href="#orgb1e96b1">1.1. Data structure</a></li>
<li><a href="#org23ab80a">1.1. Data structure</a></li>
</ul>
</li>
<li><a href="#orgcfe2ae1">2. Computation</a>
<li><a href="#org33ff645">2. Computation</a>
<ul>
<li><a href="#org7c8b900">2.1. Kinetic energy</a>
<li><a href="#orge5732f7">2.1. Kinetic energy</a>
<ul>
<li><a href="#org799015c">2.1.1. Get</a></li>
<li><a href="#orga26e2f6">2.1.2. Provide</a></li>
<li><a href="#orgd90d08e">2.1.3. Compute kinetic enregy</a></li>
<li><a href="#orgc777ed7">2.1.4. Test</a></li>
<li><a href="#orge019164">2.1.1. Get</a></li>
<li><a href="#org09e342c">2.1.2. Provide</a></li>
<li><a href="#org09952a1">2.1.3. Compute kinetic enregy</a></li>
<li><a href="#orgcf196f1">2.1.4. Test</a></li>
</ul>
</li>
<li><a href="#orgb7e30ce">2.2. Potential energy</a>
<li><a href="#org4d4b7c2">2.2. Potential energy</a>
<ul>
<li><a href="#org05fdd53">2.2.1. Get</a></li>
<li><a href="#org6d362a7">2.2.2. Provide</a></li>
<li><a href="#orgd4ab315">2.2.3. Compute potential enregy</a></li>
<li><a href="#orgc3e2cdf">2.2.4. Test</a></li>
<li><a href="#org4753fd7">2.2.1. Get</a></li>
<li><a href="#org1368174">2.2.2. Provide</a></li>
<li><a href="#orgf94eb0f">2.2.3. Compute potential enregy</a></li>
<li><a href="#orgf27c27a">2.2.4. Test</a></li>
</ul>
</li>
<li><a href="#org67ba4d5">2.3. Local energy</a>
<li><a href="#orgb161ead">2.3. Local energy</a>
<ul>
<li><a href="#org0203d26">2.3.1. Get</a></li>
<li><a href="#orge8322ae">2.3.2. Provide</a></li>
<li><a href="#org06b21d7">2.3.3. Compute local enregy</a></li>
<li><a href="#orgdf8d327">2.3.4. Test</a></li>
<li><a href="#org0154c2d">2.3.1. Get</a></li>
<li><a href="#orgfa87d7b">2.3.2. Provide</a></li>
<li><a href="#orgeaf4f3d">2.3.3. Compute local enregy</a></li>
<li><a href="#org071f2a2">2.3.4. Test</a></li>
</ul>
</li>
<li><a href="#orgeeb33f0">2.4. Drift vector</a>
<li><a href="#orgbebec70">2.4. Drift vector</a>
<ul>
<li><a href="#orgd979e8d">2.4.1. Get</a></li>
<li><a href="#org2720b7c">2.4.2. Provide</a></li>
<li><a href="#orgd1e75da">2.4.3. Compute drift vector</a></li>
<li><a href="#org11ec74a">2.4.4. Test</a></li>
<li><a href="#orga05e9b7">2.4.1. Get</a></li>
<li><a href="#org3783aa9">2.4.2. Provide</a></li>
<li><a href="#org549b432">2.4.3. Compute drift vector</a></li>
<li><a href="#org8aa6b7b">2.4.4. Test</a></li>
</ul>
</li>
</ul>
@ -378,8 +378,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org395911e" class="outline-2">
<h2 id="org395911e"><span class="section-number-2">1</span> Context</h2>
<div id="outline-container-org5b50826" class="outline-2">
<h2 id="org5b50826"><span class="section-number-2">1</span> Context</h2>
<div class="outline-text-2" id="text-1">
<p>
The following arrays are stored in the context:
@ -452,8 +452,8 @@ Computed data:
</table>
</div>
<div id="outline-container-orgb1e96b1" class="outline-3">
<h3 id="orgb1e96b1"><span class="section-number-3">1.1</span> Data structure</h3>
<div id="outline-container-org23ab80a" class="outline-3">
<h3 id="org23ab80a"><span class="section-number-3">1.1</span> Data structure</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">qmckl_local_energy_struct</span> {
@ -488,12 +488,12 @@ this mechanism.
</div>
</div>
<div id="outline-container-orgcfe2ae1" class="outline-2">
<h2 id="orgcfe2ae1"><span class="section-number-2">2</span> Computation</h2>
<div id="outline-container-org33ff645" class="outline-2">
<h2 id="org33ff645"><span class="section-number-2">2</span> Computation</h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-org7c8b900" class="outline-3">
<h3 id="org7c8b900"><span class="section-number-3">2.1</span> Kinetic energy</h3>
<div id="outline-container-orge5732f7" class="outline-3">
<h3 id="orge5732f7"><span class="section-number-3">2.1</span> Kinetic energy</h3>
<div class="outline-text-3" id="text-2-1">
<p>
Where the kinetic energy is given as:
@ -517,8 +517,8 @@ case is given as follows:
</p>
</div>
<div id="outline-container-org799015c" class="outline-4">
<h4 id="org799015c"><span class="section-number-4">2.1.1</span> Get</h4>
<div id="outline-container-orge019164" class="outline-4">
<h4 id="orge019164"><span class="section-number-4">2.1.1</span> Get</h4>
<div class="outline-text-4" id="text-2-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_kinetic_energy</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">kinetic_energy</span>);
@ -527,14 +527,14 @@ case is given as follows:
</div>
</div>
<div id="outline-container-orga26e2f6" class="outline-4">
<h4 id="orga26e2f6"><span class="section-number-4">2.1.2</span> Provide</h4>
<div id="outline-container-org09e342c" class="outline-4">
<h4 id="org09e342c"><span class="section-number-4">2.1.2</span> Provide</h4>
</div>
<div id="outline-container-orgd90d08e" class="outline-4">
<h4 id="orgd90d08e"><span class="section-number-4">2.1.3</span> Compute kinetic enregy</h4>
<div id="outline-container-org09952a1" class="outline-4">
<h4 id="org09952a1"><span class="section-number-4">2.1.3</span> Compute kinetic enregy</h4>
<div class="outline-text-4" id="text-2-1-3">
<table id="org789cc0a" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org7a009ef" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -756,33 +756,33 @@ case is given as follows:
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_compute_kinetic_energy</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">walk_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">det_num_alpha</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">det_num_beta</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">alpha_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">beta_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">elec_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span>* <span style="color: #a0522d;">mo_index_alpha</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span>* <span style="color: #a0522d;">mo_index_beta</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">mo_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">mo_vgl</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">det_value_alpha</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">det_value_beta</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">det_inv_matrix_alpha</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">det_inv_matrix_beta</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">e_kin</span> );
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">context</span> <span style="color: #a0522d;">qmckl_context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">walk_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">det_num_alpha</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">det_num_beta</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">alpha_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">beta_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">elec_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">mo_index_alpha</span>* <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">mo_index_beta</span>* <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">mo_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">mo_vgl</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">det_value_alpha</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">det_value_beta</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">det_inv_matrix_alpha</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">det_inv_matrix_beta</span>* <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">e_kin</span>* <span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> );
</pre>
</div>
</div>
</div>
<div id="outline-container-orgc777ed7" class="outline-4">
<h4 id="orgc777ed7"><span class="section-number-4">2.1.4</span> Test</h4>
<div id="outline-container-orgcf196f1" class="outline-4">
<h4 id="orgcf196f1"><span class="section-number-4">2.1.4</span> Test</h4>
</div>
</div>
<div id="outline-container-orgb7e30ce" class="outline-3">
<h3 id="orgb7e30ce"><span class="section-number-3">2.2</span> Potential energy</h3>
<div id="outline-container-org4d4b7c2" class="outline-3">
<h3 id="org4d4b7c2"><span class="section-number-3">2.2</span> Potential energy</h3>
<div class="outline-text-3" id="text-2-2">
<p>
The potential energy is the sum of all the following terms
@ -818,8 +818,8 @@ contributions.
</p>
</div>
<div id="outline-container-org05fdd53" class="outline-4">
<h4 id="org05fdd53"><span class="section-number-4">2.2.1</span> Get</h4>
<div id="outline-container-org4753fd7" class="outline-4">
<h4 id="org4753fd7"><span class="section-number-4">2.2.1</span> Get</h4>
<div class="outline-text-4" id="text-2-2-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_potential_energy</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">potential_energy</span>);
@ -828,14 +828,14 @@ contributions.
</div>
</div>
<div id="outline-container-org6d362a7" class="outline-4">
<h4 id="org6d362a7"><span class="section-number-4">2.2.2</span> Provide</h4>
<div id="outline-container-org1368174" class="outline-4">
<h4 id="org1368174"><span class="section-number-4">2.2.2</span> Provide</h4>
</div>
<div id="outline-container-orgd4ab315" class="outline-4">
<h4 id="orgd4ab315"><span class="section-number-4">2.2.3</span> Compute potential enregy</h4>
<div id="outline-container-orgf94eb0f" class="outline-4">
<h4 id="orgf94eb0f"><span class="section-number-4">2.2.3</span> Compute potential enregy</h4>
<div class="outline-text-4" id="text-2-2-3">
<table id="org88a01e6" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org9cbbf2d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -950,25 +950,25 @@ contributions.
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_compute_potential_energy</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">walk_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">elec_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">nucl_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">ee_pot</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">en_pot</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> <span style="color: #a0522d;">repulsion</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">e_pot</span> );
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">context</span> <span style="color: #a0522d;">qmckl_context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">walk_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">elec_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">nucl_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">ee_pot</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">en_pot</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">repulsion</span> <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">e_pot</span>* <span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> );
</pre>
</div>
</div>
</div>
<div id="outline-container-orgc3e2cdf" class="outline-4">
<h4 id="orgc3e2cdf"><span class="section-number-4">2.2.4</span> Test</h4>
<div id="outline-container-orgf27c27a" class="outline-4">
<h4 id="orgf27c27a"><span class="section-number-4">2.2.4</span> Test</h4>
</div>
</div>
<div id="outline-container-org67ba4d5" class="outline-3">
<h3 id="org67ba4d5"><span class="section-number-3">2.3</span> Local energy</h3>
<div id="outline-container-orgb161ead" class="outline-3">
<h3 id="orgb161ead"><span class="section-number-3">2.3</span> Local energy</h3>
<div class="outline-text-3" id="text-2-3">
<p>
The local energy is the sum of kinetic and potential energies.
@ -982,8 +982,8 @@ E_L = KE + PE
</div>
<div id="outline-container-org0203d26" class="outline-4">
<h4 id="org0203d26"><span class="section-number-4">2.3.1</span> Get</h4>
<div id="outline-container-org0154c2d" class="outline-4">
<h4 id="org0154c2d"><span class="section-number-4">2.3.1</span> Get</h4>
<div class="outline-text-4" id="text-2-3-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_local_energy</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">local_energy</span>);
@ -992,14 +992,14 @@ E_L = KE + PE
</div>
</div>
<div id="outline-container-orge8322ae" class="outline-4">
<h4 id="orge8322ae"><span class="section-number-4">2.3.2</span> Provide</h4>
<div id="outline-container-orgfa87d7b" class="outline-4">
<h4 id="orgfa87d7b"><span class="section-number-4">2.3.2</span> Provide</h4>
</div>
<div id="outline-container-org06b21d7" class="outline-4">
<h4 id="org06b21d7"><span class="section-number-4">2.3.3</span> Compute local enregy</h4>
<div id="outline-container-orgeaf4f3d" class="outline-4">
<h4 id="orgeaf4f3d"><span class="section-number-4">2.3.3</span> Compute local enregy</h4>
<div class="outline-text-4" id="text-2-3-3">
<table id="org6190da2" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgc269ec1" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1085,22 +1085,22 @@ E_L = KE + PE
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_compute_local_energy</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">walk_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">e_kin</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">e_pot</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">e_local</span> );
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">context</span> <span style="color: #a0522d;">qmckl_context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">walk_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">e_kin</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">e_pot</span>* <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">e_local</span>* <span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> );
</pre>
</div>
</div>
</div>
<div id="outline-container-orgdf8d327" class="outline-4">
<h4 id="orgdf8d327"><span class="section-number-4">2.3.4</span> Test</h4>
<div id="outline-container-org071f2a2" class="outline-4">
<h4 id="org071f2a2"><span class="section-number-4">2.3.4</span> Test</h4>
</div>
</div>
<div id="outline-container-orgeeb33f0" class="outline-3">
<h3 id="orgeeb33f0"><span class="section-number-3">2.4</span> Drift vector</h3>
<div id="outline-container-orgbebec70" class="outline-3">
<h3 id="orgbebec70"><span class="section-number-3">2.4</span> Drift vector</h3>
<div class="outline-text-3" id="text-2-4">
<p>
The drift vector is calculated as the ration of the gradient
@ -1114,8 +1114,8 @@ with the determinant of the wavefunction.
</p>
</div>
<div id="outline-container-orgd979e8d" class="outline-4">
<h4 id="orgd979e8d"><span class="section-number-4">2.4.1</span> Get</h4>
<div id="outline-container-orga05e9b7" class="outline-4">
<h4 id="orga05e9b7"><span class="section-number-4">2.4.1</span> Get</h4>
<div class="outline-text-4" id="text-2-4-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_drift_vector</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">drift_vector</span>);
@ -1124,14 +1124,14 @@ with the determinant of the wavefunction.
</div>
</div>
<div id="outline-container-org2720b7c" class="outline-4">
<h4 id="org2720b7c"><span class="section-number-4">2.4.2</span> Provide</h4>
<div id="outline-container-org3783aa9" class="outline-4">
<h4 id="org3783aa9"><span class="section-number-4">2.4.2</span> Provide</h4>
</div>
<div id="outline-container-orgd1e75da" class="outline-4">
<h4 id="orgd1e75da"><span class="section-number-4">2.4.3</span> Compute drift vector</h4>
<div id="outline-container-org549b432" class="outline-4">
<h4 id="org549b432"><span class="section-number-4">2.4.3</span> Compute drift vector</h4>
<div class="outline-text-4" id="text-2-4-3">
<table id="org47c56dd" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgfa05325" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1333,34 +1333,34 @@ with the determinant of the wavefunction.
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_compute_drift_vector</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">walk_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">det_num_alpha</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">det_num_beta</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">alpha_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">beta_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">elec_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span>* <span style="color: #a0522d;">mo_index_alpha</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span>* <span style="color: #a0522d;">mo_index_beta</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">mo_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">mo_vgl</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">det_inv_matrix_alpha</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">det_inv_matrix_beta</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">r_drift</span> );
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">context</span> <span style="color: #a0522d;">qmckl_context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">walk_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">det_num_alpha</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">det_num_beta</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">alpha_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">beta_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">elec_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">mo_index_alpha</span>* <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">mo_index_beta</span>* <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">mo_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">mo_vgl</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">det_inv_matrix_alpha</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">det_inv_matrix_beta</span>* <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">r_drift</span>* <span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> );
</pre>
</div>
</div>
</div>
<div id="outline-container-org11ec74a" class="outline-4">
<h4 id="org11ec74a"><span class="section-number-4">2.4.4</span> Test</h4>
<div id="outline-container-org8aa6b7b" class="outline-4">
<h4 id="org8aa6b7b"><span class="section-number-4">2.4.4</span> Test</h4>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Memory management</title>
@ -311,15 +311,15 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org39ce0d2">1. Memory data structure for the context</a></li>
<li><a href="#orge639106">2. Passing info to allocation routines</a></li>
<li><a href="#org146bdac">3. Allocation/deallocation functions</a></li>
<li><a href="#orgb28a5ef">1. Memory data structure for the context</a></li>
<li><a href="#org70b7f00">2. Passing info to allocation routines</a></li>
<li><a href="#org151e89b">3. Allocation/deallocation functions</a></li>
</ul>
</div>
</div>
<div id="outline-container-org39ce0d2" class="outline-2">
<h2 id="org39ce0d2"><span class="section-number-2">1</span> Memory data structure for the context</h2>
<div id="outline-container-orgb28a5ef" class="outline-2">
<h2 id="orgb28a5ef"><span class="section-number-2">1</span> Memory data structure for the context</h2>
<div class="outline-text-2" id="text-1">
<p>
Every time a new block of memory is allocated, the information
@ -361,8 +361,8 @@ array, and the number of allocated blocks.
</div>
</div>
<div id="outline-container-orge639106" class="outline-2">
<h2 id="orge639106"><span class="section-number-2">2</span> Passing info to allocation routines</h2>
<div id="outline-container-org70b7f00" class="outline-2">
<h2 id="org70b7f00"><span class="section-number-2">2</span> Passing info to allocation routines</h2>
<div class="outline-text-2" id="text-2">
<p>
Passing information to the allocation routine should be done by
@ -371,8 +371,8 @@ passing an instance of a <code>qmckl_memory_info_struct</code>.
</div>
</div>
<div id="outline-container-org146bdac" class="outline-2">
<h2 id="org146bdac"><span class="section-number-2">3</span> Allocation/deallocation functions</h2>
<div id="outline-container-org151e89b" class="outline-2">
<h2 id="org151e89b"><span class="section-number-2">3</span> Allocation/deallocation functions</h2>
<div class="outline-text-2" id="text-3">
<p>
Memory allocation inside the library should be done with
@ -535,7 +535,7 @@ allocation and needs to be updated.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<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>
@ -311,21 +311,21 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org926f63c">1. Context</a>
<li><a href="#org0800f35">1. Context</a>
<ul>
<li><a href="#org00a2bec">1.1. Data structure</a></li>
<li><a href="#org5f40c8e">1.2. Access functions</a></li>
<li><a href="#org8677868">1.3. Initialization functions</a></li>
<li><a href="#org54ec7f2">1.1. Data structure</a></li>
<li><a href="#org772d8c5">1.2. Access functions</a></li>
<li><a href="#orgc2ec80b">1.3. Initialization functions</a></li>
</ul>
</li>
<li><a href="#orgc729f1f">2. Computation</a>
<li><a href="#org4e21c6d">2. Computation</a>
<ul>
<li><a href="#org37c6772">2.1. Computation of MOs</a>
<li><a href="#org01acefd">2.1. Computation of MOs</a>
<ul>
<li><a href="#org94e2ce4">2.1.1. Get</a></li>
<li><a href="#org73e7e8d">2.1.2. Provide</a></li>
<li><a href="#org1cba024">2.1.3. Compute</a></li>
<li><a href="#orgb4ac7a8">2.1.4. Test</a></li>
<li><a href="#org569e536">2.1.1. Get</a></li>
<li><a href="#org3315eaa">2.1.2. Provide</a></li>
<li><a href="#orgc5022b0">2.1.3. Compute</a></li>
<li><a href="#org912a469">2.1.4. Test</a></li>
</ul>
</li>
</ul>
@ -334,8 +334,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org926f63c" class="outline-2">
<h2 id="org926f63c"><span class="section-number-2">1</span> Context</h2>
<div id="outline-container-org0800f35" class="outline-2">
<h2 id="org0800f35"><span class="section-number-2">1</span> Context</h2>
<div class="outline-text-2" id="text-1">
<p>
The following arrays are stored in the context:
@ -397,8 +397,8 @@ Computed data:
</table>
</div>
<div id="outline-container-org00a2bec" class="outline-3">
<h3 id="org00a2bec"><span class="section-number-3">1.1</span> Data structure</h3>
<div id="outline-container-org54ec7f2" class="outline-3">
<h3 id="org54ec7f2"><span class="section-number-3">1.1</span> Data structure</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">qmckl_mo_basis_struct</span> {
@ -447,8 +447,8 @@ this mechanism.
</div>
</div>
<div id="outline-container-org5f40c8e" class="outline-3">
<h3 id="org5f40c8e"><span class="section-number-3">1.2</span> Access functions</h3>
<div id="outline-container-org772d8c5" class="outline-3">
<h3 id="org772d8c5"><span class="section-number-3">1.2</span> Access functions</h3>
<div class="outline-text-3" id="text-1-2">
<p>
When all the data for the AOs have been provided, the following
@ -462,8 +462,8 @@ function returns <code>true</code>.
</div>
</div>
<div id="outline-container-org8677868" class="outline-3">
<h3 id="org8677868"><span class="section-number-3">1.3</span> Initialization functions</h3>
<div id="outline-container-orgc2ec80b" class="outline-3">
<h3 id="orgc2ec80b"><span class="section-number-3">1.3</span> Initialization functions</h3>
<div class="outline-text-3" id="text-1-3">
<p>
To set the basis set, all the following functions need to be
@ -484,16 +484,16 @@ computed to accelerate the calculations.
</div>
</div>
<div id="outline-container-orgc729f1f" class="outline-2">
<h2 id="orgc729f1f"><span class="section-number-2">2</span> Computation</h2>
<div id="outline-container-org4e21c6d" class="outline-2">
<h2 id="org4e21c6d"><span class="section-number-2">2</span> Computation</h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-org37c6772" class="outline-3">
<h3 id="org37c6772"><span class="section-number-3">2.1</span> Computation of MOs</h3>
<div id="outline-container-org01acefd" class="outline-3">
<h3 id="org01acefd"><span class="section-number-3">2.1</span> Computation of MOs</h3>
<div class="outline-text-3" id="text-2-1">
</div>
<div id="outline-container-org94e2ce4" class="outline-4">
<h4 id="org94e2ce4"><span class="section-number-4">2.1.1</span> Get</h4>
<div id="outline-container-org569e536" class="outline-4">
<h4 id="org569e536"><span class="section-number-4">2.1.1</span> Get</h4>
<div class="outline-text-4" id="text-2-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_mo_basis_vgl</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">mo_vgl</span>);
@ -502,14 +502,14 @@ computed to accelerate the calculations.
</div>
</div>
<div id="outline-container-org73e7e8d" class="outline-4">
<h4 id="org73e7e8d"><span class="section-number-4">2.1.2</span> Provide</h4>
<div id="outline-container-org3315eaa" class="outline-4">
<h4 id="org3315eaa"><span class="section-number-4">2.1.2</span> Provide</h4>
</div>
<div id="outline-container-org1cba024" class="outline-4">
<h4 id="org1cba024"><span class="section-number-4">2.1.3</span> Compute</h4>
<div id="outline-container-orgc5022b0" class="outline-4">
<h4 id="orgc5022b0"><span class="section-number-4">2.1.3</span> Compute</h4>
<div class="outline-text-4" id="text-2-1-3">
<table id="org484d4ba" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orga8a4ec5" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -654,28 +654,28 @@ computed to accelerate the calculations.
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_compute_mo_basis_vgl</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">ao_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">mo_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">elec_num</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coef_normalized</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">ao_vgl</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">mo_vgl</span> );
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">context</span> <span style="color: #a0522d;">qmckl_context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">ao_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">mo_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">elec_num</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">coef_normalized</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">ao_vgl</span>* <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">mo_vgl</span>* <span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> );
</pre>
</div>
</div>
</div>
<div id="outline-container-orgb4ac7a8" class="outline-4">
<h4 id="orgb4ac7a8"><span class="section-number-4">2.1.4</span> Test</h4>
<div id="outline-container-org912a469" class="outline-4">
<h4 id="org912a469"><span class="section-number-4">2.1.4</span> Test</h4>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Nucleus</title>
@ -333,35 +333,35 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org90029fc">1. Context</a>
<li><a href="#org14775d3">1. Context</a>
<ul>
<li><a href="#orgcb96a06">1.1. Data structure</a></li>
<li><a href="#org87a5b88">1.2. Access functions</a></li>
<li><a href="#org5fc3b17">1.3. Initialization functions</a></li>
<li><a href="#org9fbbece">1.4. Test</a></li>
<li><a href="#org45d4c43">1.1. Data structure</a></li>
<li><a href="#orgb51d5cf">1.2. Access functions</a></li>
<li><a href="#org711a209">1.3. Initialization functions</a></li>
<li><a href="#org5e9ace6">1.4. Test</a></li>
</ul>
</li>
<li><a href="#org3aa78a2">2. Computation</a>
<li><a href="#org135dd21">2. Computation</a>
<ul>
<li><a href="#org2be016c">2.1. Nucleus-nucleus distances</a>
<li><a href="#orgd65e884">2.1. Nucleus-nucleus distances</a>
<ul>
<li><a href="#org7e50ea0">2.1.1. Get</a></li>
<li><a href="#orgc16a0d8">2.1.2. Compute</a></li>
<li><a href="#org14cd445">2.1.3. Test</a></li>
<li><a href="#orgcf97006">2.1.1. Get</a></li>
<li><a href="#orgba234c1">2.1.2. Compute</a></li>
<li><a href="#org08de36c">2.1.3. Test</a></li>
</ul>
</li>
<li><a href="#orgf1bbf95">2.2. Nucleus-nucleus rescaled distances</a>
<li><a href="#org726edf0">2.2. Nucleus-nucleus rescaled distances</a>
<ul>
<li><a href="#orga9ea737">2.2.1. Get</a></li>
<li><a href="#orgb3dd7f3">2.2.2. Compute</a></li>
<li><a href="#orgb23e5d5">2.2.3. Test</a></li>
<li><a href="#org6721d99">2.2.1. Get</a></li>
<li><a href="#org21e1fd6">2.2.2. Compute</a></li>
<li><a href="#org5728cb7">2.2.3. Test</a></li>
</ul>
</li>
<li><a href="#org1c76083">2.3. Nuclear repulsion energy</a>
<li><a href="#org15ceec0">2.3. Nuclear repulsion energy</a>
<ul>
<li><a href="#org50d351f">2.3.1. Get</a></li>
<li><a href="#org494129a">2.3.2. Compute</a></li>
<li><a href="#org13ca316">2.3.3. Test</a></li>
<li><a href="#orgb5df7e0">2.3.1. Get</a></li>
<li><a href="#org87aaf43">2.3.2. Compute</a></li>
<li><a href="#org9f6ed3c">2.3.3. Test</a></li>
</ul>
</li>
</ul>
@ -370,8 +370,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org90029fc" class="outline-2">
<h2 id="org90029fc"><span class="section-number-2">1</span> Context</h2>
<div id="outline-container-org14775d3" class="outline-2">
<h2 id="org14775d3"><span class="section-number-2">1</span> Context</h2>
<div class="outline-text-2" id="text-1">
<p>
The following data stored in the context:
@ -486,8 +486,8 @@ Computed data:
</table>
</div>
<div id="outline-container-orgcb96a06" class="outline-3">
<h3 id="orgcb96a06"><span class="section-number-3">1.1</span> Data structure</h3>
<div id="outline-container-org45d4c43" class="outline-3">
<h3 id="org45d4c43"><span class="section-number-3">1.1</span> Data structure</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">qmckl_nucleus_struct</span> {
@ -545,8 +545,8 @@ this mechanism.
</div>
</div>
<div id="outline-container-org87a5b88" class="outline-3">
<h3 id="org87a5b88"><span class="section-number-3">1.2</span> Access functions</h3>
<div id="outline-container-orgb51d5cf" class="outline-3">
<h3 id="orgb51d5cf"><span class="section-number-3">1.2</span> Access functions</h3>
<div class="outline-text-3" id="text-1-2">
<p>
When all the data relative to nuclei have been set, the following
@ -560,8 +560,8 @@ function returns <code>true</code>.
</div>
</div>
<div id="outline-container-org5fc3b17" class="outline-3">
<h3 id="org5fc3b17"><span class="section-number-3">1.3</span> Initialization functions</h3>
<div id="outline-container-org711a209" class="outline-3">
<h3 id="org711a209"><span class="section-number-3">1.3</span> Initialization functions</h3>
<div class="outline-text-3" id="text-1-3">
<p>
To set the data relative to the nuclei in the context, the
@ -596,8 +596,8 @@ atoms. The coordinates should be given in atomic units.
</div>
</div>
<div id="outline-container-org9fbbece" class="outline-3">
<h3 id="org9fbbece"><span class="section-number-3">1.4</span> Test</h3>
<div id="outline-container-org5e9ace6" class="outline-3">
<h3 id="org5e9ace6"><span class="section-number-3">1.4</span> Test</h3>
<div class="outline-text-3" id="text-1-4">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">nucl_num</span> = chbrclf_nucl_num;
@ -681,8 +681,8 @@ rc = qmckl_get_nucleus_charge(context, nucl_charge2);
</div>
</div>
<div id="outline-container-org3aa78a2" class="outline-2">
<h2 id="org3aa78a2"><span class="section-number-2">2</span> Computation</h2>
<div id="outline-container-org135dd21" class="outline-2">
<h2 id="org135dd21"><span class="section-number-2">2</span> Computation</h2>
<div class="outline-text-2" id="text-2">
<p>
The computed data is stored in the context so that it can be reused
@ -695,12 +695,12 @@ current date is stored.
</p>
</div>
<div id="outline-container-org2be016c" class="outline-3">
<h3 id="org2be016c"><span class="section-number-3">2.1</span> Nucleus-nucleus distances</h3>
<div id="outline-container-orgd65e884" class="outline-3">
<h3 id="orgd65e884"><span class="section-number-3">2.1</span> Nucleus-nucleus distances</h3>
<div class="outline-text-3" id="text-2-1">
</div>
<div id="outline-container-org7e50ea0" class="outline-4">
<h4 id="org7e50ea0"><span class="section-number-4">2.1.1</span> Get</h4>
<div id="outline-container-orgcf97006" class="outline-4">
<h4 id="orgcf97006"><span class="section-number-4">2.1.1</span> Get</h4>
<div class="outline-text-4" id="text-2-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_nucleus_nn_distance</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">distance</span>);
@ -709,10 +709,10 @@ current date is stored.
</div>
</div>
<div id="outline-container-orgc16a0d8" class="outline-4">
<h4 id="orgc16a0d8"><span class="section-number-4">2.1.2</span> Compute</h4>
<div id="outline-container-orgba234c1" class="outline-4">
<h4 id="orgba234c1"><span class="section-number-4">2.1.2</span> Compute</h4>
<div class="outline-text-4" id="text-2-1-2">
<table id="org6bf8239" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org0836e3e" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -790,8 +790,8 @@ current date is stored.
</div>
</div>
<div id="outline-container-org14cd445" class="outline-4">
<h4 id="org14cd445"><span class="section-number-4">2.1.3</span> Test</h4>
<div id="outline-container-org08de36c" class="outline-4">
<h4 id="org08de36c"><span class="section-number-4">2.1.3</span> Test</h4>
<div class="outline-text-4" id="text-2-1-3">
<div class="org-src-container">
<pre class="src src-c">/* <span style="color: #b22222;">Reference input data </span>*/
@ -810,12 +810,12 @@ rc = qmckl_get_nucleus_nn_distance(context, distance);
</div>
</div>
<div id="outline-container-orgf1bbf95" class="outline-3">
<h3 id="orgf1bbf95"><span class="section-number-3">2.2</span> Nucleus-nucleus rescaled distances</h3>
<div id="outline-container-org726edf0" class="outline-3">
<h3 id="org726edf0"><span class="section-number-3">2.2</span> Nucleus-nucleus rescaled distances</h3>
<div class="outline-text-3" id="text-2-2">
</div>
<div id="outline-container-orga9ea737" class="outline-4">
<h4 id="orga9ea737"><span class="section-number-4">2.2.1</span> Get</h4>
<div id="outline-container-org6721d99" class="outline-4">
<h4 id="org6721d99"><span class="section-number-4">2.2.1</span> Get</h4>
<div class="outline-text-4" id="text-2-2-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_nucleus_nn_distance_rescaled</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">distance_rescaled</span>);
@ -824,10 +824,10 @@ rc = qmckl_get_nucleus_nn_distance(context, distance);
</div>
</div>
<div id="outline-container-orgb3dd7f3" class="outline-4">
<h4 id="orgb3dd7f3"><span class="section-number-4">2.2.2</span> Compute</h4>
<div id="outline-container-org21e1fd6" class="outline-4">
<h4 id="org21e1fd6"><span class="section-number-4">2.2.2</span> Compute</h4>
<div class="outline-text-4" id="text-2-2-2">
<table id="org48c6762" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org6b0c7dc" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -906,8 +906,8 @@ rc = qmckl_get_nucleus_nn_distance(context, distance);
</div>
</div>
<div id="outline-container-orgb23e5d5" class="outline-4">
<h4 id="orgb23e5d5"><span class="section-number-4">2.2.3</span> Test</h4>
<div id="outline-container-org5728cb7" class="outline-4">
<h4 id="org5728cb7"><span class="section-number-4">2.2.3</span> Test</h4>
<div class="outline-text-4" id="text-2-2-3">
<div class="org-src-container">
<pre class="src src-c">/* <span style="color: #b22222;">Reference input data </span>*/
@ -927,8 +927,8 @@ rc = qmckl_get_nucleus_nn_distance(context, distance);
</div>
</div>
<div id="outline-container-org1c76083" class="outline-3">
<h3 id="org1c76083"><span class="section-number-3">2.3</span> Nuclear repulsion energy</h3>
<div id="outline-container-org15ceec0" class="outline-3">
<h3 id="org15ceec0"><span class="section-number-3">2.3</span> Nuclear repulsion energy</h3>
<div class="outline-text-3" id="text-2-3">
<p>
\[
@ -937,8 +937,8 @@ rc = qmckl_get_nucleus_nn_distance(context, distance);
</p>
</div>
<div id="outline-container-org50d351f" class="outline-4">
<h4 id="org50d351f"><span class="section-number-4">2.3.1</span> Get</h4>
<div id="outline-container-orgb5df7e0" class="outline-4">
<h4 id="orgb5df7e0"><span class="section-number-4">2.3.1</span> Get</h4>
<div class="outline-text-4" id="text-2-3-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_nucleus_repulsion</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">energy</span>);
@ -947,10 +947,10 @@ rc = qmckl_get_nucleus_nn_distance(context, distance);
</div>
</div>
<div id="outline-container-org494129a" class="outline-4">
<h4 id="org494129a"><span class="section-number-4">2.3.2</span> Compute</h4>
<div id="outline-container-org87aaf43" class="outline-4">
<h4 id="org87aaf43"><span class="section-number-4">2.3.2</span> Compute</h4>
<div class="outline-text-4" id="text-2-3-2">
<table id="org7b729aa" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org006ab1c" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1040,8 +1040,8 @@ rc = qmckl_get_nucleus_nn_distance(context, distance);
</div>
</div>
<div id="outline-container-org13ca316" class="outline-4">
<h4 id="org13ca316"><span class="section-number-4">2.3.3</span> Test</h4>
<div id="outline-container-org9f6ed3c" class="outline-4">
<h4 id="org9f6ed3c"><span class="section-number-4">2.3.3</span> Test</h4>
<div class="outline-text-4" id="text-2-3-3">
<div class="org-src-container">
<pre class="src src-c">/* <span style="color: #b22222;">Reference input data </span>*/
@ -1061,7 +1061,7 @@ rc = qmckl_get_nucleus_repulsion(context, &amp;rep);
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:45 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Numerical precision</title>
@ -333,16 +333,16 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org8e9f8c2">1. Control of the numerical precision</a></li>
<li><a href="#orgb2fcd42">2. Precision</a></li>
<li><a href="#orgb630ad5">3. Range</a></li>
<li><a href="#orgd1be36d">4. Helper functions</a></li>
<li><a href="#org6c32de1">1. Control of the numerical precision</a></li>
<li><a href="#orgeb78082">2. Precision</a></li>
<li><a href="#orgf888cbe">3. Range</a></li>
<li><a href="#org3a0037a">4. Helper functions</a></li>
</ul>
</div>
</div>
<div id="outline-container-org8e9f8c2" class="outline-2">
<h2 id="org8e9f8c2"><span class="section-number-2">1</span> Control of the numerical precision</h2>
<div id="outline-container-org6c32de1" class="outline-2">
<h2 id="org6c32de1"><span class="section-number-2">1</span> Control of the numerical precision</h2>
<div class="outline-text-2" id="text-1">
<p>
Controlling numerical precision enables optimizations. Here, the
@ -353,7 +353,7 @@ Arithmetic (IEEE 754),
refers to the number of exponent bits.
</p>
<table id="org1fcf94c" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgcf487de" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -397,8 +397,8 @@ integer. The update functions return <code>QMCKL_SUCCESS</code> or
</div>
</div>
<div id="outline-container-orgb2fcd42" class="outline-2">
<h2 id="orgb2fcd42"><span class="section-number-2">2</span> Precision</h2>
<div id="outline-container-orgeb78082" class="outline-2">
<h2 id="orgeb78082"><span class="section-number-2">2</span> Precision</h2>
<div class="outline-text-2" id="text-2">
<p>
<code>qmckl_context_set_numprec_precision</code> modifies the parameter for the
@ -485,8 +485,8 @@ numerical precision in the context.
</div>
</div>
<div id="outline-container-orgb630ad5" class="outline-2">
<h2 id="orgb630ad5"><span class="section-number-2">3</span> Range</h2>
<div id="outline-container-orgf888cbe" class="outline-2">
<h2 id="orgf888cbe"><span class="section-number-2">3</span> Range</h2>
<div class="outline-text-2" id="text-3">
<p>
<code>qmckl_set_numprec_range</code> modifies the parameter for the numerical
@ -561,8 +561,8 @@ range in a given context.
</div>
</div>
</div>
<div id="outline-container-orgd1be36d" class="outline-2">
<h2 id="orgd1be36d"><span class="section-number-2">4</span> Helper functions</h2>
<div id="outline-container-org3a0037a" class="outline-2">
<h2 id="org3a0037a"><span class="section-number-2">4</span> Helper functions</h2>
<div class="outline-text-2" id="text-4">
<p>
<code>qmckl_get_numprec_epsilon</code> returns \(\epsilon = 2^{1-n}\) where <code>n</code> is the precision.
@ -581,7 +581,7 @@ We need to remove the sign bit from the precision.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:45</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Sherman-Morrison-Woodbury</title>
@ -333,86 +333,86 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgfa09b27">1. Headers</a></li>
<li><a href="#org9287bd9">2. Naïve Sherman-Morrison</a>
<li><a href="#orga181045">1. Headers</a></li>
<li><a href="#orgb4f42df">2. Naïve Sherman-Morrison</a>
<ul>
<li><a href="#org8bd49cc">2.1. <code>qmckl_sherman_morrison</code></a>
<li><a href="#org3f62aa6">2.1. <code>qmckl_sherman_morrison</code></a>
<ul>
<li><a href="#org69da3ef">2.1.1. Requirements</a></li>
<li><a href="#orgcdfe961">2.1.2. C header</a></li>
<li><a href="#org4bab788">2.1.3. C source</a></li>
<li><a href="#orgee696da">2.1.4. Performance</a></li>
<li><a href="#org51abb51">2.1.1. Requirements</a></li>
<li><a href="#orgefecdbc">2.1.2. C header</a></li>
<li><a href="#org08759e2">2.1.3. C source</a></li>
<li><a href="#orgf14a7a5">2.1.4. Performance</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org50df140">3. Woodbury 2x2</a>
<li><a href="#org0e2f081">3. Woodbury 2x2</a>
<ul>
<li><a href="#org3786ada">3.1. <code>qmckl_woodbury_2</code></a>
<li><a href="#org44025e5">3.1. <code>qmckl_woodbury_2</code></a>
<ul>
<li><a href="#org2715973">3.1.1. Requirements</a></li>
<li><a href="#orgcc69ceb">3.1.2. C header</a></li>
<li><a href="#orga56efac">3.1.3. C source</a></li>
<li><a href="#orgf12ba85">3.1.4. Performance</a></li>
<li><a href="#org4e97d7a">3.1.1. Requirements</a></li>
<li><a href="#orgdd3e3e8">3.1.2. C header</a></li>
<li><a href="#org561593a">3.1.3. C source</a></li>
<li><a href="#org9876e63">3.1.4. Performance</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#orga673e60">4. Woodbury 3x3</a>
<li><a href="#orgfc72385">4. Woodbury 3x3</a>
<ul>
<li><a href="#org9c35af0">4.1. <code>qmckl_woodbury_3</code></a>
<li><a href="#org0d4ead9">4.1. <code>qmckl_woodbury_3</code></a>
<ul>
<li><a href="#org5c1a247">4.1.1. Requirements</a></li>
<li><a href="#org8029eff">4.1.2. C header</a></li>
<li><a href="#org5cdf1dc">4.1.3. C source</a></li>
<li><a href="#org67195c6">4.1.4. Performance&#x2026;</a></li>
<li><a href="#orgccabb89">4.1.1. Requirements</a></li>
<li><a href="#org67fc0b8">4.1.2. C header</a></li>
<li><a href="#org2f6c39b">4.1.3. C source</a></li>
<li><a href="#org0490b11">4.1.4. Performance&#x2026;</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org0e0d23f">5. Sherman-Morrison with update splitting</a>
<li><a href="#org8f0d33a">5. Sherman-Morrison with update splitting</a>
<ul>
<li><a href="#org2b7113d">5.1. <code>qmckl_sherman_morrison_splitting</code></a>
<li><a href="#org70fe147">5.1. <code>qmckl_sherman_morrison_splitting</code></a>
<ul>
<li><a href="#orge6fc57c">5.1.1. Requirements</a></li>
<li><a href="#org0ee11d1">5.1.2. C header</a></li>
<li><a href="#orga7b2c56">5.1.3. C source</a></li>
<li><a href="#orgc7ea345">5.1.4. Performance&#x2026;</a></li>
<li><a href="#orga99092b">5.1.1. Requirements</a></li>
<li><a href="#org879686a">5.1.2. C header</a></li>
<li><a href="#org384e482">5.1.3. C source</a></li>
<li><a href="#orgfad0438">5.1.4. Performance&#x2026;</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org565b219">6. Woodbury 3x3 and 2x2 with Sherman-Morrison and update splitting</a>
<li><a href="#org3412285">6. Woodbury 3x3 and 2x2 with Sherman-Morrison and update splitting</a>
<ul>
<li><a href="#org216d3a6">6.1. <code>qmckl_sherman_morrison_smw32s</code></a>
<li><a href="#org4fb2e41">6.1. <code>qmckl_sherman_morrison_smw32s</code></a>
<ul>
<li><a href="#org06f37c5">6.1.1. Requirements</a></li>
<li><a href="#orgec9a7c8">6.1.2. C header</a></li>
<li><a href="#org9fb8548">6.1.3. C source</a></li>
<li><a href="#orgd71f8a3">6.1.4. Performance&#x2026;</a></li>
<li><a href="#orga33719e">6.1.1. Requirements</a></li>
<li><a href="#org6fb20fc">6.1.2. C header</a></li>
<li><a href="#orgba7a8cf">6.1.3. C source</a></li>
<li><a href="#org7f9af93">6.1.4. Performance&#x2026;</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org8fc9358">7. Helper Functions</a>
<li><a href="#org8cac978">7. Helper Functions</a>
<ul>
<li><a href="#orgcc2c393">7.1. <code>qmckl_slagel_splitting</code></a>
<li><a href="#org1eeb1c6">7.1. <code>qmckl_slagel_splitting</code></a>
<ul>
<li><a href="#orgf128f52">7.1.1. Requirements</a></li>
<li><a href="#orgbed3cb2">7.1.2. C header</a></li>
<li><a href="#org31c8f1b">7.1.3. C source</a></li>
<li><a href="#org9a92024">7.1.4. Performance</a></li>
<li><a href="#org6012e9f">7.1.1. Requirements</a></li>
<li><a href="#org69e6130">7.1.2. C header</a></li>
<li><a href="#orgfa75f22">7.1.3. C source</a></li>
<li><a href="#org7f869ca">7.1.4. Performance</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#orgcc68c3e">8. End of files</a></li>
<li><a href="#org8c1490d">8. End of files</a></li>
</ul>
</div>
</div>
<div id="outline-container-orgfa09b27" class="outline-2">
<h2 id="orgfa09b27"><span class="section-number-2">1</span> Headers</h2>
<div id="outline-container-orga181045" class="outline-2">
<h2 id="orga181045"><span class="section-number-2">1</span> Headers</h2>
<div class="outline-text-2" id="text-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#include</span> <span style="color: #8b2252;">"qmckl.h"</span>
@ -431,12 +431,12 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org9287bd9" class="outline-2">
<h2 id="org9287bd9"><span class="section-number-2">2</span> Naïve Sherman-Morrison</h2>
<div id="outline-container-orgb4f42df" class="outline-2">
<h2 id="orgb4f42df"><span class="section-number-2">2</span> Naïve Sherman-Morrison</h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-org8bd49cc" class="outline-3">
<h3 id="org8bd49cc"><span class="section-number-3">2.1</span> <code>qmckl_sherman_morrison</code></h3>
<div id="outline-container-org3f62aa6" class="outline-3">
<h3 id="org3f62aa6"><span class="section-number-3">2.1</span> <code>qmckl_sherman_morrison</code></h3>
<div class="outline-text-3" id="text-2-1">
<p>
This is the simplest of the available Sherman-Morrison-Woodbury kernels. It applies rank-1 updates one by one in
@ -478,7 +478,7 @@ If the determinant of the Slater-matrix is passed, it will be updated to the det
from applying the updates to the original matrix.
</p>
<table id="org698683d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org6b48e6a" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -557,8 +557,8 @@ from applying the updates to the original matrix.
</table>
</div>
<div id="outline-container-org69da3ef" class="outline-4">
<h4 id="org69da3ef"><span class="section-number-4">2.1.1</span> Requirements</h4>
<div id="outline-container-org51abb51" class="outline-4">
<h4 id="org51abb51"><span class="section-number-4">2.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-2-1-1">
<ul class="org-ul">
<li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li>
@ -573,27 +573,27 @@ from applying the updates to the original matrix.
</div>
</div>
<div id="outline-container-orgcdfe961" class="outline-4">
<h4 id="orgcdfe961"><span class="section-number-4">2.1.2</span> C header</h4>
<div id="outline-container-orgefecdbc" class="outline-4">
<h4 id="orgefecdbc"><span class="section-number-4">2.1.2</span> C header</h4>
<div class="outline-text-4" id="text-2-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_sherman_morrison</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">LDS</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">Dim</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">N_updates</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">Updates</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span>* <span style="color: #a0522d;">Updates_index</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> <span style="color: #a0522d;">breakdown</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">Slater_inv</span>,
<span style="color: #228b22;">double</span>** <span style="color: #a0522d;">determinant</span> );
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">context</span> <span style="color: #a0522d;">qmckl_context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">LDS</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Dim</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">N_updates</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Updates</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Updates_index</span>* <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">breakdown</span> <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">Slater_inv</span>* <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">determinant</span>* <span style="color: #228b22;">double</span>* );
</pre>
</div>
</div>
</div>
<div id="outline-container-org4bab788" class="outline-4">
<h4 id="org4bab788"><span class="section-number-4">2.1.3</span> C source</h4>
<div id="outline-container-org08759e2" class="outline-4">
<h4 id="org08759e2"><span class="section-number-4">2.1.3</span> C source</h4>
<div class="outline-text-4" id="text-2-1-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#include</span> <span style="color: #8b2252;">&lt;stdbool.h&gt;</span>
@ -663,8 +663,8 @@ from applying the updates to the original matrix.
</div>
</div>
<div id="outline-container-orgee696da" class="outline-4">
<h4 id="orgee696da"><span class="section-number-4">2.1.4</span> Performance</h4>
<div id="outline-container-orgf14a7a5" class="outline-4">
<h4 id="orgf14a7a5"><span class="section-number-4">2.1.4</span> Performance</h4>
<div class="outline-text-4" id="text-2-1-4">
<p>
This function performs best when there is only 1 rank-1 update in the update cycle. It is not useful to
@ -676,12 +676,12 @@ where applying the update causes singular behaviour.
</div>
</div>
<div id="outline-container-org50df140" class="outline-2">
<h2 id="org50df140"><span class="section-number-2">3</span> Woodbury 2x2</h2>
<div id="outline-container-org0e2f081" class="outline-2">
<h2 id="org0e2f081"><span class="section-number-2">3</span> Woodbury 2x2</h2>
<div class="outline-text-2" id="text-3">
</div>
<div id="outline-container-org3786ada" class="outline-3">
<h3 id="org3786ada"><span class="section-number-3">3.1</span> <code>qmckl_woodbury_2</code></h3>
<div id="outline-container-org44025e5" class="outline-3">
<h3 id="org44025e5"><span class="section-number-3">3.1</span> <code>qmckl_woodbury_2</code></h3>
<div class="outline-text-3" id="text-3-1">
<p>
The Woodbury 2x2 kernel. It is used to apply two rank-1 updates at once. The formula used in
@ -705,7 +705,7 @@ from applying the updates to the original matrix.
<table id="orgc40e7bc" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org9ef1102" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -777,8 +777,8 @@ from applying the updates to the original matrix.
</table>
</div>
<div id="outline-container-org2715973" class="outline-4">
<h4 id="org2715973"><span class="section-number-4">3.1.1</span> Requirements</h4>
<div id="outline-container-org4e97d7a" class="outline-4">
<h4 id="org4e97d7a"><span class="section-number-4">3.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-3-1-1">
<ul class="org-ul">
<li><code>context</code> is not <code>qmckl_null_context</code></li>
@ -792,26 +792,26 @@ from applying the updates to the original matrix.
</div>
</div>
<div id="outline-container-orgcc69ceb" class="outline-4">
<h4 id="orgcc69ceb"><span class="section-number-4">3.1.2</span> C header</h4>
<div id="outline-container-orgdd3e3e8" class="outline-4">
<h4 id="orgdd3e3e8"><span class="section-number-4">3.1.2</span> C header</h4>
<div class="outline-text-4" id="text-3-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_woodbury_2</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">LDS</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">Dim</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">Updates</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span>* <span style="color: #a0522d;">Updates_index</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> <span style="color: #a0522d;">breakdown</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">Slater_inv</span>,
<span style="color: #228b22;">double</span>** <span style="color: #a0522d;">determinant</span> );
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">context</span> <span style="color: #a0522d;">qmckl_context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">LDS</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Dim</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Updates</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Updates_index</span>* <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">breakdown</span> <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">Slater_inv</span>* <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">determinant</span>* <span style="color: #228b22;">double</span>* );
</pre>
</div>
</div>
</div>
<div id="outline-container-orga56efac" class="outline-4">
<h4 id="orga56efac"><span class="section-number-4">3.1.3</span> C source</h4>
<div id="outline-container-org561593a" class="outline-4">
<h4 id="org561593a"><span class="section-number-4">3.1.3</span> C source</h4>
<div class="outline-text-4" id="text-3-1-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#include</span> <span style="color: #8b2252;">&lt;stdbool.h&gt;</span>
@ -898,8 +898,8 @@ from applying the updates to the original matrix.
</div>
</div>
<div id="outline-container-orgf12ba85" class="outline-4">
<h4 id="orgf12ba85"><span class="section-number-4">3.1.4</span> Performance</h4>
<div id="outline-container-org9876e63" class="outline-4">
<h4 id="org9876e63"><span class="section-number-4">3.1.4</span> Performance</h4>
<div class="outline-text-4" id="text-3-1-4">
<p>
This function is most efficient when used in cases where there are only 2 rank-1 updates and
@ -910,12 +910,12 @@ it is sure they will not result in a singular matrix.
</div>
</div>
<div id="outline-container-orga673e60" class="outline-2">
<h2 id="orga673e60"><span class="section-number-2">4</span> Woodbury 3x3</h2>
<div id="outline-container-orgfc72385" class="outline-2">
<h2 id="orgfc72385"><span class="section-number-2">4</span> Woodbury 3x3</h2>
<div class="outline-text-2" id="text-4">
</div>
<div id="outline-container-org9c35af0" class="outline-3">
<h3 id="org9c35af0"><span class="section-number-3">4.1</span> <code>qmckl_woodbury_3</code></h3>
<div id="outline-container-org0d4ead9" class="outline-3">
<h3 id="org0d4ead9"><span class="section-number-3">4.1</span> <code>qmckl_woodbury_3</code></h3>
<div class="outline-text-3" id="text-4-1">
<p>
The 3x3 version of the Woodbury 2x2 kernel. It is used to apply three
@ -936,7 +936,7 @@ from applying the updates to the original matrix.
<table id="org8d72f64" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org8073ebe" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1008,8 +1008,8 @@ from applying the updates to the original matrix.
</table>
</div>
<div id="outline-container-org5c1a247" class="outline-4">
<h4 id="org5c1a247"><span class="section-number-4">4.1.1</span> Requirements</h4>
<div id="outline-container-orgccabb89" class="outline-4">
<h4 id="orgccabb89"><span class="section-number-4">4.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-4-1-1">
<ul class="org-ul">
<li><code>context</code> is not <code>qmckl_null_context</code></li>
@ -1023,26 +1023,26 @@ from applying the updates to the original matrix.
</div>
</div>
<div id="outline-container-org8029eff" class="outline-4">
<h4 id="org8029eff"><span class="section-number-4">4.1.2</span> C header</h4>
<div id="outline-container-org67fc0b8" class="outline-4">
<h4 id="org67fc0b8"><span class="section-number-4">4.1.2</span> C header</h4>
<div class="outline-text-4" id="text-4-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_woodbury_3</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">LDS</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">Dim</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">Updates</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span>* <span style="color: #a0522d;">Updates_index</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> <span style="color: #a0522d;">breakdown</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">Slater_inv</span>,
<span style="color: #228b22;">double</span>** <span style="color: #a0522d;">determinant</span> );
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">context</span> <span style="color: #a0522d;">qmckl_context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">LDS</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Dim</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Updates</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Updates_index</span>* <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">breakdown</span> <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">Slater_inv</span>* <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">determinant</span>* <span style="color: #228b22;">double</span>* );
</pre>
</div>
</div>
</div>
<div id="outline-container-org5cdf1dc" class="outline-4">
<h4 id="org5cdf1dc"><span class="section-number-4">4.1.3</span> C source</h4>
<div id="outline-container-org2f6c39b" class="outline-4">
<h4 id="org2f6c39b"><span class="section-number-4">4.1.3</span> C source</h4>
<div class="outline-text-4" id="text-4-1-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#include</span> <span style="color: #8b2252;">&lt;stdbool.h&gt;</span>
@ -1144,8 +1144,8 @@ from applying the updates to the original matrix.
</div>
</div>
<div id="outline-container-org67195c6" class="outline-4">
<h4 id="org67195c6"><span class="section-number-4">4.1.4</span> Performance&#x2026;</h4>
<div id="outline-container-org0490b11" class="outline-4">
<h4 id="org0490b11"><span class="section-number-4">4.1.4</span> Performance&#x2026;</h4>
<div class="outline-text-4" id="text-4-1-4">
<p>
This function is most efficient when used in cases where there are only 3 rank-1 updates and
@ -1156,12 +1156,12 @@ it is sure they will not result in a singular matrix.
</div>
</div>
<div id="outline-container-org0e0d23f" class="outline-2">
<h2 id="org0e0d23f"><span class="section-number-2">5</span> Sherman-Morrison with update splitting</h2>
<div id="outline-container-org8f0d33a" class="outline-2">
<h2 id="org8f0d33a"><span class="section-number-2">5</span> Sherman-Morrison with update splitting</h2>
<div class="outline-text-2" id="text-5">
</div>
<div id="outline-container-org2b7113d" class="outline-3">
<h3 id="org2b7113d"><span class="section-number-3">5.1</span> <code>qmckl_sherman_morrison_splitting</code></h3>
<div id="outline-container-org70fe147" class="outline-3">
<h3 id="org70fe147"><span class="section-number-3">5.1</span> <code>qmckl_sherman_morrison_splitting</code></h3>
<div class="outline-text-3" id="text-5-1">
<p>
This is a variation on the 'Naive' Sherman-Morrison kernel. Whenever the denominator \(1+v_j^T S^{-1} u_j\) in
@ -1183,7 +1183,7 @@ If the determinant of the Slater-matrix is passed, it will be updated to the det
from applying the updates to the original matrix.
</p>
<table id="org5341071" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org6250255" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1267,8 +1267,8 @@ from applying the updates to the original matrix.
</div>
<div id="outline-container-orge6fc57c" class="outline-4">
<h4 id="orge6fc57c"><span class="section-number-4">5.1.1</span> Requirements</h4>
<div id="outline-container-orga99092b" class="outline-4">
<h4 id="orga99092b"><span class="section-number-4">5.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-5-1-1">
<ul class="org-ul">
<li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li>
@ -1283,27 +1283,27 @@ from applying the updates to the original matrix.
</div>
</div>
<div id="outline-container-org0ee11d1" class="outline-4">
<h4 id="org0ee11d1"><span class="section-number-4">5.1.2</span> C header</h4>
<div id="outline-container-org879686a" class="outline-4">
<h4 id="org879686a"><span class="section-number-4">5.1.2</span> C header</h4>
<div class="outline-text-4" id="text-5-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_sherman_morrison_splitting</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">LDS</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">Dim</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">N_updates</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">Updates</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span>* <span style="color: #a0522d;">Updates_index</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> <span style="color: #a0522d;">breakdown</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">Slater_inv</span>,
<span style="color: #228b22;">double</span>** <span style="color: #a0522d;">determinant</span> );
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">context</span> <span style="color: #a0522d;">qmckl_context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">LDS</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Dim</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">N_updates</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Updates</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Updates_index</span>* <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">breakdown</span> <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">Slater_inv</span>* <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">determinant</span>* <span style="color: #228b22;">double</span>* );
</pre>
</div>
</div>
</div>
<div id="outline-container-orga7b2c56" class="outline-4">
<h4 id="orga7b2c56"><span class="section-number-4">5.1.3</span> C source</h4>
<div id="outline-container-org384e482" class="outline-4">
<h4 id="org384e482"><span class="section-number-4">5.1.3</span> C source</h4>
<div class="outline-text-4" id="text-5-1-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#include</span> <span style="color: #8b2252;">&lt;stdbool.h&gt;</span>
@ -1343,8 +1343,8 @@ from applying the updates to the original matrix.
</div>
</div>
<div id="outline-container-orgc7ea345" class="outline-4">
<h4 id="orgc7ea345"><span class="section-number-4">5.1.4</span> Performance&#x2026;</h4>
<div id="outline-container-orgfad0438" class="outline-4">
<h4 id="orgfad0438"><span class="section-number-4">5.1.4</span> Performance&#x2026;</h4>
<div class="outline-text-4" id="text-5-1-4">
<p>
This kernel performs best when there are 2 or more rank-1 update cycles and fail-rate is high.
@ -1354,12 +1354,12 @@ This kernel performs best when there are 2 or more rank-1 update cycles and fail
</div>
</div>
<div id="outline-container-org565b219" class="outline-2">
<h2 id="org565b219"><span class="section-number-2">6</span> Woodbury 3x3 and 2x2 with Sherman-Morrison and update splitting</h2>
<div id="outline-container-org3412285" class="outline-2">
<h2 id="org3412285"><span class="section-number-2">6</span> Woodbury 3x3 and 2x2 with Sherman-Morrison and update splitting</h2>
<div class="outline-text-2" id="text-6">
</div>
<div id="outline-container-org216d3a6" class="outline-3">
<h3 id="org216d3a6"><span class="section-number-3">6.1</span> <code>qmckl_sherman_morrison_smw32s</code></h3>
<div id="outline-container-org4fb2e41" class="outline-3">
<h3 id="org4fb2e41"><span class="section-number-3">6.1</span> <code>qmckl_sherman_morrison_smw32s</code></h3>
<div class="outline-text-3" id="text-6-1">
<p>
The Woodbury 3x3 and 2x2 kernel with Sherman-Morrison and update splitting combines the low-level Woodbury 3x3 kernel,
@ -1374,7 +1374,7 @@ If the determinant of the Slater-matrix is passed, it will be updated to the det
from applying the updates to the original matrix.
</p>
<table id="org296634c" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgd02003d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1454,8 +1454,8 @@ from applying the updates to the original matrix.
</div>
<div id="outline-container-org06f37c5" class="outline-4">
<h4 id="org06f37c5"><span class="section-number-4">6.1.1</span> Requirements</h4>
<div id="outline-container-orga33719e" class="outline-4">
<h4 id="orga33719e"><span class="section-number-4">6.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-6-1-1">
<ul class="org-ul">
<li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li>
@ -1470,27 +1470,27 @@ from applying the updates to the original matrix.
</div>
</div>
<div id="outline-container-orgec9a7c8" class="outline-4">
<h4 id="orgec9a7c8"><span class="section-number-4">6.1.2</span> C header</h4>
<div id="outline-container-org6fb20fc" class="outline-4">
<h4 id="org6fb20fc"><span class="section-number-4">6.1.2</span> C header</h4>
<div class="outline-text-4" id="text-6-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_sherman_morrison_smw32s</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">LDS</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">Dim</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">N_updates</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">Updates</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span>* <span style="color: #a0522d;">Updates_index</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> <span style="color: #a0522d;">breakdown</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">Slater_inv</span>,
<span style="color: #228b22;">double</span>** <span style="color: #a0522d;">determinant</span> );
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">context</span> <span style="color: #a0522d;">qmckl_context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">LDS</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Dim</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">N_updates</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Updates</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Updates_index</span>* <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">breakdown</span> <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">Slater_inv</span>* <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">determinant</span>* <span style="color: #228b22;">double</span>* );
</pre>
</div>
</div>
</div>
<div id="outline-container-org9fb8548" class="outline-4">
<h4 id="org9fb8548"><span class="section-number-4">6.1.3</span> C source</h4>
<div id="outline-container-orgba7a8cf" class="outline-4">
<h4 id="orgba7a8cf"><span class="section-number-4">6.1.3</span> C source</h4>
<div class="outline-text-4" id="text-6-1-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#include</span> <span style="color: #8b2252;">&lt;stdbool.h&gt;</span>
@ -1568,8 +1568,8 @@ from applying the updates to the original matrix.
</div>
</div>
<div id="outline-container-orgd71f8a3" class="outline-4">
<h4 id="orgd71f8a3"><span class="section-number-4">6.1.4</span> Performance&#x2026;</h4>
<div id="outline-container-org7f9af93" class="outline-4">
<h4 id="org7f9af93"><span class="section-number-4">6.1.4</span> Performance&#x2026;</h4>
<div class="outline-text-4" id="text-6-1-4">
<p>
This kernel performs best for update cycles with 2 or more rank-1 updates and the fail-rate is low.
@ -1579,8 +1579,8 @@ This kernel performs best for update cycles with 2 or more rank-1 updates and th
</div>
</div>
<div id="outline-container-org8fc9358" class="outline-2">
<h2 id="org8fc9358"><span class="section-number-2">7</span> Helper Functions</h2>
<div id="outline-container-org8cac978" class="outline-2">
<h2 id="org8cac978"><span class="section-number-2">7</span> Helper Functions</h2>
<div class="outline-text-2" id="text-7">
<p>
Private helper-functions that are used by the Sherman-Morrison-Woodbury kernels.
@ -1588,8 +1588,8 @@ These functions can only be used internally by the kernels in this module.
</p>
</div>
<div id="outline-container-orgcc2c393" class="outline-3">
<h3 id="orgcc2c393"><span class="section-number-3">7.1</span> <code>qmckl_slagel_splitting</code></h3>
<div id="outline-container-org1eeb1c6" class="outline-3">
<h3 id="org1eeb1c6"><span class="section-number-3">7.1</span> <code>qmckl_slagel_splitting</code></h3>
<div class="outline-text-3" id="text-7-1">
<p>
<code>qmckl_slagel_splitting</code> is the non-recursive, inner part of the 'Sherman-Morrison with update splitting'-kernel.
@ -1609,7 +1609,7 @@ If the determinant of the Slater-matrix is passed, it will be updated to the det
from applying the updates to the original matrix.
</p>
<table id="orgb744b88" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org1525e79" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1703,8 +1703,8 @@ from applying the updates to the original matrix.
</div>
<div id="outline-container-orgf128f52" class="outline-4">
<h4 id="orgf128f52"><span class="section-number-4">7.1.1</span> Requirements</h4>
<div id="outline-container-org6012e9f" class="outline-4">
<h4 id="org6012e9f"><span class="section-number-4">7.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-7-1-1">
<ul class="org-ul">
<li><code>LDS &gt;= 2</code></li>
@ -1721,29 +1721,29 @@ from applying the updates to the original matrix.
</div>
</div>
<div id="outline-container-orgbed3cb2" class="outline-4">
<h4 id="orgbed3cb2"><span class="section-number-4">7.1.2</span> C header</h4>
<div id="outline-container-org69e6130" class="outline-4">
<h4 id="org69e6130"><span class="section-number-4">7.1.2</span> C header</h4>
<div class="outline-text-4" id="text-7-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">double</span> <span style="color: #0000ff;">qmckl_slagel_splitting</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">LDS</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">Dim</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">N_updates</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">Updates</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">uint64_t</span>* <span style="color: #a0522d;">Updates_index</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span> <span style="color: #a0522d;">breakdown</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">Slater_inv</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">later_updates</span>,
<span style="color: #228b22;">uint64_t</span>* <span style="color: #a0522d;">later_index</span>,
<span style="color: #228b22;">uint64_t</span>* <span style="color: #a0522d;">later</span>,
<span style="color: #228b22;">double</span>** <span style="color: #a0522d;">determinant</span> );
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">LDS</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Dim</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">N_updates</span> <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Updates</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">Updates_index</span>* <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">breakdown</span> <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">Slater_inv</span>* <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">later_updates</span>* <span style="color: #228b22;">double</span>,
<span style="color: #228b22;">later_index</span>* <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #228b22;">later</span>* <span style="color: #a0522d;">uint64_t</span>,
<span style="color: #228b22;">determinant</span>* <span style="color: #228b22;">double</span>* );
</pre>
</div>
</div>
</div>
<div id="outline-container-org31c8f1b" class="outline-4">
<h4 id="org31c8f1b"><span class="section-number-4">7.1.3</span> C source</h4>
<div id="outline-container-orgfa75f22" class="outline-4">
<h4 id="orgfa75f22"><span class="section-number-4">7.1.3</span> C source</h4>
<div class="outline-text-4" id="text-7-1-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#include</span> <span style="color: #8b2252;">&lt;stdbool.h&gt;</span>
@ -1821,8 +1821,8 @@ from applying the updates to the original matrix.
</div>
</div>
<div id="outline-container-org9a92024" class="outline-4">
<h4 id="org9a92024"><span class="section-number-4">7.1.4</span> Performance</h4>
<div id="outline-container-org7f869ca" class="outline-4">
<h4 id="org7f869ca"><span class="section-number-4">7.1.4</span> Performance</h4>
<div class="outline-text-4" id="text-7-1-4">
<p>
This function cannot be used by itself and is used in Sherman-Morrison with update splitting and Woodbury 3x3 and 2x2
@ -1833,8 +1833,8 @@ with Sherman-Morrison and update splitting. Please look at the performance recco
</div>
</div>
<div id="outline-container-orgcc68c3e" class="outline-2">
<h2 id="orgcc68c3e"><span class="section-number-2">8</span> End of files</h2>
<div id="outline-container-org8c1490d" class="outline-2">
<h2 id="org8c1490d"><span class="section-number-2">8</span> End of files</h2>
<div class="outline-text-2" id="text-8">
<div class="org-src-container">
<pre class="src src-c"> <span style="color: #0000ff;">assert</span> (<span style="color: #228b22;">qmckl_context_destroy</span>(<span style="color: #a0522d;">context</span>) == QMCKL_SUCCESS);
@ -1848,7 +1848,7 @@ with Sherman-Morrison and update splitting. Please look at the performance recco
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:45 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Data for Tests</title>
@ -233,27 +233,27 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org5cb752f">1. CHBrClF</a>
<li><a href="#org2987257">1. CHBrClF</a>
<ul>
<li><a href="#org73de545">1.1. XYZ coordinates</a></li>
<li><a href="#orgb3a3319">1.2. Atomic basis set</a></li>
<li><a href="#org07eab8a">1.3. Molecular orbitals</a></li>
<li><a href="#orga4d4615">1.4. Electron coordinates</a></li>
<li><a href="#org3fc2a5e">1.1. XYZ coordinates</a></li>
<li><a href="#orge1993fc">1.2. Atomic basis set</a></li>
<li><a href="#orgdde18c7">1.3. Molecular orbitals</a></li>
<li><a href="#orgd290e25">1.4. Electron coordinates</a></li>
</ul>
</li>
<li><a href="#orgab39953">2. N2</a>
<li><a href="#orga3484ac">2. N2</a>
<ul>
<li><a href="#org77f90a2">2.1. XYZ coordinates</a></li>
<li><a href="#org23cbb34">2.2. Electron coordinates</a></li>
<li><a href="#org6f46773">2.3. Jastrow related data</a></li>
<li><a href="#orgbb7dc36">2.1. XYZ coordinates</a></li>
<li><a href="#org433fb74">2.2. Electron coordinates</a></li>
<li><a href="#org879104a">2.3. Jastrow related data</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org5cb752f" class="outline-2">
<h2 id="org5cb752f"><span class="section-number-2">1</span> CHBrClF</h2>
<div id="outline-container-org2987257" class="outline-2">
<h2 id="org2987257"><span class="section-number-2">1</span> CHBrClF</h2>
<div class="outline-text-2" id="text-1">
<p>
This test is the all-electron Hartree-Fock wave function of CHClBr,
@ -337,8 +337,8 @@ and with a high maximum angular momentum.
</div>
<div id="outline-container-org73de545" class="outline-3">
<h3 id="org73de545"><span class="section-number-3">1.1</span> XYZ coordinates</h3>
<div id="outline-container-org3fc2a5e" class="outline-3">
<h3 id="org3fc2a5e"><span class="section-number-3">1.1</span> XYZ coordinates</h3>
<div class="outline-text-3" id="text-1-1">
<pre class="example">
5
@ -368,8 +368,8 @@ Nuclear coordinates are stored in atomic units in transposed format.
</div>
</div>
<div id="outline-container-orgb3a3319" class="outline-3">
<h3 id="orgb3a3319"><span class="section-number-3">1.2</span> Atomic basis set</h3>
<div id="outline-container-orge1993fc" class="outline-3">
<h3 id="orge1993fc"><span class="section-number-3">1.2</span> Atomic basis set</h3>
<div class="outline-text-3" id="text-1-2">
<pre class="example">
HYDROGEN
@ -1288,8 +1288,8 @@ F 1
</div>
</div>
<div id="outline-container-org07eab8a" class="outline-3">
<h3 id="org07eab8a"><span class="section-number-3">1.3</span> Molecular orbitals</h3>
<div id="outline-container-orgdde18c7" class="outline-3">
<h3 id="orgdde18c7"><span class="section-number-3">1.3</span> Molecular orbitals</h3>
<div class="outline-text-3" id="text-1-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#define</span> <span style="color: #a0522d;">chbrclf_mo_num</span> ((<span style="color: #228b22;">int64_t</span>) 224)
@ -60213,8 +60213,8 @@ F 1
</div>
</div>
<div id="outline-container-orga4d4615" class="outline-3">
<h3 id="orga4d4615"><span class="section-number-3">1.4</span> Electron coordinates</h3>
<div id="outline-container-orgd290e25" class="outline-3">
<h3 id="orgd290e25"><span class="section-number-3">1.4</span> Electron coordinates</h3>
<div class="outline-text-3" id="text-1-4">
<p>
Electron coordinates are stored in atomic units in normal format.
@ -60373,8 +60373,8 @@ Electron coordinates are stored in atomic units in normal format.
</div>
</div>
<div id="outline-container-orgab39953" class="outline-2">
<h2 id="orgab39953"><span class="section-number-2">2</span> N2</h2>
<div id="outline-container-orga3484ac" class="outline-2">
<h2 id="orga3484ac"><span class="section-number-2">2</span> N2</h2>
<div class="outline-text-2" id="text-2">
<p>
This test is mainly for the Jastrow factor and was supplied by
@ -60415,8 +60415,8 @@ treated by pseudopotentials thus excluded from the actual calculation.
</table>
</div>
<div id="outline-container-org77f90a2" class="outline-3">
<h3 id="org77f90a2"><span class="section-number-3">2.1</span> XYZ coordinates</h3>
<div id="outline-container-orgbb7dc36" class="outline-3">
<h3 id="orgbb7dc36"><span class="section-number-3">2.1</span> XYZ coordinates</h3>
<div class="outline-text-3" id="text-2-1">
<pre class="example">
2
@ -60443,8 +60443,8 @@ Nuclear coordinates are stored in atomic units in transposed format.
</div>
</div>
<div id="outline-container-org23cbb34" class="outline-3">
<h3 id="org23cbb34"><span class="section-number-3">2.2</span> Electron coordinates</h3>
<div id="outline-container-org433fb74" class="outline-3">
<h3 id="org433fb74"><span class="section-number-3">2.2</span> Electron coordinates</h3>
<div class="outline-text-3" id="text-2-2">
<p>
Electron coordinates are stored in atomic units in normal format.
@ -60473,8 +60473,8 @@ Electron coordinates are stored in atomic units in normal format.
</div>
</div>
<div id="outline-container-org6f46773" class="outline-3">
<h3 id="org6f46773"><span class="section-number-3">2.3</span> Jastrow related data</h3>
<div id="outline-container-org879104a" class="outline-3">
<h3 id="org879104a"><span class="section-number-3">2.3</span> Jastrow related data</h3>
<div class="outline-text-3" id="text-2-3">
<p>
This test is mainly for the Jastrow factor and was supplied by
@ -60573,7 +60573,7 @@ Ramon Panades Baruetta.
</div>
</div>
<div id="postamble" class="status">
<p class="date">Created: 2021-12-14 Tue 09:45</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>TREXIO I/O library</title>
@ -311,53 +311,53 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org4aaadf8">1. Local functions</a>
<li><a href="#org964dc2f">1. Local functions</a>
<ul>
<li><a href="#org9a4ae33">1.1. Open file</a></li>
<li><a href="#orgf790ffe">1.2. Electron</a></li>
<li><a href="#orgb688e8a">1.3. Nucleus</a>
<li><a href="#org31a8618">1.1. Open file</a></li>
<li><a href="#orgfd5053e">1.2. Electron</a></li>
<li><a href="#org5e43c3a">1.3. Nucleus</a>
<ul>
<li><a href="#org942b490">1.3.1. Number of nuclei</a></li>
<li><a href="#orgd551653">1.3.2. Nuclear charges</a></li>
<li><a href="#org65271c2">1.3.3. Nuclear coordinates</a></li>
<li><a href="#orgd225b0f">1.3.1. Number of nuclei</a></li>
<li><a href="#org0dacf28">1.3.2. Nuclear charges</a></li>
<li><a href="#org03a3912">1.3.3. Nuclear coordinates</a></li>
</ul>
</li>
<li><a href="#orgf01c76a">1.4. Basis set and AOs</a>
<li><a href="#org6372cbb">1.4. Basis set and AOs</a>
<ul>
<li><a href="#org63249c9">1.4.1. Basis set type</a></li>
<li><a href="#orgdd7c715">1.4.2. Number of shells</a></li>
<li><a href="#orgbff797a">1.4.3. Number of primitives</a></li>
<li><a href="#org1e9b530">1.4.4. Number of atomic orbitals</a></li>
<li><a href="#orgcd327fa">1.4.5. Nucleus<sub>index</sub> array</a></li>
<li><a href="#org9ff636e">1.4.6. Number of shells per nucleus</a></li>
<li><a href="#org71c5dcf">1.4.7. Angular momentum</a></li>
<li><a href="#orgf71991e">1.4.8. Number of primitives per shell</a></li>
<li><a href="#org6f51ae5">1.4.9. Indices of the primitives</a></li>
<li><a href="#orgb0cc40a">1.4.10. Normalization of the shells</a></li>
<li><a href="#org8dbd0f8">1.4.11. Exponents</a></li>
<li><a href="#org170db9e">1.4.12. Coefficients</a></li>
<li><a href="#org713efe9">1.4.13. Normalization of the primitivies</a></li>
<li><a href="#orgc8eeaa3">1.4.14. AO Normalization</a></li>
<li><a href="#org5858fd0">1.4.1. Basis set type</a></li>
<li><a href="#org83180d4">1.4.2. Number of shells</a></li>
<li><a href="#org9e42bed">1.4.3. Number of primitives</a></li>
<li><a href="#org24b917c">1.4.4. Number of atomic orbitals</a></li>
<li><a href="#orga6afc4f">1.4.5. Nucleus<sub>index</sub> array</a></li>
<li><a href="#orgabace4e">1.4.6. Number of shells per nucleus</a></li>
<li><a href="#org1c54b7f">1.4.7. Angular momentum</a></li>
<li><a href="#orgb9b6021">1.4.8. Number of primitives per shell</a></li>
<li><a href="#org6da4189">1.4.9. Indices of the primitives</a></li>
<li><a href="#orgb8c3c28">1.4.10. Normalization of the shells</a></li>
<li><a href="#org995e8e1">1.4.11. Exponents</a></li>
<li><a href="#org847c59e">1.4.12. Coefficients</a></li>
<li><a href="#org796be8c">1.4.13. Normalization of the primitivies</a></li>
<li><a href="#org785e890">1.4.14. AO Normalization</a></li>
</ul>
</li>
<li><a href="#org8f8337d">1.5. Molecular orbitals</a>
<li><a href="#org94c1c99">1.5. Molecular orbitals</a>
<ul>
<li><a href="#org04327ad">1.5.1. Number of MOs</a></li>
<li><a href="#orge4b8ab9">1.5.2. MO coefficients</a></li>
<li><a href="#org9f9c3f7">1.5.1. Number of MOs</a></li>
<li><a href="#orgf2f4fc7">1.5.2. MO coefficients</a></li>
</ul>
</li>
<li><a href="#org1263bd9">1.6. <span class="todo TODO">TODO</span> ECP</a></li>
<li><a href="#org6632a46">1.6. <span class="todo TODO">TODO</span> ECP</a></li>
</ul>
</li>
<li><a href="#orga592f90">2. Read everything</a></li>
<li><a href="#orgbf7b8d8">3. Test</a>
<li><a href="#orgf5efd12">2. Read everything</a></li>
<li><a href="#orgdbf9679">3. Test</a>
<ul>
<li>
<ul>
<li><a href="#orge0e9e5f">3.0.1. Electrons</a></li>
<li><a href="#orgf19cd20">3.0.2. Nuclei</a></li>
<li><a href="#org1e25626">3.0.3. Atomic basis</a></li>
<li><a href="#orge9544ed">3.0.4. MO Basis</a></li>
<li><a href="#orgea2c1f5">3.0.1. Electrons</a></li>
<li><a href="#orgfedb9b5">3.0.2. Nuclei</a></li>
<li><a href="#org3a604fd">3.0.3. Atomic basis</a></li>
<li><a href="#orgc28cd9b">3.0.4. MO Basis</a></li>
</ul>
</li>
</ul>
@ -366,8 +366,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org4aaadf8" class="outline-2">
<h2 id="org4aaadf8"><span class="section-number-2">1</span> Local functions</h2>
<div id="outline-container-org964dc2f" class="outline-2">
<h2 id="org964dc2f"><span class="section-number-2">1</span> Local functions</h2>
<div class="outline-text-2" id="text-1">
<p>
Functions defined in this section are all local: they should not be
@ -390,8 +390,8 @@ In the functions defined in this section, we use as local variables
</ul>
</div>
<div id="outline-container-org9a4ae33" class="outline-3">
<h3 id="org9a4ae33"><span class="section-number-3">1.1</span> Open file</h3>
<div id="outline-container-org31a8618" class="outline-3">
<h3 id="org31a8618"><span class="section-number-3">1.1</span> Open file</h3>
<div class="outline-text-3" id="text-1-1">
<p>
We first define a helper function to open a file by first trying to
@ -423,8 +423,8 @@ groups of data by passing the <code>trexio_t</code> handle.
</div>
</div>
<div id="outline-container-orgf790ffe" class="outline-3">
<h3 id="orgf790ffe"><span class="section-number-3">1.2</span> Electron</h3>
<div id="outline-container-orgfd5053e" class="outline-3">
<h3 id="orgfd5053e"><span class="section-number-3">1.2</span> Electron</h3>
<div class="outline-text-3" id="text-1-2">
<p>
In this section we read all the data into the electron data structure.
@ -475,8 +475,8 @@ We read the number of up-spin and down-spin electrons.
</div>
</div>
<div id="outline-container-orgb688e8a" class="outline-3">
<h3 id="orgb688e8a"><span class="section-number-3">1.3</span> Nucleus</h3>
<div id="outline-container-org5e43c3a" class="outline-3">
<h3 id="org5e43c3a"><span class="section-number-3">1.3</span> Nucleus</h3>
<div class="outline-text-3" id="text-1-3">
<p>
In this section we read the number of nuclei, the molecular geometry and nuclear charges.
@ -496,8 +496,8 @@ In this section we read the number of nuclei, the molecular geometry and nuclear
</div>
</div>
<div id="outline-container-org942b490" class="outline-4">
<h4 id="org942b490"><span class="section-number-4">1.3.1</span> Number of nuclei</h4>
<div id="outline-container-orgd225b0f" class="outline-4">
<h4 id="orgd225b0f"><span class="section-number-4">1.3.1</span> Number of nuclei</h4>
<div class="outline-text-4" id="text-1-3-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">nucleus_num</span> = 0L;
@ -520,8 +520,8 @@ rc = qmckl_set_nucleus_num(context, nucleus_num);
</div>
</div>
<div id="outline-container-orgd551653" class="outline-4">
<h4 id="orgd551653"><span class="section-number-4">1.3.2</span> Nuclear charges</h4>
<div id="outline-container-org0dacf28" class="outline-4">
<h4 id="org0dacf28"><span class="section-number-4">1.3.2</span> Nuclear charges</h4>
<div class="outline-text-4" id="text-1-3-2">
<div class="org-src-container">
<pre class="src src-c">{
@ -561,8 +561,8 @@ rc = qmckl_set_nucleus_num(context, nucleus_num);
</div>
</div>
<div id="outline-container-org65271c2" class="outline-4">
<h4 id="org65271c2"><span class="section-number-4">1.3.3</span> Nuclear coordinates</h4>
<div id="outline-container-org03a3912" class="outline-4">
<h4 id="org03a3912"><span class="section-number-4">1.3.3</span> Nuclear coordinates</h4>
<div class="outline-text-4" id="text-1-3-3">
<p>
Now, we read the molecular geometry. It is stored in normal format
@ -617,8 +617,8 @@ in the TREXIO file (<code>'N'</code>), so it will be automatically transposed in
</div>
</div>
<div id="outline-container-orgf01c76a" class="outline-3">
<h3 id="orgf01c76a"><span class="section-number-3">1.4</span> Basis set and AOs</h3>
<div id="outline-container-org6372cbb" class="outline-3">
<h3 id="org6372cbb"><span class="section-number-3">1.4</span> Basis set and AOs</h3>
<div class="outline-text-3" id="text-1-4">
<p>
In this section we read the atomic basis set and atomic orbitals.
@ -644,8 +644,8 @@ In this section we read the atomic basis set and atomic orbitals.
</div>
</div>
<div id="outline-container-org63249c9" class="outline-4">
<h4 id="org63249c9"><span class="section-number-4">1.4.1</span> Basis set type</h4>
<div id="outline-container-org5858fd0" class="outline-4">
<h4 id="org5858fd0"><span class="section-number-4">1.4.1</span> Basis set type</h4>
<div class="outline-text-4" id="text-1-4-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#define</span> <span style="color: #a0522d;">MAX_STR_LEN</span> 1024
@ -676,8 +676,8 @@ In this section we read the atomic basis set and atomic orbitals.
</div>
</div>
<div id="outline-container-orgdd7c715" class="outline-4">
<h4 id="orgdd7c715"><span class="section-number-4">1.4.2</span> Number of shells</h4>
<div id="outline-container-org83180d4" class="outline-4">
<h4 id="org83180d4"><span class="section-number-4">1.4.2</span> Number of shells</h4>
<div class="outline-text-4" id="text-1-4-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">shell_num</span> = 0L;
@ -701,8 +701,8 @@ rc = qmckl_set_ao_basis_shell_num(context, shell_num);
</div>
</div>
<div id="outline-container-orgbff797a" class="outline-4">
<h4 id="orgbff797a"><span class="section-number-4">1.4.3</span> Number of primitives</h4>
<div id="outline-container-org9e42bed" class="outline-4">
<h4 id="org9e42bed"><span class="section-number-4">1.4.3</span> Number of primitives</h4>
<div class="outline-text-4" id="text-1-4-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">prim_num</span> = 0L;
@ -726,8 +726,8 @@ rc = qmckl_set_ao_basis_prim_num(context, prim_num);
</div>
</div>
<div id="outline-container-org1e9b530" class="outline-4">
<h4 id="org1e9b530"><span class="section-number-4">1.4.4</span> Number of atomic orbitals</h4>
<div id="outline-container-org24b917c" class="outline-4">
<h4 id="org24b917c"><span class="section-number-4">1.4.4</span> Number of atomic orbitals</h4>
<div class="outline-text-4" id="text-1-4-4">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">ao_num</span> = 0LL;
@ -751,8 +751,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
</div>
</div>
<div id="outline-container-orgcd327fa" class="outline-4">
<h4 id="orgcd327fa"><span class="section-number-4">1.4.5</span> Nucleus<sub>index</sub> array</h4>
<div id="outline-container-orga6afc4f" class="outline-4">
<h4 id="orga6afc4f"><span class="section-number-4">1.4.5</span> Nucleus<sub>index</sub> array</h4>
<div class="outline-text-4" id="text-1-4-5">
<div class="org-src-container">
<pre class="src src-c">{
@ -791,8 +791,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
</div>
</div>
<div id="outline-container-org9ff636e" class="outline-4">
<h4 id="org9ff636e"><span class="section-number-4">1.4.6</span> Number of shells per nucleus</h4>
<div id="outline-container-orgabace4e" class="outline-4">
<h4 id="orgabace4e"><span class="section-number-4">1.4.6</span> Number of shells per nucleus</h4>
<div class="outline-text-4" id="text-1-4-6">
<div class="org-src-container">
<pre class="src src-c">{
@ -831,8 +831,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
</div>
</div>
<div id="outline-container-org71c5dcf" class="outline-4">
<h4 id="org71c5dcf"><span class="section-number-4">1.4.7</span> Angular momentum</h4>
<div id="outline-container-org1c54b7f" class="outline-4">
<h4 id="org1c54b7f"><span class="section-number-4">1.4.7</span> Angular momentum</h4>
<div class="outline-text-4" id="text-1-4-7">
<div class="org-src-container">
<pre class="src src-c">{
@ -871,8 +871,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
</div>
</div>
<div id="outline-container-orgf71991e" class="outline-4">
<h4 id="orgf71991e"><span class="section-number-4">1.4.8</span> Number of primitives per shell</h4>
<div id="outline-container-orgb9b6021" class="outline-4">
<h4 id="orgb9b6021"><span class="section-number-4">1.4.8</span> Number of primitives per shell</h4>
<div class="outline-text-4" id="text-1-4-8">
<div class="org-src-container">
<pre class="src src-c">{
@ -911,8 +911,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
</div>
</div>
<div id="outline-container-org6f51ae5" class="outline-4">
<h4 id="org6f51ae5"><span class="section-number-4">1.4.9</span> Indices of the primitives</h4>
<div id="outline-container-org6da4189" class="outline-4">
<h4 id="org6da4189"><span class="section-number-4">1.4.9</span> Indices of the primitives</h4>
<div class="outline-text-4" id="text-1-4-9">
<div class="org-src-container">
<pre class="src src-c">{
@ -951,8 +951,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
</div>
</div>
<div id="outline-container-orgb0cc40a" class="outline-4">
<h4 id="orgb0cc40a"><span class="section-number-4">1.4.10</span> Normalization of the shells</h4>
<div id="outline-container-orgb8c3c28" class="outline-4">
<h4 id="orgb8c3c28"><span class="section-number-4">1.4.10</span> Normalization of the shells</h4>
<div class="outline-text-4" id="text-1-4-10">
<div class="org-src-container">
<pre class="src src-c">{
@ -991,8 +991,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
</div>
</div>
<div id="outline-container-org8dbd0f8" class="outline-4">
<h4 id="org8dbd0f8"><span class="section-number-4">1.4.11</span> Exponents</h4>
<div id="outline-container-org995e8e1" class="outline-4">
<h4 id="org995e8e1"><span class="section-number-4">1.4.11</span> Exponents</h4>
<div class="outline-text-4" id="text-1-4-11">
<div class="org-src-container">
<pre class="src src-c">{
@ -1031,8 +1031,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
</div>
</div>
<div id="outline-container-org170db9e" class="outline-4">
<h4 id="org170db9e"><span class="section-number-4">1.4.12</span> Coefficients</h4>
<div id="outline-container-org847c59e" class="outline-4">
<h4 id="org847c59e"><span class="section-number-4">1.4.12</span> Coefficients</h4>
<div class="outline-text-4" id="text-1-4-12">
<div class="org-src-container">
<pre class="src src-c">{
@ -1071,8 +1071,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
</div>
</div>
<div id="outline-container-org713efe9" class="outline-4">
<h4 id="org713efe9"><span class="section-number-4">1.4.13</span> Normalization of the primitivies</h4>
<div id="outline-container-org796be8c" class="outline-4">
<h4 id="org796be8c"><span class="section-number-4">1.4.13</span> Normalization of the primitivies</h4>
<div class="outline-text-4" id="text-1-4-13">
<div class="org-src-container">
<pre class="src src-c">{
@ -1111,8 +1111,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
</div>
</div>
<div id="outline-container-orgc8eeaa3" class="outline-4">
<h4 id="orgc8eeaa3"><span class="section-number-4">1.4.14</span> AO Normalization</h4>
<div id="outline-container-org785e890" class="outline-4">
<h4 id="org785e890"><span class="section-number-4">1.4.14</span> AO Normalization</h4>
<div class="outline-text-4" id="text-1-4-14">
<div class="org-src-container">
<pre class="src src-c">{
@ -1161,8 +1161,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
</div>
</div>
</div>
<div id="outline-container-org8f8337d" class="outline-3">
<h3 id="org8f8337d"><span class="section-number-3">1.5</span> Molecular orbitals</h3>
<div id="outline-container-org94c1c99" class="outline-3">
<h3 id="org94c1c99"><span class="section-number-3">1.5</span> Molecular orbitals</h3>
<div class="outline-text-3" id="text-1-5">
<p>
In this section we read the MO coefficients.
@ -1188,8 +1188,8 @@ In this section we read the MO coefficients.
</div>
</div>
<div id="outline-container-org04327ad" class="outline-4">
<h4 id="org04327ad"><span class="section-number-4">1.5.1</span> Number of MOs</h4>
<div id="outline-container-org9f9c3f7" class="outline-4">
<h4 id="org9f9c3f7"><span class="section-number-4">1.5.1</span> Number of MOs</h4>
<div class="outline-text-4" id="text-1-5-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">mo_num</span> = 0L;
@ -1212,8 +1212,8 @@ rc = qmckl_set_mo_basis_mo_num(context, mo_num);
</div>
</div>
<div id="outline-container-orge4b8ab9" class="outline-4">
<h4 id="orge4b8ab9"><span class="section-number-4">1.5.2</span> MO coefficients</h4>
<div id="outline-container-orgf2f4fc7" class="outline-4">
<h4 id="orgf2f4fc7"><span class="section-number-4">1.5.2</span> MO coefficients</h4>
<div class="outline-text-4" id="text-1-5-2">
<div class="org-src-container">
<pre class="src src-c">{
@ -1262,12 +1262,12 @@ rc = qmckl_set_mo_basis_mo_num(context, mo_num);
</div>
</div>
<div id="outline-container-org1263bd9" class="outline-3">
<h3 id="org1263bd9"><span class="section-number-3">1.6</span> <span class="todo TODO">TODO</span> ECP</h3>
<div id="outline-container-org6632a46" class="outline-3">
<h3 id="org6632a46"><span class="section-number-3">1.6</span> <span class="todo TODO">TODO</span> ECP</h3>
</div>
</div>
<div id="outline-container-orga592f90" class="outline-2">
<h2 id="orga592f90"><span class="section-number-2">2</span> Read everything</h2>
<div id="outline-container-orgf5efd12" class="outline-2">
<h2 id="orgf5efd12"><span class="section-number-2">2</span> Read everything</h2>
<div class="outline-text-2" id="text-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_trexio_read</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #a020f0;">const</span> <span style="color: #228b22;">char</span>* <span style="color: #a0522d;">file_name</span>);
@ -1348,8 +1348,8 @@ rc = qmckl_set_mo_basis_mo_num(context, mo_num);
</div>
</div>
<div id="outline-container-orgbf7b8d8" class="outline-2">
<h2 id="orgbf7b8d8"><span class="section-number-2">3</span> Test</h2>
<div id="outline-container-orgdbf9679" class="outline-2">
<h2 id="orgdbf9679"><span class="section-number-2">3</span> Test</h2>
<div class="outline-text-2" id="text-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#ifdef</span> HAVE_TREXIO
@ -1383,8 +1383,8 @@ rc = qmckl_trexio_read(context, fname);
</div>
</div>
<div id="outline-container-orge0e9e5f" class="outline-4">
<h4 id="orge0e9e5f"><span class="section-number-4">3.0.1</span> Electrons</h4>
<div id="outline-container-orgea2c1f5" class="outline-4">
<h4 id="orgea2c1f5"><span class="section-number-4">3.0.1</span> Electrons</h4>
<div class="outline-text-4" id="text-3-0-1">
<div class="org-src-container">
<pre class="src src-c">printf(<span style="color: #8b2252;">"Electrons\n"</span>);
@ -1402,8 +1402,8 @@ rc = qmckl_get_electron_down_num(context, &amp;dn_num);
</div>
</div>
<div id="outline-container-orgf19cd20" class="outline-4">
<h4 id="orgf19cd20"><span class="section-number-4">3.0.2</span> Nuclei</h4>
<div id="outline-container-orgfedb9b5" class="outline-4">
<h4 id="orgfedb9b5"><span class="section-number-4">3.0.2</span> Nuclei</h4>
<div class="outline-text-4" id="text-3-0-2">
<div class="org-src-container">
<pre class="src src-c">printf(<span style="color: #8b2252;">"Nuclei\n"</span>);
@ -1443,8 +1443,8 @@ coord = <span style="color: #008b8b;">NULL</span>;
</div>
</div>
<div id="outline-container-org1e25626" class="outline-4">
<h4 id="org1e25626"><span class="section-number-4">3.0.3</span> Atomic basis</h4>
<div id="outline-container-org3a604fd" class="outline-4">
<h4 id="org3a604fd"><span class="section-number-4">3.0.3</span> Atomic basis</h4>
<div class="outline-text-4" id="text-3-0-3">
<div class="org-src-container">
<pre class="src src-c">printf(<span style="color: #8b2252;">"Atomic basis\n"</span>);
@ -1552,8 +1552,8 @@ prim_factor = <span style="color: #008b8b;">NULL</span>;
</div>
</div>
<div id="outline-container-orge9544ed" class="outline-4">
<h4 id="orge9544ed"><span class="section-number-4">3.0.4</span> MO Basis</h4>
<div id="outline-container-orgc28cd9b" class="outline-4">
<h4 id="orgc28cd9b"><span class="section-number-4">3.0.4</span> MO Basis</h4>
<div class="outline-text-4" id="text-3-0-4">
<div class="org-src-container">
<pre class="src src-c">printf(<span style="color: #8b2252;">"MOs\n"</span>);
@ -1581,7 +1581,7 @@ charge = <span style="color: #008b8b;">NULL</span>;
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:45 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Utility functions</title>
@ -333,13 +333,13 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org0353b71">1. Matrix operations</a>
<li><a href="#orgaec14a5">1. Matrix operations</a>
<ul>
<li><a href="#orgf416f5b">1.1. <code>qmckl_transpose</code></a>
<li><a href="#org934d736">1.1. <code>qmckl_transpose</code></a>
<ul>
<li><a href="#org45793f2">1.1.1. Requirements</a></li>
<li><a href="#org55519d7">1.1.2. C header</a></li>
<li><a href="#org8476b0c">1.1.3. Source</a></li>
<li><a href="#org495aef9">1.1.1. Requirements</a></li>
<li><a href="#org3ab48e9">1.1.2. C header</a></li>
<li><a href="#orgbd69dd1">1.1.3. Source</a></li>
</ul>
</li>
</ul>
@ -348,18 +348,18 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org0353b71" class="outline-2">
<h2 id="org0353b71"><span class="section-number-2">1</span> Matrix operations</h2>
<div id="outline-container-orgaec14a5" class="outline-2">
<h2 id="orgaec14a5"><span class="section-number-2">1</span> Matrix operations</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-orgf416f5b" class="outline-3">
<h3 id="orgf416f5b"><span class="section-number-3">1.1</span> <code>qmckl_transpose</code></h3>
<div id="outline-container-org934d736" class="outline-3">
<h3 id="org934d736"><span class="section-number-3">1.1</span> <code>qmckl_transpose</code></h3>
<div class="outline-text-3" id="text-1-1">
<p>
Transposes a matrix: \(B_{ji} = A_{ij}\)
</p>
<table id="org26a15de" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org88098f4" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -424,8 +424,8 @@ Transposes a matrix: \(B_{ji} = A_{ij}\)
</table>
</div>
<div id="outline-container-org45793f2" class="outline-4">
<h4 id="org45793f2"><span class="section-number-4">1.1.1</span> Requirements</h4>
<div id="outline-container-org495aef9" class="outline-4">
<h4 id="org495aef9"><span class="section-number-4">1.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-1-1-1">
<ul class="org-ul">
<li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li>
@ -439,25 +439,25 @@ Transposes a matrix: \(B_{ji} = A_{ij}\)
</div>
</div>
<div id="outline-container-org55519d7" class="outline-4">
<h4 id="org55519d7"><span class="section-number-4">1.1.2</span> C header</h4>
<div id="outline-container-org3ab48e9" class="outline-4">
<h4 id="org3ab48e9"><span class="section-number-4">1.1.2</span> C header</h4>
<div class="outline-text-4" id="text-1-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_transpose</span> (
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">m</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">n</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">A</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">lda</span>,
<span style="color: #228b22;">double</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">B</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">ldb</span> );
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">context</span> <span style="color: #a0522d;">qmckl_context</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">m</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">n</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">A</span>* <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">lda</span> <span style="color: #a0522d;">int64_t</span>,
<span style="color: #228b22;">B</span>* <span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>,
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">ldb</span> <span style="color: #a0522d;">int64_t</span> );
</pre>
</div>
</div>
</div>
<div id="outline-container-org8476b0c" class="outline-4">
<h4 id="org8476b0c"><span class="section-number-4">1.1.3</span> Source</h4>
<div id="outline-container-orgbd69dd1" class="outline-4">
<h4 id="orgbd69dd1"><span class="section-number-4">1.1.3</span> Source</h4>
<div class="outline-text-4" id="text-1-1-3">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">integer </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">qmckl_transpose_f</span><span style="color: #000000; background-color: #ffffff;">(context, m, n, A, LDA, B, LDB)</span><span style="color: #a0522d;"> </span><span style="color: #a020f0;">&amp;</span>
@ -516,7 +516,7 @@ Transposes a matrix: \(B_{ji} = A_{ij}\)
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:45</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://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-12-14 Tue 09:44 -->
<!-- 2022-01-06 Thu 01:30 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Verificarlo CI</title>
@ -311,22 +311,22 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgda6aacd">1. Verificarlo probes</a>
<li><a href="#orge45c7da">1. Verificarlo probes</a>
<ul>
<li><a href="#org69f84ea">1.1. Automatically initialize the <code>vfc_probe</code> object if <code>VFC_CI</code> is defined</a></li>
<li><a href="#orgb610ec9">1.2. Standard probe, without check</a></li>
<li><a href="#org7511555">1.3. Probe with absolute check</a></li>
<li><a href="#orgefc2059">1.4. Probe with relative check</a></li>
<li><a href="#orga87b65c">1.5. Automatically delete and dump the vfc<sub>probe</sub> object if <code>VFC_CI</code> is defined</a></li>
<li><a href="#orgd55d0fd">1.1. Automatically initialize the <code>vfc_probe</code> object if <code>VFC_CI</code> is defined</a></li>
<li><a href="#orge5549d8">1.2. Standard probe, without check</a></li>
<li><a href="#orgaedfa31">1.3. Probe with absolute check</a></li>
<li><a href="#orga5317ef">1.4. Probe with relative check</a></li>
<li><a href="#orgd41e161">1.5. Automatically delete and dump the vfc<sub>probe</sub> object if <code>VFC_CI</code> is defined</a></li>
</ul>
</li>
<li><a href="#orge074016">2. Fortran wrappers</a></li>
<li><a href="#org2ea8798">2. Fortran wrappers</a></li>
</ul>
</div>
</div>
<div id="outline-container-orgda6aacd" class="outline-2">
<h2 id="orgda6aacd"><span class="section-number-2">1</span> Verificarlo probes</h2>
<div id="outline-container-orge45c7da" class="outline-2">
<h2 id="orge45c7da"><span class="section-number-2">1</span> Verificarlo probes</h2>
<div class="outline-text-2" id="text-1">
<p>
This file contains utility functions to enable the Verificarlo
@ -377,8 +377,8 @@ To learn more about Verificarlo CI :
</div>
<div id="outline-container-org69f84ea" class="outline-3">
<h3 id="org69f84ea"><span class="section-number-3">1.1</span> Automatically initialize the <code>vfc_probe</code> object if <code>VFC_CI</code> is defined</h3>
<div id="outline-container-orgd55d0fd" class="outline-3">
<h3 id="orgd55d0fd"><span class="section-number-3">1.1</span> Automatically initialize the <code>vfc_probe</code> object if <code>VFC_CI</code> is defined</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#ifdef</span> VFC_CI
@ -398,8 +398,8 @@ To learn more about Verificarlo CI :
</div>
</div>
<div id="outline-container-orgb610ec9" class="outline-3">
<h3 id="orgb610ec9"><span class="section-number-3">1.2</span> Standard probe, without check</h3>
<div id="outline-container-orge5549d8" class="outline-3">
<h3 id="orge5549d8"><span class="section-number-3">1.2</span> Standard probe, without check</h3>
<div class="outline-text-3" id="text-1-2">
<ul class="org-ul">
<li>if <code>VFC_CI</code> is defined, place a standard probe</li>
@ -434,8 +434,8 @@ if <code>VFC_CI</code> is undefined, return <code>false</code> (no error)
</div>
</div>
<div id="outline-container-org7511555" class="outline-3">
<h3 id="org7511555"><span class="section-number-3">1.3</span> Probe with absolute check</h3>
<div id="outline-container-orgaedfa31" class="outline-3">
<h3 id="orgaedfa31"><span class="section-number-3">1.3</span> Probe with absolute check</h3>
<div class="outline-text-3" id="text-1-3">
<ul class="org-ul">
<li>if <code>VFC_CI</code> is defined, place a probe with an absolute check</li>
@ -475,8 +475,8 @@ and accuracy
</div>
</div>
<div id="outline-container-orgefc2059" class="outline-3">
<h3 id="orgefc2059"><span class="section-number-3">1.4</span> Probe with relative check</h3>
<div id="outline-container-orga5317ef" class="outline-3">
<h3 id="orga5317ef"><span class="section-number-3">1.4</span> Probe with relative check</h3>
<div class="outline-text-3" id="text-1-4">
<ul class="org-ul">
<li>if <code>VFC_CI</code> is defined, place a probe with a relative check</li>
@ -516,8 +516,8 @@ and accuracy
</div>
</div>
<div id="outline-container-orga87b65c" class="outline-3">
<h3 id="orga87b65c"><span class="section-number-3">1.5</span> Automatically delete and dump the vfc<sub>probe</sub> object if <code>VFC_CI</code> is defined</h3>
<div id="outline-container-orgd41e161" class="outline-3">
<h3 id="orgd41e161"><span class="section-number-3">1.5</span> Automatically delete and dump the vfc<sub>probe</sub> object if <code>VFC_CI</code> is defined</h3>
<div class="outline-text-3" id="text-1-5">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#ifdef</span> VFC_CI
@ -538,8 +538,8 @@ and accuracy
</div>
</div>
<div id="outline-container-orge074016" class="outline-2">
<h2 id="orge074016"><span class="section-number-2">2</span> Fortran wrappers</h2>
<div id="outline-container-org2ea8798" class="outline-2">
<h2 id="org2ea8798"><span class="section-number-2">2</span> Fortran wrappers</h2>
<div class="outline-text-2" id="text-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">bool</span> <span style="color: #0000ff;">qmckl_probe_f</span>(
@ -663,7 +663,7 @@ and accuracy
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX CoE</p>
<p class="date">Created: 2021-12-14 Tue 09:44</p>
<p class="date">Created: 2022-01-06 Thu 01:30</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>