mirror of
https://github.com/TREX-CoE/qmckl.git
synced 2025-01-08 20:33:40 +01:00
Deploying to gh-pages from @ TREX-CoE/qmckl@18f9f96bcc 🚀
This commit is contained in:
parent
dade74bc08
commit
aefa5e54d1
27
README.html
27
README.html
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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>
|
||||
@ -312,24 +312,25 @@ for the JavaScript code in this tag.
|
||||
|
||||
<ul class="org-ul">
|
||||
<li><a href="./qmckl.html">Introduction</a></li>
|
||||
<li><a href="./qmckl_ao.html">Atomic Orbitals</a></li>
|
||||
<li><a href="./qmckl_blas.html">BLAS functions</a></li>
|
||||
<li><a href="./qmckl_context.html">Context</a></li>
|
||||
<li><a href="./qmckl_determinant.html">Slater Determinant</a></li>
|
||||
<li><a href="./qmckl_distance.html">Inter-particle distances</a></li>
|
||||
<li><a href="./qmckl_electron.html">Electrons</a></li>
|
||||
<li><a href="./qmckl_error.html">Error handling</a></li>
|
||||
<li><a href="./qmckl_blas.html">BLAS functions</a></li>
|
||||
<li><a href="./qmckl_memory.html">Memory management</a></li>
|
||||
<li><a href="./qmckl_numprec.html">Numerical precision</a></li>
|
||||
<li><a href="./qmckl_point.html">Point</a></li>
|
||||
<li><a href="./qmckl_nucleus.html">Nucleus</a></li>
|
||||
<li><a href="./qmckl_electron.html">Electrons</a></li>
|
||||
<li><a href="./qmckl_distance.html">Inter-particle distances</a></li>
|
||||
<li><a href="./qmckl_ao.html">Atomic Orbitals</a></li>
|
||||
<li><a href="./qmckl_mo.html">Molecular Orbitals</a></li>
|
||||
<li><a href="./qmckl_determinant.html">Slater Determinant</a></li>
|
||||
<li><a href="./qmckl_sherman_morrison_woodbury.html">Sherman-Morrison-Woodbury</a></li>
|
||||
<li><a href="./qmckl_jastrow.html">Jastrow Factor</a></li>
|
||||
<li><a href="./qmckl_local_energy.html">Local Energy</a></li>
|
||||
<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_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>
|
||||
<li><a href="./qmckl_trexio.html">TREXIO I/O library</a></li>
|
||||
<li><a href="./qmckl_verificarlo.html">Verificarlo CI</a></li>
|
||||
<li><a href="./qmckl_tests.html">Data for Tests</a></li>
|
||||
<li><a href="./qmckl_verificarlo.html">Verificarlo CI</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
@ -361,7 +362,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: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
290
qmckl.html
290
qmckl.html
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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,32 +333,86 @@ for the JavaScript code in this tag.
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org9d4d688">1. Using QMCkl</a></li>
|
||||
<li><a href="#orgeb3852c">2. Developing in QMCkl</a>
|
||||
<li><a href="#org735b378">1. Installing QMCkl</a>
|
||||
<ul>
|
||||
<li><a href="#org9036168">2.1. Literate programming</a></li>
|
||||
<li><a href="#org841d65a">2.2. Source code editing</a></li>
|
||||
<li><a href="#orgf517034">2.3. Choice of the programming language</a></li>
|
||||
<li><a href="#orgd9c1ef8">2.4. Coding rules</a></li>
|
||||
<li><a href="#orgae989b8">2.5. Design of the library</a></li>
|
||||
<li><a href="#org4a7a64d">2.6. Naming conventions</a></li>
|
||||
<li><a href="#org77de035">2.7. Application programming interface</a></li>
|
||||
<li><a href="#org5294a7e">2.8. Global state</a></li>
|
||||
<li><a href="#org96b1e2b">2.9. Headers</a></li>
|
||||
<li><a href="#orge310d61">2.10. Low-level functions</a></li>
|
||||
<li><a href="#orga286059">2.11. High-level functions</a></li>
|
||||
<li><a href="#org81629f9">2.12. Numerical precision</a></li>
|
||||
<li><a href="#orgae388af">2.13. Algorithms</a></li>
|
||||
<li><a href="#orga9c2639">1.1. Installing from the released tarball (for end users)</a></li>
|
||||
<li><a href="#org7c5bec0">1.2. Installing from the source repository (for developers)</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org5546d7b">2. Using QMCkl</a></li>
|
||||
<li><a href="#org60a51fc">3. Developing in QMCkl</a>
|
||||
<ul>
|
||||
<li><a href="#org64d13eb">3.1. Literate programming</a></li>
|
||||
<li><a href="#orgbecffaa">3.2. Source code editing</a></li>
|
||||
<li><a href="#orgc32fffe">3.3. Choice of the programming language</a></li>
|
||||
<li><a href="#orga8c4291">3.4. Coding rules</a></li>
|
||||
<li><a href="#org22fe9ca">3.5. Design of the library</a></li>
|
||||
<li><a href="#orga8b1a26">3.6. Naming conventions</a></li>
|
||||
<li><a href="#org9e32c3a">3.7. Application programming interface</a></li>
|
||||
<li><a href="#orgc30447e">3.8. Global state</a></li>
|
||||
<li><a href="#org60920fa">3.9. Headers</a></li>
|
||||
<li><a href="#org3e49e47">3.10. Low-level functions</a></li>
|
||||
<li><a href="#org1039153">3.11. High-level functions</a></li>
|
||||
<li><a href="#org4bb8769">3.12. Numerical precision</a></li>
|
||||
<li><a href="#orga8c7197">3.13. Algorithms</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org9d4d688" class="outline-2">
|
||||
<h2 id="org9d4d688"><span class="section-number-2">1</span> Using QMCkl</h2>
|
||||
<div id="outline-container-org735b378" class="outline-2">
|
||||
<h2 id="org735b378"><span class="section-number-2">1</span> Installing QMCkl</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
The latest version fo QMCkl can be downloaded
|
||||
<a href="https://github.com/TREX-CoE/qmckl/releases/latest">here</a>, and the source code is accessible on the
|
||||
<a href="https://github.com/TREX-CoE/qmckl">GitHub repository</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga9c2639" class="outline-3">
|
||||
<h3 id="orga9c2639"><span class="section-number-3">1.1</span> Installing from the released tarball (for end users)</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<p>
|
||||
QMCkl is built with GNU Autotools, so the usual
|
||||
<code>configure ; make ; make check ; make install</code> scheme will be used.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
As usual, the C compiler can be specified with the <code>CC</code> variable
|
||||
and the Fortran compiler with the <code>FC</code> variable. The compiler
|
||||
options are defined using <code>CFLAGS</code> and <code>FCFLAGS</code>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7c5bec0" class="outline-3">
|
||||
<h3 id="org7c5bec0"><span class="section-number-3">1.2</span> Installing from the source repository (for developers)</h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<p>
|
||||
To compile from the source repository, additional dependencies are
|
||||
required to generated the source files:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>Emacs >= 26</li>
|
||||
<li>Autotools</li>
|
||||
<li>Python3</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
When the repository is downloaded, the Makefile is not yet
|
||||
generated, as well as the configure script. <code>./autogen.sh</code> has
|
||||
to be executed first.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5546d7b" class="outline-2">
|
||||
<h2 id="org5546d7b"><span class="section-number-2">2</span> Using QMCkl</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<p>
|
||||
The <code>qmckl.h</code> header file installed in the <code>${prefix}/include</code> directory
|
||||
has to be included in C codes when QMCkl functions are used:
|
||||
</p>
|
||||
@ -385,13 +439,13 @@ Both files are located in the <code>include/</code> directory.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgeb3852c" class="outline-2">
|
||||
<h2 id="orgeb3852c"><span class="section-number-2">2</span> Developing in QMCkl</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<div id="outline-container-org60a51fc" class="outline-2">
|
||||
<h2 id="org60a51fc"><span class="section-number-2">3</span> Developing in QMCkl</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
</div>
|
||||
<div id="outline-container-org9036168" class="outline-3">
|
||||
<h3 id="org9036168"><span class="section-number-3">2.1</span> Literate programming</h3>
|
||||
<div class="outline-text-3" id="text-2-1">
|
||||
<div id="outline-container-org64d13eb" class="outline-3">
|
||||
<h3 id="org64d13eb"><span class="section-number-3">3.1</span> Literate programming</h3>
|
||||
<div class="outline-text-3" id="text-3-1">
|
||||
<p>
|
||||
In a traditional source code, most of the lines of source files of a program
|
||||
are code, scripts, Makefiles, and only a few lines are comments explaining
|
||||
@ -432,12 +486,17 @@ the command-line in the <code>Makefile</code>, and then the produced files are c
|
||||
Moreover, within the Emacs text editor the source code blocks can be executed
|
||||
interactively, in the same spirit as Jupyter notebooks.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Note that Emacs is not needed for end users because the distributed
|
||||
tarball contains the generated source code.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org841d65a" class="outline-3">
|
||||
<h3 id="org841d65a"><span class="section-number-3">2.2</span> Source code editing</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<div id="outline-container-orgbecffaa" class="outline-3">
|
||||
<h3 id="orgbecffaa"><span class="section-number-3">3.2</span> Source code editing</h3>
|
||||
<div class="outline-text-3" id="text-3-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>.
|
||||
</p>
|
||||
@ -467,46 +526,62 @@ org-mode.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf517034" class="outline-3">
|
||||
<h3 id="orgf517034"><span class="section-number-3">2.3</span> Choice of the programming language</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<div id="outline-container-orgc32fffe" class="outline-3">
|
||||
<h3 id="orgc32fffe"><span class="section-number-3">3.3</span> Choice of the programming language</h3>
|
||||
<div class="outline-text-3" id="text-3-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
|
||||
Bash and Python. Outside of the CoE, Fortran is also important (Casino, Amolqc),
|
||||
and other important languages used by the community are C and C++ (QMCPack,
|
||||
QWalk), and Julia is gaining in popularity. The library we design should be
|
||||
compatible with all of these languages. The QMCkl API has to be compatible
|
||||
with the C language since libraries with a C-compatible API can be used in
|
||||
every other language.
|
||||
Most of the codes of the <a href="https://trex-coe.eu">TREX CoE</a> are written in Fortran with some
|
||||
scripts in Bash and Python. Outside of the CoE, Fortran is also
|
||||
important in QMC codes (Casino, Amolqc), and other important
|
||||
languages used by the community are C and C++ (QMCPack, QWalk),
|
||||
Julia and Rust are gaining in popularity. We want QMCkl to be
|
||||
compatible with all of these languages, so the QMCkl API has to be
|
||||
compatible with the C language since libraries with a C-compatible
|
||||
API can be used in every other language.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
High-performance versions of the QMCkl, with the same API, will be rewritten by
|
||||
the experts in HPC. These optimized libraries will be tuned for specific
|
||||
architectures, among which we can cite x86 based processors, and GPU
|
||||
accelerators. Nowadays, the most efficient software tools to take advantage of
|
||||
low-level features of the processor (intrinsics) and of GPUs are for C++
|
||||
developers. It is highly probable that the optimized implementations will be
|
||||
written in C++, and this is agreement with our choice to make the API
|
||||
C-compatible.
|
||||
High-performance versions of QMCkl, with the same API, can be
|
||||
rewritten by HPC experts. These optimized libraries will be tuned
|
||||
for specific architectures, among which we can cite x86 based
|
||||
processors, and GPU accelerators. Nowadays, the most efficient
|
||||
software tools to take advantage of low-level features
|
||||
(intrinsics, prefetching, aligned or pinned memory allocation,
|
||||
…) are for C++ developers. It is highly probable that optimized
|
||||
implementations will be written in C++, but as the API is
|
||||
C-compatible this doesn't pose any problem for linking the library
|
||||
in other languages.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Fortran is one of the most common languages used by the community, and is simple
|
||||
enough to make the algorithms readable both by experts in QMC, and experts in
|
||||
HPC. Hence we propose in this pedagogical implementation of QMCkl to use Fortran
|
||||
to express the QMC algorithms. As the main languages of the library is C, this
|
||||
implies that the exposed C functions call the Fortran routine. However, for
|
||||
internal functions related to system programming, the C language is more natural
|
||||
than Fortran.
|
||||
Fortran is one of the most common languages used by the community,
|
||||
and is simple enough to make the algorithms readable both by
|
||||
experts in QMC, and experts in HPC. Hence we propose in this
|
||||
pedagogical implementation of QMCkl to use Fortran to express the
|
||||
QMC algorithms. However, for internal functions related to system
|
||||
programming, the C language is more natural than Fortran.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The Fortran source files should provide a C interface using the
|
||||
<code>iso_c_binding</code> module. The name of the Fortran source files should end with
|
||||
<code>_f.f90</code> to be properly handled by the <code>Makefile</code>. The names of the functions
|
||||
defined in Fortran should be the same as those exposed in the API suffixed by
|
||||
<code>_f</code>.
|
||||
As QMCkl appears like a C library, for each Fortran function there
|
||||
is an <code>iso_c_binding</code> interface to make the Fortran function
|
||||
callable from C. It is this C interface which is exposed to the
|
||||
user. As a consequence, the Fortran users of the library never
|
||||
call directly the Fortran routines, but call instead the C binding
|
||||
function and an <code>iso_c_binding</code> is still required:
|
||||
</p>
|
||||
|
||||
<pre class="example">
|
||||
ISO_C_BINDING ISO_C_BINDING
|
||||
Fortran ---------------> C ---------------> Fortran
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
The name of the Fortran source files should end with <code>_f.f90</code> to
|
||||
be properly handled by the <code>Makefile</code> and to avoid collision of
|
||||
object files (<code>*.o</code>) with the compiled C source files. The names
|
||||
of the functions defined in Fortran should be the same as those
|
||||
exposed in the API suffixed by <code>_f</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -516,9 +591,9 @@ For more guidelines on using Fortran to generate a C interface, see
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd9c1ef8" class="outline-3">
|
||||
<h3 id="orgd9c1ef8"><span class="section-number-3">2.4</span> Coding rules</h3>
|
||||
<div class="outline-text-3" id="text-2-4">
|
||||
<div id="outline-container-orga8c4291" class="outline-3">
|
||||
<h3 id="orga8c4291"><span class="section-number-3">3.4</span> Coding rules</h3>
|
||||
<div class="outline-text-3" id="text-3-4">
|
||||
<p>
|
||||
The authors should follow the recommendations of the C99
|
||||
<a href="https://wiki.sei.cmu.edu/confluence/display/c/SEI+CERT+C+Coding+Standard">SEI+CERT C Coding Standard</a>.
|
||||
@ -530,14 +605,16 @@ Compliance can be checked with <code>cppcheck</code> as:
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-bash">cppcheck --addon=cert --enable=all *.c &> cppcheck.out
|
||||
# <span style="color: #b22222;">or</span>
|
||||
make cppcheck ; cat cppcheck.out
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgae989b8" class="outline-3">
|
||||
<h3 id="orgae989b8"><span class="section-number-3">2.5</span> Design of the library</h3>
|
||||
<div class="outline-text-3" id="text-2-5">
|
||||
<div id="outline-container-org22fe9ca" class="outline-3">
|
||||
<h3 id="org22fe9ca"><span class="section-number-3">3.5</span> Design of the library</h3>
|
||||
<div class="outline-text-3" id="text-3-5">
|
||||
<p>
|
||||
The proposed API should allow the library to: deal with memory transfers
|
||||
between CPU and accelerators, and to use different levels of floating-point
|
||||
@ -547,9 +624,9 @@ functions (see below).
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org4a7a64d" class="outline-3">
|
||||
<h3 id="org4a7a64d"><span class="section-number-3">2.6</span> Naming conventions</h3>
|
||||
<div class="outline-text-3" id="text-2-6">
|
||||
<div id="outline-container-orga8b1a26" class="outline-3">
|
||||
<h3 id="orga8b1a26"><span class="section-number-3">3.6</span> Naming conventions</h3>
|
||||
<div class="outline-text-3" id="text-3-6">
|
||||
<p>
|
||||
To avoid namespace collisions, we use <code>qmckl_</code> as a prefix for all exported
|
||||
functions and variables. All exported header files should have a file name
|
||||
@ -562,10 +639,6 @@ produced C files should be <code>xxx.c</code> and <code>xxx.h</code> and the nam
|
||||
produced Fortran file should be <code>xxx.f90</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Arrays are in uppercase and scalars are in lowercase.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In the names of the variables and functions, only the singular
|
||||
form is allowed.
|
||||
@ -573,9 +646,9 @@ form is allowed.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org77de035" class="outline-3">
|
||||
<h3 id="org77de035"><span class="section-number-3">2.7</span> Application programming interface</h3>
|
||||
<div class="outline-text-3" id="text-2-7">
|
||||
<div id="outline-container-org9e32c3a" class="outline-3">
|
||||
<h3 id="org9e32c3a"><span class="section-number-3">3.7</span> Application programming interface</h3>
|
||||
<div class="outline-text-3" id="text-3-7">
|
||||
<p>
|
||||
In the C language, the number of bits used by the integer types can change
|
||||
from one architecture to another one. To circumvent this problem, we choose to
|
||||
@ -606,15 +679,15 @@ bindings in other languages in other repositories.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5294a7e" class="outline-3">
|
||||
<h3 id="org5294a7e"><span class="section-number-3">2.8</span> Global state</h3>
|
||||
<div class="outline-text-3" id="text-2-8">
|
||||
<div id="outline-container-orgc30447e" class="outline-3">
|
||||
<h3 id="orgc30447e"><span class="section-number-3">3.8</span> Global state</h3>
|
||||
<div class="outline-text-3" id="text-3-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="org0a8585d">=context=</a> contains the global
|
||||
<code>qmckl_context_create</code> function. The <a id="org7a24b06">=context=</a> contains the global
|
||||
state of the library, and is used as the first argument of many
|
||||
QMCkl functions.
|
||||
</p>
|
||||
@ -628,9 +701,9 @@ the state is done by setters and getters, prefixed by
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org96b1e2b" class="outline-3">
|
||||
<h3 id="org96b1e2b"><span class="section-number-3">2.9</span> Headers</h3>
|
||||
<div class="outline-text-3" id="text-2-9">
|
||||
<div id="outline-container-org60920fa" class="outline-3">
|
||||
<h3 id="org60920fa"><span class="section-number-3">3.9</span> Headers</h3>
|
||||
<div class="outline-text-3" id="text-3-9">
|
||||
<p>
|
||||
A single <code>qmckl.h</code> header to be distributed by the library
|
||||
is built by concatenating some of the produced header files.
|
||||
@ -717,9 +790,9 @@ and the types definitions should be written in the <code>*fh_type.f90</code> fil
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge310d61" class="outline-3">
|
||||
<h3 id="orge310d61"><span class="section-number-3">2.10</span> Low-level functions</h3>
|
||||
<div class="outline-text-3" id="text-2-10">
|
||||
<div id="outline-container-org3e49e47" class="outline-3">
|
||||
<h3 id="org3e49e47"><span class="section-number-3">3.10</span> Low-level functions</h3>
|
||||
<div class="outline-text-3" id="text-3-10">
|
||||
<p>
|
||||
Low-level functions are very simple functions which are leaves of
|
||||
the function call tree (they don't call any other QMCkl function).
|
||||
@ -727,15 +800,15 @@ 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="#org0a8585d"><code>context</code></a>. They are not allowed to allocate/deallocate memory, and
|
||||
<a href="#org7a24b06"><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-orga286059" class="outline-3">
|
||||
<h3 id="orga286059"><span class="section-number-3">2.11</span> High-level functions</h3>
|
||||
<div class="outline-text-3" id="text-2-11">
|
||||
<div id="outline-container-org1039153" class="outline-3">
|
||||
<h3 id="org1039153"><span class="section-number-3">3.11</span> High-level functions</h3>
|
||||
<div class="outline-text-3" id="text-3-11">
|
||||
<p>
|
||||
High-level functions are at the top of the function call tree.
|
||||
They are able to choose which lower-level function to call
|
||||
@ -743,33 +816,26 @@ depending on the required precision, and do the corresponding type
|
||||
conversions. These functions are also responsible for allocating
|
||||
temporary storage, to simplify the use of accelerators.
|
||||
</p>
|
||||
|
||||
<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="#org0a8585d"><code>context</code></a> variable.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org81629f9" class="outline-3">
|
||||
<h3 id="org81629f9"><span class="section-number-3">2.12</span> Numerical precision</h3>
|
||||
<div class="outline-text-3" id="text-2-12">
|
||||
<div id="outline-container-org4bb8769" class="outline-3">
|
||||
<h3 id="org4bb8769"><span class="section-number-3">3.12</span> Numerical precision</h3>
|
||||
<div class="outline-text-3" id="text-3-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="#org0a8585d"><code>context</code></a>
|
||||
variable.
|
||||
The minimal 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="#org7a24b06"><code>context</code></a> variable.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In order to automatize numerical accuracy tests, QMCkl uses
|
||||
<a href="https://github.com/verificarlo/verificarlo">Verificarlo</a> and
|
||||
its CI functionality. You can read Verificarlo CI's documentation
|
||||
at the <a href="https://github.com/verificarlo/verificarlo/blob/master/doc/06-Postprocessing.md#verificarlo-ci">following link</a>.
|
||||
Reading it is advised to understand the remainder of this section.
|
||||
<a href="https://github.com/verificarlo/verificarlo">Verificarlo</a> and its CI functionality. You can read Verificarlo CI's
|
||||
documentation at the <a href="https://github.com/verificarlo/verificarlo/blob/master/doc/06-Postprocessing.md#verificarlo-ci">following link</a>. Reading it is advised to
|
||||
understand the remainder of this section.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -778,7 +844,7 @@ library, use the following configure command :
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-bash"><span style="color: #a0522d;">QMCKL_DEVEL</span>=1 ./configure --prefix=$<span style="color: #a0522d;">PWD</span>/_install --enable-silent-rules --enable-maintainer-mode <span style="color: #a0522d;">CC</span>=verificarlo-f <span style="color: #a0522d;">FC</span>=verificarlo-f --host=x86_64 --enable-vfc_ci
|
||||
<pre class="src src-bash">./configure <span style="color: #a0522d;">CC</span>=verificarlo-f <span style="color: #a0522d;">FC</span>=verificarlo-f --host=x86_64 --enable-vfc_ci
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -810,7 +876,7 @@ Here are these 3 functions :
|
||||
|
||||
|
||||
<p>
|
||||
If you need more details on these functions or their Fortran
|
||||
If you need more detail on these functions or their Fortran
|
||||
interfaces, have a look at the <code>tools/qmckl_probes</code> files.
|
||||
</p>
|
||||
|
||||
@ -830,9 +896,9 @@ following points :
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgae388af" class="outline-3">
|
||||
<h3 id="orgae388af"><span class="section-number-3">2.13</span> Algorithms</h3>
|
||||
<div class="outline-text-3" id="text-2-13">
|
||||
<div id="outline-container-orga8c7197" class="outline-3">
|
||||
<h3 id="orga8c7197"><span class="section-number-3">3.13</span> Algorithms</h3>
|
||||
<div class="outline-text-3" id="text-3-13">
|
||||
<p>
|
||||
Reducing the scaling of an algorithm usually implies also reducing
|
||||
its arithmetic complexity (number of flops per byte). Therefore,
|
||||
@ -847,7 +913,7 @@ implemented adapted to different problem sizes.
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: TREX CoE</p>
|
||||
<p class="date">Created: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
150
qmckl_ao.html
150
qmckl_ao.html
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Atomic Orbitals</title>
|
||||
@ -333,53 +333,53 @@ for the JavaScript code in this tag.
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#orgdb2da6b">1. Introduction</a></li>
|
||||
<li><a href="#org8a7fc6e">2. Context</a>
|
||||
<li><a href="#orgc22420c">1. Introduction</a></li>
|
||||
<li><a href="#org9a80ed5">2. Context</a>
|
||||
<ul>
|
||||
<li><a href="#org19ad70f">2.1. Constant data</a>
|
||||
<li><a href="#orga2b1666">2.1. Constant data</a>
|
||||
<ul>
|
||||
<li><a href="#orga40f80c">2.1.1. Initialization functions</a>
|
||||
<li><a href="#org1403bf2">2.1.1. Initialization functions</a>
|
||||
<ul>
|
||||
<li><a href="#orgd3f2a7c">2.1.1.1. C interface</a></li>
|
||||
<li><a href="#org117c696">2.1.1.2. Fortran interface</a></li>
|
||||
<li><a href="#org148f094">2.1.1.1. C interface</a></li>
|
||||
<li><a href="#org5301e1a">2.1.1.2. Fortran interface</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgbe5c9dd">2.1.2. Access functions</a>
|
||||
<li><a href="#orgb92800f">2.1.2. Access functions</a>
|
||||
<ul>
|
||||
<li><a href="#orgd4d90ce">2.1.2.1. C interface</a></li>
|
||||
<li><a href="#orga4cad88">2.1.2.2. Fortran interface</a></li>
|
||||
<li><a href="#org7e18692">2.1.2.1. C interface</a></li>
|
||||
<li><a href="#org28bf7cc">2.1.2.2. Fortran interface</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org7cdea7b">2.2. Computed data</a>
|
||||
<li><a href="#orgfc3c03d">2.2. Computed data</a>
|
||||
<ul>
|
||||
<li><a href="#org3475331">2.2.1. After initialization</a></li>
|
||||
<li><a href="#orgeaf37e1">2.2.2. Access functions</a></li>
|
||||
<li><a href="#org5b4a32f">2.2.1. After initialization</a></li>
|
||||
<li><a href="#orgb8f02d2">2.2.2. Access functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org054b7cb">3. Radial part</a>
|
||||
<li><a href="#org788b204">3. Radial part</a>
|
||||
<ul>
|
||||
<li><a href="#org44e094f">3.1. General functions for Gaussian basis functions</a></li>
|
||||
<li><a href="#org12d2646">3.2. Computation of primitives</a></li>
|
||||
<li><a href="#orgb725c33">3.3. Computation of shells</a></li>
|
||||
<li><a href="#org54e4df5">3.1. General functions for Gaussian basis functions</a></li>
|
||||
<li><a href="#orgf6cab48">3.2. Computation of primitives</a></li>
|
||||
<li><a href="#org25e9825">3.3. Computation of shells</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org130b24f">4. Polynomial part</a>
|
||||
<li><a href="#org0f0d737">4. Polynomial part</a>
|
||||
<ul>
|
||||
<li><a href="#orged44815">4.1. General functions for Powers of \(x-X_i\)</a></li>
|
||||
<li><a href="#org1c64abc">4.2. General functions for Value, Gradient and Laplacian of a polynomial</a></li>
|
||||
<li><a href="#org86ee680">4.1. General functions for Powers of \(x-X_i\)</a></li>
|
||||
<li><a href="#org248640c">4.2. General functions for Value, Gradient and Laplacian of a polynomial</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgb9591a0">5. Combining radial and polynomial parts</a></li>
|
||||
<li><a href="#org22dd37b">5. Combining radial and polynomial parts</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgdb2da6b" class="outline-2">
|
||||
<h2 id="orgdb2da6b"><span class="section-number-2">1</span> Introduction</h2>
|
||||
<div id="outline-container-orgc22420c" class="outline-2">
|
||||
<h2 id="orgc22420c"><span class="section-number-2">1</span> Introduction</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
The atomic basis set is defined as a list of shells. Each shell \(s\) is
|
||||
@ -432,19 +432,19 @@ gradients and Laplacian of the atomic basis functions.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8a7fc6e" class="outline-2">
|
||||
<h2 id="org8a7fc6e"><span class="section-number-2">2</span> Context</h2>
|
||||
<div id="outline-container-org9a80ed5" class="outline-2">
|
||||
<h2 id="org9a80ed5"><span class="section-number-2">2</span> Context</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
</div>
|
||||
<div id="outline-container-org19ad70f" class="outline-3">
|
||||
<h3 id="org19ad70f"><span class="section-number-3">2.1</span> Constant data</h3>
|
||||
<div id="outline-container-orga2b1666" class="outline-3">
|
||||
<h3 id="orga2b1666"><span class="section-number-3">2.1</span> Constant data</h3>
|
||||
<div class="outline-text-3" id="text-2-1">
|
||||
<p>
|
||||
The following arrays are stored in the context, and need to be set
|
||||
when initializing the library:
|
||||
</p>
|
||||
|
||||
<table id="orgd85c458" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org4ab23d3" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -618,7 +618,7 @@ calling the functions:
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-C" id="org42c51f7"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_set_ao_basis_$V$</span> ( <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<pre class="src src-C" id="org44c46d4"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_set_ao_basis_$V$</span> ( <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<span style="color: #a020f0;">const</span> $type_of_V$ $V$);
|
||||
|
||||
<span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_ao_basis_$V$</span> ( <span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
@ -655,7 +655,7 @@ For array variables, use the rule:
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-C" id="org1c88fce"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_set_ao_basis_$V$</span> ( <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<pre class="src src-C" id="orgea5c42d"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_set_ao_basis_$V$</span> ( <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<span style="color: #a020f0;">const</span> $type_of_V$ $V$,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size_max</span>);
|
||||
|
||||
@ -693,17 +693,17 @@ For array variables, use the rule:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga40f80c" class="outline-4">
|
||||
<h4 id="orga40f80c"><span class="section-number-4">2.1.1</span> Initialization functions</h4>
|
||||
<div id="outline-container-org1403bf2" class="outline-4">
|
||||
<h4 id="org1403bf2"><span class="section-number-4">2.1.1</span> Initialization functions</h4>
|
||||
<div class="outline-text-4" id="text-2-1-1">
|
||||
<p>
|
||||
<code>size_max</code> is the dimension of the input array, which should be
|
||||
equal of larger than the value given in the table of section <a href="#org8a7fc6e">2</a>.
|
||||
equal of larger than the value given in the table of section <a href="#org9a80ed5">2</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd3f2a7c" class="outline-5">
|
||||
<h5 id="orgd3f2a7c"><span class="section-number-5">2.1.1.1</span> C interface</h5>
|
||||
<div id="outline-container-org148f094" class="outline-5">
|
||||
<h5 id="org148f094"><span class="section-number-5">2.1.1.1</span> C interface</h5>
|
||||
<div class="outline-text-5" id="text-2-1-1-1">
|
||||
<p>
|
||||
To set the basis set, all the following functions need to be
|
||||
@ -827,8 +827,8 @@ called.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org117c696" class="outline-5">
|
||||
<h5 id="org117c696"><span class="section-number-5">2.1.1.2</span> Fortran interface</h5>
|
||||
<div id="outline-container-org5301e1a" class="outline-5">
|
||||
<h5 id="org5301e1a"><span class="section-number-5">2.1.1.2</span> Fortran interface</h5>
|
||||
<div class="outline-text-5" id="text-2-1-1-2">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-f90"><span style="color: #a020f0;">interface</span>
|
||||
@ -1011,17 +1011,17 @@ called.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbe5c9dd" class="outline-4">
|
||||
<h4 id="orgbe5c9dd"><span class="section-number-4">2.1.2</span> Access functions</h4>
|
||||
<div id="outline-container-orgb92800f" class="outline-4">
|
||||
<h4 id="orgb92800f"><span class="section-number-4">2.1.2</span> Access functions</h4>
|
||||
<div class="outline-text-4" id="text-2-1-2">
|
||||
<p>
|
||||
<code>size_max</code> is the dimension of the input array, which should be
|
||||
equal of larger than the value given in the table of section <a href="#org8a7fc6e">2</a>.
|
||||
equal of larger than the value given in the table of section <a href="#org9a80ed5">2</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd4d90ce" class="outline-5">
|
||||
<h5 id="orgd4d90ce"><span class="section-number-5">2.1.2.1</span> C interface</h5>
|
||||
<div id="outline-container-org7e18692" class="outline-5">
|
||||
<h5 id="org7e18692"><span class="section-number-5">2.1.2.1</span> C interface</h5>
|
||||
<div class="outline-text-5" id="text-2-1-2-1">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span>
|
||||
@ -1143,8 +1143,8 @@ function returns <code>true</code>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga4cad88" class="outline-5">
|
||||
<h5 id="orga4cad88"><span class="section-number-5">2.1.2.2</span> Fortran interface</h5>
|
||||
<div id="outline-container-org28bf7cc" class="outline-5">
|
||||
<h5 id="org28bf7cc"><span class="section-number-5">2.1.2.2</span> Fortran interface</h5>
|
||||
<div class="outline-text-5" id="text-2-1-2-2">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-f90"><span style="color: #a020f0;">interface</span>
|
||||
@ -1328,8 +1328,8 @@ function returns <code>true</code>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7cdea7b" class="outline-3">
|
||||
<h3 id="org7cdea7b"><span class="section-number-3">2.2</span> Computed data</h3>
|
||||
<div id="outline-container-orgfc3c03d" class="outline-3">
|
||||
<h3 id="orgfc3c03d"><span class="section-number-3">2.2</span> Computed data</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<p>
|
||||
The following data is computed as described in the next sections:
|
||||
@ -1393,8 +1393,8 @@ The following data is computed as described in the next sections:
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org3475331" class="outline-4">
|
||||
<h4 id="org3475331"><span class="section-number-4">2.2.1</span> After initialization</h4>
|
||||
<div id="outline-container-org5b4a32f" class="outline-4">
|
||||
<h4 id="org5b4a32f"><span class="section-number-4">2.2.1</span> After initialization</h4>
|
||||
<div class="outline-text-4" id="text-2-2-1">
|
||||
<p>
|
||||
When the basis set is completely entered, extra data structures may be
|
||||
@ -1408,8 +1408,8 @@ the context.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgeaf37e1" class="outline-4">
|
||||
<h4 id="orgeaf37e1"><span class="section-number-4">2.2.2</span> Access functions</h4>
|
||||
<div id="outline-container-orgb8f02d2" class="outline-4">
|
||||
<h4 id="orgb8f02d2"><span class="section-number-4">2.2.2</span> Access functions</h4>
|
||||
<div class="outline-text-4" id="text-2-2-2">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span>
|
||||
@ -1422,7 +1422,7 @@ the context.
|
||||
<p>
|
||||
Returns the array of values, gradients an Laplacian of primitive
|
||||
basis functions evaluated at the current coordinates.
|
||||
See section <a href="#org12d2646">3.2</a>.
|
||||
See section <a href="#orgf6cab48">3.2</a>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
@ -1435,7 +1435,7 @@ See section <a href="#org12d2646">3.2</a>.
|
||||
|
||||
<p>
|
||||
Returns the array of values, gradients an Laplacian of contracted shells
|
||||
evaluated at the current coordinates. See section <a href="#orgb725c33">3.3</a>.
|
||||
evaluated at the current coordinates. See section <a href="#org25e9825">3.3</a>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
@ -1449,19 +1449,19 @@ evaluated at the current coordinates. See section <a href="#orgb725c33">3.3</a>.
|
||||
<p>
|
||||
Returns the array of values, gradients an Laplacian of the atomic orbitals
|
||||
evaluated at the current coordinates.
|
||||
See section <a href="#orgb9591a0">5</a>.
|
||||
See section <a href="#org22dd37b">5</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org054b7cb" class="outline-2">
|
||||
<h2 id="org054b7cb"><span class="section-number-2">3</span> Radial part</h2>
|
||||
<div id="outline-container-org788b204" class="outline-2">
|
||||
<h2 id="org788b204"><span class="section-number-2">3</span> Radial part</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
</div>
|
||||
<div id="outline-container-org44e094f" class="outline-3">
|
||||
<h3 id="org44e094f"><span class="section-number-3">3.1</span> General functions for Gaussian basis functions</h3>
|
||||
<div id="outline-container-org54e4df5" class="outline-3">
|
||||
<h3 id="org54e4df5"><span class="section-number-3">3.1</span> General functions for Gaussian basis functions</h3>
|
||||
<div class="outline-text-3" id="text-3-1">
|
||||
<p>
|
||||
<code>qmckl_ao_gaussian_vgl</code> computes the values, gradients and
|
||||
@ -1632,10 +1632,10 @@ Requirements:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org12d2646" class="outline-3">
|
||||
<h3 id="org12d2646"><span class="section-number-3">3.2</span> Computation of primitives</h3>
|
||||
<div id="outline-container-orgf6cab48" class="outline-3">
|
||||
<h3 id="orgf6cab48"><span class="section-number-3">3.2</span> Computation of primitives</h3>
|
||||
<div class="outline-text-3" id="text-3-2">
|
||||
<table id="org92686cd" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org198f675" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1794,10 +1794,10 @@ Requirements:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb725c33" class="outline-3">
|
||||
<h3 id="orgb725c33"><span class="section-number-3">3.3</span> Computation of shells</h3>
|
||||
<div id="outline-container-org25e9825" class="outline-3">
|
||||
<h3 id="org25e9825"><span class="section-number-3">3.3</span> Computation of shells</h3>
|
||||
<div class="outline-text-3" id="text-3-3">
|
||||
<table id="org10cd004" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orga5d5ed4" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -2036,8 +2036,8 @@ Requirements:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org130b24f" class="outline-2">
|
||||
<h2 id="org130b24f"><span class="section-number-2">4</span> Polynomial part</h2>
|
||||
<div id="outline-container-org0f0d737" class="outline-2">
|
||||
<h2 id="org0f0d737"><span class="section-number-2">4</span> Polynomial part</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
<p>
|
||||
Going from the atomic basis set to AOs implies a systematic
|
||||
@ -2057,8 +2057,8 @@ f & : & f_{xxx}, f_{xxy}, f_{xxz}, f_{xyy}, f_{xyz}, f_{xzz}, f_{yyy}, f_{yyz},
|
||||
\end{eqnarray}
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orged44815" class="outline-3">
|
||||
<h3 id="orged44815"><span class="section-number-3">4.1</span> General functions for Powers of \(x-X_i\)</h3>
|
||||
<div id="outline-container-org86ee680" class="outline-3">
|
||||
<h3 id="org86ee680"><span class="section-number-3">4.1</span> General functions for Powers of \(x-X_i\)</h3>
|
||||
<div class="outline-text-3" id="text-4-1">
|
||||
<p>
|
||||
The <code>qmckl_ao_power</code> function computes all the powers of the <code>n</code>
|
||||
@ -2070,7 +2070,7 @@ the \(n\) points:
|
||||
\[ P_{ik} = X_i^k \]
|
||||
</p>
|
||||
|
||||
<table id="org7cea9b8" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org6963934" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -2208,8 +2208,8 @@ Requirements:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1c64abc" class="outline-3">
|
||||
<h3 id="org1c64abc"><span class="section-number-3">4.2</span> General functions for Value, Gradient and Laplacian of a polynomial</h3>
|
||||
<div id="outline-container-org248640c" class="outline-3">
|
||||
<h3 id="org248640c"><span class="section-number-3">4.2</span> General functions for Value, Gradient and Laplacian of a polynomial</h3>
|
||||
<div class="outline-text-3" id="text-4-2">
|
||||
<p>
|
||||
A polynomial is centered on a nucleus \(\mathbf{R}_i\)
|
||||
@ -2254,7 +2254,7 @@ Laplacians at a given point in space, of all polynomials with an
|
||||
angular momentum up to <code>lmax</code>.
|
||||
</p>
|
||||
|
||||
<table id="orgd535d65" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org8aa4e2e" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -2514,10 +2514,10 @@ For example, with a=0, b=2 and c=1 the string is "yyz"</li>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb9591a0" class="outline-2">
|
||||
<h2 id="orgb9591a0"><span class="section-number-2">5</span> Combining radial and polynomial parts</h2>
|
||||
<div id="outline-container-org22dd37b" class="outline-2">
|
||||
<h2 id="org22dd37b"><span class="section-number-2">5</span> Combining radial and polynomial parts</h2>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
<table id="org1748cd2" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgeb49f2d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -2795,7 +2795,7 @@ For example, with a=0, b=2 and c=1 the string is "yyz"</li>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: TREX CoE</p>
|
||||
<p class="date">Created: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
710
qmckl_blas.html
710
qmckl_blas.html
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>BLAS functions</title>
|
||||
@ -333,23 +333,705 @@ for the JavaScript code in this tag.
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org36aeb99">1. Matrix operations</a>
|
||||
<li><a href="#org8faead0">1. Data types</a>
|
||||
<ul>
|
||||
<li><a href="#orge78b5a0">1.1. <code>qmckl_dgemm</code></a></li>
|
||||
<li><a href="#orgf468be2">1.2. <code>qmckl_adjugate</code></a></li>
|
||||
<li><a href="#org76f018d">1.1. Vector</a></li>
|
||||
<li><a href="#orgd97b200">1.2. Matrix</a></li>
|
||||
<li><a href="#org2524913">1.3. Tensor</a></li>
|
||||
<li><a href="#orgf50984a">1.4. Reshaping</a>
|
||||
<ul>
|
||||
<li><a href="#org3e18030">1.4.1. Vector -> Matrix</a></li>
|
||||
<li><a href="#orgb86439f">1.4.2. Vector -> Tensor</a></li>
|
||||
<li><a href="#org541d08a">1.4.3. Matrix -> Vector</a></li>
|
||||
<li><a href="#org483208f">1.4.4. Matrix -> Tensor</a></li>
|
||||
<li><a href="#org5f5e356">1.4.5. Tensor -> Vector</a></li>
|
||||
<li><a href="#org8c251b3">1.4.6. Tensor -> Matrix</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org165e8a5">1.5. Access macros</a></li>
|
||||
<li><a href="#org8536060">1.6. Tests</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgc6a76c2">2. Matrix operations</a>
|
||||
<ul>
|
||||
<li><a href="#orgf14d402">2.1. <code>qmckl_dgemm</code></a></li>
|
||||
<li><a href="#orgb248033">2.2. <code>qmckl_adjugate</code></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org36aeb99" class="outline-2">
|
||||
<h2 id="org36aeb99"><span class="section-number-2">1</span> Matrix operations</h2>
|
||||
<div id="outline-container-org8faead0" class="outline-2">
|
||||
<h2 id="org8faead0"><span class="section-number-2">1</span> Data types</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
</div>
|
||||
<div id="outline-container-orge78b5a0" class="outline-3">
|
||||
<h3 id="orge78b5a0"><span class="section-number-3">1.1</span> <code>qmckl_dgemm</code></h3>
|
||||
<div id="outline-container-org76f018d" class="outline-3">
|
||||
<h3 id="org76f018d"><span class="section-number-3">1.1</span> Vector</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-left" />
|
||||
|
||||
<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">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-left"><code>size</code></td>
|
||||
<td class="org-left"><code>int64_t</code></td>
|
||||
<td class="org-left">Dimension of the vector</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>data</code></td>
|
||||
<td class="org-left"><code>double*</code></td>
|
||||
<td class="org-left">Elements</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<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_vector</span> {
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size</span>;
|
||||
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">data</span>;
|
||||
} <span style="color: #228b22;">qmckl_vector</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_vector</span>
|
||||
<span style="color: #0000ff;">qmckl_vector_alloc</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;">size</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Allocates a new vector. If the allocation failed the size is zero.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_vector</span>
|
||||
<span style="color: #0000ff;">qmckl_vector_alloc</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;">size</span>)
|
||||
{
|
||||
/* <span style="color: #b22222;">Should always be true by contruction </span>*/
|
||||
assert (size > (<span style="color: #228b22;">int64_t</span>) 0);
|
||||
|
||||
<span style="color: #228b22;">qmckl_vector</span> <span style="color: #a0522d;">result</span>;
|
||||
result.size = size;
|
||||
|
||||
<span style="color: #228b22;">qmckl_memory_info_struct</span> <span style="color: #a0522d;">mem_info</span> = qmckl_memory_info_struct_zero;
|
||||
mem_info.size = size * <span style="color: #a020f0;">sizeof</span>(<span style="color: #228b22;">double</span>);
|
||||
result.data = (<span style="color: #228b22;">double</span>*) qmckl_malloc (context, mem_info);
|
||||
|
||||
<span style="color: #a020f0;">if</span> (result.data == <span style="color: #008b8b;">NULL</span>) {
|
||||
result.size = (<span style="color: #228b22;">int64_t</span>) 0;
|
||||
}
|
||||
|
||||
<span style="color: #a020f0;">return</span> result;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span>
|
||||
<span style="color: #0000ff;">qmckl_vector_free</span>( <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<span style="color: #228b22;">qmckl_vector</span> <span style="color: #a0522d;">vector</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span>
|
||||
<span style="color: #0000ff;">qmckl_vector_free</span>( <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<span style="color: #228b22;">qmckl_vector</span> <span style="color: #a0522d;">vector</span>)
|
||||
{
|
||||
/* <span style="color: #b22222;">Always true </span>*/
|
||||
assert (vector.data != <span style="color: #008b8b;">NULL</span>);
|
||||
|
||||
<span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #a0522d;">rc</span>;
|
||||
|
||||
rc = qmckl_free(context, vector.data);
|
||||
<span style="color: #a020f0;">if</span> (rc != QMCKL_SUCCESS) {
|
||||
<span style="color: #a020f0;">return</span> rc;
|
||||
}
|
||||
|
||||
vector.size = (<span style="color: #228b22;">int64_t</span>) 0;
|
||||
vector.data = <span style="color: #008b8b;">NULL</span>;
|
||||
<span style="color: #a020f0;">return</span> QMCKL_SUCCESS;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd97b200" class="outline-3">
|
||||
<h3 id="orgd97b200"><span class="section-number-3">1.2</span> Matrix</h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-left" />
|
||||
|
||||
<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">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-left"><code>size</code></td>
|
||||
<td class="org-left"><code>int64_t[2]</code></td>
|
||||
<td class="org-left">Dimension of each component</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>data</code></td>
|
||||
<td class="org-left"><code>double*</code></td>
|
||||
<td class="org-left">Elements</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
The dimensions use Fortran ordering: two elements differing by one
|
||||
in the first dimension are consecutive in memory.
|
||||
</p>
|
||||
|
||||
<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_matrix</span> {
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size</span>[2];
|
||||
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">data</span>;
|
||||
} <span style="color: #228b22;">qmckl_matrix</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_matrix</span>
|
||||
<span style="color: #0000ff;">qmckl_matrix_alloc</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;">size1</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size2</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Allocates a new matrix. If the allocation failed the sizes are zero.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_matrix</span>
|
||||
<span style="color: #0000ff;">qmckl_matrix_alloc</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;">size1</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size2</span>)
|
||||
{
|
||||
/* <span style="color: #b22222;">Should always be true by contruction </span>*/
|
||||
assert (size1 * size2 > (<span style="color: #228b22;">int64_t</span>) 0);
|
||||
|
||||
<span style="color: #228b22;">qmckl_matrix</span> <span style="color: #a0522d;">result</span>;
|
||||
|
||||
result.size[0] = size1;
|
||||
result.size[1] = size2;
|
||||
|
||||
<span style="color: #228b22;">qmckl_memory_info_struct</span> <span style="color: #a0522d;">mem_info</span> = qmckl_memory_info_struct_zero;
|
||||
mem_info.size = size1 * size2 * <span style="color: #a020f0;">sizeof</span>(<span style="color: #228b22;">double</span>);
|
||||
result.data = (<span style="color: #228b22;">double</span>*) qmckl_malloc (context, mem_info);
|
||||
|
||||
<span style="color: #a020f0;">if</span> (result.data == <span style="color: #008b8b;">NULL</span>) {
|
||||
result.size[0] = (<span style="color: #228b22;">int64_t</span>) 0;
|
||||
result.size[1] = (<span style="color: #228b22;">int64_t</span>) 0;
|
||||
}
|
||||
|
||||
<span style="color: #a020f0;">return</span> result;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span>
|
||||
<span style="color: #0000ff;">qmckl_matrix_free</span>( <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<span style="color: #228b22;">qmckl_matrix</span> <span style="color: #a0522d;">matrix</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span>
|
||||
<span style="color: #0000ff;">qmckl_matrix_free</span>( <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<span style="color: #228b22;">qmckl_matrix</span> <span style="color: #a0522d;">matrix</span>)
|
||||
{
|
||||
/* <span style="color: #b22222;">Always true </span>*/
|
||||
assert (matrix.data != <span style="color: #008b8b;">NULL</span>);
|
||||
|
||||
<span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #a0522d;">rc</span>;
|
||||
|
||||
rc = qmckl_free(context, matrix.data);
|
||||
<span style="color: #a020f0;">if</span> (rc != QMCKL_SUCCESS) {
|
||||
<span style="color: #a020f0;">return</span> rc;
|
||||
}
|
||||
matrix.data = <span style="color: #008b8b;">NULL</span>;
|
||||
matrix.size[0] = (<span style="color: #228b22;">int64_t</span>) 0;
|
||||
matrix.size[1] = (<span style="color: #228b22;">int64_t</span>) 0;
|
||||
|
||||
<span style="color: #a020f0;">return</span> QMCKL_SUCCESS;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2524913" class="outline-3">
|
||||
<h3 id="org2524913"><span class="section-number-3">1.3</span> Tensor</h3>
|
||||
<div class="outline-text-3" id="text-1-3">
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-left" />
|
||||
|
||||
<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">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-left"><code>order</code></td>
|
||||
<td class="org-left"><code>int64_t</code></td>
|
||||
<td class="org-left">Order of the tensor</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>size</code></td>
|
||||
<td class="org-left"><code>int64_t[QMCKL_TENSOR_ORDER_MAX]</code></td>
|
||||
<td class="org-left">Dimension of each component</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>data</code></td>
|
||||
<td class="org-left"><code>double*</code></td>
|
||||
<td class="org-left">Elements</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
The dimensions use Fortran ordering: two elements differing by one
|
||||
in the first dimension are consecutive in memory.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #483d8b;">#define</span> <span style="color: #a0522d;">QMCKL_TENSOR_ORDER_MAX</span> 16
|
||||
|
||||
<span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">qmckl_tensor</span> {
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">order</span>;
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size</span>[QMCKL_TENSOR_ORDER_MAX];
|
||||
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">data</span>;
|
||||
} <span style="color: #228b22;">qmckl_tensor</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_tensor</span>
|
||||
<span style="color: #0000ff;">qmckl_tensor_alloc</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;">order</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span>* <span style="color: #a0522d;">size</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Allocates memory for a tensor. If the allocation failed, the size
|
||||
is zero.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_tensor</span>
|
||||
<span style="color: #0000ff;">qmckl_tensor_alloc</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;">order</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span>* <span style="color: #a0522d;">size</span>)
|
||||
{
|
||||
/* <span style="color: #b22222;">Should always be true by contruction </span>*/
|
||||
assert (order > 0);
|
||||
assert (order <= QMCKL_TENSOR_ORDER_MAX);
|
||||
assert (size != <span style="color: #008b8b;">NULL</span>);
|
||||
|
||||
<span style="color: #228b22;">qmckl_tensor</span> <span style="color: #a0522d;">result</span>;
|
||||
result.order = order;
|
||||
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">prod_size</span> = (<span style="color: #228b22;">int64_t</span>) 1;
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">i</span>=0 ; i<order ; ++i) {
|
||||
assert (size[i] > (<span style="color: #228b22;">int64_t</span>) 0);
|
||||
result.size[i] = size[i];
|
||||
prod_size *= size[i];
|
||||
}
|
||||
|
||||
<span style="color: #228b22;">qmckl_memory_info_struct</span> <span style="color: #a0522d;">mem_info</span> = qmckl_memory_info_struct_zero;
|
||||
mem_info.size = prod_size * <span style="color: #a020f0;">sizeof</span>(<span style="color: #228b22;">double</span>);
|
||||
|
||||
result.data = (<span style="color: #228b22;">double</span>*) qmckl_malloc (context, mem_info);
|
||||
|
||||
<span style="color: #a020f0;">if</span> (result.data == <span style="color: #008b8b;">NULL</span>) {
|
||||
memset(&result, 0, <span style="color: #a020f0;">sizeof</span>(qmckl_tensor));
|
||||
}
|
||||
|
||||
<span style="color: #a020f0;">return</span> result;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span>
|
||||
<span style="color: #0000ff;">qmckl_tensor_free</span>( <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<span style="color: #228b22;">qmckl_tensor</span> <span style="color: #a0522d;">tensor</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span>
|
||||
<span style="color: #0000ff;">qmckl_tensor_free</span>( <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<span style="color: #228b22;">qmckl_tensor</span> <span style="color: #a0522d;">tensor</span>)
|
||||
{
|
||||
/* <span style="color: #b22222;">Always true </span>*/
|
||||
assert (tensor.data != <span style="color: #008b8b;">NULL</span>);
|
||||
|
||||
<span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #a0522d;">rc</span>;
|
||||
|
||||
rc = qmckl_free(context, tensor.data);
|
||||
<span style="color: #a020f0;">if</span> (rc != QMCKL_SUCCESS) {
|
||||
<span style="color: #a020f0;">return</span> rc;
|
||||
}
|
||||
|
||||
memset(&tensor, 0, <span style="color: #a020f0;">sizeof</span>(qmckl_tensor));
|
||||
|
||||
<span style="color: #a020f0;">return</span> QMCKL_SUCCESS;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf50984a" class="outline-3">
|
||||
<h3 id="orgf50984a"><span class="section-number-3">1.4</span> Reshaping</h3>
|
||||
<div class="outline-text-3" id="text-1-4">
|
||||
<p>
|
||||
Reshaping occurs in-place and the pointer to the data is copied.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3e18030" class="outline-4">
|
||||
<h4 id="org3e18030"><span class="section-number-4">1.4.1</span> Vector -> Matrix</h4>
|
||||
<div class="outline-text-4" id="text-1-4-1">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_matrix</span>
|
||||
<span style="color: #0000ff;">qmckl_matrix_of_vector</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_vector</span> <span style="color: #a0522d;">vector</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size1</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size2</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Reshapes a vector into a matrix.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_matrix</span>
|
||||
<span style="color: #0000ff;">qmckl_matrix_of_vector</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_vector</span> <span style="color: #a0522d;">vector</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size1</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size2</span>)
|
||||
{
|
||||
/* <span style="color: #b22222;">Always true </span>*/
|
||||
assert (size1 * size2 == vector.size);
|
||||
|
||||
<span style="color: #228b22;">qmckl_matrix</span> <span style="color: #a0522d;">result</span>;
|
||||
|
||||
result.size[0] = size1;
|
||||
result.size[1] = size2;
|
||||
result.data = vector.data;
|
||||
|
||||
<span style="color: #a020f0;">return</span> result;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb86439f" class="outline-4">
|
||||
<h4 id="orgb86439f"><span class="section-number-4">1.4.2</span> Vector -> Tensor</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;">qmckl_tensor</span>
|
||||
<span style="color: #0000ff;">qmckl_tensor_of_vector</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_vector</span> <span style="color: #a0522d;">vector</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">order</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span>* <span style="color: #a0522d;">size</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Reshapes a vector into a tensor.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_tensor</span>
|
||||
<span style="color: #0000ff;">qmckl_tensor_of_vector</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_vector</span> <span style="color: #a0522d;">vector</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">order</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span>* <span style="color: #a0522d;">size</span>)
|
||||
{
|
||||
<span style="color: #228b22;">qmckl_tensor</span> <span style="color: #a0522d;">result</span>;
|
||||
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">prod_size</span> = 1;
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">i</span>=0 ; i<order ; ++i) {
|
||||
result.size[i] = size[i];
|
||||
prod_size *= size[i];
|
||||
}
|
||||
assert (prod_size == vector.size);
|
||||
|
||||
result.data = vector.data;
|
||||
|
||||
<span style="color: #a020f0;">return</span> result;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org541d08a" class="outline-4">
|
||||
<h4 id="org541d08a"><span class="section-number-4">1.4.3</span> Matrix -> Vector</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;">qmckl_vector</span>
|
||||
<span style="color: #0000ff;">qmckl_vector_of_matrix</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_matrix</span> <span style="color: #a0522d;">matrix</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Reshapes a matrix into a vector.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_vector</span>
|
||||
<span style="color: #0000ff;">qmckl_vector_of_matrix</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_matrix</span> <span style="color: #a0522d;">matrix</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size</span>)
|
||||
{
|
||||
/* <span style="color: #b22222;">Always true </span>*/
|
||||
assert (matrix.size[0] * matrix.size[1] == size);
|
||||
|
||||
<span style="color: #228b22;">qmckl_vector</span> <span style="color: #a0522d;">result</span>;
|
||||
|
||||
result.size = size;
|
||||
result.data = matrix.data;
|
||||
|
||||
<span style="color: #a020f0;">return</span> result;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org483208f" class="outline-4">
|
||||
<h4 id="org483208f"><span class="section-number-4">1.4.4</span> Matrix -> Tensor</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;">qmckl_tensor</span>
|
||||
<span style="color: #0000ff;">qmckl_tensor_of_matrix</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_matrix</span> <span style="color: #a0522d;">matrix</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">order</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span>* <span style="color: #a0522d;">size</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Reshapes a matrix into a tensor.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_tensor</span>
|
||||
<span style="color: #0000ff;">qmckl_tensor_of_matrix</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_matrix</span> <span style="color: #a0522d;">matrix</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">order</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span>* <span style="color: #a0522d;">size</span>)
|
||||
{
|
||||
<span style="color: #228b22;">qmckl_tensor</span> <span style="color: #a0522d;">result</span>;
|
||||
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">prod_size</span> = 1;
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">i</span>=0 ; i<order ; ++i) {
|
||||
result.size[i] = size[i];
|
||||
prod_size *= size[i];
|
||||
}
|
||||
assert (prod_size == matrix.size[0] * matrix.size[1]);
|
||||
|
||||
result.data = matrix.data;
|
||||
|
||||
<span style="color: #a020f0;">return</span> result;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5f5e356" class="outline-4">
|
||||
<h4 id="org5f5e356"><span class="section-number-4">1.4.5</span> Tensor -> Vector</h4>
|
||||
<div class="outline-text-4" id="text-1-4-5">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_vector</span>
|
||||
<span style="color: #0000ff;">qmckl_vector_of_tensor</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_tensor</span> <span style="color: #a0522d;">tensor</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Reshapes a tensor into a vector.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_vector</span>
|
||||
<span style="color: #0000ff;">qmckl_vector_of_tensor</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_tensor</span> <span style="color: #a0522d;">tensor</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size</span>)
|
||||
{
|
||||
/* <span style="color: #b22222;">Always true </span>*/
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">prod_size</span> = (<span style="color: #228b22;">int64_t</span>) 1;
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">i</span>=0 ; i<tensor.order ; i++) {
|
||||
prod_size *= tensor.size[i];
|
||||
}
|
||||
assert (prod_size == size);
|
||||
|
||||
<span style="color: #228b22;">qmckl_vector</span> <span style="color: #a0522d;">result</span>;
|
||||
|
||||
result.size = size;
|
||||
result.data = tensor.data;
|
||||
|
||||
<span style="color: #a020f0;">return</span> result;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8c251b3" class="outline-4">
|
||||
<h4 id="org8c251b3"><span class="section-number-4">1.4.6</span> Tensor -> Matrix</h4>
|
||||
<div class="outline-text-4" id="text-1-4-6">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_matrix</span>
|
||||
<span style="color: #0000ff;">qmckl_matrix_of_tensor</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_tensor</span> <span style="color: #a0522d;">tensor</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size1</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size2</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Reshapes a tensor into a vector.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_matrix</span>
|
||||
<span style="color: #0000ff;">qmckl_matrix_of_tensor</span>(<span style="color: #a020f0;">const</span> <span style="color: #228b22;">qmckl_tensor</span> <span style="color: #a0522d;">tensor</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size1</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">size2</span>)
|
||||
{
|
||||
/* <span style="color: #b22222;">Always true </span>*/
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">prod_size</span> = (<span style="color: #228b22;">int64_t</span>) 1;
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">i</span>=0 ; i<tensor.order ; i++) {
|
||||
prod_size *= tensor.size[i];
|
||||
}
|
||||
assert (prod_size == size1 * size2);
|
||||
|
||||
<span style="color: #228b22;">qmckl_matrix</span> <span style="color: #a0522d;">result</span>;
|
||||
|
||||
result.size[0] = size1;
|
||||
result.size[1] = size2;
|
||||
result.data = tensor.data;
|
||||
|
||||
<span style="color: #a020f0;">return</span> result;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org165e8a5" class="outline-3">
|
||||
<h3 id="org165e8a5"><span class="section-number-3">1.5</span> Access macros</h3>
|
||||
<div class="outline-text-3" id="text-1-5">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #483d8b;">#define</span> <span style="color: #0000ff;">qmckl_vec</span>(<span style="color: #a0522d;">v</span>, <span style="color: #a0522d;">i</span>) v.data[i]
|
||||
<span style="color: #483d8b;">#define</span> <span style="color: #0000ff;">qmckl_mat</span>(<span style="color: #a0522d;">m</span>, <span style="color: #a0522d;">i</span>, <span style="color: #a0522d;">j</span>) m.data[(i) + (j)*m.size[0]]
|
||||
|
||||
<span style="color: #483d8b;">#define</span> <span style="color: #0000ff;">qmckl_ten3</span>(<span style="color: #a0522d;">t</span>, <span style="color: #a0522d;">i</span>, <span style="color: #a0522d;">j</span>, <span style="color: #a0522d;">k</span>) t.data[(i) + m.size[0]*((j) + size[1]*(k))]
|
||||
<span style="color: #483d8b;">#define</span> <span style="color: #0000ff;">qmckl_ten4</span>(<span style="color: #a0522d;">t</span>, <span style="color: #a0522d;">i</span>, <span style="color: #a0522d;">j</span>, <span style="color: #a0522d;">k</span>, <span style="color: #a0522d;">l</span>) t.data[(i) + m.size[0]*((j) + size[1]*((k) + size[2]*(l)))]
|
||||
<span style="color: #483d8b;">#define</span> <span style="color: #0000ff;">qmckl_ten5</span>(<span style="color: #a0522d;">t</span>, <span style="color: #a0522d;">i</span>, <span style="color: #a0522d;">j</span>, <span style="color: #a0522d;">k</span>, <span style="color: #a0522d;">l</span>, <span style="color: #a0522d;">m</span>) t.data[(i) + m.size[0]*((j) + size[1]*((k) + size[2]*((l) + size[3]*(m))))]
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8536060" class="outline-3">
|
||||
<h3 id="org8536060"><span class="section-number-3">1.6</span> Tests</h3>
|
||||
<div class="outline-text-3" id="text-1-6">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c">{
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">m</span> = 3;
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">n</span> = 4;
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">p</span> = m*n;
|
||||
<span style="color: #228b22;">qmckl_vector</span> <span style="color: #a0522d;">vec</span> = qmckl_vector_alloc(context, p);
|
||||
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">i</span>=0 ; i<p ; ++i)
|
||||
qmckl_vec(vec, i) = (<span style="color: #228b22;">double</span>) i;
|
||||
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">i</span>=0 ; i<p ; ++i)
|
||||
assert( vec.data[i] == (<span style="color: #228b22;">double</span>) i );
|
||||
|
||||
<span style="color: #228b22;">qmckl_matrix</span> <span style="color: #a0522d;">mat</span> = qmckl_matrix_of_vector(vec, m, n);
|
||||
assert (mat.size[0] == m);
|
||||
assert (mat.size[1] == n);
|
||||
assert (mat.data == vec.data);
|
||||
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">j</span>=0 ; j<n ; ++j)
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">i</span>=0 ; i<m ; ++i)
|
||||
assert ( qmckl_mat(mat, i, j) == qmckl_vec(vec, i+j*m)) ;
|
||||
|
||||
<span style="color: #228b22;">qmckl_vector</span> <span style="color: #a0522d;">vec2</span> = qmckl_vector_of_matrix(mat, p);
|
||||
assert (vec2.size == p);
|
||||
assert (vec2.data == vec.data);
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">i</span>=0 ; i<p ; ++i)
|
||||
assert ( qmckl_vec(vec2, i) == qmckl_vec(vec, i) ) ;
|
||||
|
||||
qmckl_vector_free(context, vec);
|
||||
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-orgc6a76c2" class="outline-2">
|
||||
<h2 id="orgc6a76c2"><span class="section-number-2">2</span> Matrix operations</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
</div>
|
||||
<div id="outline-container-orgf14d402" class="outline-3">
|
||||
<h3 id="orgf14d402"><span class="section-number-3">2.1</span> <code>qmckl_dgemm</code></h3>
|
||||
<div class="outline-text-3" id="text-2-1">
|
||||
<p>
|
||||
Matrix multiplication:
|
||||
</p>
|
||||
@ -360,7 +1042,7 @@ Matrix multiplication:
|
||||
\]
|
||||
</p>
|
||||
|
||||
<table id="org18bdd56" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org1a08b11" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -580,9 +1262,9 @@ Requirements:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf468be2" class="outline-3">
|
||||
<h3 id="orgf468be2"><span class="section-number-3">1.2</span> <code>qmckl_adjugate</code></h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<div id="outline-container-orgb248033" class="outline-3">
|
||||
<h3 id="orgb248033"><span class="section-number-3">2.2</span> <code>qmckl_adjugate</code></h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<p>
|
||||
Given a matrix \(\mathbf{A}\), the adjugate matrix
|
||||
\(\text{adj}(\mathbf{A})\) is the transpose of the cofactors matrix
|
||||
@ -599,7 +1281,7 @@ of \(\mathbf{A}\).
|
||||
See also: <a href="https://en.wikipedia.org/wiki/Adjugate_matrix">https://en.wikipedia.org/wiki/Adjugate_matrix</a>
|
||||
</p>
|
||||
|
||||
<table id="org44112b3" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org35312fb" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -855,7 +1537,7 @@ determinant with the inverse:
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: TREX CoE</p>
|
||||
<p class="date">Created: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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="#org15c6dd1">1. Context handling</a>
|
||||
<li><a href="#org8438c68">1. Context handling</a>
|
||||
<ul>
|
||||
<li><a href="#orgbe05bc6">1.1. Data structure</a></li>
|
||||
<li><a href="#org8f12f93">1.2. Creation</a></li>
|
||||
<li><a href="#orgbc1fcc9">1.3. Locking</a></li>
|
||||
<li><a href="#org40d8c67">1.4. <span class="todo TODO">TODO</span> Copy</a></li>
|
||||
<li><a href="#org4980d6b">1.5. Destroy</a></li>
|
||||
<li><a href="#orge533dab">1.1. Data structure</a></li>
|
||||
<li><a href="#orgaa91a18">1.2. Creation</a></li>
|
||||
<li><a href="#orgcd812e0">1.3. Locking</a></li>
|
||||
<li><a href="#org8880429">1.4. <span class="todo TODO">TODO</span> Copy</a></li>
|
||||
<li><a href="#org58263e4">1.5. Destroy</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org15c6dd1" class="outline-2">
|
||||
<h2 id="org15c6dd1"><span class="section-number-2">1</span> Context handling</h2>
|
||||
<div id="outline-container-org8438c68" class="outline-2">
|
||||
<h2 id="org8438c68"><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="org7fcbd8c"><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="orgffa103f"><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-orgbe05bc6" class="outline-3">
|
||||
<h3 id="orgbe05bc6"><span class="section-number-3">1.1</span> Data structure</h3>
|
||||
<div id="outline-container-orge533dab" class="outline-3">
|
||||
<h3 id="orge533dab"><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="#org8f12f93">qmckl<sub>context</sub><sub>create</sub></a>, <a href="#org4980d6b">qmckl<sub>context</sub><sub>destroy</sub></a> and <a href="#org40d8c67">qmckl<sub>context</sub><sub>copy</sub></a>
|
||||
<a href="#orgaa91a18">qmckl<sub>context</sub><sub>create</sub></a>, <a href="#org58263e4">qmckl<sub>context</sub><sub>destroy</sub></a> and <a href="#org8880429">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-org8f12f93" class="outline-3">
|
||||
<h3 id="org8f12f93"><span class="section-number-3">1.2</span> Creation</h3>
|
||||
<div id="outline-container-orgaa91a18" class="outline-3">
|
||||
<h3 id="orgaa91a18"><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.
|
||||
@ -471,6 +471,9 @@ To create a new context, <code>qmckl_context_create()</code> should be used.
|
||||
ctx->numprec.precision = QMCKL_DEFAULT_PRECISION;
|
||||
ctx->numprec.range = QMCKL_DEFAULT_RANGE;
|
||||
|
||||
rc = qmckl_init_point(context);
|
||||
assert (rc == QMCKL_SUCCESS);
|
||||
|
||||
rc = qmckl_init_electron(context);
|
||||
assert (rc == QMCKL_SUCCESS);
|
||||
|
||||
@ -508,8 +511,8 @@ To create a new context, <code>qmckl_context_create()</code> should be used.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-orgbc1fcc9" class="outline-3">
|
||||
<h3 id="orgbc1fcc9"><span class="section-number-3">1.3</span> Locking</h3>
|
||||
<div id="outline-container-orgcd812e0" class="outline-3">
|
||||
<h3 id="orgcd812e0"><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 +557,8 @@ number of times the thread has locked it is saved in the
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org40d8c67" class="outline-3">
|
||||
<h3 id="org40d8c67"><span class="section-number-3">1.4</span> <span class="todo TODO">TODO</span> Copy</h3>
|
||||
<div id="outline-container-org8880429" class="outline-3">
|
||||
<h3 id="org8880429"><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 +606,8 @@ number of times the thread has locked it is saved in the
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org4980d6b" class="outline-3">
|
||||
<h3 id="org4980d6b"><span class="section-number-3">1.5</span> Destroy</h3>
|
||||
<div id="outline-container-org58263e4" class="outline-3">
|
||||
<h3 id="org58263e4"><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 +661,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: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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,32 +311,32 @@ for the JavaScript code in this tag.
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#orgb21c1b8">1. Context</a>
|
||||
<li><a href="#org6804c58">1. Context</a>
|
||||
<ul>
|
||||
<li><a href="#org36787a0">1.1. Data structure</a></li>
|
||||
<li><a href="#org7924226">1.2. Access functions</a></li>
|
||||
<li><a href="#org1df7e20">1.3. Initialization functions</a></li>
|
||||
<li><a href="#orgd1c18e1">1.4. Fortran Interfaces</a></li>
|
||||
<li><a href="#orgbc7920a">1.5. Test</a></li>
|
||||
<li><a href="#org74d1480">1.1. Data structure</a></li>
|
||||
<li><a href="#orgdd6043d">1.2. Access functions</a></li>
|
||||
<li><a href="#org4be7804">1.3. Initialization functions</a></li>
|
||||
<li><a href="#orgb0eb11c">1.4. Fortran Interfaces</a></li>
|
||||
<li><a href="#org3e8c2e5">1.5. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org270b5d5">2. Computation</a>
|
||||
<li><a href="#org09c4ac6">2. Computation</a>
|
||||
<ul>
|
||||
<li><a href="#org1a2aa50">2.1. Determinant matrix</a>
|
||||
<li><a href="#org020fd47">2.1. Determinant matrix</a>
|
||||
<ul>
|
||||
<li><a href="#org4633d97">2.1.1. Get</a></li>
|
||||
<li><a href="#orgfcef7c7">2.1.2. Provide</a></li>
|
||||
<li><a href="#org81397b4">2.1.3. Compute alpha</a></li>
|
||||
<li><a href="#org234b994">2.1.4. Compute beta</a></li>
|
||||
<li><a href="#orga854451">2.1.5. Test</a></li>
|
||||
<li><a href="#org4289a4a">2.1.1. Get</a></li>
|
||||
<li><a href="#org8e93b5b">2.1.2. Provide</a></li>
|
||||
<li><a href="#orga578f66">2.1.3. Compute alpha</a></li>
|
||||
<li><a href="#orgc830987">2.1.4. Compute beta</a></li>
|
||||
<li><a href="#orgd296242">2.1.5. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org0dd307f">2.2. Inverse of Determinant matrix</a>
|
||||
<li><a href="#org90a7762">2.2. Inverse of Determinant matrix</a>
|
||||
<ul>
|
||||
<li><a href="#org7218e1f">2.2.1. Get</a></li>
|
||||
<li><a href="#org1449046">2.2.2. Provide</a></li>
|
||||
<li><a href="#orge936d0a">2.2.3. Compute alpha</a></li>
|
||||
<li><a href="#orgae4bf50">2.2.4. Compute beta</a></li>
|
||||
<li><a href="#org878b5c5">2.2.1. Get</a></li>
|
||||
<li><a href="#org076d2ea">2.2.2. Provide</a></li>
|
||||
<li><a href="#orgcd8ecaf">2.2.3. Compute alpha</a></li>
|
||||
<li><a href="#orge86372c">2.2.4. Compute beta</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -345,8 +345,8 @@ for the JavaScript code in this tag.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb21c1b8" class="outline-2">
|
||||
<h2 id="orgb21c1b8"><span class="section-number-2">1</span> Context</h2>
|
||||
<div id="outline-container-org6804c58" class="outline-2">
|
||||
<h2 id="org6804c58"><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:
|
||||
@ -528,8 +528,8 @@ Computed data:
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org36787a0" class="outline-3">
|
||||
<h3 id="org36787a0"><span class="section-number-3">1.1</span> Data structure</h3>
|
||||
<div id="outline-container-org74d1480" class="outline-3">
|
||||
<h3 id="org74d1480"><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> {
|
||||
@ -598,8 +598,8 @@ this mechanism.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7924226" class="outline-3">
|
||||
<h3 id="org7924226"><span class="section-number-3">1.2</span> Access functions</h3>
|
||||
<div id="outline-container-orgdd6043d" class="outline-3">
|
||||
<h3 id="orgdd6043d"><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
|
||||
@ -613,8 +613,8 @@ function returns <code>true</code>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1df7e20" class="outline-3">
|
||||
<h3 id="org1df7e20"><span class="section-number-3">1.3</span> Initialization functions</h3>
|
||||
<div id="outline-container-org4be7804" class="outline-3">
|
||||
<h3 id="org4be7804"><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
|
||||
@ -638,24 +638,24 @@ computed to accelerate the calculations.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd1c18e1" class="outline-3">
|
||||
<h3 id="orgd1c18e1"><span class="section-number-3">1.4</span> Fortran Interfaces</h3>
|
||||
<div id="outline-container-orgb0eb11c" class="outline-3">
|
||||
<h3 id="orgb0eb11c"><span class="section-number-3">1.4</span> Fortran Interfaces</h3>
|
||||
</div>
|
||||
<div id="outline-container-orgbc7920a" class="outline-3">
|
||||
<h3 id="orgbc7920a"><span class="section-number-3">1.5</span> Test</h3>
|
||||
<div id="outline-container-org3e8c2e5" class="outline-3">
|
||||
<h3 id="org3e8c2e5"><span class="section-number-3">1.5</span> Test</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org270b5d5" class="outline-2">
|
||||
<h2 id="org270b5d5"><span class="section-number-2">2</span> Computation</h2>
|
||||
<div id="outline-container-org09c4ac6" class="outline-2">
|
||||
<h2 id="org09c4ac6"><span class="section-number-2">2</span> Computation</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
</div>
|
||||
<div id="outline-container-org1a2aa50" class="outline-3">
|
||||
<h3 id="org1a2aa50"><span class="section-number-3">2.1</span> Determinant matrix</h3>
|
||||
<div id="outline-container-org020fd47" class="outline-3">
|
||||
<h3 id="org020fd47"><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-org4633d97" class="outline-4">
|
||||
<h4 id="org4633d97"><span class="section-number-4">2.1.1</span> Get</h4>
|
||||
<div id="outline-container-org4289a4a" class="outline-4">
|
||||
<h4 id="org4289a4a"><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>);
|
||||
@ -665,14 +665,14 @@ computed to accelerate the calculations.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfcef7c7" class="outline-4">
|
||||
<h4 id="orgfcef7c7"><span class="section-number-4">2.1.2</span> Provide</h4>
|
||||
<div id="outline-container-org8e93b5b" class="outline-4">
|
||||
<h4 id="org8e93b5b"><span class="section-number-4">2.1.2</span> Provide</h4>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org81397b4" class="outline-4">
|
||||
<h4 id="org81397b4"><span class="section-number-4">2.1.3</span> Compute alpha</h4>
|
||||
<div id="outline-container-orga578f66" class="outline-4">
|
||||
<h4 id="orga578f66"><span class="section-number-4">2.1.3</span> Compute alpha</h4>
|
||||
<div class="outline-text-4" id="text-2-1-3">
|
||||
<table id="org6d707b4" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgd3d608a" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -846,10 +846,10 @@ computed to accelerate the calculations.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org234b994" class="outline-4">
|
||||
<h4 id="org234b994"><span class="section-number-4">2.1.4</span> Compute beta</h4>
|
||||
<div id="outline-container-orgc830987" class="outline-4">
|
||||
<h4 id="orgc830987"><span class="section-number-4">2.1.4</span> Compute beta</h4>
|
||||
<div class="outline-text-4" id="text-2-1-4">
|
||||
<table id="orgec30043" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org8bc83d6" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1023,18 +1023,18 @@ computed to accelerate the calculations.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga854451" class="outline-4">
|
||||
<h4 id="orga854451"><span class="section-number-4">2.1.5</span> Test</h4>
|
||||
<div id="outline-container-orgd296242" class="outline-4">
|
||||
<h4 id="orgd296242"><span class="section-number-4">2.1.5</span> Test</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0dd307f" class="outline-3">
|
||||
<h3 id="org0dd307f"><span class="section-number-3">2.2</span> Inverse of Determinant matrix</h3>
|
||||
<div id="outline-container-org90a7762" class="outline-3">
|
||||
<h3 id="org90a7762"><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-org7218e1f" class="outline-4">
|
||||
<h4 id="org7218e1f"><span class="section-number-4">2.2.1</span> Get</h4>
|
||||
<div id="outline-container-org878b5c5" class="outline-4">
|
||||
<h4 id="org878b5c5"><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>);
|
||||
@ -1048,14 +1048,14 @@ computed to accelerate the calculations.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1449046" class="outline-4">
|
||||
<h4 id="org1449046"><span class="section-number-4">2.2.2</span> Provide</h4>
|
||||
<div id="outline-container-org076d2ea" class="outline-4">
|
||||
<h4 id="org076d2ea"><span class="section-number-4">2.2.2</span> Provide</h4>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge936d0a" class="outline-4">
|
||||
<h4 id="orge936d0a"><span class="section-number-4">2.2.3</span> Compute alpha</h4>
|
||||
<div id="outline-container-orgcd8ecaf" class="outline-4">
|
||||
<h4 id="orgcd8ecaf"><span class="section-number-4">2.2.3</span> Compute alpha</h4>
|
||||
<div class="outline-text-4" id="text-2-2-3">
|
||||
<table id="org7029c0a" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgb767da5" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1217,10 +1217,10 @@ computed to accelerate the calculations.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgae4bf50" class="outline-4">
|
||||
<h4 id="orgae4bf50"><span class="section-number-4">2.2.4</span> Compute beta</h4>
|
||||
<div id="outline-container-orge86372c" class="outline-4">
|
||||
<h4 id="orge86372c"><span class="section-number-4">2.2.4</span> Compute beta</h4>
|
||||
<div class="outline-text-4" id="text-2-2-4">
|
||||
<table id="org704faf4" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgb7439dd" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1387,7 +1387,7 @@ computed to accelerate the calculations.
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: TREX CoE</p>
|
||||
<p class="date">Created: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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,54 +333,54 @@ for the JavaScript code in this tag.
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org116d8b3">1. Squared distance</a>
|
||||
<li><a href="#orgd5813d3">1. Squared distance</a>
|
||||
<ul>
|
||||
<li><a href="#orgfa30278">1.1. <code>qmckl_distance_sq</code></a>
|
||||
<li><a href="#orgb3b0ab0">1.1. <code>qmckl_distance_sq</code></a>
|
||||
<ul>
|
||||
<li><a href="#orgabdd88a">1.1.1. Performance</a></li>
|
||||
<li><a href="#org99c1ea7">1.1.1. Performance</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgb65234c">2. Distance</a>
|
||||
<li><a href="#org8b5bd19">2. Distance</a>
|
||||
<ul>
|
||||
<li><a href="#org894f639">2.1. <code>qmckl_distance</code></a>
|
||||
<li><a href="#org08c922f">2.1. <code>qmckl_distance</code></a>
|
||||
<ul>
|
||||
<li><a href="#org038c08b">2.1.1. Requirements</a></li>
|
||||
<li><a href="#org83e5ebf">2.1.2. C header</a></li>
|
||||
<li><a href="#orgdc327d1">2.1.3. Source</a></li>
|
||||
<li><a href="#org9ec68f7">2.1.4. Performance</a></li>
|
||||
<li><a href="#org70a16c9">2.1.1. Requirements</a></li>
|
||||
<li><a href="#org307312b">2.1.2. C header</a></li>
|
||||
<li><a href="#org9e1514d">2.1.3. Source</a></li>
|
||||
<li><a href="#org6237e61">2.1.4. Performance</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org11f38c5">3. Rescaled Distance</a>
|
||||
<li><a href="#org13bd115">3. Rescaled Distance</a>
|
||||
<ul>
|
||||
<li><a href="#orga4765f6">3.1. <code>qmckl_distance_rescaled</code></a>
|
||||
<li><a href="#org83a4134">3.1. <code>qmckl_distance_rescaled</code></a>
|
||||
<ul>
|
||||
<li><a href="#org66a65e6">3.1.1. Requirements</a></li>
|
||||
<li><a href="#org4a249c2">3.1.2. C header</a></li>
|
||||
<li><a href="#org09720c7">3.1.3. Source</a></li>
|
||||
<li><a href="#orgcdb3a0b">3.1.4. Performance</a></li>
|
||||
<li><a href="#org81d8738">3.1.1. Requirements</a></li>
|
||||
<li><a href="#org751ce98">3.1.2. C header</a></li>
|
||||
<li><a href="#orgb668efc">3.1.3. Source</a></li>
|
||||
<li><a href="#org9f7d7c7">3.1.4. Performance</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org0e8ea93">4. Rescaled Distance Derivatives</a>
|
||||
<li><a href="#org6b257fa">4. Rescaled Distance Derivatives</a>
|
||||
<ul>
|
||||
<li><a href="#org835160c">4.1. <code>qmckl_distance_rescaled_deriv_e</code></a></li>
|
||||
<li><a href="#orgc93fc67">4.1. <code>qmckl_distance_rescaled_deriv_e</code></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org116d8b3" class="outline-2">
|
||||
<h2 id="org116d8b3"><span class="section-number-2">1</span> Squared distance</h2>
|
||||
<div id="outline-container-orgd5813d3" class="outline-2">
|
||||
<h2 id="orgd5813d3"><span class="section-number-2">1</span> Squared distance</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
</div>
|
||||
<div id="outline-container-orgfa30278" class="outline-3">
|
||||
<h3 id="orgfa30278"><span class="section-number-3">1.1</span> <code>qmckl_distance_sq</code></h3>
|
||||
<div id="outline-container-orgb3b0ab0" class="outline-3">
|
||||
<h3 id="orgb3b0ab0"><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
|
||||
@ -393,7 +393,7 @@ between all pairs of points in two sets, one point within each set:
|
||||
\]
|
||||
</p>
|
||||
|
||||
<table id="orgb36374f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orge67d229" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -659,8 +659,8 @@ Requirements:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgabdd88a" class="outline-4">
|
||||
<h4 id="orgabdd88a"><span class="section-number-4">1.1.1</span> Performance</h4>
|
||||
<div id="outline-container-org99c1ea7" class="outline-4">
|
||||
<h4 id="org99c1ea7"><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
|
||||
@ -670,12 +670,12 @@ transposed.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-orgb65234c" class="outline-2">
|
||||
<h2 id="orgb65234c"><span class="section-number-2">2</span> Distance</h2>
|
||||
<div id="outline-container-org8b5bd19" class="outline-2">
|
||||
<h2 id="org8b5bd19"><span class="section-number-2">2</span> Distance</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
</div>
|
||||
<div id="outline-container-org894f639" class="outline-3">
|
||||
<h3 id="org894f639"><span class="section-number-3">2.1</span> <code>qmckl_distance</code></h3>
|
||||
<div id="outline-container-org08c922f" class="outline-3">
|
||||
<h3 id="org08c922f"><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
|
||||
@ -693,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="orgdc0aaf9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org56d9328" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -794,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-org038c08b" class="outline-4">
|
||||
<h4 id="org038c08b"><span class="section-number-4">2.1.1</span> Requirements</h4>
|
||||
<div id="outline-container-org70a16c9" class="outline-4">
|
||||
<h4 id="org70a16c9"><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>
|
||||
@ -813,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-org83e5ebf" class="outline-4">
|
||||
<h4 id="org83e5ebf"><span class="section-number-4">2.1.2</span> C header</h4>
|
||||
<div id="outline-container-org307312b" class="outline-4">
|
||||
<h4 id="org307312b"><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> (
|
||||
@ -834,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-orgdc327d1" class="outline-4">
|
||||
<h4 id="orgdc327d1"><span class="section-number-4">2.1.3</span> Source</h4>
|
||||
<div id="outline-container-org9e1514d" class="outline-4">
|
||||
<h4 id="org9e1514d"><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;">&</span>
|
||||
@ -1002,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-org9ec68f7" class="outline-4">
|
||||
<h4 id="org9ec68f7"><span class="section-number-4">2.1.4</span> Performance</h4>
|
||||
<div id="outline-container-org6237e61" class="outline-4">
|
||||
<h4 id="org6237e61"><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.
|
||||
@ -1013,12 +1013,12 @@ This function is more efficient when <code>A</code> and <code>B</code> are trans
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org11f38c5" class="outline-2">
|
||||
<h2 id="org11f38c5"><span class="section-number-2">3</span> Rescaled Distance</h2>
|
||||
<div id="outline-container-org13bd115" class="outline-2">
|
||||
<h2 id="org13bd115"><span class="section-number-2">3</span> Rescaled Distance</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
</div>
|
||||
<div id="outline-container-orga4765f6" class="outline-3">
|
||||
<h3 id="orga4765f6"><span class="section-number-3">3.1</span> <code>qmckl_distance_rescaled</code></h3>
|
||||
<div id="outline-container-org83a4134" class="outline-3">
|
||||
<h3 id="org83a4134"><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
|
||||
@ -1036,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="org0887d7f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgfd1db31" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1144,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-org66a65e6" class="outline-4">
|
||||
<h4 id="org66a65e6"><span class="section-number-4">3.1.1</span> Requirements</h4>
|
||||
<div id="outline-container-org81d8738" class="outline-4">
|
||||
<h4 id="org81d8738"><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>
|
||||
@ -1163,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-org4a249c2" class="outline-4">
|
||||
<h4 id="org4a249c2"><span class="section-number-4">3.1.2</span> C header</h4>
|
||||
<div id="outline-container-org751ce98" class="outline-4">
|
||||
<h4 id="org751ce98"><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> (
|
||||
@ -1185,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-org09720c7" class="outline-4">
|
||||
<h4 id="org09720c7"><span class="section-number-4">3.1.3</span> Source</h4>
|
||||
<div id="outline-container-orgb668efc" class="outline-4">
|
||||
<h4 id="orgb668efc"><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;">&</span>
|
||||
@ -1356,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-orgcdb3a0b" class="outline-4">
|
||||
<h4 id="orgcdb3a0b"><span class="section-number-4">3.1.4</span> Performance</h4>
|
||||
<div id="outline-container-org9f7d7c7" class="outline-4">
|
||||
<h4 id="org9f7d7c7"><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.
|
||||
@ -1366,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-org0e8ea93" class="outline-2">
|
||||
<h2 id="org0e8ea93"><span class="section-number-2">4</span> Rescaled Distance Derivatives</h2>
|
||||
<div id="outline-container-org6b257fa" class="outline-2">
|
||||
<h2 id="org6b257fa"><span class="section-number-2">4</span> Rescaled Distance Derivatives</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
</div>
|
||||
<div id="outline-container-org835160c" class="outline-3">
|
||||
<h3 id="org835160c"><span class="section-number-3">4.1</span> <code>qmckl_distance_rescaled_deriv_e</code></h3>
|
||||
<div id="outline-container-orgc93fc67" class="outline-3">
|
||||
<h3 id="orgc93fc67"><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
|
||||
@ -1438,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="orgabfe4e6" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orga637e46" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1776,7 +1776,7 @@ This function is more efficient when <code>A</code> and <code>B</code> are trans
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: TREX CoE</p>
|
||||
<p class="date">Created: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Electrons</title>
|
||||
@ -333,88 +333,88 @@ for the JavaScript code in this tag.
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#orgb83145f">1. Context</a>
|
||||
<li><a href="#org3e58b46">1. Context</a>
|
||||
<ul>
|
||||
<li><a href="#org96090f2">1.1. Data structure</a></li>
|
||||
<li><a href="#org8e9a26a">1.2. Access functions</a>
|
||||
<li><a href="#orgbf27b82">1.1. Data structure</a></li>
|
||||
<li><a href="#org83a3dc6">1.2. Access functions</a>
|
||||
<ul>
|
||||
<li><a href="#orgc201fc7">1.2.1. Number of electrons</a></li>
|
||||
<li><a href="#org3e18b28">1.2.2. Number of walkers</a></li>
|
||||
<li><a href="#orga95bf35">1.2.3. Scaling factors Kappa</a></li>
|
||||
<li><a href="#orgb758365">1.2.4. Electron coordinates</a></li>
|
||||
<li><a href="#org69d1233">1.2.1. Number of electrons</a></li>
|
||||
<li><a href="#org57cfdad">1.2.2. Number of walkers</a></li>
|
||||
<li><a href="#org35d1995">1.2.3. Scaling factors Kappa</a></li>
|
||||
<li><a href="#org5653b5d">1.2.4. Electron coordinates</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org1a0382c">1.3. Initialization functions</a></li>
|
||||
<li><a href="#org4bc1e29">1.4. Test</a></li>
|
||||
<li><a href="#org0955a31">1.3. Initialization functions</a></li>
|
||||
<li><a href="#orge016bca">1.4. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org0965daa">2. Computation</a>
|
||||
<li><a href="#org62a37e2">2. Computation</a>
|
||||
<ul>
|
||||
<li><a href="#orgb49c675">2.1. Electron-electron distances</a>
|
||||
<li><a href="#org6e8aade">2.1. Electron-electron distances</a>
|
||||
<ul>
|
||||
<li><a href="#org8045b80">2.1.1. Get</a></li>
|
||||
<li><a href="#orgb4070b1">2.1.2. Compute</a></li>
|
||||
<li><a href="#org708c547">2.1.3. Test</a></li>
|
||||
<li><a href="#org860f58a">2.1.1. Get</a></li>
|
||||
<li><a href="#org3dfeb9d">2.1.2. Compute</a></li>
|
||||
<li><a href="#org4169296">2.1.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org4e18b95">2.2. Electron-electron rescaled distances</a>
|
||||
<li><a href="#org08c893b">2.2. Electron-electron rescaled distances</a>
|
||||
<ul>
|
||||
<li><a href="#orgfadfa8b">2.2.1. Get</a></li>
|
||||
<li><a href="#org6b625b6">2.2.2. Compute</a></li>
|
||||
<li><a href="#orgc20e028">2.2.3. Test</a></li>
|
||||
<li><a href="#orgf505f33">2.2.1. Get</a></li>
|
||||
<li><a href="#orgd1106c7">2.2.2. Compute</a></li>
|
||||
<li><a href="#org17e10fb">2.2.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org7f14505">2.3. Electron-electron rescaled distance gradients and laplacian with respect to electron coords</a>
|
||||
<li><a href="#org1726beb">2.3. Electron-electron rescaled distance gradients and laplacian with respect to electron coords</a>
|
||||
<ul>
|
||||
<li><a href="#orgcf8343b">2.3.1. Get</a></li>
|
||||
<li><a href="#org892b52a">2.3.2. Compute</a></li>
|
||||
<li><a href="#orgb3a7038">2.3.3. Test</a></li>
|
||||
<li><a href="#org2e427b0">2.3.1. Get</a></li>
|
||||
<li><a href="#org54cb5ff">2.3.2. Compute</a></li>
|
||||
<li><a href="#org6e7371b">2.3.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgf2c75fb">2.4. Electron-electron potential</a>
|
||||
<li><a href="#org7861df2">2.4. Electron-electron potential</a>
|
||||
<ul>
|
||||
<li><a href="#org519c4d6">2.4.1. Get</a></li>
|
||||
<li><a href="#org3ad0754">2.4.2. Compute</a></li>
|
||||
<li><a href="#org51075c6">2.4.3. Test</a></li>
|
||||
<li><a href="#org658675d">2.4.1. Get</a></li>
|
||||
<li><a href="#orgcf7673e">2.4.2. Compute</a></li>
|
||||
<li><a href="#orgba712d3">2.4.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org74cc5f8">2.5. Electron-nucleus distances</a>
|
||||
<li><a href="#org698e6e1">2.5. Electron-nucleus distances</a>
|
||||
<ul>
|
||||
<li><a href="#org6b95231">2.5.1. Get</a></li>
|
||||
<li><a href="#orgd74115e">2.5.2. Compute</a></li>
|
||||
<li><a href="#org62e9cbe">2.5.3. Test</a></li>
|
||||
<li><a href="#org8d235c8">2.5.1. Get</a></li>
|
||||
<li><a href="#orgb144448">2.5.2. Compute</a></li>
|
||||
<li><a href="#orgec2e6b3">2.5.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org017e8d1">2.6. Electron-nucleus rescaled distances</a>
|
||||
<li><a href="#org083d21c">2.6. Electron-nucleus rescaled distances</a>
|
||||
<ul>
|
||||
<li><a href="#org54a247b">2.6.1. Get</a></li>
|
||||
<li><a href="#orgb8c4aec">2.6.2. Compute</a></li>
|
||||
<li><a href="#org20cec44">2.6.3. Test</a></li>
|
||||
<li><a href="#orgab52c71">2.6.1. Get</a></li>
|
||||
<li><a href="#org76a874d">2.6.2. Compute</a></li>
|
||||
<li><a href="#orge0205ca">2.6.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org4503734">2.7. Electron-nucleus rescaled distance gradients and laplacian with respect to electron coords</a>
|
||||
<li><a href="#org94bc4fc">2.7. Electron-nucleus rescaled distance gradients and laplacian with respect to electron coords</a>
|
||||
<ul>
|
||||
<li><a href="#org8d45312">2.7.1. Get</a></li>
|
||||
<li><a href="#org06c3f52">2.7.2. Compute</a></li>
|
||||
<li><a href="#orgb8ebde3">2.7.3. Test</a></li>
|
||||
<li><a href="#org282bcf1">2.7.1. Get</a></li>
|
||||
<li><a href="#org97b5698">2.7.2. Compute</a></li>
|
||||
<li><a href="#orgf4e8b60">2.7.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org701b72e">2.8. Electron-nucleus potential</a>
|
||||
<li><a href="#orgcb6c584">2.8. Electron-nucleus potential</a>
|
||||
<ul>
|
||||
<li><a href="#org314131a">2.8.1. Get</a></li>
|
||||
<li><a href="#org52c5912">2.8.2. Compute</a></li>
|
||||
<li><a href="#orge7b36c7">2.8.3. Test</a></li>
|
||||
<li><a href="#orgffd8a87">2.8.1. Get</a></li>
|
||||
<li><a href="#orga2fa0c9">2.8.2. Compute</a></li>
|
||||
<li><a href="#orgb7e89cc">2.8.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgb78dcda">2.9. Generate initial coordinates</a></li>
|
||||
<li><a href="#org7326c33">2.9. Generate initial coordinates</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb83145f" class="outline-2">
|
||||
<h2 id="orgb83145f"><span class="section-number-2">1</span> Context</h2>
|
||||
<div id="outline-container-org3e58b46" class="outline-2">
|
||||
<h2 id="org3e58b46"><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:
|
||||
@ -627,8 +627,8 @@ Computed data:
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org96090f2" class="outline-3">
|
||||
<h3 id="org96090f2"><span class="section-number-3">1.1</span> Data structure</h3>
|
||||
<div id="outline-container-orgbf27b82" class="outline-3">
|
||||
<h3 id="orgbf27b82"><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_electron_struct</span> {
|
||||
@ -707,8 +707,8 @@ this mechanism.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8e9a26a" class="outline-3">
|
||||
<h3 id="org8e9a26a"><span class="section-number-3">1.2</span> Access functions</h3>
|
||||
<div id="outline-container-org83a3dc6" class="outline-3">
|
||||
<h3 id="org83a3dc6"><span class="section-number-3">1.2</span> Access functions</h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<p>
|
||||
Access functions return <code>QMCKL_SUCCESS</code> when the data has been
|
||||
@ -720,12 +720,12 @@ contains the requested data. Otherwise, this variable is untouched.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgc201fc7" class="outline-4">
|
||||
<h4 id="orgc201fc7"><span class="section-number-4">1.2.1</span> Number of electrons</h4>
|
||||
<div id="outline-container-org69d1233" class="outline-4">
|
||||
<h4 id="org69d1233"><span class="section-number-4">1.2.1</span> Number of electrons</h4>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3e18b28" class="outline-4">
|
||||
<h4 id="org3e18b28"><span class="section-number-4">1.2.2</span> Number of walkers</h4>
|
||||
<div id="outline-container-org57cfdad" class="outline-4">
|
||||
<h4 id="org57cfdad"><span class="section-number-4">1.2.2</span> Number of walkers</h4>
|
||||
<div class="outline-text-4" id="text-1-2-2">
|
||||
<p>
|
||||
A walker is a set of electron coordinates that are arguments of
|
||||
@ -734,12 +734,12 @@ the wave function. <code>walk_num</code> is the number of walkers.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga95bf35" class="outline-4">
|
||||
<h4 id="orga95bf35"><span class="section-number-4">1.2.3</span> Scaling factors Kappa</h4>
|
||||
<div id="outline-container-org35d1995" class="outline-4">
|
||||
<h4 id="org35d1995"><span class="section-number-4">1.2.3</span> Scaling factors Kappa</h4>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb758365" class="outline-4">
|
||||
<h4 id="orgb758365"><span class="section-number-4">1.2.4</span> Electron coordinates</h4>
|
||||
<div id="outline-container-org5653b5d" class="outline-4">
|
||||
<h4 id="org5653b5d"><span class="section-number-4">1.2.4</span> Electron coordinates</h4>
|
||||
<div class="outline-text-4" id="text-1-2-4">
|
||||
<p>
|
||||
Returns the current electron coordinates. The pointer is assumed
|
||||
@ -783,8 +783,8 @@ The order of the indices is:
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org1a0382c" class="outline-3">
|
||||
<h3 id="org1a0382c"><span class="section-number-3">1.3</span> Initialization functions</h3>
|
||||
<div id="outline-container-org0955a31" class="outline-3">
|
||||
<h3 id="org0955a31"><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 electrons in the context, the
|
||||
@ -872,8 +872,8 @@ in the context.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org4bc1e29" class="outline-3">
|
||||
<h3 id="org4bc1e29"><span class="section-number-3">1.4</span> Test</h3>
|
||||
<div id="outline-container-orge016bca" class="outline-3">
|
||||
<h3 id="orge016bca"><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: #b22222;">Reference input data </span>*/
|
||||
@ -979,8 +979,8 @@ rc = qmckl_get_electron_coord (context, <span style="color: #8b2252;">'N'</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0965daa" class="outline-2">
|
||||
<h2 id="org0965daa"><span class="section-number-2">2</span> Computation</h2>
|
||||
<div id="outline-container-org62a37e2" class="outline-2">
|
||||
<h2 id="org62a37e2"><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
|
||||
@ -993,12 +993,12 @@ current date is stored.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb49c675" class="outline-3">
|
||||
<h3 id="orgb49c675"><span class="section-number-3">2.1</span> Electron-electron distances</h3>
|
||||
<div id="outline-container-org6e8aade" class="outline-3">
|
||||
<h3 id="org6e8aade"><span class="section-number-3">2.1</span> Electron-electron distances</h3>
|
||||
<div class="outline-text-3" id="text-2-1">
|
||||
</div>
|
||||
<div id="outline-container-org8045b80" class="outline-4">
|
||||
<h4 id="org8045b80"><span class="section-number-4">2.1.1</span> Get</h4>
|
||||
<div id="outline-container-org860f58a" class="outline-4">
|
||||
<h4 id="org860f58a"><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_electron_ee_distance</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;">distance</span>);
|
||||
@ -1007,10 +1007,10 @@ current date is stored.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb4070b1" class="outline-4">
|
||||
<h4 id="orgb4070b1"><span class="section-number-4">2.1.2</span> Compute</h4>
|
||||
<div id="outline-container-org3dfeb9d" class="outline-4">
|
||||
<h4 id="org3dfeb9d"><span class="section-number-4">2.1.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-1-2">
|
||||
<table id="orgaa4f47e" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org68ca9fd" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1114,8 +1114,8 @@ current date is stored.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org708c547" class="outline-4">
|
||||
<h4 id="org708c547"><span class="section-number-4">2.1.3</span> Test</h4>
|
||||
<div id="outline-container-org4169296" class="outline-4">
|
||||
<h4 id="org4169296"><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: #0000ff;">assert</span>(<span style="color: #228b22;">qmckl_electron_provided</span>(<span style="color: #a0522d;">context</span>));
|
||||
@ -1149,8 +1149,8 @@ rc = qmckl_get_electron_ee_distance(context, ee_distance);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org4e18b95" class="outline-3">
|
||||
<h3 id="org4e18b95"><span class="section-number-3">2.2</span> Electron-electron rescaled distances</h3>
|
||||
<div id="outline-container-org08c893b" class="outline-3">
|
||||
<h3 id="org08c893b"><span class="section-number-3">2.2</span> Electron-electron rescaled distances</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<p>
|
||||
<code>ee_distance_rescaled</code> stores the matrix of the rescaled distances between all
|
||||
@ -1168,8 +1168,8 @@ where \(C_{ij}\) is the matrix of electron-electron distances.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfadfa8b" class="outline-4">
|
||||
<h4 id="orgfadfa8b"><span class="section-number-4">2.2.1</span> Get</h4>
|
||||
<div id="outline-container-orgf505f33" class="outline-4">
|
||||
<h4 id="orgf505f33"><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_electron_ee_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: #a020f0;">const</span> <span style="color: #a0522d;">distance_rescaled</span>);
|
||||
@ -1178,10 +1178,10 @@ where \(C_{ij}\) is the matrix of electron-electron distances.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6b625b6" class="outline-4">
|
||||
<h4 id="org6b625b6"><span class="section-number-4">2.2.2</span> Compute</h4>
|
||||
<div id="outline-container-orgd1106c7" class="outline-4">
|
||||
<h4 id="orgd1106c7"><span class="section-number-4">2.2.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-2-2">
|
||||
<table id="org4cbe282" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org25dc7f7" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1294,8 +1294,8 @@ where \(C_{ij}\) is the matrix of electron-electron distances.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgc20e028" class="outline-4">
|
||||
<h4 id="orgc20e028"><span class="section-number-4">2.2.3</span> Test</h4>
|
||||
<div id="outline-container-org17e10fb" class="outline-4">
|
||||
<h4 id="org17e10fb"><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: #0000ff;">assert</span>(<span style="color: #228b22;">qmckl_electron_provided</span>(<span style="color: #a0522d;">context</span>));
|
||||
@ -1329,8 +1329,8 @@ rc = qmckl_get_electron_ee_distance_rescaled(context, ee_distance_rescaled);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7f14505" class="outline-3">
|
||||
<h3 id="org7f14505"><span class="section-number-3">2.3</span> Electron-electron rescaled distance gradients and laplacian with respect to electron coords</h3>
|
||||
<div id="outline-container-org1726beb" class="outline-3">
|
||||
<h3 id="org1726beb"><span class="section-number-3">2.3</span> Electron-electron rescaled distance gradients and laplacian with respect to electron coords</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<p>
|
||||
The rescaled distances which is given as \(R = (1 - \exp{-\kappa r})/\kappa\)
|
||||
@ -1342,8 +1342,8 @@ gives the Laplacian \(\partial x^2 + \partial y^2 + \partial z^2\).
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgcf8343b" class="outline-4">
|
||||
<h4 id="orgcf8343b"><span class="section-number-4">2.3.1</span> Get</h4>
|
||||
<div id="outline-container-org2e427b0" class="outline-4">
|
||||
<h4 id="org2e427b0"><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_electron_ee_distance_rescaled_deriv_e</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;">distance_rescaled_deriv_e</span>);
|
||||
@ -1352,10 +1352,10 @@ gives the Laplacian \(\partial x^2 + \partial y^2 + \partial z^2\).
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org892b52a" class="outline-4">
|
||||
<h4 id="org892b52a"><span class="section-number-4">2.3.2</span> Compute</h4>
|
||||
<div id="outline-container-org54cb5ff" class="outline-4">
|
||||
<h4 id="org54cb5ff"><span class="section-number-4">2.3.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-3-2">
|
||||
<table id="orgbcd7871" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org8336faf" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1468,8 +1468,8 @@ gives the Laplacian \(\partial x^2 + \partial y^2 + \partial z^2\).
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb3a7038" class="outline-4">
|
||||
<h4 id="orgb3a7038"><span class="section-number-4">2.3.3</span> Test</h4>
|
||||
<div id="outline-container-org6e7371b" class="outline-4">
|
||||
<h4 id="org6e7371b"><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: #0000ff;">assert</span>(<span style="color: #228b22;">qmckl_electron_provided</span>(<span style="color: #a0522d;">context</span>));
|
||||
@ -1504,8 +1504,8 @@ rc = qmckl_get_electron_ee_distance_rescaled_deriv_e(context, ee_distance_rescal
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf2c75fb" class="outline-3">
|
||||
<h3 id="orgf2c75fb"><span class="section-number-3">2.4</span> Electron-electron potential</h3>
|
||||
<div id="outline-container-org7861df2" class="outline-3">
|
||||
<h3 id="org7861df2"><span class="section-number-3">2.4</span> Electron-electron potential</h3>
|
||||
<div class="outline-text-3" id="text-2-4">
|
||||
<p>
|
||||
<code>ee_pot</code> calculates the <code>ee</code> potential energy.
|
||||
@ -1523,8 +1523,8 @@ distance.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org519c4d6" class="outline-4">
|
||||
<h4 id="org519c4d6"><span class="section-number-4">2.4.1</span> Get</h4>
|
||||
<div id="outline-container-org658675d" class="outline-4">
|
||||
<h4 id="org658675d"><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_electron_ee_potential</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;">ee_pot</span>);
|
||||
@ -1533,10 +1533,10 @@ distance.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3ad0754" class="outline-4">
|
||||
<h4 id="org3ad0754"><span class="section-number-4">2.4.2</span> Compute</h4>
|
||||
<div id="outline-container-orgcf7673e" class="outline-4">
|
||||
<h4 id="orgcf7673e"><span class="section-number-4">2.4.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-4-2">
|
||||
<table id="orgcd98d82" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org3875992" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1652,8 +1652,8 @@ distance.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org51075c6" class="outline-4">
|
||||
<h4 id="org51075c6"><span class="section-number-4">2.4.3</span> Test</h4>
|
||||
<div id="outline-container-orgba712d3" class="outline-4">
|
||||
<h4 id="orgba712d3"><span class="section-number-4">2.4.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-4-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">double</span> <span style="color: #a0522d;">ee_pot</span>[walk_num];
|
||||
@ -1665,12 +1665,12 @@ rc = qmckl_get_electron_ee_potential(context, &(ee_pot[0]));
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org74cc5f8" class="outline-3">
|
||||
<h3 id="org74cc5f8"><span class="section-number-3">2.5</span> Electron-nucleus distances</h3>
|
||||
<div id="outline-container-org698e6e1" class="outline-3">
|
||||
<h3 id="org698e6e1"><span class="section-number-3">2.5</span> Electron-nucleus distances</h3>
|
||||
<div class="outline-text-3" id="text-2-5">
|
||||
</div>
|
||||
<div id="outline-container-org6b95231" class="outline-4">
|
||||
<h4 id="org6b95231"><span class="section-number-4">2.5.1</span> Get</h4>
|
||||
<div id="outline-container-org8d235c8" class="outline-4">
|
||||
<h4 id="org8d235c8"><span class="section-number-4">2.5.1</span> Get</h4>
|
||||
<div class="outline-text-4" id="text-2-5-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_electron_en_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>);
|
||||
@ -1679,10 +1679,10 @@ rc = qmckl_get_electron_ee_potential(context, &(ee_pot[0]));
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd74115e" class="outline-4">
|
||||
<h4 id="orgd74115e"><span class="section-number-4">2.5.2</span> Compute</h4>
|
||||
<div id="outline-container-orgb144448" class="outline-4">
|
||||
<h4 id="orgb144448"><span class="section-number-4">2.5.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-5-2">
|
||||
<table id="org75b8565" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org8868ac5" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1807,8 +1807,8 @@ rc = qmckl_get_electron_ee_potential(context, &(ee_pot[0]));
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org62e9cbe" class="outline-4">
|
||||
<h4 id="org62e9cbe"><span class="section-number-4">2.5.3</span> Test</h4>
|
||||
<div id="outline-container-orgec2e6b3" class="outline-4">
|
||||
<h4 id="orgec2e6b3"><span class="section-number-4">2.5.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-5-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c">
|
||||
@ -1856,8 +1856,8 @@ rc = qmckl_get_electron_en_distance(context, &(en_distance[0][0][0]));
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org017e8d1" class="outline-3">
|
||||
<h3 id="org017e8d1"><span class="section-number-3">2.6</span> Electron-nucleus rescaled distances</h3>
|
||||
<div id="outline-container-org083d21c" class="outline-3">
|
||||
<h3 id="org083d21c"><span class="section-number-3">2.6</span> Electron-nucleus rescaled distances</h3>
|
||||
<div class="outline-text-3" id="text-2-6">
|
||||
<p>
|
||||
<code>en_distance_rescaled</code> stores the matrix of the rescaled distances between
|
||||
@ -1875,8 +1875,8 @@ where \(C_{ij}\) is the matrix of electron-nucleus distances.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org54a247b" class="outline-4">
|
||||
<h4 id="org54a247b"><span class="section-number-4">2.6.1</span> Get</h4>
|
||||
<div id="outline-container-orgab52c71" class="outline-4">
|
||||
<h4 id="orgab52c71"><span class="section-number-4">2.6.1</span> Get</h4>
|
||||
<div class="outline-text-4" id="text-2-6-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_electron_en_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>);
|
||||
@ -1885,10 +1885,10 @@ where \(C_{ij}\) is the matrix of electron-nucleus distances.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb8c4aec" class="outline-4">
|
||||
<h4 id="orgb8c4aec"><span class="section-number-4">2.6.2</span> Compute</h4>
|
||||
<div id="outline-container-org76a874d" class="outline-4">
|
||||
<h4 id="org76a874d"><span class="section-number-4">2.6.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-6-2">
|
||||
<table id="org494040c" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org8169d07" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -2028,8 +2028,8 @@ where \(C_{ij}\) is the matrix of electron-nucleus distances.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org20cec44" class="outline-4">
|
||||
<h4 id="org20cec44"><span class="section-number-4">2.6.3</span> Test</h4>
|
||||
<div id="outline-container-orge0205ca" class="outline-4">
|
||||
<h4 id="orge0205ca"><span class="section-number-4">2.6.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-6-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c">
|
||||
@ -2077,8 +2077,8 @@ rc = qmckl_get_electron_en_distance_rescaled(context, &(en_distance_rescaled
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org4503734" class="outline-3">
|
||||
<h3 id="org4503734"><span class="section-number-3">2.7</span> Electron-nucleus rescaled distance gradients and laplacian with respect to electron coords</h3>
|
||||
<div id="outline-container-org94bc4fc" class="outline-3">
|
||||
<h3 id="org94bc4fc"><span class="section-number-3">2.7</span> Electron-nucleus rescaled distance gradients and laplacian with respect to electron coords</h3>
|
||||
<div class="outline-text-3" id="text-2-7">
|
||||
<p>
|
||||
The rescaled distances which is given as \(R = (1 - \exp{-\kappa r})/\kappa\)
|
||||
@ -2090,8 +2090,8 @@ gives the Laplacian \(\partial x^2 + \partial y^2 + \partial z^2\).
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8d45312" class="outline-4">
|
||||
<h4 id="org8d45312"><span class="section-number-4">2.7.1</span> Get</h4>
|
||||
<div id="outline-container-org282bcf1" class="outline-4">
|
||||
<h4 id="org282bcf1"><span class="section-number-4">2.7.1</span> Get</h4>
|
||||
<div class="outline-text-4" id="text-2-7-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_electron_en_distance_rescaled_deriv_e</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_deriv_e</span>);
|
||||
@ -2100,10 +2100,10 @@ gives the Laplacian \(\partial x^2 + \partial y^2 + \partial z^2\).
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org06c3f52" class="outline-4">
|
||||
<h4 id="org06c3f52"><span class="section-number-4">2.7.2</span> Compute</h4>
|
||||
<div id="outline-container-org97b5698" class="outline-4">
|
||||
<h4 id="org97b5698"><span class="section-number-4">2.7.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-7-2">
|
||||
<table id="org4628bdb" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org48b8816" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -2244,8 +2244,8 @@ gives the Laplacian \(\partial x^2 + \partial y^2 + \partial z^2\).
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb8ebde3" class="outline-4">
|
||||
<h4 id="orgb8ebde3"><span class="section-number-4">2.7.3</span> Test</h4>
|
||||
<div id="outline-container-orgf4e8b60" class="outline-4">
|
||||
<h4 id="orgf4e8b60"><span class="section-number-4">2.7.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-7-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c">
|
||||
@ -2297,8 +2297,8 @@ rc = qmckl_get_electron_en_distance_rescaled_deriv_e(context, &(en_distance_
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org701b72e" class="outline-3">
|
||||
<h3 id="org701b72e"><span class="section-number-3">2.8</span> Electron-nucleus potential</h3>
|
||||
<div id="outline-container-orgcb6c584" class="outline-3">
|
||||
<h3 id="orgcb6c584"><span class="section-number-3">2.8</span> Electron-nucleus potential</h3>
|
||||
<div class="outline-text-3" id="text-2-8">
|
||||
<p>
|
||||
<code>en_potential</code> stores the <code>en</code> potential energy
|
||||
@ -2316,8 +2316,8 @@ distance and \[Z_A\] is the nuclear charge.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org314131a" class="outline-4">
|
||||
<h4 id="org314131a"><span class="section-number-4">2.8.1</span> Get</h4>
|
||||
<div id="outline-container-orgffd8a87" class="outline-4">
|
||||
<h4 id="orgffd8a87"><span class="section-number-4">2.8.1</span> Get</h4>
|
||||
<div class="outline-text-4" id="text-2-8-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_electron_en_potential</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;">en_pot</span>);
|
||||
@ -2326,10 +2326,10 @@ distance and \[Z_A\] is the nuclear charge.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org52c5912" class="outline-4">
|
||||
<h4 id="org52c5912"><span class="section-number-4">2.8.2</span> Compute</h4>
|
||||
<div id="outline-container-orga2fa0c9" class="outline-4">
|
||||
<h4 id="orga2fa0c9"><span class="section-number-4">2.8.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-8-2">
|
||||
<table id="org349d0b1" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgf71e7ef" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -2463,8 +2463,8 @@ distance and \[Z_A\] is the nuclear charge.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge7b36c7" class="outline-4">
|
||||
<h4 id="orge7b36c7"><span class="section-number-4">2.8.3</span> Test</h4>
|
||||
<div id="outline-container-orgb7e89cc" class="outline-4">
|
||||
<h4 id="orgb7e89cc"><span class="section-number-4">2.8.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-8-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">double</span> <span style="color: #a0522d;">en_pot</span>[walk_num];
|
||||
@ -2477,14 +2477,14 @@ rc = qmckl_get_electron_en_potential(context, &(en_pot[0]));
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb78dcda" class="outline-3">
|
||||
<h3 id="orgb78dcda"><span class="section-number-3">2.9</span> Generate initial coordinates</h3>
|
||||
<div id="outline-container-org7326c33" class="outline-3">
|
||||
<h3 id="org7326c33"><span class="section-number-3">2.9</span> Generate initial coordinates</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: TREX CoE</p>
|
||||
<p class="date">Created: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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="#org484ee5d">1. Decoding errors</a></li>
|
||||
<li><a href="#org915970a">2. Data structure in context</a></li>
|
||||
<li><a href="#orge7ec764">3. Updating errors in the context</a></li>
|
||||
<li><a href="#org3eac50c">4. Get the error</a></li>
|
||||
<li><a href="#orgaae7d4b">5. Failing</a></li>
|
||||
<li><a href="#orgef43419">1. Decoding errors</a></li>
|
||||
<li><a href="#org35e356f">2. Data structure in context</a></li>
|
||||
<li><a href="#orgae6e1f5">3. Updating errors in the context</a></li>
|
||||
<li><a href="#orgcd7c506">4. Get the error</a></li>
|
||||
<li><a href="#org6b90e77">5. Failing</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org484ee5d" class="outline-2">
|
||||
<h2 id="org484ee5d"><span class="section-number-2">1</span> Decoding errors</h2>
|
||||
<div id="outline-container-orgef43419" class="outline-2">
|
||||
<h2 id="orgef43419"><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-org915970a" class="outline-2">
|
||||
<h2 id="org915970a"><span class="section-number-2">2</span> Data structure in context</h2>
|
||||
<div id="outline-container-org35e356f" class="outline-2">
|
||||
<h2 id="org35e356f"><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-orge7ec764" class="outline-2">
|
||||
<h2 id="orge7ec764"><span class="section-number-2">3</span> Updating errors in the context</h2>
|
||||
<div id="outline-container-orgae6e1f5" class="outline-2">
|
||||
<h2 id="orgae6e1f5"><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-org3eac50c" class="outline-2">
|
||||
<h2 id="org3eac50c"><span class="section-number-2">4</span> Get the error</h2>
|
||||
<div id="outline-container-orgcd7c506" class="outline-2">
|
||||
<h2 id="orgcd7c506"><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-orgaae7d4b" class="outline-2">
|
||||
<h2 id="orgaae7d4b"><span class="section-number-2">5</span> Failing</h2>
|
||||
<div id="outline-container-org6b90e77" class="outline-2">
|
||||
<h2 id="org6b90e77"><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: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Jastrow Factor</title>
|
||||
@ -333,100 +333,100 @@ for the JavaScript code in this tag.
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org49230e9">1. Context</a>
|
||||
<li><a href="#orgf9e66bc">1. Context</a>
|
||||
<ul>
|
||||
<li><a href="#orgbfd4b96">1.1. Data structure</a></li>
|
||||
<li><a href="#org8bba57e">1.2. Access functions</a></li>
|
||||
<li><a href="#org2c5368a">1.3. Initialization functions</a></li>
|
||||
<li><a href="#org1b7a3ed">1.4. Test</a></li>
|
||||
<li><a href="#orge3aa037">1.1. Data structure</a></li>
|
||||
<li><a href="#org380732f">1.2. Access functions</a></li>
|
||||
<li><a href="#org97eb43c">1.3. Initialization functions</a></li>
|
||||
<li><a href="#orgcea8e46">1.4. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgeefd33e">2. Computation</a>
|
||||
<li><a href="#org99bc23e">2. Computation</a>
|
||||
<ul>
|
||||
<li><a href="#org1f1a6aa">2.1. Asymptotic component for \(f_{ee}\)</a>
|
||||
<li><a href="#orgd822147">2.1. Asymptotic component for \(f_{ee}\)</a>
|
||||
<ul>
|
||||
<li><a href="#org7c3cfbb">2.1.1. Get</a></li>
|
||||
<li><a href="#org0ffc039">2.1.2. Compute</a></li>
|
||||
<li><a href="#orga6a6eb1">2.1.3. Test</a></li>
|
||||
<li><a href="#orgfb3c174">2.1.1. Get</a></li>
|
||||
<li><a href="#org358e810">2.1.2. Compute</a></li>
|
||||
<li><a href="#orge6e5ac4">2.1.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org0057d2d">2.2. Electron-electron component \(f_{ee}\)</a>
|
||||
<li><a href="#org297b8b9">2.2. Electron-electron component \(f_{ee}\)</a>
|
||||
<ul>
|
||||
<li><a href="#orgbb741b8">2.2.1. Get</a></li>
|
||||
<li><a href="#orgba645d5">2.2.2. Compute</a></li>
|
||||
<li><a href="#org4454c5f">2.2.3. Test</a></li>
|
||||
<li><a href="#orgc6c56d8">2.2.1. Get</a></li>
|
||||
<li><a href="#org4b0da7a">2.2.2. Compute</a></li>
|
||||
<li><a href="#org07ffda4">2.2.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org10ce5d8">2.3. Electron-electron component derivative \(f'_{ee}\)</a>
|
||||
<li><a href="#org411e2af">2.3. Electron-electron component derivative \(f'_{ee}\)</a>
|
||||
<ul>
|
||||
<li><a href="#orgb05a788">2.3.1. Get</a></li>
|
||||
<li><a href="#orga2dff94">2.3.2. Compute</a></li>
|
||||
<li><a href="#org005fd51">2.3.3. Test</a></li>
|
||||
<li><a href="#orgb23b048">2.3.1. Get</a></li>
|
||||
<li><a href="#orge2be003">2.3.2. Compute</a></li>
|
||||
<li><a href="#org319af6a">2.3.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgbfdd21e">2.4. Electron-nucleus component \(f_{en}\)</a>
|
||||
<li><a href="#org4e7a9e6">2.4. Electron-nucleus component \(f_{en}\)</a>
|
||||
<ul>
|
||||
<li><a href="#org8aa83cf">2.4.1. Get</a></li>
|
||||
<li><a href="#orgfe8999f">2.4.2. Compute</a></li>
|
||||
<li><a href="#org9cd7a54">2.4.3. Test</a></li>
|
||||
<li><a href="#org3b287ee">2.4.1. Get</a></li>
|
||||
<li><a href="#org0fdc59a">2.4.2. Compute</a></li>
|
||||
<li><a href="#orgf7d0af0">2.4.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org2c4e232">2.5. Electron-nucleus component derivative \(f'_{en}\)</a>
|
||||
<li><a href="#org21655cb">2.5. Electron-nucleus component derivative \(f'_{en}\)</a>
|
||||
<ul>
|
||||
<li><a href="#org173ae24">2.5.1. Get</a></li>
|
||||
<li><a href="#org78090e2">2.5.2. Compute</a></li>
|
||||
<li><a href="#org968dbe4">2.5.3. Test</a></li>
|
||||
<li><a href="#org54636ef">2.5.1. Get</a></li>
|
||||
<li><a href="#org5aa6c00">2.5.2. Compute</a></li>
|
||||
<li><a href="#orgcf0d3f0">2.5.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgd221172">2.6. Electron-electron rescaled distances for each order</a>
|
||||
<li><a href="#orgb96ffaf">2.6. Electron-electron rescaled distances for each order</a>
|
||||
<ul>
|
||||
<li><a href="#org6515c93">2.6.1. Get</a></li>
|
||||
<li><a href="#orgc4bf231">2.6.2. Compute</a></li>
|
||||
<li><a href="#orgc87875a">2.6.3. Test</a></li>
|
||||
<li><a href="#org2040c55">2.6.1. Get</a></li>
|
||||
<li><a href="#orga5b2bec">2.6.2. Compute</a></li>
|
||||
<li><a href="#org7ec9477">2.6.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgcdd8a64">2.7. Electron-electron rescaled distances for each order and derivatives</a>
|
||||
<li><a href="#org97e4092">2.7. Electron-electron rescaled distances for each order and derivatives</a>
|
||||
<ul>
|
||||
<li><a href="#org045a995">2.7.1. Get</a></li>
|
||||
<li><a href="#orge1da98f">2.7.2. Compute</a></li>
|
||||
<li><a href="#org03808c0">2.7.3. Test</a></li>
|
||||
<li><a href="#orgb90045c">2.7.1. Get</a></li>
|
||||
<li><a href="#orgb191e2b">2.7.2. Compute</a></li>
|
||||
<li><a href="#orgcdd9619">2.7.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org3a45111">2.8. Electron-nucleus rescaled distances for each order</a>
|
||||
<li><a href="#org575bca6">2.8. Electron-nucleus rescaled distances for each order</a>
|
||||
<ul>
|
||||
<li><a href="#orgfbc5fce">2.8.1. Get</a></li>
|
||||
<li><a href="#org030fea3">2.8.2. Compute</a></li>
|
||||
<li><a href="#org2c3c6ea">2.8.3. Test</a></li>
|
||||
<li><a href="#org4313e4b">2.8.1. Get</a></li>
|
||||
<li><a href="#org2607c1a">2.8.2. Compute</a></li>
|
||||
<li><a href="#org2f82f0c">2.8.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org069e403">2.9. Electron-nucleus rescaled distances for each order and derivatives</a>
|
||||
<li><a href="#orgc64c055">2.9. Electron-nucleus rescaled distances for each order and derivatives</a>
|
||||
<ul>
|
||||
<li><a href="#org7ed33c7">2.9.1. Get</a></li>
|
||||
<li><a href="#orgb9d4112">2.9.2. Compute</a></li>
|
||||
<li><a href="#org727c706">2.9.3. Test</a></li>
|
||||
<li><a href="#org9bcc2c1">2.9.1. Get</a></li>
|
||||
<li><a href="#org8b75209">2.9.2. Compute</a></li>
|
||||
<li><a href="#org31f28a4">2.9.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgddc3449">2.10. Prepare for electron-electron-nucleus Jastrow \(f_{een}\)</a>
|
||||
<li><a href="#orgaf8039d">2.10. Prepare for electron-electron-nucleus Jastrow \(f_{een}\)</a>
|
||||
<ul>
|
||||
<li><a href="#org39929b7">2.10.1. Get</a></li>
|
||||
<li><a href="#org3f06ff3">2.10.2. Compute dim<sub>cord</sub><sub>vect</sub></a></li>
|
||||
<li><a href="#org29f6752">2.10.3. Compute cord<sub>vect</sub><sub>full</sub></a></li>
|
||||
<li><a href="#org73b3f11">2.10.4. Compute lkpm<sub>combined</sub><sub>index</sub></a></li>
|
||||
<li><a href="#org987ccdb">2.10.5. Test</a></li>
|
||||
<li><a href="#orgb4b0c42">2.10.1. Get</a></li>
|
||||
<li><a href="#org6bd9d1f">2.10.2. Compute dim<sub>cord</sub><sub>vect</sub></a></li>
|
||||
<li><a href="#org43ab28e">2.10.3. Compute cord<sub>vect</sub><sub>full</sub></a></li>
|
||||
<li><a href="#org9f32e74">2.10.4. Compute lkpm<sub>combined</sub><sub>index</sub></a></li>
|
||||
<li><a href="#org0aca0ae">2.10.5. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org8ae92ea">2.11. Electron-electron-nucleus Jastrow \(f_{een}\)</a>
|
||||
<li><a href="#org65fa26e">2.11. Electron-electron-nucleus Jastrow \(f_{een}\)</a>
|
||||
<ul>
|
||||
<li><a href="#orga22062b">2.11.1. Get</a></li>
|
||||
<li><a href="#orgcf6cf37">2.11.2. Compute</a></li>
|
||||
<li><a href="#org73a3559">2.11.3. Test</a></li>
|
||||
<li><a href="#orge400492">2.11.1. Get</a></li>
|
||||
<li><a href="#org3facb35">2.11.2. Compute</a></li>
|
||||
<li><a href="#orgdbb7626">2.11.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org6a6965d">2.12. Electron-electron-nucleus Jastrow \(f_{een}\) derivative</a>
|
||||
<li><a href="#orgf14b118">2.12. Electron-electron-nucleus Jastrow \(f_{een}\) derivative</a>
|
||||
<ul>
|
||||
<li><a href="#org42bc62c">2.12.1. Get</a></li>
|
||||
<li><a href="#org982e11d">2.12.2. Compute</a></li>
|
||||
<li><a href="#org588b164">2.12.3. Test</a></li>
|
||||
<li><a href="#org2411912">2.12.1. Get</a></li>
|
||||
<li><a href="#orgb816e19">2.12.2. Compute</a></li>
|
||||
<li><a href="#org6959113">2.12.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -435,14 +435,14 @@ for the JavaScript code in this tag.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org49230e9" class="outline-2">
|
||||
<h2 id="org49230e9"><span class="section-number-2">1</span> Context</h2>
|
||||
<div id="outline-container-orgf9e66bc" class="outline-2">
|
||||
<h2 id="orgf9e66bc"><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:
|
||||
</p>
|
||||
|
||||
<table id="org32b0628" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org4f6751a" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -770,7 +770,7 @@ For H2O we have the following data:
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-python" id="orga582cce"><span style="color: #a020f0;">import</span> numpy <span style="color: #a020f0;">as</span> np
|
||||
<pre class="src src-python" id="orgd5adb1b"><span style="color: #a020f0;">import</span> numpy <span style="color: #a020f0;">as</span> np
|
||||
|
||||
<span style="color: #a0522d;">elec_num</span> = 10
|
||||
<span style="color: #a0522d;">nucl_num</span> = 2
|
||||
@ -920,8 +920,8 @@ For H2O we have the following data:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbfd4b96" class="outline-3">
|
||||
<h3 id="orgbfd4b96"><span class="section-number-3">1.1</span> Data structure</h3>
|
||||
<div id="outline-container-orge3aa037" class="outline-3">
|
||||
<h3 id="orge3aa037"><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_jastrow_struct</span>{
|
||||
@ -1008,8 +1008,8 @@ this mechanism.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8bba57e" class="outline-3">
|
||||
<h3 id="org8bba57e"><span class="section-number-3">1.2</span> Access functions</h3>
|
||||
<div id="outline-container-org380732f" class="outline-3">
|
||||
<h3 id="org380732f"><span class="section-number-3">1.2</span> Access functions</h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<p>
|
||||
Along with these core functions, calculation of the jastrow factor
|
||||
@ -1029,8 +1029,8 @@ function returns <code>true</code>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2c5368a" class="outline-3">
|
||||
<h3 id="org2c5368a"><span class="section-number-3">1.3</span> Initialization functions</h3>
|
||||
<div id="outline-container-org97eb43c" class="outline-3">
|
||||
<h3 id="org97eb43c"><span class="section-number-3">1.3</span> Initialization functions</h3>
|
||||
<div class="outline-text-3" id="text-1-3">
|
||||
<p>
|
||||
To prepare for the Jastrow and its derivative, all the following functions need to be
|
||||
@ -1056,8 +1056,8 @@ are precontracted using BLAS LEVEL 3 operations for an optimal FLOP count.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1b7a3ed" class="outline-3">
|
||||
<h3 id="org1b7a3ed"><span class="section-number-3">1.4</span> Test</h3>
|
||||
<div id="outline-container-orgcea8e46" class="outline-3">
|
||||
<h3 id="orgcea8e46"><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: #b22222;">Reference input data </span>*/
|
||||
@ -1232,8 +1232,8 @@ rc = qmckl_get_nucleus_charge(context, nucl_charge2);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgeefd33e" class="outline-2">
|
||||
<h2 id="orgeefd33e"><span class="section-number-2">2</span> Computation</h2>
|
||||
<div id="outline-container-org99bc23e" class="outline-2">
|
||||
<h2 id="org99bc23e"><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
|
||||
@ -1246,8 +1246,8 @@ current date is stored.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1f1a6aa" class="outline-3">
|
||||
<h3 id="org1f1a6aa"><span class="section-number-3">2.1</span> Asymptotic component for \(f_{ee}\)</h3>
|
||||
<div id="outline-container-orgd822147" class="outline-3">
|
||||
<h3 id="orgd822147"><span class="section-number-3">2.1</span> Asymptotic component for \(f_{ee}\)</h3>
|
||||
<div class="outline-text-3" id="text-2-1">
|
||||
<p>
|
||||
Calculate the asymptotic component <code>asymp_jasb</code> to be substracted from the final
|
||||
@ -1262,8 +1262,8 @@ via the <code>bord_vector</code> and the electron-electron rescale factor <code>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7c3cfbb" class="outline-4">
|
||||
<h4 id="org7c3cfbb"><span class="section-number-4">2.1.1</span> Get</h4>
|
||||
<div id="outline-container-orgfb3c174" class="outline-4">
|
||||
<h4 id="orgfb3c174"><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_jastrow_asymp_jasb</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;">asymp_jasb</span>);
|
||||
@ -1272,10 +1272,10 @@ via the <code>bord_vector</code> and the electron-electron rescale factor <code>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0ffc039" class="outline-4">
|
||||
<h4 id="org0ffc039"><span class="section-number-4">2.1.2</span> Compute</h4>
|
||||
<div id="outline-container-org358e810" class="outline-4">
|
||||
<h4 id="org358e810"><span class="section-number-4">2.1.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-1-2">
|
||||
<table id="org5feb8b2" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org6b1af5f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1388,8 +1388,8 @@ via the <code>bord_vector</code> and the electron-electron rescale factor <code>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-orga6a6eb1" class="outline-4">
|
||||
<h4 id="orga6a6eb1"><span class="section-number-4">2.1.3</span> Test</h4>
|
||||
<div id="outline-container-orge6e5ac4" class="outline-4">
|
||||
<h4 id="orge6e5ac4"><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: #0000ff;">assert</span>(<span style="color: #228b22;">qmckl_electron_provided</span>(<span style="color: #a0522d;">context</span>));
|
||||
@ -1441,8 +1441,8 @@ rc = qmckl_get_jastrow_asymp_jasb(context, asymp_jasb);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0057d2d" class="outline-3">
|
||||
<h3 id="org0057d2d"><span class="section-number-3">2.2</span> Electron-electron component \(f_{ee}\)</h3>
|
||||
<div id="outline-container-org297b8b9" class="outline-3">
|
||||
<h3 id="org297b8b9"><span class="section-number-3">2.2</span> Electron-electron component \(f_{ee}\)</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<p>
|
||||
Calculate the electron-electron jastrow component <code>factor_ee</code> using the <code>asymp_jasb</code>
|
||||
@ -1457,8 +1457,8 @@ f_{ee} = \sum_{i,j<i} \left\{ \frac{ \eta B_0 C_{ij}}{1 - B_1 C_{ij}} - J_{asym
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-orgbb741b8" class="outline-4">
|
||||
<h4 id="orgbb741b8"><span class="section-number-4">2.2.1</span> Get</h4>
|
||||
<div id="outline-container-orgc6c56d8" class="outline-4">
|
||||
<h4 id="orgc6c56d8"><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_jastrow_factor_ee</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;">factor_ee</span>);
|
||||
@ -1467,10 +1467,10 @@ f_{ee} = \sum_{i,j<i} \left\{ \frac{ \eta B_0 C_{ij}}{1 - B_1 C_{ij}} - J_{asym
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgba645d5" class="outline-4">
|
||||
<h4 id="orgba645d5"><span class="section-number-4">2.2.2</span> Compute</h4>
|
||||
<div id="outline-container-org4b0da7a" class="outline-4">
|
||||
<h4 id="org4b0da7a"><span class="section-number-4">2.2.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-2-2">
|
||||
<table id="orgb0c0cb8" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orge4bc946" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1645,8 +1645,8 @@ f_{ee} = \sum_{i,j<i} \left\{ \frac{ \eta B_0 C_{ij}}{1 - B_1 C_{ij}} - J_{asym
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org4454c5f" class="outline-4">
|
||||
<h4 id="org4454c5f"><span class="section-number-4">2.2.3</span> Test</h4>
|
||||
<div id="outline-container-org07ffda4" class="outline-4">
|
||||
<h4 id="org07ffda4"><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;">Check if Jastrow is properly initialized </span>*/
|
||||
@ -1664,8 +1664,8 @@ rc = qmckl_get_jastrow_factor_ee(context, factor_ee);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org10ce5d8" class="outline-3">
|
||||
<h3 id="org10ce5d8"><span class="section-number-3">2.3</span> Electron-electron component derivative \(f'_{ee}\)</h3>
|
||||
<div id="outline-container-org411e2af" class="outline-3">
|
||||
<h3 id="org411e2af"><span class="section-number-3">2.3</span> Electron-electron component derivative \(f'_{ee}\)</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<p>
|
||||
Calculate the derivative of the <code>factor_ee</code> using the <code>ee_distance_rescaled</code> and
|
||||
@ -1680,8 +1680,8 @@ TODO: Add equation
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-orgb05a788" class="outline-4">
|
||||
<h4 id="orgb05a788"><span class="section-number-4">2.3.1</span> Get</h4>
|
||||
<div id="outline-container-orgb23b048" class="outline-4">
|
||||
<h4 id="orgb23b048"><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_jastrow_factor_ee_deriv_e</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;">factor_ee_deriv_e</span>);
|
||||
@ -1690,10 +1690,10 @@ TODO: Add equation
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga2dff94" class="outline-4">
|
||||
<h4 id="orga2dff94"><span class="section-number-4">2.3.2</span> Compute</h4>
|
||||
<div id="outline-container-orge2be003" class="outline-4">
|
||||
<h4 id="orge2be003"><span class="section-number-4">2.3.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-3-2">
|
||||
<table id="org2c92920" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org13bb639" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1908,8 +1908,8 @@ TODO: Add equation
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org005fd51" class="outline-4">
|
||||
<h4 id="org005fd51"><span class="section-number-4">2.3.3</span> Test</h4>
|
||||
<div id="outline-container-org319af6a" class="outline-4">
|
||||
<h4 id="org319af6a"><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;">Check if Jastrow is properly initialized </span>*/
|
||||
@ -1931,8 +1931,8 @@ rc = qmckl_get_jastrow_factor_ee_deriv_e(context, &(factor_ee_deriv_e[0][0][
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbfdd21e" class="outline-3">
|
||||
<h3 id="orgbfdd21e"><span class="section-number-3">2.4</span> Electron-nucleus component \(f_{en}\)</h3>
|
||||
<div id="outline-container-org4e7a9e6" class="outline-3">
|
||||
<h3 id="org4e7a9e6"><span class="section-number-3">2.4</span> Electron-nucleus component \(f_{en}\)</h3>
|
||||
<div class="outline-text-3" id="text-2-4">
|
||||
<p>
|
||||
Calculate the electron-electron jastrow component <code>factor_en</code> using the <code>aord_vector</code>
|
||||
@ -1947,8 +1947,8 @@ f_{en} = \sum_{i,j<i} \left\{ \frac{ A_0 C_{ij}}{1 - A_1 C_{ij}} + \sum^{nord}_{
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org8aa83cf" class="outline-4">
|
||||
<h4 id="org8aa83cf"><span class="section-number-4">2.4.1</span> Get</h4>
|
||||
<div id="outline-container-org3b287ee" class="outline-4">
|
||||
<h4 id="org3b287ee"><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_jastrow_factor_en</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;">factor_en</span>);
|
||||
@ -1957,10 +1957,10 @@ f_{en} = \sum_{i,j<i} \left\{ \frac{ A_0 C_{ij}}{1 - A_1 C_{ij}} + \sum^{nord}_{
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfe8999f" class="outline-4">
|
||||
<h4 id="orgfe8999f"><span class="section-number-4">2.4.2</span> Compute</h4>
|
||||
<div id="outline-container-org0fdc59a" class="outline-4">
|
||||
<h4 id="org0fdc59a"><span class="section-number-4">2.4.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-4-2">
|
||||
<table id="org000e81d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org23a7f72" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -2142,8 +2142,8 @@ f_{en} = \sum_{i,j<i} \left\{ \frac{ A_0 C_{ij}}{1 - A_1 C_{ij}} + \sum^{nord}_{
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org9cd7a54" class="outline-4">
|
||||
<h4 id="org9cd7a54"><span class="section-number-4">2.4.3</span> Test</h4>
|
||||
<div id="outline-container-orgf7d0af0" class="outline-4">
|
||||
<h4 id="orgf7d0af0"><span class="section-number-4">2.4.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-4-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c">/* <span style="color: #b22222;">Check if Jastrow is properly initialized </span>*/
|
||||
@ -2161,8 +2161,8 @@ rc = qmckl_get_jastrow_factor_en(context, factor_en);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2c4e232" class="outline-3">
|
||||
<h3 id="org2c4e232"><span class="section-number-3">2.5</span> Electron-nucleus component derivative \(f'_{en}\)</h3>
|
||||
<div id="outline-container-org21655cb" class="outline-3">
|
||||
<h3 id="org21655cb"><span class="section-number-3">2.5</span> Electron-nucleus component derivative \(f'_{en}\)</h3>
|
||||
<div class="outline-text-3" id="text-2-5">
|
||||
<p>
|
||||
Calculate the electron-electron jastrow component <code>factor_en_deriv_e</code> derivative
|
||||
@ -2175,8 +2175,8 @@ TODO: write equations.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org173ae24" class="outline-4">
|
||||
<h4 id="org173ae24"><span class="section-number-4">2.5.1</span> Get</h4>
|
||||
<div id="outline-container-org54636ef" class="outline-4">
|
||||
<h4 id="org54636ef"><span class="section-number-4">2.5.1</span> Get</h4>
|
||||
<div class="outline-text-4" id="text-2-5-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_jastrow_factor_en_deriv_e</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;">factor_en_deriv_e</span>);
|
||||
@ -2185,10 +2185,10 @@ TODO: write equations.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org78090e2" class="outline-4">
|
||||
<h4 id="org78090e2"><span class="section-number-4">2.5.2</span> Compute</h4>
|
||||
<div id="outline-container-org5aa6c00" class="outline-4">
|
||||
<h4 id="org5aa6c00"><span class="section-number-4">2.5.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-5-2">
|
||||
<table id="org7a0286d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgff5559b" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -2409,8 +2409,8 @@ TODO: write equations.
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org968dbe4" class="outline-4">
|
||||
<h4 id="org968dbe4"><span class="section-number-4">2.5.3</span> Test</h4>
|
||||
<div id="outline-container-orgcf0d3f0" class="outline-4">
|
||||
<h4 id="orgcf0d3f0"><span class="section-number-4">2.5.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-5-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c">/* <span style="color: #b22222;">Check if Jastrow is properly initialized </span>*/
|
||||
@ -2432,8 +2432,8 @@ rc = qmckl_get_jastrow_factor_en_deriv_e(context, &(factor_en_deriv_e[0][0][
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd221172" class="outline-3">
|
||||
<h3 id="orgd221172"><span class="section-number-3">2.6</span> Electron-electron rescaled distances for each order</h3>
|
||||
<div id="outline-container-orgb96ffaf" class="outline-3">
|
||||
<h3 id="orgb96ffaf"><span class="section-number-3">2.6</span> Electron-electron rescaled distances for each order</h3>
|
||||
<div class="outline-text-3" id="text-2-6">
|
||||
<p>
|
||||
<code>een_rescaled_e</code> stores the table of the rescaled distances between all
|
||||
@ -2451,8 +2451,8 @@ where \(C_{ij}\) is the matrix of electron-electron distances.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6515c93" class="outline-4">
|
||||
<h4 id="org6515c93"><span class="section-number-4">2.6.1</span> Get</h4>
|
||||
<div id="outline-container-org2040c55" class="outline-4">
|
||||
<h4 id="org2040c55"><span class="section-number-4">2.6.1</span> Get</h4>
|
||||
<div class="outline-text-4" id="text-2-6-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_jastrow_een_rescaled_e</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;">distance_rescaled</span>);
|
||||
@ -2461,10 +2461,10 @@ where \(C_{ij}\) is the matrix of electron-electron distances.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgc4bf231" class="outline-4">
|
||||
<h4 id="orgc4bf231"><span class="section-number-4">2.6.2</span> Compute</h4>
|
||||
<div id="outline-container-orga5b2bec" class="outline-4">
|
||||
<h4 id="orga5b2bec"><span class="section-number-4">2.6.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-6-2">
|
||||
<table id="org26d8a3c" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org571a552" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -2638,8 +2638,8 @@ where \(C_{ij}\) is the matrix of electron-electron distances.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgc87875a" class="outline-4">
|
||||
<h4 id="orgc87875a"><span class="section-number-4">2.6.3</span> Test</h4>
|
||||
<div id="outline-container-org7ec9477" class="outline-4">
|
||||
<h4 id="org7ec9477"><span class="section-number-4">2.6.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-6-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #0000ff;">assert</span>(<span style="color: #228b22;">qmckl_electron_provided</span>(<span style="color: #a0522d;">context</span>));
|
||||
@ -2662,8 +2662,8 @@ rc = qmckl_get_jastrow_een_rescaled_e(context, &(een_rescaled_e[0][0][0][0])
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgcdd8a64" class="outline-3">
|
||||
<h3 id="orgcdd8a64"><span class="section-number-3">2.7</span> Electron-electron rescaled distances for each order and derivatives</h3>
|
||||
<div id="outline-container-org97e4092" class="outline-3">
|
||||
<h3 id="org97e4092"><span class="section-number-3">2.7</span> Electron-electron rescaled distances for each order and derivatives</h3>
|
||||
<div class="outline-text-3" id="text-2-7">
|
||||
<p>
|
||||
<code>een_rescaled_e_deriv_e</code> stores the table of the derivatives of the
|
||||
@ -2678,8 +2678,8 @@ TODO: write formulae
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org045a995" class="outline-4">
|
||||
<h4 id="org045a995"><span class="section-number-4">2.7.1</span> Get</h4>
|
||||
<div id="outline-container-orgb90045c" class="outline-4">
|
||||
<h4 id="orgb90045c"><span class="section-number-4">2.7.1</span> Get</h4>
|
||||
<div class="outline-text-4" id="text-2-7-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_jastrow_een_rescaled_e_deriv_e</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;">distance_rescaled</span>);
|
||||
@ -2688,10 +2688,10 @@ TODO: write formulae
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge1da98f" class="outline-4">
|
||||
<h4 id="orge1da98f"><span class="section-number-4">2.7.2</span> Compute</h4>
|
||||
<div id="outline-container-orgb191e2b" class="outline-4">
|
||||
<h4 id="orgb191e2b"><span class="section-number-4">2.7.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-7-2">
|
||||
<table id="org5d01b51" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgae89762" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -2878,8 +2878,8 @@ TODO: write formulae
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org03808c0" class="outline-4">
|
||||
<h4 id="org03808c0"><span class="section-number-4">2.7.3</span> Test</h4>
|
||||
<div id="outline-container-orgcdd9619" class="outline-4">
|
||||
<h4 id="orgcdd9619"><span class="section-number-4">2.7.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-7-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c">//<span style="color: #b22222;">assert(qmckl_electron_provided(context));</span>
|
||||
@ -2899,8 +2899,8 @@ rc = qmckl_get_jastrow_een_rescaled_e_deriv_e(context, &(een_rescaled_e_deri
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3a45111" class="outline-3">
|
||||
<h3 id="org3a45111"><span class="section-number-3">2.8</span> Electron-nucleus rescaled distances for each order</h3>
|
||||
<div id="outline-container-org575bca6" class="outline-3">
|
||||
<h3 id="org575bca6"><span class="section-number-3">2.8</span> Electron-nucleus rescaled distances for each order</h3>
|
||||
<div class="outline-text-3" id="text-2-8">
|
||||
<p>
|
||||
<code>een_rescaled_n</code> stores the table of the rescaled distances between
|
||||
@ -2918,8 +2918,8 @@ where \(C_{ia}\) is the matrix of electron-nucleus distances.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfbc5fce" class="outline-4">
|
||||
<h4 id="orgfbc5fce"><span class="section-number-4">2.8.1</span> Get</h4>
|
||||
<div id="outline-container-org4313e4b" class="outline-4">
|
||||
<h4 id="org4313e4b"><span class="section-number-4">2.8.1</span> Get</h4>
|
||||
<div class="outline-text-4" id="text-2-8-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_jastrow_een_rescaled_n</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;">distance_rescaled</span>);
|
||||
@ -2928,10 +2928,10 @@ where \(C_{ia}\) is the matrix of electron-nucleus distances.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org030fea3" class="outline-4">
|
||||
<h4 id="org030fea3"><span class="section-number-4">2.8.2</span> Compute</h4>
|
||||
<div id="outline-container-org2607c1a" class="outline-4">
|
||||
<h4 id="org2607c1a"><span class="section-number-4">2.8.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-8-2">
|
||||
<table id="org4639ce4" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org960990e" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -3095,8 +3095,8 @@ where \(C_{ia}\) is the matrix of electron-nucleus distances.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2c3c6ea" class="outline-4">
|
||||
<h4 id="org2c3c6ea"><span class="section-number-4">2.8.3</span> Test</h4>
|
||||
<div id="outline-container-org2f82f0c" class="outline-4">
|
||||
<h4 id="org2f82f0c"><span class="section-number-4">2.8.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-8-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #0000ff;">assert</span>(<span style="color: #228b22;">qmckl_electron_provided</span>(<span style="color: #a0522d;">context</span>));
|
||||
@ -3118,8 +3118,8 @@ rc = qmckl_get_jastrow_een_rescaled_n(context, &(een_rescaled_n[0][0][0][0])
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org069e403" class="outline-3">
|
||||
<h3 id="org069e403"><span class="section-number-3">2.9</span> Electron-nucleus rescaled distances for each order and derivatives</h3>
|
||||
<div id="outline-container-orgc64c055" class="outline-3">
|
||||
<h3 id="orgc64c055"><span class="section-number-3">2.9</span> Electron-nucleus rescaled distances for each order and derivatives</h3>
|
||||
<div class="outline-text-3" id="text-2-9">
|
||||
<p>
|
||||
<code>een_rescaled_n_deriv_e</code> stores the table of the rescaled distances between
|
||||
@ -3128,8 +3128,8 @@ electrons and nucleii raised to the power \(p\) defined by <code>cord_num</code>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org7ed33c7" class="outline-4">
|
||||
<h4 id="org7ed33c7"><span class="section-number-4">2.9.1</span> Get</h4>
|
||||
<div id="outline-container-org9bcc2c1" class="outline-4">
|
||||
<h4 id="org9bcc2c1"><span class="section-number-4">2.9.1</span> Get</h4>
|
||||
<div class="outline-text-4" id="text-2-9-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_jastrow_een_rescaled_n_deriv_e</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;">distance_rescaled</span>);
|
||||
@ -3138,10 +3138,10 @@ electrons and nucleii raised to the power \(p\) defined by <code>cord_num</code>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb9d4112" class="outline-4">
|
||||
<h4 id="orgb9d4112"><span class="section-number-4">2.9.2</span> Compute</h4>
|
||||
<div id="outline-container-org8b75209" class="outline-4">
|
||||
<h4 id="org8b75209"><span class="section-number-4">2.9.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-9-2">
|
||||
<table id="orgbcbe5f7" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgb04eccd" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -3351,8 +3351,8 @@ electrons and nucleii raised to the power \(p\) defined by <code>cord_num</code>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org727c706" class="outline-4">
|
||||
<h4 id="org727c706"><span class="section-number-4">2.9.3</span> Test</h4>
|
||||
<div id="outline-container-org31f28a4" class="outline-4">
|
||||
<h4 id="org31f28a4"><span class="section-number-4">2.9.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-9-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #0000ff;">assert</span>(<span style="color: #228b22;">qmckl_electron_provided</span>(<span style="color: #a0522d;">context</span>));
|
||||
@ -3374,8 +3374,8 @@ rc = qmckl_get_jastrow_een_rescaled_n_deriv_e(context, &(een_rescaled_n_deri
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgddc3449" class="outline-3">
|
||||
<h3 id="orgddc3449"><span class="section-number-3">2.10</span> Prepare for electron-electron-nucleus Jastrow \(f_{een}\)</h3>
|
||||
<div id="outline-container-orgaf8039d" class="outline-3">
|
||||
<h3 id="orgaf8039d"><span class="section-number-3">2.10</span> Prepare for electron-electron-nucleus Jastrow \(f_{een}\)</h3>
|
||||
<div class="outline-text-3" id="text-2-10">
|
||||
<p>
|
||||
Prepare <code>cord_vect_full</code> and <code>lkpm_combined_index</code> tables required for the
|
||||
@ -3384,8 +3384,8 @@ calculation of the three-body jastrow <code>factor_een</code> and its derivative
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org39929b7" class="outline-4">
|
||||
<h4 id="org39929b7"><span class="section-number-4">2.10.1</span> Get</h4>
|
||||
<div id="outline-container-orgb4b0c42" class="outline-4">
|
||||
<h4 id="orgb4b0c42"><span class="section-number-4">2.10.1</span> Get</h4>
|
||||
<div class="outline-text-4" id="text-2-10-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_jastrow_dim_cord_vect</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">int64_t</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">dim_cord_vect</span>);
|
||||
@ -3396,10 +3396,10 @@ calculation of the three-body jastrow <code>factor_een</code> and its derivative
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3f06ff3" class="outline-4">
|
||||
<h4 id="org3f06ff3"><span class="section-number-4">2.10.2</span> Compute dim<sub>cord</sub><sub>vect</sub></h4>
|
||||
<div id="outline-container-org6bd9d1f" class="outline-4">
|
||||
<h4 id="org6bd9d1f"><span class="section-number-4">2.10.2</span> Compute dim<sub>cord</sub><sub>vect</sub></h4>
|
||||
<div class="outline-text-4" id="text-2-10-2">
|
||||
<table id="org7096661" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org0f0e428" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -3497,10 +3497,10 @@ calculation of the three-body jastrow <code>factor_een</code> and its derivative
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org29f6752" class="outline-4">
|
||||
<h4 id="org29f6752"><span class="section-number-4">2.10.3</span> Compute cord<sub>vect</sub><sub>full</sub></h4>
|
||||
<div id="outline-container-org43ab28e" class="outline-4">
|
||||
<h4 id="org43ab28e"><span class="section-number-4">2.10.3</span> Compute cord<sub>vect</sub><sub>full</sub></h4>
|
||||
<div class="outline-text-4" id="text-2-10-3">
|
||||
<table id="orgf72e686" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org649f5bc" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -3634,10 +3634,10 @@ calculation of the three-body jastrow <code>factor_een</code> and its derivative
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org73b3f11" class="outline-4">
|
||||
<h4 id="org73b3f11"><span class="section-number-4">2.10.4</span> Compute lkpm<sub>combined</sub><sub>index</sub></h4>
|
||||
<div id="outline-container-org9f32e74" class="outline-4">
|
||||
<h4 id="org9f32e74"><span class="section-number-4">2.10.4</span> Compute lkpm<sub>combined</sub><sub>index</sub></h4>
|
||||
<div class="outline-text-4" id="text-2-10-4">
|
||||
<table id="org87787a3" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org7e128a9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -3755,8 +3755,8 @@ calculation of the three-body jastrow <code>factor_een</code> and its derivative
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org987ccdb" class="outline-4">
|
||||
<h4 id="org987ccdb"><span class="section-number-4">2.10.5</span> Test</h4>
|
||||
<div id="outline-container-org0aca0ae" class="outline-4">
|
||||
<h4 id="org0aca0ae"><span class="section-number-4">2.10.5</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-10-5">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c">//<span style="color: #b22222;">assert(qmckl_electron_provided(context));</span>
|
||||
@ -3768,8 +3768,8 @@ calculation of the three-body jastrow <code>factor_een</code> and its derivative
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8ae92ea" class="outline-3">
|
||||
<h3 id="org8ae92ea"><span class="section-number-3">2.11</span> Electron-electron-nucleus Jastrow \(f_{een}\)</h3>
|
||||
<div id="outline-container-org65fa26e" class="outline-3">
|
||||
<h3 id="org65fa26e"><span class="section-number-3">2.11</span> Electron-electron-nucleus Jastrow \(f_{een}\)</h3>
|
||||
<div class="outline-text-3" id="text-2-11">
|
||||
<p>
|
||||
Calculate the electron-electron-nuclear three-body jastrow component <code>factor_een</code>
|
||||
@ -3781,8 +3781,8 @@ TODO: write equations.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga22062b" class="outline-4">
|
||||
<h4 id="orga22062b"><span class="section-number-4">2.11.1</span> Get</h4>
|
||||
<div id="outline-container-orge400492" class="outline-4">
|
||||
<h4 id="orge400492"><span class="section-number-4">2.11.1</span> Get</h4>
|
||||
<div class="outline-text-4" id="text-2-11-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_jastrow_factor_een</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;">factor_een</span>);
|
||||
@ -3791,10 +3791,10 @@ TODO: write equations.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgcf6cf37" class="outline-4">
|
||||
<h4 id="orgcf6cf37"><span class="section-number-4">2.11.2</span> Compute</h4>
|
||||
<div id="outline-container-org3facb35" class="outline-4">
|
||||
<h4 id="org3facb35"><span class="section-number-4">2.11.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-11-2">
|
||||
<table id="orgec56b37" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orga0a15df" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -3990,8 +3990,8 @@ TODO: write equations.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org73a3559" class="outline-4">
|
||||
<h4 id="org73a3559"><span class="section-number-4">2.11.3</span> Test</h4>
|
||||
<div id="outline-container-orgdbb7626" class="outline-4">
|
||||
<h4 id="orgdbb7626"><span class="section-number-4">2.11.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-11-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c">/* <span style="color: #b22222;">Check if Jastrow is properly initialized </span>*/
|
||||
@ -4007,8 +4007,8 @@ rc = qmckl_get_jastrow_factor_een(context, &(factor_een[0]));
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6a6965d" class="outline-3">
|
||||
<h3 id="org6a6965d"><span class="section-number-3">2.12</span> Electron-electron-nucleus Jastrow \(f_{een}\) derivative</h3>
|
||||
<div id="outline-container-orgf14b118" class="outline-3">
|
||||
<h3 id="orgf14b118"><span class="section-number-3">2.12</span> Electron-electron-nucleus Jastrow \(f_{een}\) derivative</h3>
|
||||
<div class="outline-text-3" id="text-2-12">
|
||||
<p>
|
||||
Calculate the electron-electron-nuclear three-body jastrow component <code>factor_een_deriv_e</code>
|
||||
@ -4020,8 +4020,8 @@ TODO: write equations.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org42bc62c" class="outline-4">
|
||||
<h4 id="org42bc62c"><span class="section-number-4">2.12.1</span> Get</h4>
|
||||
<div id="outline-container-org2411912" class="outline-4">
|
||||
<h4 id="org2411912"><span class="section-number-4">2.12.1</span> Get</h4>
|
||||
<div class="outline-text-4" id="text-2-12-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_jastrow_factor_een_deriv_e</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;">factor_een_deriv_e</span>);
|
||||
@ -4030,10 +4030,10 @@ TODO: write equations.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org982e11d" class="outline-4">
|
||||
<h4 id="org982e11d"><span class="section-number-4">2.12.2</span> Compute</h4>
|
||||
<div id="outline-container-orgb816e19" class="outline-4">
|
||||
<h4 id="orgb816e19"><span class="section-number-4">2.12.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-12-2">
|
||||
<table id="org297b98c" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org3dcdf52" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -4266,8 +4266,8 @@ TODO: write equations.
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org588b164" class="outline-4">
|
||||
<h4 id="org588b164"><span class="section-number-4">2.12.3</span> Test</h4>
|
||||
<div id="outline-container-org6959113" class="outline-4">
|
||||
<h4 id="org6959113"><span class="section-number-4">2.12.3</span> Test</h4>
|
||||
<div class="outline-text-4" id="text-2-12-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c">/* <span style="color: #b22222;">Check if Jastrow is properly initialized </span>*/
|
||||
@ -4286,7 +4286,7 @@ rc = qmckl_get_jastrow_factor_een_deriv_e(context, &(factor_een_deriv_e[0][0
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: TREX CoE</p>
|
||||
<p class="date">Created: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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="#org1889e86">1. Context</a>
|
||||
<li><a href="#org7164ca4">1. Context</a>
|
||||
<ul>
|
||||
<li><a href="#org53f6ef6">1.1. Data structure</a></li>
|
||||
<li><a href="#orgfe59b36">1.1. Data structure</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orge0649ae">2. Computation</a>
|
||||
<li><a href="#org93497e6">2. Computation</a>
|
||||
<ul>
|
||||
<li><a href="#org6d8bf9d">2.1. Kinetic energy</a>
|
||||
<li><a href="#org1634a82">2.1. Kinetic energy</a>
|
||||
<ul>
|
||||
<li><a href="#org64aa158">2.1.1. Get</a></li>
|
||||
<li><a href="#orgfaecd46">2.1.2. Provide</a></li>
|
||||
<li><a href="#org36092ed">2.1.3. Compute kinetic enregy</a></li>
|
||||
<li><a href="#org8689b73">2.1.4. Test</a></li>
|
||||
<li><a href="#orgc15140f">2.1.1. Get</a></li>
|
||||
<li><a href="#orgcbd11f3">2.1.2. Provide</a></li>
|
||||
<li><a href="#org397d5bb">2.1.3. Compute kinetic enregy</a></li>
|
||||
<li><a href="#orgd799b37">2.1.4. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orga832fc6">2.2. Potential energy</a>
|
||||
<li><a href="#org20d0dfe">2.2. Potential energy</a>
|
||||
<ul>
|
||||
<li><a href="#org7577772">2.2.1. Get</a></li>
|
||||
<li><a href="#orgbf7c1ac">2.2.2. Provide</a></li>
|
||||
<li><a href="#org81a49e6">2.2.3. Compute potential enregy</a></li>
|
||||
<li><a href="#org588f710">2.2.4. Test</a></li>
|
||||
<li><a href="#org76e0299">2.2.1. Get</a></li>
|
||||
<li><a href="#orgd788d73">2.2.2. Provide</a></li>
|
||||
<li><a href="#orgc70ff39">2.2.3. Compute potential enregy</a></li>
|
||||
<li><a href="#orgbd1590f">2.2.4. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org040d7da">2.3. Local energy</a>
|
||||
<li><a href="#orgd4ed336">2.3. Local energy</a>
|
||||
<ul>
|
||||
<li><a href="#org37c7fcb">2.3.1. Get</a></li>
|
||||
<li><a href="#org49445bf">2.3.2. Provide</a></li>
|
||||
<li><a href="#org967625f">2.3.3. Compute local enregy</a></li>
|
||||
<li><a href="#orga09a522">2.3.4. Test</a></li>
|
||||
<li><a href="#orgc5519e0">2.3.1. Get</a></li>
|
||||
<li><a href="#org13be5ee">2.3.2. Provide</a></li>
|
||||
<li><a href="#orgc3105ca">2.3.3. Compute local enregy</a></li>
|
||||
<li><a href="#orgf0d2125">2.3.4. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org7ee13c6">2.4. Drift vector</a>
|
||||
<li><a href="#org2bb683c">2.4. Drift vector</a>
|
||||
<ul>
|
||||
<li><a href="#org68052c7">2.4.1. Get</a></li>
|
||||
<li><a href="#org2d3718a">2.4.2. Provide</a></li>
|
||||
<li><a href="#org8b8e39c">2.4.3. Compute drift vector</a></li>
|
||||
<li><a href="#org50035d9">2.4.4. Test</a></li>
|
||||
<li><a href="#orga94ddbd">2.4.1. Get</a></li>
|
||||
<li><a href="#org32da4af">2.4.2. Provide</a></li>
|
||||
<li><a href="#org168933f">2.4.3. Compute drift vector</a></li>
|
||||
<li><a href="#orgda1d6c4">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-org1889e86" class="outline-2">
|
||||
<h2 id="org1889e86"><span class="section-number-2">1</span> Context</h2>
|
||||
<div id="outline-container-org7164ca4" class="outline-2">
|
||||
<h2 id="org7164ca4"><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-org53f6ef6" class="outline-3">
|
||||
<h3 id="org53f6ef6"><span class="section-number-3">1.1</span> Data structure</h3>
|
||||
<div id="outline-container-orgfe59b36" class="outline-3">
|
||||
<h3 id="orgfe59b36"><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-orge0649ae" class="outline-2">
|
||||
<h2 id="orge0649ae"><span class="section-number-2">2</span> Computation</h2>
|
||||
<div id="outline-container-org93497e6" class="outline-2">
|
||||
<h2 id="org93497e6"><span class="section-number-2">2</span> Computation</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
</div>
|
||||
<div id="outline-container-org6d8bf9d" class="outline-3">
|
||||
<h3 id="org6d8bf9d"><span class="section-number-3">2.1</span> Kinetic energy</h3>
|
||||
<div id="outline-container-org1634a82" class="outline-3">
|
||||
<h3 id="org1634a82"><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-org64aa158" class="outline-4">
|
||||
<h4 id="org64aa158"><span class="section-number-4">2.1.1</span> Get</h4>
|
||||
<div id="outline-container-orgc15140f" class="outline-4">
|
||||
<h4 id="orgc15140f"><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-orgfaecd46" class="outline-4">
|
||||
<h4 id="orgfaecd46"><span class="section-number-4">2.1.2</span> Provide</h4>
|
||||
<div id="outline-container-orgcbd11f3" class="outline-4">
|
||||
<h4 id="orgcbd11f3"><span class="section-number-4">2.1.2</span> Provide</h4>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org36092ed" class="outline-4">
|
||||
<h4 id="org36092ed"><span class="section-number-4">2.1.3</span> Compute kinetic enregy</h4>
|
||||
<div id="outline-container-org397d5bb" class="outline-4">
|
||||
<h4 id="org397d5bb"><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="orgba8650c" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org0b60acb" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -763,12 +763,12 @@ case is given as follows:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8689b73" class="outline-4">
|
||||
<h4 id="org8689b73"><span class="section-number-4">2.1.4</span> Test</h4>
|
||||
<div id="outline-container-orgd799b37" class="outline-4">
|
||||
<h4 id="orgd799b37"><span class="section-number-4">2.1.4</span> Test</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-orga832fc6" class="outline-3">
|
||||
<h3 id="orga832fc6"><span class="section-number-3">2.2</span> Potential energy</h3>
|
||||
<div id="outline-container-org20d0dfe" class="outline-3">
|
||||
<h3 id="org20d0dfe"><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
|
||||
@ -804,8 +804,8 @@ contributions.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7577772" class="outline-4">
|
||||
<h4 id="org7577772"><span class="section-number-4">2.2.1</span> Get</h4>
|
||||
<div id="outline-container-org76e0299" class="outline-4">
|
||||
<h4 id="org76e0299"><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>);
|
||||
@ -814,14 +814,14 @@ contributions.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbf7c1ac" class="outline-4">
|
||||
<h4 id="orgbf7c1ac"><span class="section-number-4">2.2.2</span> Provide</h4>
|
||||
<div id="outline-container-orgd788d73" class="outline-4">
|
||||
<h4 id="orgd788d73"><span class="section-number-4">2.2.2</span> Provide</h4>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org81a49e6" class="outline-4">
|
||||
<h4 id="org81a49e6"><span class="section-number-4">2.2.3</span> Compute potential enregy</h4>
|
||||
<div id="outline-container-orgc70ff39" class="outline-4">
|
||||
<h4 id="orgc70ff39"><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="org1ee9946" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org70ea51f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -949,12 +949,12 @@ contributions.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org588f710" class="outline-4">
|
||||
<h4 id="org588f710"><span class="section-number-4">2.2.4</span> Test</h4>
|
||||
<div id="outline-container-orgbd1590f" class="outline-4">
|
||||
<h4 id="orgbd1590f"><span class="section-number-4">2.2.4</span> Test</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org040d7da" class="outline-3">
|
||||
<h3 id="org040d7da"><span class="section-number-3">2.3</span> Local energy</h3>
|
||||
<div id="outline-container-orgd4ed336" class="outline-3">
|
||||
<h3 id="orgd4ed336"><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.
|
||||
@ -968,8 +968,8 @@ E_L = KE + PE
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org37c7fcb" class="outline-4">
|
||||
<h4 id="org37c7fcb"><span class="section-number-4">2.3.1</span> Get</h4>
|
||||
<div id="outline-container-orgc5519e0" class="outline-4">
|
||||
<h4 id="orgc5519e0"><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>);
|
||||
@ -978,14 +978,14 @@ E_L = KE + PE
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org49445bf" class="outline-4">
|
||||
<h4 id="org49445bf"><span class="section-number-4">2.3.2</span> Provide</h4>
|
||||
<div id="outline-container-org13be5ee" class="outline-4">
|
||||
<h4 id="org13be5ee"><span class="section-number-4">2.3.2</span> Provide</h4>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org967625f" class="outline-4">
|
||||
<h4 id="org967625f"><span class="section-number-4">2.3.3</span> Compute local enregy</h4>
|
||||
<div id="outline-container-orgc3105ca" class="outline-4">
|
||||
<h4 id="orgc3105ca"><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="org34bdae3" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org69b5e1d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1081,12 +1081,12 @@ E_L = KE + PE
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga09a522" class="outline-4">
|
||||
<h4 id="orga09a522"><span class="section-number-4">2.3.4</span> Test</h4>
|
||||
<div id="outline-container-orgf0d2125" class="outline-4">
|
||||
<h4 id="orgf0d2125"><span class="section-number-4">2.3.4</span> Test</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org7ee13c6" class="outline-3">
|
||||
<h3 id="org7ee13c6"><span class="section-number-3">2.4</span> Drift vector</h3>
|
||||
<div id="outline-container-org2bb683c" class="outline-3">
|
||||
<h3 id="org2bb683c"><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
|
||||
@ -1100,8 +1100,8 @@ with the determinant of the wavefunction.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org68052c7" class="outline-4">
|
||||
<h4 id="org68052c7"><span class="section-number-4">2.4.1</span> Get</h4>
|
||||
<div id="outline-container-orga94ddbd" class="outline-4">
|
||||
<h4 id="orga94ddbd"><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>);
|
||||
@ -1110,14 +1110,14 @@ with the determinant of the wavefunction.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2d3718a" class="outline-4">
|
||||
<h4 id="org2d3718a"><span class="section-number-4">2.4.2</span> Provide</h4>
|
||||
<div id="outline-container-org32da4af" class="outline-4">
|
||||
<h4 id="org32da4af"><span class="section-number-4">2.4.2</span> Provide</h4>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8b8e39c" class="outline-4">
|
||||
<h4 id="org8b8e39c"><span class="section-number-4">2.4.3</span> Compute drift vector</h4>
|
||||
<div id="outline-container-org168933f" class="outline-4">
|
||||
<h4 id="org168933f"><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="org2f61dc1" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org09a7095" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -1338,15 +1338,15 @@ with the determinant of the wavefunction.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org50035d9" class="outline-4">
|
||||
<h4 id="org50035d9"><span class="section-number-4">2.4.4</span> Test</h4>
|
||||
<div id="outline-container-orgda1d6c4" class="outline-4">
|
||||
<h4 id="orgda1d6c4"><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: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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="#orge092ac2">1. Memory data structure for the context</a></li>
|
||||
<li><a href="#orge806437">2. Passing info to allocation routines</a></li>
|
||||
<li><a href="#org5d67f1e">3. Allocation/deallocation functions</a></li>
|
||||
<li><a href="#org5270763">1. Memory data structure for the context</a></li>
|
||||
<li><a href="#org074dfd6">2. Passing info to allocation routines</a></li>
|
||||
<li><a href="#orgeb4c105">3. Allocation/deallocation functions</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge092ac2" class="outline-2">
|
||||
<h2 id="orge092ac2"><span class="section-number-2">1</span> Memory data structure for the context</h2>
|
||||
<div id="outline-container-org5270763" class="outline-2">
|
||||
<h2 id="org5270763"><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-orge806437" class="outline-2">
|
||||
<h2 id="orge806437"><span class="section-number-2">2</span> Passing info to allocation routines</h2>
|
||||
<div id="outline-container-org074dfd6" class="outline-2">
|
||||
<h2 id="org074dfd6"><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-org5d67f1e" class="outline-2">
|
||||
<h2 id="org5d67f1e"><span class="section-number-2">3</span> Allocation/deallocation functions</h2>
|
||||
<div id="outline-container-orgeb4c105" class="outline-2">
|
||||
<h2 id="orgeb4c105"><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: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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="#org3e64dea">1. Context</a>
|
||||
<li><a href="#org63ad04e">1. Context</a>
|
||||
<ul>
|
||||
<li><a href="#orgc118c04">1.1. Data structure</a></li>
|
||||
<li><a href="#orgb7baa8b">1.2. Access functions</a></li>
|
||||
<li><a href="#org33b8afc">1.3. Initialization functions</a></li>
|
||||
<li><a href="#orgf8774ce">1.1. Data structure</a></li>
|
||||
<li><a href="#org5016566">1.2. Access functions</a></li>
|
||||
<li><a href="#orgac03d47">1.3. Initialization functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org134b212">2. Computation</a>
|
||||
<li><a href="#org9d08001">2. Computation</a>
|
||||
<ul>
|
||||
<li><a href="#org3b0b5bd">2.1. Computation of MOs</a>
|
||||
<li><a href="#orgc927117">2.1. Computation of MOs</a>
|
||||
<ul>
|
||||
<li><a href="#orga443395">2.1.1. Get</a></li>
|
||||
<li><a href="#orgcd854b6">2.1.2. Provide</a></li>
|
||||
<li><a href="#org0423978">2.1.3. Compute</a></li>
|
||||
<li><a href="#orge52ae5f">2.1.4. Test</a></li>
|
||||
<li><a href="#orgea0c375">2.1.1. Get</a></li>
|
||||
<li><a href="#org6a5d01f">2.1.2. Provide</a></li>
|
||||
<li><a href="#org7b4be9b">2.1.3. Compute</a></li>
|
||||
<li><a href="#org5785b54">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-org3e64dea" class="outline-2">
|
||||
<h2 id="org3e64dea"><span class="section-number-2">1</span> Context</h2>
|
||||
<div id="outline-container-org63ad04e" class="outline-2">
|
||||
<h2 id="org63ad04e"><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-orgc118c04" class="outline-3">
|
||||
<h3 id="orgc118c04"><span class="section-number-3">1.1</span> Data structure</h3>
|
||||
<div id="outline-container-orgf8774ce" class="outline-3">
|
||||
<h3 id="orgf8774ce"><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-orgb7baa8b" class="outline-3">
|
||||
<h3 id="orgb7baa8b"><span class="section-number-3">1.2</span> Access functions</h3>
|
||||
<div id="outline-container-org5016566" class="outline-3">
|
||||
<h3 id="org5016566"><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-org33b8afc" class="outline-3">
|
||||
<h3 id="org33b8afc"><span class="section-number-3">1.3</span> Initialization functions</h3>
|
||||
<div id="outline-container-orgac03d47" class="outline-3">
|
||||
<h3 id="orgac03d47"><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-org134b212" class="outline-2">
|
||||
<h2 id="org134b212"><span class="section-number-2">2</span> Computation</h2>
|
||||
<div id="outline-container-org9d08001" class="outline-2">
|
||||
<h2 id="org9d08001"><span class="section-number-2">2</span> Computation</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
</div>
|
||||
<div id="outline-container-org3b0b5bd" class="outline-3">
|
||||
<h3 id="org3b0b5bd"><span class="section-number-3">2.1</span> Computation of MOs</h3>
|
||||
<div id="outline-container-orgc927117" class="outline-3">
|
||||
<h3 id="orgc927117"><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-orga443395" class="outline-4">
|
||||
<h4 id="orga443395"><span class="section-number-4">2.1.1</span> Get</h4>
|
||||
<div id="outline-container-orgea0c375" class="outline-4">
|
||||
<h4 id="orgea0c375"><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-orgcd854b6" class="outline-4">
|
||||
<h4 id="orgcd854b6"><span class="section-number-4">2.1.2</span> Provide</h4>
|
||||
<div id="outline-container-org6a5d01f" class="outline-4">
|
||||
<h4 id="org6a5d01f"><span class="section-number-4">2.1.2</span> Provide</h4>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0423978" class="outline-4">
|
||||
<h4 id="org0423978"><span class="section-number-4">2.1.3</span> Compute</h4>
|
||||
<div id="outline-container-org7b4be9b" class="outline-4">
|
||||
<h4 id="org7b4be9b"><span class="section-number-4">2.1.3</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-1-3">
|
||||
<table id="orga7755d5" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org7b086e3" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
@ -667,15 +667,15 @@ computed to accelerate the calculations.
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-orge52ae5f" class="outline-4">
|
||||
<h4 id="orge52ae5f"><span class="section-number-4">2.1.4</span> Test</h4>
|
||||
<div id="outline-container-org5785b54" class="outline-4">
|
||||
<h4 id="org5785b54"><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: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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="#org170f95c">1. Context</a>
|
||||
<li><a href="#org56408c4">1. Context</a>
|
||||
<ul>
|
||||
<li><a href="#org424a3d7">1.1. Data structure</a></li>
|
||||
<li><a href="#orgecbe688">1.2. Access functions</a></li>
|
||||
<li><a href="#org5015886">1.3. Initialization functions</a></li>
|
||||
<li><a href="#org83d22cd">1.4. Test</a></li>
|
||||
<li><a href="#org885a95f">1.1. Data structure</a></li>
|
||||
<li><a href="#org1bbb89a">1.2. Access functions</a></li>
|
||||
<li><a href="#org519fc06">1.3. Initialization functions</a></li>
|
||||
<li><a href="#orgbae6753">1.4. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgfa5f461">2. Computation</a>
|
||||
<li><a href="#org7322ba7">2. Computation</a>
|
||||
<ul>
|
||||
<li><a href="#orgdf27776">2.1. Nucleus-nucleus distances</a>
|
||||
<li><a href="#orgeedd28d">2.1. Nucleus-nucleus distances</a>
|
||||
<ul>
|
||||
<li><a href="#orgd79398b">2.1.1. Get</a></li>
|
||||
<li><a href="#org6636cc9">2.1.2. Compute</a></li>
|
||||
<li><a href="#orge0542c8">2.1.3. Test</a></li>
|
||||
<li><a href="#orgecfbaa7">2.1.1. Get</a></li>
|
||||
<li><a href="#org27d9ed1">2.1.2. Compute</a></li>
|
||||
<li><a href="#org72bf782">2.1.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org5bffc6f">2.2. Nucleus-nucleus rescaled distances</a>
|
||||
<li><a href="#org2652e95">2.2. Nucleus-nucleus rescaled distances</a>
|
||||
<ul>
|
||||
<li><a href="#org2ce0496">2.2.1. Get</a></li>
|
||||
<li><a href="#org6a39fde">2.2.2. Compute</a></li>
|
||||
<li><a href="#orgcda3359">2.2.3. Test</a></li>
|
||||
<li><a href="#org4eadc75">2.2.1. Get</a></li>
|
||||
<li><a href="#org4a54052">2.2.2. Compute</a></li>
|
||||
<li><a href="#org5c2bc8c">2.2.3. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org5af36bd">2.3. Nuclear repulsion energy</a>
|
||||
<li><a href="#org880fdb2">2.3. Nuclear repulsion energy</a>
|
||||
<ul>
|
||||
<li><a href="#orgeace222">2.3.1. Get</a></li>
|
||||
<li><a href="#orgf3fa666">2.3.2. Compute</a></li>
|
||||
<li><a href="#org7ced822">2.3.3. Test</a></li>
|
||||
<li><a href="#org79207db">2.3.1. Get</a></li>
|
||||
<li><a href="#org0454d7f">2.3.2. Compute</a></li>
|
||||
<li><a href="#orgb6b49b0">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-org170f95c" class="outline-2">
|
||||
<h2 id="org170f95c"><span class="section-number-2">1</span> Context</h2>
|
||||
<div id="outline-container-org56408c4" class="outline-2">
|
||||
<h2 id="org56408c4"><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-org424a3d7" class="outline-3">
|
||||
<h3 id="org424a3d7"><span class="section-number-3">1.1</span> Data structure</h3>
|
||||
<div id="outline-container-org885a95f" class="outline-3">
|
||||
<h3 id="org885a95f"><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-orgecbe688" class="outline-3">
|
||||
<h3 id="orgecbe688"><span class="section-number-3">1.2</span> Access functions</h3>
|
||||
<div id="outline-container-org1bbb89a" class="outline-3">
|
||||
<h3 id="org1bbb89a"><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-org5015886" class="outline-3">
|
||||
<h3 id="org5015886"><span class="section-number-3">1.3</span> Initialization functions</h3>
|
||||
<div id="outline-container-org519fc06" class="outline-3">
|
||||
<h3 id="org519fc06"><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-org83d22cd" class="outline-3">
|
||||
<h3 id="org83d22cd"><span class="section-number-3">1.4</span> Test</h3>
|
||||
<div id="outline-container-orgbae6753" class="outline-3">
|
||||
<h3 id="orgbae6753"><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-orgfa5f461" class="outline-2">
|
||||
<h2 id="orgfa5f461"><span class="section-number-2">2</span> Computation</h2>
|
||||
<div id="outline-container-org7322ba7" class="outline-2">
|
||||
<h2 id="org7322ba7"><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-orgdf27776" class="outline-3">
|
||||
<h3 id="orgdf27776"><span class="section-number-3">2.1</span> Nucleus-nucleus distances</h3>
|
||||
<div id="outline-container-orgeedd28d" class="outline-3">
|
||||
<h3 id="orgeedd28d"><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-orgd79398b" class="outline-4">
|
||||
<h4 id="orgd79398b"><span class="section-number-4">2.1.1</span> Get</h4>
|
||||
<div id="outline-container-orgecfbaa7" class="outline-4">
|
||||
<h4 id="orgecfbaa7"><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-org6636cc9" class="outline-4">
|
||||
<h4 id="org6636cc9"><span class="section-number-4">2.1.2</span> Compute</h4>
|
||||
<div id="outline-container-org27d9ed1" class="outline-4">
|
||||
<h4 id="org27d9ed1"><span class="section-number-4">2.1.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-1-2">
|
||||
<table id="orga263866" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgf994c6a" 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-orge0542c8" class="outline-4">
|
||||
<h4 id="orge0542c8"><span class="section-number-4">2.1.3</span> Test</h4>
|
||||
<div id="outline-container-org72bf782" class="outline-4">
|
||||
<h4 id="org72bf782"><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-org5bffc6f" class="outline-3">
|
||||
<h3 id="org5bffc6f"><span class="section-number-3">2.2</span> Nucleus-nucleus rescaled distances</h3>
|
||||
<div id="outline-container-org2652e95" class="outline-3">
|
||||
<h3 id="org2652e95"><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-org2ce0496" class="outline-4">
|
||||
<h4 id="org2ce0496"><span class="section-number-4">2.2.1</span> Get</h4>
|
||||
<div id="outline-container-org4eadc75" class="outline-4">
|
||||
<h4 id="org4eadc75"><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-org6a39fde" class="outline-4">
|
||||
<h4 id="org6a39fde"><span class="section-number-4">2.2.2</span> Compute</h4>
|
||||
<div id="outline-container-org4a54052" class="outline-4">
|
||||
<h4 id="org4a54052"><span class="section-number-4">2.2.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-2-2">
|
||||
<table id="org1ef7b18" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org5ba7093" 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-orgcda3359" class="outline-4">
|
||||
<h4 id="orgcda3359"><span class="section-number-4">2.2.3</span> Test</h4>
|
||||
<div id="outline-container-org5c2bc8c" class="outline-4">
|
||||
<h4 id="org5c2bc8c"><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-org5af36bd" class="outline-3">
|
||||
<h3 id="org5af36bd"><span class="section-number-3">2.3</span> Nuclear repulsion energy</h3>
|
||||
<div id="outline-container-org880fdb2" class="outline-3">
|
||||
<h3 id="org880fdb2"><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-orgeace222" class="outline-4">
|
||||
<h4 id="orgeace222"><span class="section-number-4">2.3.1</span> Get</h4>
|
||||
<div id="outline-container-org79207db" class="outline-4">
|
||||
<h4 id="org79207db"><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-orgf3fa666" class="outline-4">
|
||||
<h4 id="orgf3fa666"><span class="section-number-4">2.3.2</span> Compute</h4>
|
||||
<div id="outline-container-org0454d7f" class="outline-4">
|
||||
<h4 id="org0454d7f"><span class="section-number-4">2.3.2</span> Compute</h4>
|
||||
<div class="outline-text-4" id="text-2-3-2">
|
||||
<table id="org521a850" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org3228bfa" 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-org7ced822" class="outline-4">
|
||||
<h4 id="org7ced822"><span class="section-number-4">2.3.3</span> Test</h4>
|
||||
<div id="outline-container-orgb6b49b0" class="outline-4">
|
||||
<h4 id="orgb6b49b0"><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, &rep);
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: TREX CoE</p>
|
||||
<p class="date">Created: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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="#org54545e7">1. Control of the numerical precision</a></li>
|
||||
<li><a href="#org7e9eac3">2. Precision</a></li>
|
||||
<li><a href="#org5940e06">3. Range</a></li>
|
||||
<li><a href="#org615ae6a">4. Helper functions</a></li>
|
||||
<li><a href="#org7724916">1. Control of the numerical precision</a></li>
|
||||
<li><a href="#org38ddee0">2. Precision</a></li>
|
||||
<li><a href="#org7134b7b">3. Range</a></li>
|
||||
<li><a href="#org91af303">4. Helper functions</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org54545e7" class="outline-2">
|
||||
<h2 id="org54545e7"><span class="section-number-2">1</span> Control of the numerical precision</h2>
|
||||
<div id="outline-container-org7724916" class="outline-2">
|
||||
<h2 id="org7724916"><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="org75a6aa8" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org76c62d2" 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-org7e9eac3" class="outline-2">
|
||||
<h2 id="org7e9eac3"><span class="section-number-2">2</span> Precision</h2>
|
||||
<div id="outline-container-org38ddee0" class="outline-2">
|
||||
<h2 id="org38ddee0"><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-org5940e06" class="outline-2">
|
||||
<h2 id="org5940e06"><span class="section-number-2">3</span> Range</h2>
|
||||
<div id="outline-container-org7134b7b" class="outline-2">
|
||||
<h2 id="org7134b7b"><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-org615ae6a" class="outline-2">
|
||||
<h2 id="org615ae6a"><span class="section-number-2">4</span> Helper functions</h2>
|
||||
<div id="outline-container-org91af303" class="outline-2">
|
||||
<h2 id="org91af303"><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: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
825
qmckl_point.html
Normal file
825
qmckl_point.html
Normal file
@ -0,0 +1,825 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Point</title>
|
||||
<meta name="generator" content="Org mode" />
|
||||
<meta name="author" content="TREX CoE" />
|
||||
<style type="text/css">
|
||||
<!--/*--><![CDATA[/*><!--*/
|
||||
.title { text-align: center;
|
||||
margin-bottom: .2em; }
|
||||
.subtitle { text-align: center;
|
||||
font-size: medium;
|
||||
font-weight: bold;
|
||||
margin-top:0; }
|
||||
.todo { font-family: monospace; color: red; }
|
||||
.done { font-family: monospace; color: green; }
|
||||
.priority { font-family: monospace; color: orange; }
|
||||
.tag { background-color: #eee; font-family: monospace;
|
||||
padding: 2px; font-size: 80%; font-weight: normal; }
|
||||
.timestamp { color: #bebebe; }
|
||||
.timestamp-kwd { color: #5f9ea0; }
|
||||
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
|
||||
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
|
||||
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
|
||||
.underline { text-decoration: underline; }
|
||||
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
|
||||
p.verse { margin-left: 3%; }
|
||||
pre {
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: 3px 3px 3px #eee;
|
||||
padding: 8pt;
|
||||
font-family: monospace;
|
||||
overflow: auto;
|
||||
margin: 1.2em;
|
||||
}
|
||||
pre.src {
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
padding-top: 1.2em;
|
||||
}
|
||||
pre.src:before {
|
||||
display: none;
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
top: -10px;
|
||||
right: 10px;
|
||||
padding: 3px;
|
||||
border: 1px solid black;
|
||||
}
|
||||
pre.src:hover:before { display: inline;}
|
||||
/* Languages per Org manual */
|
||||
pre.src-asymptote:before { content: 'Asymptote'; }
|
||||
pre.src-awk:before { content: 'Awk'; }
|
||||
pre.src-C:before { content: 'C'; }
|
||||
/* pre.src-C++ doesn't work in CSS */
|
||||
pre.src-clojure:before { content: 'Clojure'; }
|
||||
pre.src-css:before { content: 'CSS'; }
|
||||
pre.src-D:before { content: 'D'; }
|
||||
pre.src-ditaa:before { content: 'ditaa'; }
|
||||
pre.src-dot:before { content: 'Graphviz'; }
|
||||
pre.src-calc:before { content: 'Emacs Calc'; }
|
||||
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
|
||||
pre.src-fortran:before { content: 'Fortran'; }
|
||||
pre.src-gnuplot:before { content: 'gnuplot'; }
|
||||
pre.src-haskell:before { content: 'Haskell'; }
|
||||
pre.src-hledger:before { content: 'hledger'; }
|
||||
pre.src-java:before { content: 'Java'; }
|
||||
pre.src-js:before { content: 'Javascript'; }
|
||||
pre.src-latex:before { content: 'LaTeX'; }
|
||||
pre.src-ledger:before { content: 'Ledger'; }
|
||||
pre.src-lisp:before { content: 'Lisp'; }
|
||||
pre.src-lilypond:before { content: 'Lilypond'; }
|
||||
pre.src-lua:before { content: 'Lua'; }
|
||||
pre.src-matlab:before { content: 'MATLAB'; }
|
||||
pre.src-mscgen:before { content: 'Mscgen'; }
|
||||
pre.src-ocaml:before { content: 'Objective Caml'; }
|
||||
pre.src-octave:before { content: 'Octave'; }
|
||||
pre.src-org:before { content: 'Org mode'; }
|
||||
pre.src-oz:before { content: 'OZ'; }
|
||||
pre.src-plantuml:before { content: 'Plantuml'; }
|
||||
pre.src-processing:before { content: 'Processing.js'; }
|
||||
pre.src-python:before { content: 'Python'; }
|
||||
pre.src-R:before { content: 'R'; }
|
||||
pre.src-ruby:before { content: 'Ruby'; }
|
||||
pre.src-sass:before { content: 'Sass'; }
|
||||
pre.src-scheme:before { content: 'Scheme'; }
|
||||
pre.src-screen:before { content: 'Gnu Screen'; }
|
||||
pre.src-sed:before { content: 'Sed'; }
|
||||
pre.src-sh:before { content: 'shell'; }
|
||||
pre.src-sql:before { content: 'SQL'; }
|
||||
pre.src-sqlite:before { content: 'SQLite'; }
|
||||
/* additional languages in org.el's org-babel-load-languages alist */
|
||||
pre.src-forth:before { content: 'Forth'; }
|
||||
pre.src-io:before { content: 'IO'; }
|
||||
pre.src-J:before { content: 'J'; }
|
||||
pre.src-makefile:before { content: 'Makefile'; }
|
||||
pre.src-maxima:before { content: 'Maxima'; }
|
||||
pre.src-perl:before { content: 'Perl'; }
|
||||
pre.src-picolisp:before { content: 'Pico Lisp'; }
|
||||
pre.src-scala:before { content: 'Scala'; }
|
||||
pre.src-shell:before { content: 'Shell Script'; }
|
||||
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
|
||||
/* additional language identifiers per "defun org-babel-execute"
|
||||
in ob-*.el */
|
||||
pre.src-cpp:before { content: 'C++'; }
|
||||
pre.src-abc:before { content: 'ABC'; }
|
||||
pre.src-coq:before { content: 'Coq'; }
|
||||
pre.src-groovy:before { content: 'Groovy'; }
|
||||
/* additional language identifiers from org-babel-shell-names in
|
||||
ob-shell.el: ob-shell is the only babel language using a lambda to put
|
||||
the execution function name together. */
|
||||
pre.src-bash:before { content: 'bash'; }
|
||||
pre.src-csh:before { content: 'csh'; }
|
||||
pre.src-ash:before { content: 'ash'; }
|
||||
pre.src-dash:before { content: 'dash'; }
|
||||
pre.src-ksh:before { content: 'ksh'; }
|
||||
pre.src-mksh:before { content: 'mksh'; }
|
||||
pre.src-posh:before { content: 'posh'; }
|
||||
/* Additional Emacs modes also supported by the LaTeX listings package */
|
||||
pre.src-ada:before { content: 'Ada'; }
|
||||
pre.src-asm:before { content: 'Assembler'; }
|
||||
pre.src-caml:before { content: 'Caml'; }
|
||||
pre.src-delphi:before { content: 'Delphi'; }
|
||||
pre.src-html:before { content: 'HTML'; }
|
||||
pre.src-idl:before { content: 'IDL'; }
|
||||
pre.src-mercury:before { content: 'Mercury'; }
|
||||
pre.src-metapost:before { content: 'MetaPost'; }
|
||||
pre.src-modula-2:before { content: 'Modula-2'; }
|
||||
pre.src-pascal:before { content: 'Pascal'; }
|
||||
pre.src-ps:before { content: 'PostScript'; }
|
||||
pre.src-prolog:before { content: 'Prolog'; }
|
||||
pre.src-simula:before { content: 'Simula'; }
|
||||
pre.src-tcl:before { content: 'tcl'; }
|
||||
pre.src-tex:before { content: 'TeX'; }
|
||||
pre.src-plain-tex:before { content: 'Plain TeX'; }
|
||||
pre.src-verilog:before { content: 'Verilog'; }
|
||||
pre.src-vhdl:before { content: 'VHDL'; }
|
||||
pre.src-xml:before { content: 'XML'; }
|
||||
pre.src-nxml:before { content: 'XML'; }
|
||||
/* add a generic configuration mode; LaTeX export needs an additional
|
||||
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
|
||||
pre.src-conf:before { content: 'Configuration File'; }
|
||||
|
||||
table { border-collapse:collapse; }
|
||||
caption.t-above { caption-side: top; }
|
||||
caption.t-bottom { caption-side: bottom; }
|
||||
td, th { vertical-align:top; }
|
||||
th.org-right { text-align: center; }
|
||||
th.org-left { text-align: center; }
|
||||
th.org-center { text-align: center; }
|
||||
td.org-right { text-align: right; }
|
||||
td.org-left { text-align: left; }
|
||||
td.org-center { text-align: center; }
|
||||
dt { font-weight: bold; }
|
||||
.footpara { display: inline; }
|
||||
.footdef { margin-bottom: 1em; }
|
||||
.figure { padding: 1em; }
|
||||
.figure p { text-align: center; }
|
||||
.inlinetask {
|
||||
padding: 10px;
|
||||
border: 2px solid gray;
|
||||
margin: 10px;
|
||||
background: #ffffcc;
|
||||
}
|
||||
#org-div-home-and-up
|
||||
{ text-align: right; font-size: 70%; white-space: nowrap; }
|
||||
textarea { overflow-x: auto; }
|
||||
.linenr { font-size: smaller }
|
||||
.code-highlighted { background-color: #ffff00; }
|
||||
.org-info-js_info-navigation { border-style: none; }
|
||||
#org-info-js_console-label
|
||||
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
|
||||
.org-info-js_search-highlight
|
||||
{ background-color: #ffff00; color: #000000; font-weight: bold; }
|
||||
.org-svg { width: 90%; }
|
||||
/*]]>*/-->
|
||||
</style>
|
||||
<link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript" src="org-info.js">
|
||||
/**
|
||||
*
|
||||
* @source: org-info.js
|
||||
*
|
||||
* @licstart The following is the entire license notice for the
|
||||
* JavaScript code in org-info.js.
|
||||
*
|
||||
* Copyright (C) 2012-2019 Free Software Foundation, Inc.
|
||||
*
|
||||
*
|
||||
* The JavaScript code in this tag is free software: you can
|
||||
* redistribute it and/or modify it under the terms of the GNU
|
||||
* General Public License (GNU GPL) as published by the Free Software
|
||||
* Foundation, either version 3 of the License, or (at your option)
|
||||
* any later version. The code is distributed WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
|
||||
*
|
||||
* As additional permission under GNU GPL version 3 section 7, you
|
||||
* may distribute non-source (e.g., minimized or compacted) forms of
|
||||
* that code without the copy of the GNU GPL normally required by
|
||||
* section 4, provided you include this license notice and a URL
|
||||
* through which recipients can access the Corresponding Source.
|
||||
*
|
||||
* @licend The above is the entire license notice
|
||||
* for the JavaScript code in org-info.js.
|
||||
*
|
||||
*/
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
/*
|
||||
@licstart The following is the entire license notice for the
|
||||
JavaScript code in this tag.
|
||||
|
||||
Copyright (C) 2012-2019 Free Software Foundation, Inc.
|
||||
|
||||
The JavaScript code in this tag is free software: you can
|
||||
redistribute it and/or modify it under the terms of the GNU
|
||||
General Public License (GNU GPL) as published by the Free Software
|
||||
Foundation, either version 3 of the License, or (at your option)
|
||||
any later version. The code is distributed WITHOUT ANY WARRANTY;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
|
||||
|
||||
As additional permission under GNU GPL version 3 section 7, you
|
||||
may distribute non-source (e.g., minimized or compacted) forms of
|
||||
that code without the copy of the GNU GPL normally required by
|
||||
section 4, provided you include this license notice and a URL
|
||||
through which recipients can access the Corresponding Source.
|
||||
|
||||
|
||||
@licend The above is the entire license notice
|
||||
for the JavaScript code in this tag.
|
||||
*/
|
||||
|
||||
<!--/*--><![CDATA[/*><!--*/
|
||||
org_html_manager.set("TOC_DEPTH", "4");
|
||||
org_html_manager.set("LINK_HOME", "index.html");
|
||||
org_html_manager.set("LINK_UP", "");
|
||||
org_html_manager.set("LOCAL_TOC", "1");
|
||||
org_html_manager.set("VIEW_BUTTONS", "0");
|
||||
org_html_manager.set("MOUSE_HINT", "underline");
|
||||
org_html_manager.set("FIXED_TOC", "0");
|
||||
org_html_manager.set("TOC", "1");
|
||||
org_html_manager.set("VIEW", "info");
|
||||
org_html_manager.setup(); // activate after the parameters are set
|
||||
/*]]>*///-->
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
/*
|
||||
@licstart The following is the entire license notice for the
|
||||
JavaScript code in this tag.
|
||||
|
||||
Copyright (C) 2012-2019 Free Software Foundation, Inc.
|
||||
|
||||
The JavaScript code in this tag is free software: you can
|
||||
redistribute it and/or modify it under the terms of the GNU
|
||||
General Public License (GNU GPL) as published by the Free Software
|
||||
Foundation, either version 3 of the License, or (at your option)
|
||||
any later version. The code is distributed WITHOUT ANY WARRANTY;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
|
||||
|
||||
As additional permission under GNU GPL version 3 section 7, you
|
||||
may distribute non-source (e.g., minimized or compacted) forms of
|
||||
that code without the copy of the GNU GPL normally required by
|
||||
section 4, provided you include this license notice and a URL
|
||||
through which recipients can access the Corresponding Source.
|
||||
|
||||
|
||||
@licend The above is the entire license notice
|
||||
for the JavaScript code in this tag.
|
||||
*/
|
||||
<!--/*--><![CDATA[/*><!--*/
|
||||
function CodeHighlightOn(elem, id)
|
||||
{
|
||||
var target = document.getElementById(id);
|
||||
if(null != target) {
|
||||
elem.cacheClassElem = elem.className;
|
||||
elem.cacheClassTarget = target.className;
|
||||
target.className = "code-highlighted";
|
||||
elem.className = "code-highlighted";
|
||||
}
|
||||
}
|
||||
function CodeHighlightOff(elem, id)
|
||||
{
|
||||
var target = document.getElementById(id);
|
||||
if(elem.cacheClassElem)
|
||||
elem.className = elem.cacheClassElem;
|
||||
if(elem.cacheClassTarget)
|
||||
target.className = elem.cacheClassTarget;
|
||||
}
|
||||
/*]]>*///-->
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="org-div-home-and-up">
|
||||
<a accesskey="h" href=""> UP </a>
|
||||
|
|
||||
<a accesskey="H" href="index.html"> HOME </a>
|
||||
</div><div id="content">
|
||||
<h1 class="title">Point</h1>
|
||||
<div id="table-of-contents">
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org34fe8a3">1. Context</a>
|
||||
<ul>
|
||||
<li><a href="#org475345b">1.1. Data structure</a></li>
|
||||
<li><a href="#orga0621fe">1.2. Access functions</a>
|
||||
<ul>
|
||||
<li><a href="#orgf986bfa">1.2.1. Number of points</a></li>
|
||||
<li><a href="#orgfc8765c">1.2.2. Point coordinates</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org23d5f47">1.3. Initialization functions</a></li>
|
||||
<li><a href="#org7a59484">1.4. Test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org34fe8a3" class="outline-2">
|
||||
<h2 id="org34fe8a3"><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:
|
||||
</p>
|
||||
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-left" />
|
||||
|
||||
<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">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-left"><code>num</code></td>
|
||||
<td class="org-left"><code>int64_t</code></td>
|
||||
<td class="org-left">Total number of points</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>coord_x</code></td>
|
||||
<td class="org-left"><code>double[num]</code></td>
|
||||
<td class="org-left">X coordinates</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>coord_y</code></td>
|
||||
<td class="org-left"><code>double[num]</code></td>
|
||||
<td class="org-left">Y coordinates</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>coord_z</code></td>
|
||||
<td class="org-left"><code>double[num]</code></td>
|
||||
<td class="org-left">Z coordinates</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
We consider that 'transposed' and 'normal' storage follows the convention:
|
||||
</p>
|
||||
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-left" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="org-left"> </th>
|
||||
<th scope="col" class="org-left">Normal</th>
|
||||
<th scope="col" class="org-left">Transposed</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-left">C</td>
|
||||
<td class="org-left"><code>[point_num][3]</code></td>
|
||||
<td class="org-left"><code>[3][point_num]</code></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">Fortran</td>
|
||||
<td class="org-left"><code>(3,point_num)</code></td>
|
||||
<td class="org-left"><code>(point_num,3)</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org475345b" class="outline-3">
|
||||
<h3 id="org475345b"><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_point_struct</span> {
|
||||
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coord_x</span>;
|
||||
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coord_y</span>;
|
||||
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coord_z</span>;
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">num</span>;
|
||||
} <span style="color: #228b22;">qmckl_point_struct</span>;
|
||||
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_init_point</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_init_point</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>) {
|
||||
|
||||
<span style="color: #a020f0;">if</span> (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) {
|
||||
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">false</span>;
|
||||
}
|
||||
|
||||
<span style="color: #228b22;">qmckl_context_struct</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">ctx</span> = (<span style="color: #228b22;">qmckl_context_struct</span>* <span style="color: #a020f0;">const</span>) context;
|
||||
assert (ctx != <span style="color: #008b8b;">NULL</span>);
|
||||
|
||||
<span style="color: #228b22;">qmckl_memory_info_struct</span> <span style="color: #a0522d;">mem_info</span> = qmckl_memory_info_struct_zero;
|
||||
mem_info.size = <span style="color: #a020f0;">sizeof</span>(qmckl_point_struct);
|
||||
ctx->point = (<span style="color: #228b22;">qmckl_point_struct</span>*) qmckl_malloc(context, mem_info);
|
||||
<span style="color: #a020f0;">if</span> (ctx->point == <span style="color: #008b8b;">NULL</span>) {
|
||||
<span style="color: #a020f0;">return</span> qmckl_failwith( context,
|
||||
QMCKL_ALLOCATION_FAILED,
|
||||
<span style="color: #8b2252;">"qmckl_init_point"</span>,
|
||||
<span style="color: #008b8b;">NULL</span>);
|
||||
}
|
||||
memset(ctx->point, 0, <span style="color: #a020f0;">sizeof</span>(qmckl_point_struct));
|
||||
|
||||
<span style="color: #a020f0;">return</span> QMCKL_SUCCESS;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga0621fe" class="outline-3">
|
||||
<h3 id="orga0621fe"><span class="section-number-3">1.2</span> Access functions</h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<p>
|
||||
Access functions return <code>QMCKL_SUCCESS</code> when the data has been
|
||||
successfully retrieved. They return <code>QMCKL_INVALID_CONTEXT</code> when
|
||||
the context is not a valid context. If the function returns
|
||||
successfully, the variable pointed by the pointer given in argument
|
||||
contains the requested data. Otherwise, this variable is untouched.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf986bfa" class="outline-4">
|
||||
<h4 id="orgf986bfa"><span class="section-number-4">1.2.1</span> Number of points</h4>
|
||||
<div class="outline-text-4" id="text-1-2-1">
|
||||
<p>
|
||||
Returns the number of points stored in the context.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-f90"><span style="color: #a020f0;">interface</span>
|
||||
<span style="color: #228b22;">integer</span>(<span style="color: #008b8b;">c_int32_t</span>) <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">qmckl_get_point_num</span>(context, num) <span style="color: #a020f0;">bind</span>(C)
|
||||
<span style="color: #a020f0;">use</span>, <span style="color: #a020f0;">intrinsic</span> :: <span style="color: #0000ff;">iso_c_binding</span>
|
||||
<span style="color: #a020f0;">import</span>
|
||||
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
|
||||
|
||||
<span style="color: #228b22;">integer</span> (<span style="color: #008b8b;">c_int64_t</span>) , <span style="color: #a020f0;">intent</span>(in) , <span style="color: #a020f0;">value</span> ::<span style="color: #a0522d;"> context </span>
|
||||
<span style="color: #228b22;">integer</span> (<span style="color: #008b8b;">c_int64_t</span>) , <span style="color: #a020f0;">intent</span>(out) ::<span style="color: #a0522d;"> num </span>
|
||||
<span style="color: #a020f0;">end function</span>
|
||||
<span style="color: #a020f0;">end interface</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfc8765c" class="outline-4">
|
||||
<h4 id="orgfc8765c"><span class="section-number-4">1.2.2</span> Point coordinates</h4>
|
||||
<div class="outline-text-4" id="text-1-2-2">
|
||||
<p>
|
||||
Returns the point coordinates as sequences of (x,y,z).
|
||||
The pointer is assumed to point on a memory block of size
|
||||
<code>size_max</code> ≥ <code>3 * point_num</code>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-f90"><span style="color: #a020f0;">interface</span>
|
||||
<span style="color: #228b22;">integer</span>(<span style="color: #008b8b;">c_int32_t</span>) <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">qmckl_get_point</span>(context, coord, size_max) <span style="color: #a020f0;">bind</span>(C)
|
||||
<span style="color: #a020f0;">use</span>, <span style="color: #a020f0;">intrinsic</span> :: <span style="color: #0000ff;">iso_c_binding</span>
|
||||
<span style="color: #a020f0;">import</span>
|
||||
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
|
||||
|
||||
<span style="color: #228b22;">integer</span> (<span style="color: #008b8b;">c_int64_t</span>) , <span style="color: #a020f0;">intent</span>(in) , <span style="color: #a020f0;">value</span> ::<span style="color: #a0522d;"> context</span>
|
||||
<span style="color: #228b22;">real</span> (<span style="color: #008b8b;">c_double</span> ) , <span style="color: #a020f0;">intent</span>(out) ::<span style="color: #a0522d;"> coord(*)</span>
|
||||
<span style="color: #228b22;">integer</span> (<span style="color: #008b8b;">c_int64_t</span>) , <span style="color: #a020f0;">intent</span>(in) ::<span style="color: #a0522d;"> size_max</span>
|
||||
<span style="color: #a020f0;">end function</span>
|
||||
<span style="color: #a020f0;">end interface</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<p>
|
||||
Returns the point coordinates in three different arrays, one for
|
||||
each component x,y,z.
|
||||
The pointers are assumed to point on a memory block of size
|
||||
<code>size_max</code> ≥ <code>point_num</code>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-f90"><span style="color: #a020f0;">interface</span>
|
||||
<span style="color: #228b22;">integer</span>(<span style="color: #008b8b;">c_int32_t</span>)<span style="color: #a0522d;"> function qmckl_get_point_xyz(context, </span><span style="color: #a020f0;">&</span>
|
||||
coord_x, coord_y, coord_z, size_max) <span style="color: #a020f0;">bind</span>(C)
|
||||
<span style="color: #a020f0;">use</span>, <span style="color: #a020f0;">intrinsic</span> :: <span style="color: #0000ff;">iso_c_binding</span>
|
||||
<span style="color: #a020f0;">import</span>
|
||||
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
|
||||
|
||||
<span style="color: #228b22;">integer</span> (<span style="color: #008b8b;">c_int64_t</span>) , <span style="color: #a020f0;">intent</span>(in) , <span style="color: #a020f0;">value</span> ::<span style="color: #a0522d;"> context</span>
|
||||
<span style="color: #228b22;">real</span> (<span style="color: #008b8b;">c_double</span> ) , <span style="color: #a020f0;">intent</span>(out) ::<span style="color: #a0522d;"> coord_x(*)</span>
|
||||
<span style="color: #228b22;">real</span> (<span style="color: #008b8b;">c_double</span> ) , <span style="color: #a020f0;">intent</span>(out) ::<span style="color: #a0522d;"> coord_y(*)</span>
|
||||
<span style="color: #228b22;">real</span> (<span style="color: #008b8b;">c_double</span> ) , <span style="color: #a020f0;">intent</span>(out) ::<span style="color: #a0522d;"> coord_z(*)</span>
|
||||
<span style="color: #228b22;">integer</span> (<span style="color: #008b8b;">c_int64_t</span>) , <span style="color: #a020f0;">intent</span>(in) ::<span style="color: #a0522d;"> size_max</span>
|
||||
<span style="color: #a020f0;">end function</span>
|
||||
<span style="color: #a020f0;">end interface</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org23d5f47" class="outline-3">
|
||||
<h3 id="org23d5f47"><span class="section-number-3">1.3</span> Initialization functions</h3>
|
||||
<div class="outline-text-3" id="text-1-3">
|
||||
<p>
|
||||
When the data is set in the context, if the arrays are large
|
||||
enough, we overwrite the data contained in them.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To set the data relative to the points in the context, one of the
|
||||
following functions need to be called.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_set_point</span> (<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coord</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">num</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Copy a sequence of (x,y,z) into the context.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span>
|
||||
<span style="color: #0000ff;">qmckl_set_point</span> (<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coord</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">num</span>)
|
||||
{
|
||||
|
||||
<span style="color: #a020f0;">if</span> (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) {
|
||||
<span style="color: #a020f0;">return</span> QMCKL_NULL_CONTEXT;
|
||||
}
|
||||
|
||||
<span style="color: #228b22;">qmckl_context_struct</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">ctx</span> = (<span style="color: #228b22;">qmckl_context_struct</span>* <span style="color: #a020f0;">const</span>) context;
|
||||
assert (ctx != <span style="color: #008b8b;">NULL</span>);
|
||||
assert (ctx->point != <span style="color: #008b8b;">NULL</span>);
|
||||
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->num < num) {
|
||||
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->coord_x != <span style="color: #008b8b;">NULL</span>) {
|
||||
qmckl_free(context, ctx->point->coord_x);
|
||||
ctx->point->coord_x = <span style="color: #008b8b;">NULL</span>;
|
||||
}
|
||||
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->coord_y != <span style="color: #008b8b;">NULL</span>) {
|
||||
qmckl_free(context, ctx->point->coord_y);
|
||||
ctx->point->coord_y = <span style="color: #008b8b;">NULL</span>;
|
||||
}
|
||||
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->coord_z != <span style="color: #008b8b;">NULL</span>) {
|
||||
qmckl_free(context, ctx->point->coord_z);
|
||||
ctx->point->coord_z = <span style="color: #008b8b;">NULL</span>;
|
||||
}
|
||||
|
||||
<span style="color: #228b22;">qmckl_memory_info_struct</span> <span style="color: #a0522d;">mem_info</span> = qmckl_memory_info_struct_zero;
|
||||
mem_info.size = num*<span style="color: #a020f0;">sizeof</span>(<span style="color: #228b22;">double</span>);
|
||||
|
||||
ctx->point->coord_x = (<span style="color: #228b22;">double</span>*) qmckl_malloc(context, mem_info);
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->coord_x == <span style="color: #008b8b;">NULL</span>) {
|
||||
<span style="color: #a020f0;">return</span> qmckl_failwith( context,
|
||||
QMCKL_ALLOCATION_FAILED,
|
||||
<span style="color: #8b2252;">"qmckl_set_point"</span>,
|
||||
<span style="color: #008b8b;">NULL</span>);
|
||||
}
|
||||
|
||||
ctx->point->coord_y = (<span style="color: #228b22;">double</span>*) qmckl_malloc(context, mem_info);
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->coord_y == <span style="color: #008b8b;">NULL</span>) {
|
||||
<span style="color: #a020f0;">return</span> qmckl_failwith( context,
|
||||
QMCKL_ALLOCATION_FAILED,
|
||||
<span style="color: #8b2252;">"qmckl_set_point"</span>,
|
||||
<span style="color: #008b8b;">NULL</span>);
|
||||
}
|
||||
|
||||
ctx->point->coord_z = (<span style="color: #228b22;">double</span>*) qmckl_malloc(context, mem_info);
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->coord_z == <span style="color: #008b8b;">NULL</span>) {
|
||||
<span style="color: #a020f0;">return</span> qmckl_failwith( context,
|
||||
QMCKL_ALLOCATION_FAILED,
|
||||
<span style="color: #8b2252;">"qmckl_set_point"</span>,
|
||||
<span style="color: #008b8b;">NULL</span>);
|
||||
}
|
||||
};
|
||||
|
||||
ctx->point->num = num;
|
||||
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">i</span>=0 ; i<num ; ++i) {
|
||||
ctx->point->coord_x[i] = coord[3*i ];
|
||||
ctx->point->coord_y[i] = coord[3*i+1];
|
||||
ctx->point->coord_z[i] = coord[3*i+2];
|
||||
}
|
||||
|
||||
<span style="color: #a020f0;">return</span> QMCKL_SUCCESS;
|
||||
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-f90"><span style="color: #a020f0;">interface</span>
|
||||
<span style="color: #228b22;">integer</span>(<span style="color: #008b8b;">c_int32_t</span>)<span style="color: #a0522d;"> function qmckl_set_point(context, </span><span style="color: #a020f0;">&</span>
|
||||
coord_x, coord_y, coord_z, size_max) <span style="color: #a020f0;">bind</span>(C)
|
||||
<span style="color: #a020f0;">use</span>, <span style="color: #a020f0;">intrinsic</span> :: <span style="color: #0000ff;">iso_c_binding</span>
|
||||
<span style="color: #a020f0;">import</span>
|
||||
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
|
||||
|
||||
<span style="color: #228b22;">integer</span> (<span style="color: #008b8b;">c_int64_t</span>) , <span style="color: #a020f0;">intent</span>(in) , <span style="color: #a020f0;">value</span> ::<span style="color: #a0522d;"> context</span>
|
||||
<span style="color: #228b22;">real</span> (<span style="color: #008b8b;">c_double</span> ) , <span style="color: #a020f0;">intent</span>(in) ::<span style="color: #a0522d;"> coord_x(*)</span>
|
||||
<span style="color: #228b22;">real</span> (<span style="color: #008b8b;">c_double</span> ) , <span style="color: #a020f0;">intent</span>(in) ::<span style="color: #a0522d;"> coord_y(*)</span>
|
||||
<span style="color: #228b22;">real</span> (<span style="color: #008b8b;">c_double</span> ) , <span style="color: #a020f0;">intent</span>(in) ::<span style="color: #a0522d;"> coord_z(*)</span>
|
||||
<span style="color: #228b22;">integer</span> (<span style="color: #008b8b;">c_int64_t</span>) , <span style="color: #a020f0;">intent</span>(in) , <span style="color: #a020f0;">value</span> ::<span style="color: #a0522d;"> size_max</span>
|
||||
<span style="color: #a020f0;">end function</span>
|
||||
<span style="color: #a020f0;">end interface</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_set_point_xyz</span> (<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coord_x</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coord_y</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coord_z</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">num</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span>
|
||||
<span style="color: #0000ff;">qmckl_set_point_xyz</span> (<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coord_x</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coord_y</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coord_z</span>,
|
||||
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">num</span>)
|
||||
{
|
||||
|
||||
<span style="color: #a020f0;">if</span> (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) {
|
||||
<span style="color: #a020f0;">return</span> QMCKL_NULL_CONTEXT;
|
||||
}
|
||||
|
||||
<span style="color: #228b22;">qmckl_context_struct</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">ctx</span> = (<span style="color: #228b22;">qmckl_context_struct</span>* <span style="color: #a020f0;">const</span>) context;
|
||||
assert (ctx != <span style="color: #008b8b;">NULL</span>);
|
||||
assert (ctx->point != <span style="color: #008b8b;">NULL</span>);
|
||||
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->num < num) {
|
||||
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->coord_x != <span style="color: #008b8b;">NULL</span>) {
|
||||
qmckl_free(context, ctx->point->coord_x);
|
||||
ctx->point->coord_x = <span style="color: #008b8b;">NULL</span>;
|
||||
}
|
||||
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->coord_y != <span style="color: #008b8b;">NULL</span>) {
|
||||
qmckl_free(context, ctx->point->coord_y);
|
||||
ctx->point->coord_y = <span style="color: #008b8b;">NULL</span>;
|
||||
}
|
||||
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->coord_z != <span style="color: #008b8b;">NULL</span>) {
|
||||
qmckl_free(context, ctx->point->coord_z);
|
||||
ctx->point->coord_z = <span style="color: #008b8b;">NULL</span>;
|
||||
}
|
||||
|
||||
<span style="color: #228b22;">qmckl_memory_info_struct</span> <span style="color: #a0522d;">mem_info</span> = qmckl_memory_info_struct_zero;
|
||||
mem_info.size = num*<span style="color: #a020f0;">sizeof</span>(<span style="color: #228b22;">double</span>);
|
||||
|
||||
ctx->point->coord_x = (<span style="color: #228b22;">double</span>*) qmckl_malloc(context, mem_info);
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->coord_x == <span style="color: #008b8b;">NULL</span>) {
|
||||
<span style="color: #a020f0;">return</span> qmckl_failwith( context,
|
||||
QMCKL_ALLOCATION_FAILED,
|
||||
<span style="color: #8b2252;">"qmckl_set_point"</span>,
|
||||
<span style="color: #008b8b;">NULL</span>);
|
||||
}
|
||||
|
||||
ctx->point->coord_y = (<span style="color: #228b22;">double</span>*) qmckl_malloc(context, mem_info);
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->coord_y == <span style="color: #008b8b;">NULL</span>) {
|
||||
<span style="color: #a020f0;">return</span> qmckl_failwith( context,
|
||||
QMCKL_ALLOCATION_FAILED,
|
||||
<span style="color: #8b2252;">"qmckl_set_point"</span>,
|
||||
<span style="color: #008b8b;">NULL</span>);
|
||||
}
|
||||
|
||||
ctx->point->coord_z = (<span style="color: #228b22;">double</span>*) qmckl_malloc(context, mem_info);
|
||||
<span style="color: #a020f0;">if</span> (ctx->point->coord_z == <span style="color: #008b8b;">NULL</span>) {
|
||||
<span style="color: #a020f0;">return</span> qmckl_failwith( context,
|
||||
QMCKL_ALLOCATION_FAILED,
|
||||
<span style="color: #8b2252;">"qmckl_set_point"</span>,
|
||||
<span style="color: #008b8b;">NULL</span>);
|
||||
}
|
||||
};
|
||||
|
||||
ctx->point->num = num;
|
||||
|
||||
memcpy(ctx->point->coord_x, coord_x, <span style="color: #228b22;">num</span>*<span style="color: #a020f0;">sizeof</span>(<span style="color: #228b22;">double</span>));
|
||||
memcpy(ctx->point->coord_y, coord_y, <span style="color: #228b22;">num</span>*<span style="color: #a020f0;">sizeof</span>(<span style="color: #228b22;">double</span>));
|
||||
memcpy(ctx->point->coord_z, coord_z, <span style="color: #228b22;">num</span>*<span style="color: #a020f0;">sizeof</span>(<span style="color: #228b22;">double</span>));
|
||||
|
||||
<span style="color: #a020f0;">return</span> QMCKL_SUCCESS;
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-f90"><span style="color: #a020f0;">interface</span>
|
||||
<span style="color: #228b22;">integer</span>(<span style="color: #008b8b;">c_int32_t</span>)<span style="color: #a0522d;"> function qmckl_set_point_xyz(context, </span><span style="color: #a020f0;">&</span>
|
||||
coord_x, coord_y, coord_z, size_max) <span style="color: #a020f0;">bind</span>(C)
|
||||
<span style="color: #a020f0;">use</span>, <span style="color: #a020f0;">intrinsic</span> :: <span style="color: #0000ff;">iso_c_binding</span>
|
||||
<span style="color: #a020f0;">import</span>
|
||||
<span style="color: #a020f0;">implicit</span> <span style="color: #228b22;">none</span>
|
||||
|
||||
<span style="color: #228b22;">integer</span> (<span style="color: #008b8b;">c_int64_t</span>) , <span style="color: #a020f0;">intent</span>(in) , <span style="color: #a020f0;">value</span> ::<span style="color: #a0522d;"> context</span>
|
||||
<span style="color: #228b22;">real</span> (<span style="color: #008b8b;">c_double</span> ) , <span style="color: #a020f0;">intent</span>(in) ::<span style="color: #a0522d;"> coord_x(*)</span>
|
||||
<span style="color: #228b22;">real</span> (<span style="color: #008b8b;">c_double</span> ) , <span style="color: #a020f0;">intent</span>(in) ::<span style="color: #a0522d;"> coord_y(*)</span>
|
||||
<span style="color: #228b22;">real</span> (<span style="color: #008b8b;">c_double</span> ) , <span style="color: #a020f0;">intent</span>(in) ::<span style="color: #a0522d;"> coord_z(*)</span>
|
||||
<span style="color: #228b22;">integer</span> (<span style="color: #008b8b;">c_int64_t</span>) , <span style="color: #a020f0;">intent</span>(in) , <span style="color: #a020f0;">value</span> ::<span style="color: #a0522d;"> size_max</span>
|
||||
<span style="color: #a020f0;">end function</span>
|
||||
<span style="color: #a020f0;">end interface</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7a59484" class="outline-3">
|
||||
<h3 id="org7a59484"><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: #b22222;">Reference input data </span>*/
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">point_num</span> = chbrclf_elec_num;
|
||||
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">coord</span> = &(chbrclf_elec_coord[0][0][0]);
|
||||
|
||||
/* <span style="color: #b22222;">--- </span>*/
|
||||
|
||||
<span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #a0522d;">rc</span>;
|
||||
|
||||
rc = qmckl_set_point (context, coord, point_num);
|
||||
<span style="color: #0000ff;">assert</span>(rc == QMCKL_SUCCESS);
|
||||
|
||||
<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">n</span>;
|
||||
rc = qmckl_get_point_num (context, &n);
|
||||
<span style="color: #0000ff;">assert</span>(rc == QMCKL_SUCCESS);
|
||||
<span style="color: #0000ff;">assert</span>(n == point_num);
|
||||
|
||||
<span style="color: #228b22;">double</span> <span style="color: #a0522d;">coord2</span>[point_num*3];
|
||||
<span style="color: #228b22;">double</span> <span style="color: #a0522d;">coord_x</span>[point_num];
|
||||
<span style="color: #228b22;">double</span> <span style="color: #a0522d;">coord_y</span>[point_num];
|
||||
<span style="color: #228b22;">double</span> <span style="color: #a0522d;">coord_z</span>[point_num];
|
||||
|
||||
rc = qmckl_get_point_xyz (context, coord_x, coord_y, coord_z, point_num);
|
||||
<span style="color: #0000ff;">assert</span>(rc == QMCKL_SUCCESS);
|
||||
|
||||
rc = qmckl_get_point (context, coord2, (point_num*3));
|
||||
<span style="color: #0000ff;">assert</span>(rc == QMCKL_SUCCESS);
|
||||
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">i</span>=0 ; i<3*point_num ; ++i) {
|
||||
assert( coord[i] == coord2[i] );
|
||||
}
|
||||
|
||||
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">int64_t</span> <span style="color: #a0522d;">i</span>=0 ; i<point_num ; ++i) {
|
||||
assert( coord[3*i+0] == coord_x[i] );
|
||||
assert( coord[3*i+1] == coord_y[i] );
|
||||
assert( coord[3*i+2] == coord_z[i] );
|
||||
}
|
||||
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: TREX CoE</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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="#org8def08e">1. Headers</a></li>
|
||||
<li><a href="#orge7cc3e8">2. Naïve Sherman-Morrison</a>
|
||||
<li><a href="#org199826b">1. Headers</a></li>
|
||||
<li><a href="#orgd74632c">2. Naïve Sherman-Morrison</a>
|
||||
<ul>
|
||||
<li><a href="#org75607de">2.1. <code>qmckl_sherman_morrison</code></a>
|
||||
<li><a href="#org2f743ee">2.1. <code>qmckl_sherman_morrison</code></a>
|
||||
<ul>
|
||||
<li><a href="#orgbc652d8">2.1.1. Requirements</a></li>
|
||||
<li><a href="#orgd39b9f4">2.1.2. C header</a></li>
|
||||
<li><a href="#org5e7e793">2.1.3. C source</a></li>
|
||||
<li><a href="#orgf4a5bcb">2.1.4. Performance</a></li>
|
||||
<li><a href="#org694da01">2.1.1. Requirements</a></li>
|
||||
<li><a href="#org3bfa5bc">2.1.2. C header</a></li>
|
||||
<li><a href="#org1d838ad">2.1.3. C source</a></li>
|
||||
<li><a href="#org357a3a6">2.1.4. Performance</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org699f17f">3. Woodbury 2x2</a>
|
||||
<li><a href="#org0f4a0e7">3. Woodbury 2x2</a>
|
||||
<ul>
|
||||
<li><a href="#org439faa9">3.1. <code>qmckl_woodbury_2</code></a>
|
||||
<li><a href="#orgf8da4a4">3.1. <code>qmckl_woodbury_2</code></a>
|
||||
<ul>
|
||||
<li><a href="#orged857d5">3.1.1. Requirements</a></li>
|
||||
<li><a href="#orgf6e1e0e">3.1.2. C header</a></li>
|
||||
<li><a href="#org9c903a5">3.1.3. C source</a></li>
|
||||
<li><a href="#org62512f5">3.1.4. Performance</a></li>
|
||||
<li><a href="#org57b326e">3.1.1. Requirements</a></li>
|
||||
<li><a href="#org441d189">3.1.2. C header</a></li>
|
||||
<li><a href="#org51d1603">3.1.3. C source</a></li>
|
||||
<li><a href="#org43b9e2b">3.1.4. Performance</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orge683825">4. Woodbury 3x3</a>
|
||||
<li><a href="#org33e3524">4. Woodbury 3x3</a>
|
||||
<ul>
|
||||
<li><a href="#org78edfea">4.1. <code>qmckl_woodbury_3</code></a>
|
||||
<li><a href="#orgc00b10d">4.1. <code>qmckl_woodbury_3</code></a>
|
||||
<ul>
|
||||
<li><a href="#orgca04599">4.1.1. Requirements</a></li>
|
||||
<li><a href="#orge2aec2a">4.1.2. C header</a></li>
|
||||
<li><a href="#org41fe2f7">4.1.3. C source</a></li>
|
||||
<li><a href="#org6afe0fb">4.1.4. Performance…</a></li>
|
||||
<li><a href="#org951278d">4.1.1. Requirements</a></li>
|
||||
<li><a href="#org6981851">4.1.2. C header</a></li>
|
||||
<li><a href="#orgf30d211">4.1.3. C source</a></li>
|
||||
<li><a href="#org833efec">4.1.4. Performance…</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org33b36f7">5. Sherman-Morrison with update splitting</a>
|
||||
<li><a href="#org80c69c6">5. Sherman-Morrison with update splitting</a>
|
||||
<ul>
|
||||
<li><a href="#org313406f">5.1. <code>qmckl_sherman_morrison_splitting</code></a>
|
||||
<li><a href="#orgcc26bae">5.1. <code>qmckl_sherman_morrison_splitting</code></a>
|
||||
<ul>
|
||||
<li><a href="#orgf4e8205">5.1.1. Requirements</a></li>
|
||||
<li><a href="#orga14bc2f">5.1.2. C header</a></li>
|
||||
<li><a href="#org3e9c4b4">5.1.3. C source</a></li>
|
||||
<li><a href="#org090ddff">5.1.4. Performance…</a></li>
|
||||
<li><a href="#orgf0561ad">5.1.1. Requirements</a></li>
|
||||
<li><a href="#org67e1be1">5.1.2. C header</a></li>
|
||||
<li><a href="#org25aa20d">5.1.3. C source</a></li>
|
||||
<li><a href="#orge5484eb">5.1.4. Performance…</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org4002cb5">6. Woodbury 3x3 and 2x2 with Sherman-Morrison and update splitting</a>
|
||||
<li><a href="#org601d5e6">6. Woodbury 3x3 and 2x2 with Sherman-Morrison and update splitting</a>
|
||||
<ul>
|
||||
<li><a href="#org39b12d5">6.1. <code>qmckl_sherman_morrison_smw32s</code></a>
|
||||
<li><a href="#org75791cf">6.1. <code>qmckl_sherman_morrison_smw32s</code></a>
|
||||
<ul>
|
||||
<li><a href="#org8cb21eb">6.1.1. Requirements</a></li>
|
||||
<li><a href="#org070c075">6.1.2. C header</a></li>
|
||||
<li><a href="#org1f2d930">6.1.3. C source</a></li>
|
||||
<li><a href="#orgbfefe73">6.1.4. Performance…</a></li>
|
||||
<li><a href="#orge89c8f9">6.1.1. Requirements</a></li>
|
||||
<li><a href="#orgf1d2fbd">6.1.2. C header</a></li>
|
||||
<li><a href="#org9e917bf">6.1.3. C source</a></li>
|
||||
<li><a href="#orgaaa20c0">6.1.4. Performance…</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org70ed988">7. Helper Functions</a>
|
||||
<li><a href="#org219b5f0">7. Helper Functions</a>
|
||||
<ul>
|
||||
<li><a href="#org1a471e0">7.1. <code>qmckl_slagel_splitting</code></a>
|
||||
<li><a href="#orgfddd5c9">7.1. <code>qmckl_slagel_splitting</code></a>
|
||||
<ul>
|
||||
<li><a href="#org894634d">7.1.1. Requirements</a></li>
|
||||
<li><a href="#org9fd4651">7.1.2. C header</a></li>
|
||||
<li><a href="#org13a4cc3">7.1.3. C source</a></li>
|
||||
<li><a href="#orgb99e798">7.1.4. Performance</a></li>
|
||||
<li><a href="#org8f9ecd7">7.1.1. Requirements</a></li>
|
||||
<li><a href="#org9303382">7.1.2. C header</a></li>
|
||||
<li><a href="#orgf428bec">7.1.3. C source</a></li>
|
||||
<li><a href="#org57f0f3e">7.1.4. Performance</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org36de49e">8. End of files</a></li>
|
||||
<li><a href="#org3689a43">8. End of files</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8def08e" class="outline-2">
|
||||
<h2 id="org8def08e"><span class="section-number-2">1</span> Headers</h2>
|
||||
<div id="outline-container-org199826b" class="outline-2">
|
||||
<h2 id="org199826b"><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-orge7cc3e8" class="outline-2">
|
||||
<h2 id="orge7cc3e8"><span class="section-number-2">2</span> Naïve Sherman-Morrison</h2>
|
||||
<div id="outline-container-orgd74632c" class="outline-2">
|
||||
<h2 id="orgd74632c"><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-org75607de" class="outline-3">
|
||||
<h3 id="org75607de"><span class="section-number-3">2.1</span> <code>qmckl_sherman_morrison</code></h3>
|
||||
<div id="outline-container-org2f743ee" class="outline-3">
|
||||
<h3 id="org2f743ee"><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="org1c3478c" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org8cf12ee" 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-orgbc652d8" class="outline-4">
|
||||
<h4 id="orgbc652d8"><span class="section-number-4">2.1.1</span> Requirements</h4>
|
||||
<div id="outline-container-org694da01" class="outline-4">
|
||||
<h4 id="org694da01"><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,8 +573,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd39b9f4" class="outline-4">
|
||||
<h4 id="orgd39b9f4"><span class="section-number-4">2.1.2</span> C header</h4>
|
||||
<div id="outline-container-org3bfa5bc" class="outline-4">
|
||||
<h4 id="org3bfa5bc"><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> (
|
||||
@ -592,8 +592,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5e7e793" class="outline-4">
|
||||
<h4 id="org5e7e793"><span class="section-number-4">2.1.3</span> C source</h4>
|
||||
<div id="outline-container-org1d838ad" class="outline-4">
|
||||
<h4 id="org1d838ad"><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;"><stdbool.h></span>
|
||||
@ -663,8 +663,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf4a5bcb" class="outline-4">
|
||||
<h4 id="orgf4a5bcb"><span class="section-number-4">2.1.4</span> Performance</h4>
|
||||
<div id="outline-container-org357a3a6" class="outline-4">
|
||||
<h4 id="org357a3a6"><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-org699f17f" class="outline-2">
|
||||
<h2 id="org699f17f"><span class="section-number-2">3</span> Woodbury 2x2</h2>
|
||||
<div id="outline-container-org0f4a0e7" class="outline-2">
|
||||
<h2 id="org0f4a0e7"><span class="section-number-2">3</span> Woodbury 2x2</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
</div>
|
||||
<div id="outline-container-org439faa9" class="outline-3">
|
||||
<h3 id="org439faa9"><span class="section-number-3">3.1</span> <code>qmckl_woodbury_2</code></h3>
|
||||
<div id="outline-container-orgf8da4a4" class="outline-3">
|
||||
<h3 id="orgf8da4a4"><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="orga7e6100" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgdcd9db5" 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-orged857d5" class="outline-4">
|
||||
<h4 id="orged857d5"><span class="section-number-4">3.1.1</span> Requirements</h4>
|
||||
<div id="outline-container-org57b326e" class="outline-4">
|
||||
<h4 id="org57b326e"><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,8 +792,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf6e1e0e" class="outline-4">
|
||||
<h4 id="orgf6e1e0e"><span class="section-number-4">3.1.2</span> C header</h4>
|
||||
<div id="outline-container-org441d189" class="outline-4">
|
||||
<h4 id="org441d189"><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> (
|
||||
@ -810,8 +810,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org9c903a5" class="outline-4">
|
||||
<h4 id="org9c903a5"><span class="section-number-4">3.1.3</span> C source</h4>
|
||||
<div id="outline-container-org51d1603" class="outline-4">
|
||||
<h4 id="org51d1603"><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;"><stdbool.h></span>
|
||||
@ -898,8 +898,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org62512f5" class="outline-4">
|
||||
<h4 id="org62512f5"><span class="section-number-4">3.1.4</span> Performance</h4>
|
||||
<div id="outline-container-org43b9e2b" class="outline-4">
|
||||
<h4 id="org43b9e2b"><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-orge683825" class="outline-2">
|
||||
<h2 id="orge683825"><span class="section-number-2">4</span> Woodbury 3x3</h2>
|
||||
<div id="outline-container-org33e3524" class="outline-2">
|
||||
<h2 id="org33e3524"><span class="section-number-2">4</span> Woodbury 3x3</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
</div>
|
||||
<div id="outline-container-org78edfea" class="outline-3">
|
||||
<h3 id="org78edfea"><span class="section-number-3">4.1</span> <code>qmckl_woodbury_3</code></h3>
|
||||
<div id="outline-container-orgc00b10d" class="outline-3">
|
||||
<h3 id="orgc00b10d"><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="org498b228" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org2e9303a" 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-orgca04599" class="outline-4">
|
||||
<h4 id="orgca04599"><span class="section-number-4">4.1.1</span> Requirements</h4>
|
||||
<div id="outline-container-org951278d" class="outline-4">
|
||||
<h4 id="org951278d"><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,8 +1023,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge2aec2a" class="outline-4">
|
||||
<h4 id="orge2aec2a"><span class="section-number-4">4.1.2</span> C header</h4>
|
||||
<div id="outline-container-org6981851" class="outline-4">
|
||||
<h4 id="org6981851"><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> (
|
||||
@ -1041,8 +1041,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org41fe2f7" class="outline-4">
|
||||
<h4 id="org41fe2f7"><span class="section-number-4">4.1.3</span> C source</h4>
|
||||
<div id="outline-container-orgf30d211" class="outline-4">
|
||||
<h4 id="orgf30d211"><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;"><stdbool.h></span>
|
||||
@ -1144,8 +1144,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6afe0fb" class="outline-4">
|
||||
<h4 id="org6afe0fb"><span class="section-number-4">4.1.4</span> Performance…</h4>
|
||||
<div id="outline-container-org833efec" class="outline-4">
|
||||
<h4 id="org833efec"><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 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-org33b36f7" class="outline-2">
|
||||
<h2 id="org33b36f7"><span class="section-number-2">5</span> Sherman-Morrison with update splitting</h2>
|
||||
<div id="outline-container-org80c69c6" class="outline-2">
|
||||
<h2 id="org80c69c6"><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-org313406f" class="outline-3">
|
||||
<h3 id="org313406f"><span class="section-number-3">5.1</span> <code>qmckl_sherman_morrison_splitting</code></h3>
|
||||
<div id="outline-container-orgcc26bae" class="outline-3">
|
||||
<h3 id="orgcc26bae"><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="org3548280" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgb08e9b0" 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-orgf4e8205" class="outline-4">
|
||||
<h4 id="orgf4e8205"><span class="section-number-4">5.1.1</span> Requirements</h4>
|
||||
<div id="outline-container-orgf0561ad" class="outline-4">
|
||||
<h4 id="orgf0561ad"><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,8 +1283,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga14bc2f" class="outline-4">
|
||||
<h4 id="orga14bc2f"><span class="section-number-4">5.1.2</span> C header</h4>
|
||||
<div id="outline-container-org67e1be1" class="outline-4">
|
||||
<h4 id="org67e1be1"><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> (
|
||||
@ -1302,8 +1302,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3e9c4b4" class="outline-4">
|
||||
<h4 id="org3e9c4b4"><span class="section-number-4">5.1.3</span> C source</h4>
|
||||
<div id="outline-container-org25aa20d" class="outline-4">
|
||||
<h4 id="org25aa20d"><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;"><stdbool.h></span>
|
||||
@ -1343,8 +1343,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org090ddff" class="outline-4">
|
||||
<h4 id="org090ddff"><span class="section-number-4">5.1.4</span> Performance…</h4>
|
||||
<div id="outline-container-orge5484eb" class="outline-4">
|
||||
<h4 id="orge5484eb"><span class="section-number-4">5.1.4</span> Performance…</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-org4002cb5" class="outline-2">
|
||||
<h2 id="org4002cb5"><span class="section-number-2">6</span> Woodbury 3x3 and 2x2 with Sherman-Morrison and update splitting</h2>
|
||||
<div id="outline-container-org601d5e6" class="outline-2">
|
||||
<h2 id="org601d5e6"><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-org39b12d5" class="outline-3">
|
||||
<h3 id="org39b12d5"><span class="section-number-3">6.1</span> <code>qmckl_sherman_morrison_smw32s</code></h3>
|
||||
<div id="outline-container-org75791cf" class="outline-3">
|
||||
<h3 id="org75791cf"><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="orga82348b" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="orgcfec53b" 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-org8cb21eb" class="outline-4">
|
||||
<h4 id="org8cb21eb"><span class="section-number-4">6.1.1</span> Requirements</h4>
|
||||
<div id="outline-container-orge89c8f9" class="outline-4">
|
||||
<h4 id="orge89c8f9"><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,8 +1470,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org070c075" class="outline-4">
|
||||
<h4 id="org070c075"><span class="section-number-4">6.1.2</span> C header</h4>
|
||||
<div id="outline-container-orgf1d2fbd" class="outline-4">
|
||||
<h4 id="orgf1d2fbd"><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> (
|
||||
@ -1489,8 +1489,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1f2d930" class="outline-4">
|
||||
<h4 id="org1f2d930"><span class="section-number-4">6.1.3</span> C source</h4>
|
||||
<div id="outline-container-org9e917bf" class="outline-4">
|
||||
<h4 id="org9e917bf"><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;"><stdbool.h></span>
|
||||
@ -1568,8 +1568,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbfefe73" class="outline-4">
|
||||
<h4 id="orgbfefe73"><span class="section-number-4">6.1.4</span> Performance…</h4>
|
||||
<div id="outline-container-orgaaa20c0" class="outline-4">
|
||||
<h4 id="orgaaa20c0"><span class="section-number-4">6.1.4</span> Performance…</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-org70ed988" class="outline-2">
|
||||
<h2 id="org70ed988"><span class="section-number-2">7</span> Helper Functions</h2>
|
||||
<div id="outline-container-org219b5f0" class="outline-2">
|
||||
<h2 id="org219b5f0"><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-org1a471e0" class="outline-3">
|
||||
<h3 id="org1a471e0"><span class="section-number-3">7.1</span> <code>qmckl_slagel_splitting</code></h3>
|
||||
<div id="outline-container-orgfddd5c9" class="outline-3">
|
||||
<h3 id="orgfddd5c9"><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="orgde6b14f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org484acda" 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-org894634d" class="outline-4">
|
||||
<h4 id="org894634d"><span class="section-number-4">7.1.1</span> Requirements</h4>
|
||||
<div id="outline-container-org8f9ecd7" class="outline-4">
|
||||
<h4 id="org8f9ecd7"><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 >= 2</code></li>
|
||||
@ -1721,8 +1721,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org9fd4651" class="outline-4">
|
||||
<h4 id="org9fd4651"><span class="section-number-4">7.1.2</span> C header</h4>
|
||||
<div id="outline-container-org9303382" class="outline-4">
|
||||
<h4 id="org9303382"><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> (
|
||||
@ -1742,8 +1742,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org13a4cc3" class="outline-4">
|
||||
<h4 id="org13a4cc3"><span class="section-number-4">7.1.3</span> C source</h4>
|
||||
<div id="outline-container-orgf428bec" class="outline-4">
|
||||
<h4 id="orgf428bec"><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;"><stdbool.h></span>
|
||||
@ -1821,8 +1821,8 @@ from applying the updates to the original matrix.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb99e798" class="outline-4">
|
||||
<h4 id="orgb99e798"><span class="section-number-4">7.1.4</span> Performance</h4>
|
||||
<div id="outline-container-org57f0f3e" class="outline-4">
|
||||
<h4 id="org57f0f3e"><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-org36de49e" class="outline-2">
|
||||
<h2 id="org36de49e"><span class="section-number-2">8</span> End of files</h2>
|
||||
<div id="outline-container-org3689a43" class="outline-2">
|
||||
<h2 id="org3689a43"><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: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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="#orgc9c9ec2">1. CHBrClF</a>
|
||||
<li><a href="#org25cbbdb">1. CHBrClF</a>
|
||||
<ul>
|
||||
<li><a href="#orge1720c6">1.1. XYZ coordinates</a></li>
|
||||
<li><a href="#org974a424">1.2. Atomic basis set</a></li>
|
||||
<li><a href="#org2465d8a">1.3. Molecular orbitals</a></li>
|
||||
<li><a href="#orgfc8058d">1.4. Electron coordinates</a></li>
|
||||
<li><a href="#orgc6ad9bc">1.1. XYZ coordinates</a></li>
|
||||
<li><a href="#orgb40488f">1.2. Atomic basis set</a></li>
|
||||
<li><a href="#orge0260bd">1.3. Molecular orbitals</a></li>
|
||||
<li><a href="#org23f0750">1.4. Electron coordinates</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org2262a93">2. N2</a>
|
||||
<li><a href="#org0862107">2. N2</a>
|
||||
<ul>
|
||||
<li><a href="#org9beb0cf">2.1. XYZ coordinates</a></li>
|
||||
<li><a href="#org4bdbca6">2.2. Electron coordinates</a></li>
|
||||
<li><a href="#org0bd94cf">2.3. Jastrow related data</a></li>
|
||||
<li><a href="#org3bbff4e">2.1. XYZ coordinates</a></li>
|
||||
<li><a href="#orgea3af79">2.2. Electron coordinates</a></li>
|
||||
<li><a href="#org72be7f4">2.3. Jastrow related data</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgc9c9ec2" class="outline-2">
|
||||
<h2 id="orgc9c9ec2"><span class="section-number-2">1</span> CHBrClF</h2>
|
||||
<div id="outline-container-org25cbbdb" class="outline-2">
|
||||
<h2 id="org25cbbdb"><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-orge1720c6" class="outline-3">
|
||||
<h3 id="orge1720c6"><span class="section-number-3">1.1</span> XYZ coordinates</h3>
|
||||
<div id="outline-container-orgc6ad9bc" class="outline-3">
|
||||
<h3 id="orgc6ad9bc"><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-org974a424" class="outline-3">
|
||||
<h3 id="org974a424"><span class="section-number-3">1.2</span> Atomic basis set</h3>
|
||||
<div id="outline-container-orgb40488f" class="outline-3">
|
||||
<h3 id="orgb40488f"><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-org2465d8a" class="outline-3">
|
||||
<h3 id="org2465d8a"><span class="section-number-3">1.3</span> Molecular orbitals</h3>
|
||||
<div id="outline-container-orge0260bd" class="outline-3">
|
||||
<h3 id="orge0260bd"><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-orgfc8058d" class="outline-3">
|
||||
<h3 id="orgfc8058d"><span class="section-number-3">1.4</span> Electron coordinates</h3>
|
||||
<div id="outline-container-org23f0750" class="outline-3">
|
||||
<h3 id="org23f0750"><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-org2262a93" class="outline-2">
|
||||
<h2 id="org2262a93"><span class="section-number-2">2</span> N2</h2>
|
||||
<div id="outline-container-org0862107" class="outline-2">
|
||||
<h2 id="org0862107"><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-org9beb0cf" class="outline-3">
|
||||
<h3 id="org9beb0cf"><span class="section-number-3">2.1</span> XYZ coordinates</h3>
|
||||
<div id="outline-container-org3bbff4e" class="outline-3">
|
||||
<h3 id="org3bbff4e"><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-org4bdbca6" class="outline-3">
|
||||
<h3 id="org4bdbca6"><span class="section-number-3">2.2</span> Electron coordinates</h3>
|
||||
<div id="outline-container-orgea3af79" class="outline-3">
|
||||
<h3 id="orgea3af79"><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-org0bd94cf" class="outline-3">
|
||||
<h3 id="org0bd94cf"><span class="section-number-3">2.3</span> Jastrow related data</h3>
|
||||
<div id="outline-container-org72be7f4" class="outline-3">
|
||||
<h3 id="org72be7f4"><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: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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="#orgee9f211">1. Local functions</a>
|
||||
<li><a href="#org2f5fd43">1. Local functions</a>
|
||||
<ul>
|
||||
<li><a href="#orgf5caf99">1.1. Open file</a></li>
|
||||
<li><a href="#org7342b3b">1.2. Electron</a></li>
|
||||
<li><a href="#org1de9c77">1.3. Nucleus</a>
|
||||
<li><a href="#org4be560d">1.1. Open file</a></li>
|
||||
<li><a href="#org5e07c80">1.2. Electron</a></li>
|
||||
<li><a href="#orgbdc4da9">1.3. Nucleus</a>
|
||||
<ul>
|
||||
<li><a href="#org61a468d">1.3.1. Number of nuclei</a></li>
|
||||
<li><a href="#orgd9b1ebe">1.3.2. Nuclear charges</a></li>
|
||||
<li><a href="#orgd4404cd">1.3.3. Nuclear coordinates</a></li>
|
||||
<li><a href="#orgd17f33e">1.3.1. Number of nuclei</a></li>
|
||||
<li><a href="#orga07e91f">1.3.2. Nuclear charges</a></li>
|
||||
<li><a href="#orgccae1b3">1.3.3. Nuclear coordinates</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org0d2d909">1.4. Basis set and AOs</a>
|
||||
<li><a href="#org092fdf3">1.4. Basis set and AOs</a>
|
||||
<ul>
|
||||
<li><a href="#orgfec2235">1.4.1. Basis set type</a></li>
|
||||
<li><a href="#org9edd4bd">1.4.2. Number of shells</a></li>
|
||||
<li><a href="#orgbb6508d">1.4.3. Number of primitives</a></li>
|
||||
<li><a href="#org2620aff">1.4.4. Number of atomic orbitals</a></li>
|
||||
<li><a href="#org81182e3">1.4.5. Nucleus<sub>index</sub> array</a></li>
|
||||
<li><a href="#org498419c">1.4.6. Number of shells per nucleus</a></li>
|
||||
<li><a href="#orgdadf225">1.4.7. Angular momentum</a></li>
|
||||
<li><a href="#orgcbb9fac">1.4.8. Number of primitives per shell</a></li>
|
||||
<li><a href="#orgecf30c9">1.4.9. Indices of the primitives</a></li>
|
||||
<li><a href="#orgb2af6b9">1.4.10. Normalization of the shells</a></li>
|
||||
<li><a href="#org95cfa2c">1.4.11. Exponents</a></li>
|
||||
<li><a href="#orgb9ace1e">1.4.12. Coefficients</a></li>
|
||||
<li><a href="#org6f96fa6">1.4.13. Normalization of the primitivies</a></li>
|
||||
<li><a href="#org11c1c5f">1.4.14. AO Normalization</a></li>
|
||||
<li><a href="#orgd6f7f99">1.4.1. Basis set type</a></li>
|
||||
<li><a href="#orga7773eb">1.4.2. Number of shells</a></li>
|
||||
<li><a href="#org895c905">1.4.3. Number of primitives</a></li>
|
||||
<li><a href="#org9b35950">1.4.4. Number of atomic orbitals</a></li>
|
||||
<li><a href="#org5230850">1.4.5. Nucleus<sub>index</sub> array</a></li>
|
||||
<li><a href="#org992402e">1.4.6. Number of shells per nucleus</a></li>
|
||||
<li><a href="#orgc50f258">1.4.7. Angular momentum</a></li>
|
||||
<li><a href="#orga13472c">1.4.8. Number of primitives per shell</a></li>
|
||||
<li><a href="#org1959fd3">1.4.9. Indices of the primitives</a></li>
|
||||
<li><a href="#org5601c4c">1.4.10. Normalization of the shells</a></li>
|
||||
<li><a href="#org0420af2">1.4.11. Exponents</a></li>
|
||||
<li><a href="#orgb08400b">1.4.12. Coefficients</a></li>
|
||||
<li><a href="#org2ade145">1.4.13. Normalization of the primitivies</a></li>
|
||||
<li><a href="#org48afdb5">1.4.14. AO Normalization</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org5e503df">1.5. Molecular orbitals</a>
|
||||
<li><a href="#orgb9d6faa">1.5. Molecular orbitals</a>
|
||||
<ul>
|
||||
<li><a href="#org1ffb2a2">1.5.1. Number of MOs</a></li>
|
||||
<li><a href="#org599f904">1.5.2. MO coefficients</a></li>
|
||||
<li><a href="#orgd385c32">1.5.1. Number of MOs</a></li>
|
||||
<li><a href="#orgcb40bb2">1.5.2. MO coefficients</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org61496cf">1.6. <span class="todo TODO">TODO</span> ECP</a></li>
|
||||
<li><a href="#org927bbf1">1.6. <span class="todo TODO">TODO</span> ECP</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org19cc2c9">2. Read everything</a></li>
|
||||
<li><a href="#org1413305">3. Test</a>
|
||||
<li><a href="#orge789678">2. Read everything</a></li>
|
||||
<li><a href="#org6c189c0">3. Test</a>
|
||||
<ul>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#org8d21abc">3.0.1. Electrons</a></li>
|
||||
<li><a href="#org629fd77">3.0.2. Nuclei</a></li>
|
||||
<li><a href="#org56840d5">3.0.3. Atomic basis</a></li>
|
||||
<li><a href="#org427edd3">3.0.4. MO Basis</a></li>
|
||||
<li><a href="#org642f6ef">3.0.1. Electrons</a></li>
|
||||
<li><a href="#orgace6120">3.0.2. Nuclei</a></li>
|
||||
<li><a href="#orgf664817">3.0.3. Atomic basis</a></li>
|
||||
<li><a href="#orgd7a0270">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-orgee9f211" class="outline-2">
|
||||
<h2 id="orgee9f211"><span class="section-number-2">1</span> Local functions</h2>
|
||||
<div id="outline-container-org2f5fd43" class="outline-2">
|
||||
<h2 id="org2f5fd43"><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-orgf5caf99" class="outline-3">
|
||||
<h3 id="orgf5caf99"><span class="section-number-3">1.1</span> Open file</h3>
|
||||
<div id="outline-container-org4be560d" class="outline-3">
|
||||
<h3 id="org4be560d"><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-org7342b3b" class="outline-3">
|
||||
<h3 id="org7342b3b"><span class="section-number-3">1.2</span> Electron</h3>
|
||||
<div id="outline-container-org5e07c80" class="outline-3">
|
||||
<h3 id="org5e07c80"><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-org1de9c77" class="outline-3">
|
||||
<h3 id="org1de9c77"><span class="section-number-3">1.3</span> Nucleus</h3>
|
||||
<div id="outline-container-orgbdc4da9" class="outline-3">
|
||||
<h3 id="orgbdc4da9"><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-org61a468d" class="outline-4">
|
||||
<h4 id="org61a468d"><span class="section-number-4">1.3.1</span> Number of nuclei</h4>
|
||||
<div id="outline-container-orgd17f33e" class="outline-4">
|
||||
<h4 id="orgd17f33e"><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-orgd9b1ebe" class="outline-4">
|
||||
<h4 id="orgd9b1ebe"><span class="section-number-4">1.3.2</span> Nuclear charges</h4>
|
||||
<div id="outline-container-orga07e91f" class="outline-4">
|
||||
<h4 id="orga07e91f"><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">{
|
||||
@ -562,8 +562,8 @@ rc = qmckl_set_nucleus_num(context, nucleus_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd4404cd" class="outline-4">
|
||||
<h4 id="orgd4404cd"><span class="section-number-4">1.3.3</span> Nuclear coordinates</h4>
|
||||
<div id="outline-container-orgccae1b3" class="outline-4">
|
||||
<h4 id="orgccae1b3"><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
|
||||
@ -619,8 +619,8 @@ in the TREXIO file (<code>'N'</code>), so it will be automatically transposed in
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0d2d909" class="outline-3">
|
||||
<h3 id="org0d2d909"><span class="section-number-3">1.4</span> Basis set and AOs</h3>
|
||||
<div id="outline-container-org092fdf3" class="outline-3">
|
||||
<h3 id="org092fdf3"><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.
|
||||
@ -646,8 +646,8 @@ In this section we read the atomic basis set and atomic orbitals.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfec2235" class="outline-4">
|
||||
<h4 id="orgfec2235"><span class="section-number-4">1.4.1</span> Basis set type</h4>
|
||||
<div id="outline-container-orgd6f7f99" class="outline-4">
|
||||
<h4 id="orgd6f7f99"><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
|
||||
@ -678,8 +678,8 @@ In this section we read the atomic basis set and atomic orbitals.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org9edd4bd" class="outline-4">
|
||||
<h4 id="org9edd4bd"><span class="section-number-4">1.4.2</span> Number of shells</h4>
|
||||
<div id="outline-container-orga7773eb" class="outline-4">
|
||||
<h4 id="orga7773eb"><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;
|
||||
@ -703,8 +703,8 @@ rc = qmckl_set_ao_basis_shell_num(context, shell_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbb6508d" class="outline-4">
|
||||
<h4 id="orgbb6508d"><span class="section-number-4">1.4.3</span> Number of primitives</h4>
|
||||
<div id="outline-container-org895c905" class="outline-4">
|
||||
<h4 id="org895c905"><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;
|
||||
@ -728,8 +728,8 @@ rc = qmckl_set_ao_basis_prim_num(context, prim_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2620aff" class="outline-4">
|
||||
<h4 id="org2620aff"><span class="section-number-4">1.4.4</span> Number of atomic orbitals</h4>
|
||||
<div id="outline-container-org9b35950" class="outline-4">
|
||||
<h4 id="org9b35950"><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;
|
||||
@ -753,8 +753,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org81182e3" class="outline-4">
|
||||
<h4 id="org81182e3"><span class="section-number-4">1.4.5</span> Nucleus<sub>index</sub> array</h4>
|
||||
<div id="outline-container-org5230850" class="outline-4">
|
||||
<h4 id="org5230850"><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">{
|
||||
@ -836,8 +836,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org498419c" class="outline-4">
|
||||
<h4 id="org498419c"><span class="section-number-4">1.4.6</span> Number of shells per nucleus</h4>
|
||||
<div id="outline-container-org992402e" class="outline-4">
|
||||
<h4 id="org992402e"><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">{
|
||||
@ -922,8 +922,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgdadf225" class="outline-4">
|
||||
<h4 id="orgdadf225"><span class="section-number-4">1.4.7</span> Angular momentum</h4>
|
||||
<div id="outline-container-orgc50f258" class="outline-4">
|
||||
<h4 id="orgc50f258"><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">{
|
||||
@ -968,8 +968,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgcbb9fac" class="outline-4">
|
||||
<h4 id="orgcbb9fac"><span class="section-number-4">1.4.8</span> Number of primitives per shell</h4>
|
||||
<div id="outline-container-orga13472c" class="outline-4">
|
||||
<h4 id="orga13472c"><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">{
|
||||
@ -1053,8 +1053,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgecf30c9" class="outline-4">
|
||||
<h4 id="orgecf30c9"><span class="section-number-4">1.4.9</span> Indices of the primitives</h4>
|
||||
<div id="outline-container-org1959fd3" class="outline-4">
|
||||
<h4 id="org1959fd3"><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">{
|
||||
@ -1134,8 +1134,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb2af6b9" class="outline-4">
|
||||
<h4 id="orgb2af6b9"><span class="section-number-4">1.4.10</span> Normalization of the shells</h4>
|
||||
<div id="outline-container-org5601c4c" class="outline-4">
|
||||
<h4 id="org5601c4c"><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">{
|
||||
@ -1180,8 +1180,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org95cfa2c" class="outline-4">
|
||||
<h4 id="org95cfa2c"><span class="section-number-4">1.4.11</span> Exponents</h4>
|
||||
<div id="outline-container-org0420af2" class="outline-4">
|
||||
<h4 id="org0420af2"><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">{
|
||||
@ -1226,8 +1226,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb9ace1e" class="outline-4">
|
||||
<h4 id="orgb9ace1e"><span class="section-number-4">1.4.12</span> Coefficients</h4>
|
||||
<div id="outline-container-orgb08400b" class="outline-4">
|
||||
<h4 id="orgb08400b"><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">{
|
||||
@ -1272,8 +1272,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6f96fa6" class="outline-4">
|
||||
<h4 id="org6f96fa6"><span class="section-number-4">1.4.13</span> Normalization of the primitivies</h4>
|
||||
<div id="outline-container-org2ade145" class="outline-4">
|
||||
<h4 id="org2ade145"><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">{
|
||||
@ -1318,8 +1318,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org11c1c5f" class="outline-4">
|
||||
<h4 id="org11c1c5f"><span class="section-number-4">1.4.14</span> AO Normalization</h4>
|
||||
<div id="outline-container-org48afdb5" class="outline-4">
|
||||
<h4 id="org48afdb5"><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">{
|
||||
@ -1374,8 +1374,8 @@ rc = qmckl_set_ao_basis_ao_num(context, ao_num);
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org5e503df" class="outline-3">
|
||||
<h3 id="org5e503df"><span class="section-number-3">1.5</span> Molecular orbitals</h3>
|
||||
<div id="outline-container-orgb9d6faa" class="outline-3">
|
||||
<h3 id="orgb9d6faa"><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.
|
||||
@ -1401,8 +1401,8 @@ In this section we read the MO coefficients.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1ffb2a2" class="outline-4">
|
||||
<h4 id="org1ffb2a2"><span class="section-number-4">1.5.1</span> Number of MOs</h4>
|
||||
<div id="outline-container-orgd385c32" class="outline-4">
|
||||
<h4 id="orgd385c32"><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;
|
||||
@ -1425,8 +1425,8 @@ rc = qmckl_set_mo_basis_mo_num(context, mo_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org599f904" class="outline-4">
|
||||
<h4 id="org599f904"><span class="section-number-4">1.5.2</span> MO coefficients</h4>
|
||||
<div id="outline-container-orgcb40bb2" class="outline-4">
|
||||
<h4 id="orgcb40bb2"><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">{
|
||||
@ -1475,12 +1475,12 @@ rc = qmckl_set_mo_basis_mo_num(context, mo_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org61496cf" class="outline-3">
|
||||
<h3 id="org61496cf"><span class="section-number-3">1.6</span> <span class="todo TODO">TODO</span> ECP</h3>
|
||||
<div id="outline-container-org927bbf1" class="outline-3">
|
||||
<h3 id="org927bbf1"><span class="section-number-3">1.6</span> <span class="todo TODO">TODO</span> ECP</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org19cc2c9" class="outline-2">
|
||||
<h2 id="org19cc2c9"><span class="section-number-2">2</span> Read everything</h2>
|
||||
<div id="outline-container-orge789678" class="outline-2">
|
||||
<h2 id="orge789678"><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>);
|
||||
@ -1561,8 +1561,8 @@ rc = qmckl_set_mo_basis_mo_num(context, mo_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1413305" class="outline-2">
|
||||
<h2 id="org1413305"><span class="section-number-2">3</span> Test</h2>
|
||||
<div id="outline-container-org6c189c0" class="outline-2">
|
||||
<h2 id="org6c189c0"><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
|
||||
@ -1596,8 +1596,8 @@ rc = qmckl_trexio_read(context, fname);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8d21abc" class="outline-4">
|
||||
<h4 id="org8d21abc"><span class="section-number-4">3.0.1</span> Electrons</h4>
|
||||
<div id="outline-container-org642f6ef" class="outline-4">
|
||||
<h4 id="org642f6ef"><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>);
|
||||
@ -1615,8 +1615,8 @@ rc = qmckl_get_electron_down_num(context, &dn_num);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org629fd77" class="outline-4">
|
||||
<h4 id="org629fd77"><span class="section-number-4">3.0.2</span> Nuclei</h4>
|
||||
<div id="outline-container-orgace6120" class="outline-4">
|
||||
<h4 id="orgace6120"><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>);
|
||||
@ -1656,8 +1656,8 @@ coord = <span style="color: #008b8b;">NULL</span>;
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org56840d5" class="outline-4">
|
||||
<h4 id="org56840d5"><span class="section-number-4">3.0.3</span> Atomic basis</h4>
|
||||
<div id="outline-container-orgf664817" class="outline-4">
|
||||
<h4 id="orgf664817"><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>);
|
||||
@ -1765,8 +1765,8 @@ prim_factor = <span style="color: #008b8b;">NULL</span>;
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org427edd3" class="outline-4">
|
||||
<h4 id="org427edd3"><span class="section-number-4">3.0.4</span> MO Basis</h4>
|
||||
<div id="outline-container-orgd7a0270" class="outline-4">
|
||||
<h4 id="orgd7a0270"><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>);
|
||||
@ -1796,7 +1796,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: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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="#org5a8116f">1. Matrix operations</a>
|
||||
<li><a href="#orga1fce40">1. Matrix operations</a>
|
||||
<ul>
|
||||
<li><a href="#org35624a1">1.1. <code>qmckl_transpose</code></a>
|
||||
<li><a href="#org1aff1df">1.1. <code>qmckl_transpose</code></a>
|
||||
<ul>
|
||||
<li><a href="#org19cd293">1.1.1. Requirements</a></li>
|
||||
<li><a href="#orgaea37b2">1.1.2. C header</a></li>
|
||||
<li><a href="#org785ae7a">1.1.3. Source</a></li>
|
||||
<li><a href="#org35ab0ed">1.1.1. Requirements</a></li>
|
||||
<li><a href="#orgd6e67d8">1.1.2. C header</a></li>
|
||||
<li><a href="#orgfe8d312">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-org5a8116f" class="outline-2">
|
||||
<h2 id="org5a8116f"><span class="section-number-2">1</span> Matrix operations</h2>
|
||||
<div id="outline-container-orga1fce40" class="outline-2">
|
||||
<h2 id="orga1fce40"><span class="section-number-2">1</span> Matrix operations</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
</div>
|
||||
<div id="outline-container-org35624a1" class="outline-3">
|
||||
<h3 id="org35624a1"><span class="section-number-3">1.1</span> <code>qmckl_transpose</code></h3>
|
||||
<div id="outline-container-org1aff1df" class="outline-3">
|
||||
<h3 id="org1aff1df"><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="orge1453df" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org3084911" 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-org19cd293" class="outline-4">
|
||||
<h4 id="org19cd293"><span class="section-number-4">1.1.1</span> Requirements</h4>
|
||||
<div id="outline-container-org35ab0ed" class="outline-4">
|
||||
<h4 id="org35ab0ed"><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,8 +439,8 @@ Transposes a matrix: \(B_{ji} = A_{ij}\)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgaea37b2" class="outline-4">
|
||||
<h4 id="orgaea37b2"><span class="section-number-4">1.1.2</span> C header</h4>
|
||||
<div id="outline-container-orgd6e67d8" class="outline-4">
|
||||
<h4 id="orgd6e67d8"><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> (
|
||||
@ -456,8 +456,8 @@ Transposes a matrix: \(B_{ji} = A_{ij}\)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org785ae7a" class="outline-4">
|
||||
<h4 id="org785ae7a"><span class="section-number-4">1.1.3</span> Source</h4>
|
||||
<div id="outline-container-orgfe8d312" class="outline-4">
|
||||
<h4 id="orgfe8d312"><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;">&</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: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -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>
|
||||
<!-- 2022-01-17 Mon 15:13 -->
|
||||
<!-- 2022-01-20 Thu 11:10 -->
|
||||
<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="#org37fe90a">1. Verificarlo probes</a>
|
||||
<li><a href="#org238ed1d">1. Verificarlo probes</a>
|
||||
<ul>
|
||||
<li><a href="#org8d84ced">1.1. Automatically initialize the <code>vfc_probe</code> object if <code>VFC_CI</code> is defined</a></li>
|
||||
<li><a href="#org634378e">1.2. Standard probe, without check</a></li>
|
||||
<li><a href="#org1dbd630">1.3. Probe with absolute check</a></li>
|
||||
<li><a href="#org748f6e6">1.4. Probe with relative check</a></li>
|
||||
<li><a href="#orga3bf2f1">1.5. Automatically delete and dump the vfc<sub>probe</sub> object if <code>VFC_CI</code> is defined</a></li>
|
||||
<li><a href="#org0d7e3a3">1.1. Automatically initialize the <code>vfc_probe</code> object if <code>VFC_CI</code> is defined</a></li>
|
||||
<li><a href="#org12b9932">1.2. Standard probe, without check</a></li>
|
||||
<li><a href="#org6ae5b26">1.3. Probe with absolute check</a></li>
|
||||
<li><a href="#org69950b7">1.4. Probe with relative check</a></li>
|
||||
<li><a href="#orgcafdc2a">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="#org226b006">2. Fortran wrappers</a></li>
|
||||
<li><a href="#orgb0d90b8">2. Fortran wrappers</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org37fe90a" class="outline-2">
|
||||
<h2 id="org37fe90a"><span class="section-number-2">1</span> Verificarlo probes</h2>
|
||||
<div id="outline-container-org238ed1d" class="outline-2">
|
||||
<h2 id="org238ed1d"><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-org8d84ced" class="outline-3">
|
||||
<h3 id="org8d84ced"><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-org0d7e3a3" class="outline-3">
|
||||
<h3 id="org0d7e3a3"><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-org634378e" class="outline-3">
|
||||
<h3 id="org634378e"><span class="section-number-3">1.2</span> Standard probe, without check</h3>
|
||||
<div id="outline-container-org12b9932" class="outline-3">
|
||||
<h3 id="org12b9932"><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-org1dbd630" class="outline-3">
|
||||
<h3 id="org1dbd630"><span class="section-number-3">1.3</span> Probe with absolute check</h3>
|
||||
<div id="outline-container-org6ae5b26" class="outline-3">
|
||||
<h3 id="org6ae5b26"><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-org748f6e6" class="outline-3">
|
||||
<h3 id="org748f6e6"><span class="section-number-3">1.4</span> Probe with relative check</h3>
|
||||
<div id="outline-container-org69950b7" class="outline-3">
|
||||
<h3 id="org69950b7"><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-orga3bf2f1" class="outline-3">
|
||||
<h3 id="orga3bf2f1"><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-orgcafdc2a" class="outline-3">
|
||||
<h3 id="orgcafdc2a"><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-org226b006" class="outline-2">
|
||||
<h2 id="org226b006"><span class="section-number-2">2</span> Fortran wrappers</h2>
|
||||
<div id="outline-container-orgb0d90b8" class="outline-2">
|
||||
<h2 id="orgb0d90b8"><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: 2022-01-17 Mon 15:13</p>
|
||||
<p class="date">Created: 2022-01-20 Thu 11:10</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
Loading…
Reference in New Issue
Block a user