1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-11-04 05:03:58 +01:00

Deploying to gh-pages from @ TREX-CoE/trexio@6e2f5d2901 🚀

This commit is contained in:
scemama 2021-09-15 12:59:10 +00:00
parent 111b162965
commit c648bfa4fa
7 changed files with 336 additions and 356 deletions

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-09-14 Tue 09:40 -->
<!-- 2021-09-15 Wed 12:59 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>TREXIO source code documentation</title>
@ -342,7 +342,7 @@ and bug reports should be submitted at
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-09-14 Tue 09:40</p>
<p class="date">Created: 2021-09-15 Wed 12:59</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-09-14 Tue 09:40 -->
<!-- 2021-09-15 Wed 12:59 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
@ -232,8 +232,8 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org19e9c9b">1. Text back end</a></li>
<li><a href="#org9683a7b">2. HDF5 Back end</a></li>
<li><a href="#orgc2b46c4">1. Text back end</a></li>
<li><a href="#org919d53b">2. HDF5 Back end</a></li>
</ul>
</div>
</div>
@ -241,8 +241,8 @@ for the JavaScript code in this tag.
See templator<sub>front.org</sub>
</p>
<div id="outline-container-org19e9c9b" class="outline-2">
<h2 id="org19e9c9b"><span class="section-number-2">1</span> Text back end</h2>
<div id="outline-container-orgc2b46c4" class="outline-2">
<h2 id="orgc2b46c4"><span class="section-number-2">1</span> Text back end</h2>
<div class="outline-text-2" id="text-1">
<p>
As the size of the dataset should be extensible, the simplest
@ -256,8 +256,8 @@ The offset can be used with <code>fseek(69L*offset, SEEK_SET)</code>
</div>
</div>
<div id="outline-container-org9683a7b" class="outline-2">
<h2 id="org9683a7b"><span class="section-number-2">2</span> HDF5 Back end</h2>
<div id="outline-container-org919d53b" class="outline-2">
<h2 id="org919d53b"><span class="section-number-2">2</span> HDF5 Back end</h2>
<div class="outline-text-2" id="text-2">
<p>
We need to declare the number of rows of the dataset as
@ -278,7 +278,7 @@ If the offset+num &gt; nmax, we need to extend the dataset.
</div>
</div>
<div id="postamble" class="status">
<p class="date">Created: 2021-09-14 Tue 09:40</p>
<p class="date">Created: 2021-09-15 Wed 12:59</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-09-14 Tue 09:40 -->
<!-- 2021-09-15 Wed 12:59 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>TREXIO source code documentation</title>
@ -342,7 +342,7 @@ and bug reports should be submitted at
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-09-14 Tue 09:40</p>
<p class="date">Created: 2021-09-15 Wed 12:59</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-09-14 Tue 09:40 -->
<!-- 2021-09-15 Wed 12:59 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Front end API</title>
@ -333,106 +333,106 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org6a1d7d0">1. Coding conventions</a>
<li><a href="#orge016367">1. Coding conventions</a>
<ul>
<li><a href="#org6144670">1.1. Memory allocation</a></li>
<li><a href="#orga834384">1.1. Memory allocation</a></li>
</ul>
</li>
<li><a href="#org6216dd7">2. Front end</a>
<li><a href="#org58a300c">2. Front end</a>
<ul>
<li><a href="#org6941526">2.1. Error handling</a>
<li><a href="#org8de8999">2.1. Error handling</a>
<ul>
<li><a href="#orgc11cc62">2.1.1. Decoding errors</a>
<li><a href="#orga9807f5">2.1.1. Decoding errors</a>
<ul>
<li><a href="#org8ca4d3d">2.1.1.1. C source code</a></li>
<li><a href="#orgec3e24a">2.1.1.2. Fortran interface</a></li>
<li><a href="#orgdf3031d">2.1.1.3. Python interface</a></li>
<li><a href="#orgad944d5">2.1.1.1. C source code</a></li>
<li><a href="#org490c2a8">2.1.1.2. Fortran interface</a></li>
<li><a href="#org518d408">2.1.1.3. Python interface</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org3a265d9">2.2. Back ends</a>
<li><a href="#org92cd1da">2.2. Back ends</a>
<ul>
<li><a href="#org8e2a172">2.2.1. C</a></li>
<li><a href="#orgfbcb94f">2.2.2. Fortran</a></li>
<li><a href="#org70b5437">2.2.3. Python</a></li>
<li><a href="#org85f9fbe">2.2.1. C</a></li>
<li><a href="#org4c71535">2.2.2. Fortran</a></li>
<li><a href="#orgde93643">2.2.3. Python</a></li>
</ul>
</li>
<li><a href="#org36f3c07">2.3. Read/write behavior</a></li>
<li><a href="#orgec96fc5">2.4. TREXIO file type</a>
<li><a href="#org38fd325">2.3. Read/write behavior</a></li>
<li><a href="#orgc3536b9">2.4. TREXIO file type</a>
<ul>
<li><a href="#org03723b7">2.4.1. TREXIO<sub>File</sub> Python class</a></li>
<li><a href="#orgb496fea">2.4.1. TREXIO<sub>File</sub> Python class</a></li>
</ul>
</li>
<li><a href="#orgb1bf5c2">2.5. Polymorphism of the file handle</a></li>
<li><a href="#org0c9447b">2.6. File opening</a>
<li><a href="#org815e05a">2.5. Polymorphism of the file handle</a></li>
<li><a href="#org3ba1d27">2.6. File opening</a>
<ul>
<li><a href="#org9951597">2.6.1. C</a></li>
<li><a href="#orgbbf2c3d">2.6.2. Fortran</a></li>
<li><a href="#org5df7264">2.6.3. Python</a></li>
<li><a href="#orga300a2a">2.6.4. Zero-based versus one-based arrays of indices</a></li>
<li><a href="#orgf4f02fb">2.6.1. C</a></li>
<li><a href="#org98f7c60">2.6.2. Fortran</a></li>
<li><a href="#org2d364ac">2.6.3. Python</a></li>
<li><a href="#org67f0efa">2.6.4. Zero-based versus one-based arrays of indices</a></li>
</ul>
</li>
<li><a href="#orgde5793a">2.7. File closing</a>
<li><a href="#orgcdc3b13">2.7. File closing</a>
<ul>
<li><a href="#orge6b5c2e">2.7.1. C</a></li>
<li><a href="#org36a58a1">2.7.2. Fortran</a></li>
<li><a href="#orgd30598f">2.7.3. Python</a></li>
<li><a href="#org41de806">2.7.1. C</a></li>
<li><a href="#orgbd6039b">2.7.2. Fortran</a></li>
<li><a href="#orga4af2be">2.7.3. Python</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org186dccb">3. Templates for front end</a>
<li><a href="#orgeb30733">3. Templates for front end</a>
<ul>
<li><a href="#org828f092">3.1. Description</a></li>
<li><a href="#orgc0e370a">3.2. Templates for front end has/read/write a single dimensioning variable</a>
<li><a href="#orgfb170e6">3.1. Description</a></li>
<li><a href="#orgff1539e">3.2. Templates for front end has/read/write a single dimensioning variable</a>
<ul>
<li><a href="#orgd4f92fd">3.2.1. C templates for front end</a></li>
<li><a href="#org0f31755">3.2.2. Fortran templates for front end</a></li>
<li><a href="#org60c3ae4">3.2.3. Python templates for front end</a></li>
<li><a href="#orgc9ec875">3.2.1. C templates for front end</a></li>
<li><a href="#org087926e">3.2.2. Fortran templates for front end</a></li>
<li><a href="#org0be1310">3.2.3. Python templates for front end</a></li>
</ul>
</li>
<li><a href="#org9bd94a2">3.3. Templates for front end has/read/write a dataset of numerical data</a>
<li><a href="#org662de95">3.3. Templates for front end has/read/write a dataset of numerical data</a>
<ul>
<li><a href="#orga0ba8dc">3.3.1. C templates for front end</a>
<li><a href="#org635961d">3.3.1. C templates for front end</a>
<ul>
<li><a href="#org43e381b">3.3.1.1. Function declarations</a></li>
<li><a href="#orgabb7ee8">3.3.1.2. Source code for double precision functions</a></li>
<li><a href="#orgd78cbaf">3.3.1.3. Source code for single precision functions</a></li>
<li><a href="#orgca68ba9">3.3.1.4. Source code for memory-safe functions</a></li>
<li><a href="#org398b3b1">3.3.1.5. Source code for default functions</a></li>
<li><a href="#org2678342">3.3.1.1. Function declarations</a></li>
<li><a href="#org3ea50ac">3.3.1.2. Source code for double precision functions</a></li>
<li><a href="#orgcdbee12">3.3.1.3. Source code for single precision functions</a></li>
<li><a href="#orgcc84df4">3.3.1.4. Source code for memory-safe functions</a></li>
<li><a href="#orgcb09b9b">3.3.1.5. Source code for default functions</a></li>
</ul>
</li>
<li><a href="#org6a3254c">3.3.2. Fortran templates for front end</a></li>
<li><a href="#org1fedc44">3.3.3. Python templates for front end</a></li>
<li><a href="#orgc530c78">3.3.2. Fortran templates for front end</a></li>
<li><a href="#orgd570341">3.3.3. Python templates for front end</a></li>
</ul>
</li>
<li><a href="#orgb6365bd">3.4. Sparse data structures</a></li>
<li><a href="#org7b6605f">3.5. Templates for front end has/read/write a dataset of strings</a>
<li><a href="#org89eb3a4">3.4. Sparse data structures</a></li>
<li><a href="#orgdb7dc33">3.5. Templates for front end has/read/write a dataset of strings</a>
<ul>
<li><a href="#orgc066816">3.5.1. Introduction</a></li>
<li><a href="#org9ffe3c4">3.5.2. C templates for front end</a></li>
<li><a href="#org5cb63f5">3.5.3. Fortran templates for front end</a></li>
<li><a href="#org0e9f0e1">3.5.4. Python templates for front end</a></li>
<li><a href="#orged23511">3.5.1. Introduction</a></li>
<li><a href="#orgdca1a7e">3.5.2. C templates for front end</a></li>
<li><a href="#org94eb6b3">3.5.3. Fortran templates for front end</a></li>
<li><a href="#org1885436">3.5.4. Python templates for front end</a></li>
</ul>
</li>
<li><a href="#orgc019e99">3.6. Templates for front end has/read/write a single string attribute</a>
<li><a href="#orgcd8d922">3.6. Templates for front end has/read/write a single string attribute</a>
<ul>
<li><a href="#orgc454074">3.6.1. Introduction</a></li>
<li><a href="#org1a63ceb">3.6.2. C templates for front end</a></li>
<li><a href="#org62829ed">3.6.3. Fortran templates for front end</a></li>
<li><a href="#orgb87b73f">3.6.4. Python templates for front end</a></li>
<li><a href="#org9e913f3">3.6.1. Introduction</a></li>
<li><a href="#org647db30">3.6.2. C templates for front end</a></li>
<li><a href="#org83d136d">3.6.3. Fortran templates for front end</a></li>
<li><a href="#orgca7a13a">3.6.4. Python templates for front end</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org02a4393">4. Fortran helper/wrapper functions</a></li>
<li><a href="#org4caf991">4. Fortran helper/wrapper functions</a></li>
</ul>
</div>
</div>
<div id="outline-container-org6a1d7d0" class="outline-2">
<h2 id="org6a1d7d0"><span class="section-number-2">1</span> Coding conventions</h2>
<div id="outline-container-orge016367" class="outline-2">
<h2 id="orge016367"><span class="section-number-2">1</span> Coding conventions</h2>
<div class="outline-text-2" id="text-1">
<ul class="org-ul">
<li>integer types will be defined using types given in <code>stdint.h</code></li>
@ -447,8 +447,8 @@ for the JavaScript code in this tag.
</ul>
</div>
<div id="outline-container-org6144670" class="outline-3">
<h3 id="org6144670"><span class="section-number-3">1.1</span> Memory allocation</h3>
<div id="outline-container-orga834384" class="outline-3">
<h3 id="orga834384"><span class="section-number-3">1.1</span> Memory allocation</h3>
<div class="outline-text-3" id="text-1-1">
<p>
Memory allocation of structures can be facilitated by using the
@ -483,8 +483,8 @@ The maximum string size for the filenames is 4096 characters.
</div>
</div>
<div id="outline-container-org6216dd7" class="outline-2">
<h2 id="org6216dd7"><span class="section-number-2">2</span> Front end</h2>
<div id="outline-container-org58a300c" class="outline-2">
<h2 id="org58a300c"><span class="section-number-2">2</span> Front end</h2>
<div class="outline-text-2" id="text-2">
<p>
All calls to TREXIO are thread-safe.
@ -492,10 +492,10 @@ TREXIO front end is modular, which simplifies implementation of new back ends.
</p>
</div>
<div id="outline-container-org6941526" class="outline-3">
<h3 id="org6941526"><span class="section-number-3">2.1</span> Error handling</h3>
<div id="outline-container-org8de8999" class="outline-3">
<h3 id="org8de8999"><span class="section-number-3">2.1</span> Error handling</h3>
<div class="outline-text-3" id="text-2-1">
<table id="orgef30f94" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgbe09fcd" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -717,8 +717,8 @@ TREXIO front end is modular, which simplifies implementation of new back ends.
</div>
</div>
<div id="outline-container-orgc11cc62" class="outline-4">
<h4 id="orgc11cc62"><span class="section-number-4">2.1.1</span> Decoding errors</h4>
<div id="outline-container-orga9807f5" class="outline-4">
<h4 id="orga9807f5"><span class="section-number-4">2.1.1</span> Decoding errors</h4>
<div class="outline-text-4" id="text-2-1-1">
<p>
The <code>trexio_string_of_error</code> converts an exit code into a string. The
@ -741,8 +741,8 @@ The text strings are extracted from the previous table.
</p>
</div>
<div id="outline-container-org8ca4d3d" class="outline-5">
<h5 id="org8ca4d3d"><span class="section-number-5">2.1.1.1</span> C source code</h5>
<div id="outline-container-orgad944d5" class="outline-5">
<h5 id="orgad944d5"><span class="section-number-5">2.1.1.1</span> C source code</h5>
<div class="outline-text-5" id="text-2-1-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">const</span> <span style="color: #228b22;">char</span>*
@ -847,8 +847,8 @@ The text strings are extracted from the previous table.
</div>
</div>
<div id="outline-container-orgec3e24a" class="outline-5">
<h5 id="orgec3e24a"><span class="section-number-5">2.1.1.2</span> Fortran interface</h5>
<div id="outline-container-org490c2a8" class="outline-5">
<h5 id="org490c2a8"><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>
@ -864,8 +864,8 @@ The text strings are extracted from the previous table.
</div>
</div>
<div id="outline-container-orgdf3031d" class="outline-5">
<h5 id="orgdf3031d"><span class="section-number-5">2.1.1.3</span> Python interface</h5>
<div id="outline-container-org518d408" class="outline-5">
<h5 id="org518d408"><span class="section-number-5">2.1.1.3</span> Python interface</h5>
<div class="outline-text-5" id="text-2-1-1-3">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">class</span> <span style="color: #228b22;">Error</span>(<span style="color: #228b22;">Exception</span>):
@ -904,8 +904,8 @@ The text strings are extracted from the previous table.
</div>
</div>
<div id="outline-container-org3a265d9" class="outline-3">
<h3 id="org3a265d9"><span class="section-number-3">2.2</span> Back ends</h3>
<div id="outline-container-org92cd1da" class="outline-3">
<h3 id="org92cd1da"><span class="section-number-3">2.2</span> Back ends</h3>
<div class="outline-text-3" id="text-2-2">
<p>
TREXIO has several back ends:
@ -929,8 +929,8 @@ lines that correspond to the <code>TREXIO_JSON</code> back end (not implemented
</p>
</div>
<div id="outline-container-org8e2a172" class="outline-4">
<h4 id="org8e2a172"><span class="section-number-4">2.2.1</span> C</h4>
<div id="outline-container-org85f9fbe" class="outline-4">
<h4 id="org85f9fbe"><span class="section-number-4">2.2.1</span> C</h4>
<div class="outline-text-4" id="text-2-2-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #228b22;">int32_t</span> <span style="color: #228b22;">back_end_t</span>;
@ -946,8 +946,8 @@ lines that correspond to the <code>TREXIO_JSON</code> back end (not implemented
</div>
</div>
<div id="outline-container-orgfbcb94f" class="outline-4">
<h4 id="orgfbcb94f"><span class="section-number-4">2.2.2</span> Fortran</h4>
<div id="outline-container-org4c71535" class="outline-4">
<h4 id="org4c71535"><span class="section-number-4">2.2.2</span> Fortran</h4>
<div class="outline-text-4" id="text-2-2-2">
<div class="org-src-container">
<pre class="src src-f90"> <span style="color: #228b22;">integer</span>(trexio_backend), <span style="color: #a020f0;">parameter</span> ::<span style="color: #a0522d;"> TREXIO_HDF5 = 0</span>
@ -959,8 +959,8 @@ lines that correspond to the <code>TREXIO_JSON</code> back end (not implemented
</div>
</div>
<div id="outline-container-org70b5437" class="outline-4">
<h4 id="org70b5437"><span class="section-number-4">2.2.3</span> Python</h4>
<div id="outline-container-orgde93643" class="outline-4">
<h4 id="orgde93643"><span class="section-number-4">2.2.3</span> Python</h4>
<div class="outline-text-4" id="text-2-2-3">
<div class="org-src-container">
<pre class="src src-python"># <span style="color: #b22222;">define TREXIO back ends</span>
@ -974,8 +974,8 @@ lines that correspond to the <code>TREXIO_JSON</code> back end (not implemented
</div>
</div>
<div id="outline-container-org36f3c07" class="outline-3">
<h3 id="org36f3c07"><span class="section-number-3">2.3</span> Read/write behavior</h3>
<div id="outline-container-org38fd325" class="outline-3">
<h3 id="org38fd325"><span class="section-number-3">2.3</span> Read/write behavior</h3>
<div class="outline-text-3" id="text-2-3">
<p>
Every time a reading function is called, the data is read from the
@ -1003,8 +1003,8 @@ concurrent programs, the behavior is not specified.
</p>
</div>
</div>
<div id="outline-container-orgec96fc5" class="outline-3">
<h3 id="orgec96fc5"><span class="section-number-3">2.4</span> TREXIO file type</h3>
<div id="outline-container-orgc3536b9" class="outline-3">
<h3 id="orgc3536b9"><span class="section-number-3">2.4</span> TREXIO file type</h3>
<div class="outline-text-3" id="text-2-4">
<p>
<code>trexio_s</code> is the the main type for TREXIO files, visible to the users
@ -1038,8 +1038,8 @@ TREXIO files will have as a first argument the TREXIO file handle.
</div>
</div>
<div id="outline-container-org03723b7" class="outline-4">
<h4 id="org03723b7"><span class="section-number-4">2.4.1</span> TREXIO<sub>File</sub> Python class</h4>
<div id="outline-container-orgb496fea" class="outline-4">
<h4 id="orgb496fea"><span class="section-number-4">2.4.1</span> TREXIO<sub>File</sub> Python class</h4>
<div class="outline-text-4" id="text-2-4-1">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">class</span> <span style="color: #228b22;">File</span>:
@ -1112,8 +1112,8 @@ TREXIO files will have as a first argument the TREXIO file handle.
</div>
</div>
<div id="outline-container-orgb1bf5c2" class="outline-3">
<h3 id="orgb1bf5c2"><span class="section-number-3">2.5</span> Polymorphism of the file handle</h3>
<div id="outline-container-org815e05a" class="outline-3">
<h3 id="org815e05a"><span class="section-number-3">2.5</span> Polymorphism of the file handle</h3>
<div class="outline-text-3" id="text-2-5">
<p>
Polymorphism of the <code>trexio_t</code> type is handled by ensuring that the
@ -1132,8 +1132,8 @@ corresponding types for all back ends can be safely casted to
</div>
</div>
<div id="outline-container-org0c9447b" class="outline-3">
<h3 id="org0c9447b"><span class="section-number-3">2.6</span> File opening</h3>
<div id="outline-container-org3ba1d27" class="outline-3">
<h3 id="org3ba1d27"><span class="section-number-3">2.6</span> File opening</h3>
<div class="outline-text-3" id="text-2-6">
<p>
<code>trexio_open</code> creates a new TREXIO file or opens existing one.
@ -1172,8 +1172,8 @@ renaming the <code>.txt</code> data files.
</p>
</div>
<div id="outline-container-org9951597" class="outline-4">
<h4 id="org9951597"><span class="section-number-4">2.6.1</span> C</h4>
<div id="outline-container-orgf4f02fb" class="outline-4">
<h4 id="orgf4f02fb"><span class="section-number-4">2.6.1</span> C</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;">trexio_t</span>*
@ -1327,8 +1327,8 @@ renaming the <code>.txt</code> data files.
</div>
</div>
<div id="outline-container-orgbbf2c3d" class="outline-4">
<h4 id="orgbbf2c3d"><span class="section-number-4">2.6.2</span> Fortran</h4>
<div id="outline-container-org98f7c60" class="outline-4">
<h4 id="org98f7c60"><span class="section-number-4">2.6.2</span> Fortran</h4>
<div class="outline-text-4" id="text-2-6-2">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #a020f0;">interface</span>
@ -1345,8 +1345,8 @@ renaming the <code>.txt</code> data files.
</div>
</div>
<div id="outline-container-org5df7264" class="outline-4">
<h4 id="org5df7264"><span class="section-number-4">2.6.3</span> Python</h4>
<div id="outline-container-org2d364ac" class="outline-4">
<h4 id="org2d364ac"><span class="section-number-4">2.6.3</span> Python</h4>
<div class="outline-text-4" id="text-2-6-3">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">open</span>(file_name: <span style="color: #483d8b;">str</span>, mode: <span style="color: #483d8b;">str</span>, back_end: <span style="color: #483d8b;">int</span>):
@ -1383,8 +1383,8 @@ renaming the <code>.txt</code> data files.
</div>
</div>
<div id="outline-container-orga300a2a" class="outline-4">
<h4 id="orga300a2a"><span class="section-number-4">2.6.4</span> Zero-based versus one-based arrays of indices</h4>
<div id="outline-container-org67f0efa" class="outline-4">
<h4 id="org67f0efa"><span class="section-number-4">2.6.4</span> Zero-based versus one-based arrays of indices</h4>
<div class="outline-text-4" id="text-2-6-4">
<p>
Because arrays are zero-based in Fortran, we need to set a flag to
@ -1417,8 +1417,8 @@ know if we need to shift by 1 arrays of indices.
</div>
</div>
<div id="outline-container-orgde5793a" class="outline-3">
<h3 id="orgde5793a"><span class="section-number-3">2.7</span> File closing</h3>
<div id="outline-container-orgcdc3b13" class="outline-3">
<h3 id="orgcdc3b13"><span class="section-number-3">2.7</span> File closing</h3>
<div class="outline-text-3" id="text-2-7">
<p>
<code>trexio_close</code> closes an existing <code>trexio_t</code> file.
@ -1435,8 +1435,8 @@ output:
</p>
</div>
<div id="outline-container-orge6b5c2e" class="outline-4">
<h4 id="orge6b5c2e"><span class="section-number-4">2.7.1</span> C</h4>
<div id="outline-container-org41de806" class="outline-4">
<h4 id="org41de806"><span class="section-number-4">2.7.1</span> C</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;">trexio_exit_code</span>
@ -1507,8 +1507,8 @@ output:
</div>
</div>
<div id="outline-container-org36a58a1" class="outline-4">
<h4 id="org36a58a1"><span class="section-number-4">2.7.2</span> Fortran</h4>
<div id="outline-container-orgbd6039b" class="outline-4">
<h4 id="orgbd6039b"><span class="section-number-4">2.7.2</span> Fortran</h4>
<div class="outline-text-4" id="text-2-7-2">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #a020f0;">interface</span>
@ -1522,8 +1522,8 @@ output:
</div>
</div>
<div id="outline-container-orgd30598f" class="outline-4">
<h4 id="orgd30598f"><span class="section-number-4">2.7.3</span> Python</h4>
<div id="outline-container-orga4af2be" class="outline-4">
<h4 id="orga4af2be"><span class="section-number-4">2.7.3</span> Python</h4>
<div class="outline-text-4" id="text-2-7-3">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">close</span>(trexio_file):
@ -1545,12 +1545,12 @@ output:
</div>
</div>
<div id="outline-container-org186dccb" class="outline-2">
<h2 id="org186dccb"><span class="section-number-2">3</span> Templates for front end</h2>
<div id="outline-container-orgeb30733" class="outline-2">
<h2 id="orgeb30733"><span class="section-number-2">3</span> Templates for front end</h2>
<div class="outline-text-2" id="text-3">
</div>
<div id="outline-container-org828f092" class="outline-3">
<h3 id="org828f092"><span class="section-number-3">3.1</span> Description</h3>
<div id="outline-container-orgfb170e6" class="outline-3">
<h3 id="orgfb170e6"><span class="section-number-3">3.1</span> Description</h3>
<div class="outline-text-3" id="text-3-1">
<p>
Consider the following block of <code>trex.json</code>:
@ -1746,8 +1746,8 @@ or double precision for integer and floating point numbers.
</div>
</div>
<div id="outline-container-orgc0e370a" class="outline-3">
<h3 id="orgc0e370a"><span class="section-number-3">3.2</span> Templates for front end has/read/write a single dimensioning variable</h3>
<div id="outline-container-orgff1539e" class="outline-3">
<h3 id="orgff1539e"><span class="section-number-3">3.2</span> Templates for front end has/read/write a single dimensioning variable</h3>
<div class="outline-text-3" id="text-3-2">
<p>
This section concerns API calls related to dimensioning variables.
@ -1816,8 +1816,8 @@ This section concerns API calls related to dimensioning variables.
</table>
</div>
<div id="outline-container-orgd4f92fd" class="outline-4">
<h4 id="orgd4f92fd"><span class="section-number-4">3.2.1</span> C templates for front end</h4>
<div id="outline-container-orgc9ec875" class="outline-4">
<h4 id="orgc9ec875"><span class="section-number-4">3.2.1</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-2-1">
<p>
The <code>C</code> templates that correspond to each of the abovementioned
@ -2008,8 +2008,8 @@ precision (see Table above).
</div>
</div>
<div id="outline-container-org0f31755" class="outline-4">
<h4 id="org0f31755"><span class="section-number-4">3.2.2</span> Fortran templates for front end</h4>
<div id="outline-container-org087926e" class="outline-4">
<h4 id="org087926e"><span class="section-number-4">3.2.2</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-2-2">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from Fortran.
@ -2094,8 +2094,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org60c3ae4" class="outline-4">
<h4 id="org60c3ae4"><span class="section-number-4">3.2.3</span> Python templates for front end</h4>
<div id="outline-container-org0be1310" class="outline-4">
<h4 id="org0be1310"><span class="section-number-4">3.2.3</span> Python templates for front end</h4>
<div class="outline-text-4" id="text-3-2-3">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">write_</span>$group_num$(trexio_file, num_w: <span style="color: #483d8b;">int</span>) -&gt; <span style="color: #008b8b;">None</span>:
@ -2180,8 +2180,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org9bd94a2" class="outline-3">
<h3 id="org9bd94a2"><span class="section-number-3">3.3</span> Templates for front end has/read/write a dataset of numerical data</h3>
<div id="outline-container-org662de95" class="outline-3">
<h3 id="org662de95"><span class="section-number-3">3.3</span> Templates for front end has/read/write a dataset of numerical data</h3>
<div class="outline-text-3" id="text-3-3">
<p>
This section concerns API calls related to datasets.
@ -2262,8 +2262,8 @@ This section concerns API calls related to datasets.
</table>
</div>
<div id="outline-container-orga0ba8dc" class="outline-4">
<h4 id="orga0ba8dc"><span class="section-number-4">3.3.1</span> C templates for front end</h4>
<div id="outline-container-org635961d" class="outline-4">
<h4 id="org635961d"><span class="section-number-4">3.3.1</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-3-1">
<p>
The C templates that correspond to each of the abovementioned functions can be found below.
@ -2274,13 +2274,13 @@ The basic (non-suffixed) API call on datasets deals with double precision (see T
</p>
</div>
<div id="outline-container-org43e381b" class="outline-5">
<h5 id="org43e381b"><span class="section-number-5">3.3.1.1</span> Function declarations</h5>
<div id="outline-container-org2678342" class="outline-5">
<h5 id="org2678342"><span class="section-number-5">3.3.1.1</span> Function declarations</h5>
</div>
<div id="outline-container-orgabb7ee8" class="outline-5">
<h5 id="orgabb7ee8"><span class="section-number-5">3.3.1.2</span> Source code for double precision functions</h5>
<div id="outline-container-org3ea50ac" class="outline-5">
<h5 id="org3ea50ac"><span class="section-number-5">3.3.1.2</span> Source code for double precision functions</h5>
<div class="outline-text-5" id="text-3-3-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2408,8 +2408,8 @@ The basic (non-suffixed) API call on datasets deals with double precision (see T
</div>
</div>
<div id="outline-container-orgd78cbaf" class="outline-5">
<h5 id="orgd78cbaf"><span class="section-number-5">3.3.1.3</span> Source code for single precision functions</h5>
<div id="outline-container-orgcdbee12" class="outline-5">
<h5 id="orgcdbee12"><span class="section-number-5">3.3.1.3</span> Source code for single precision functions</h5>
<div class="outline-text-5" id="text-3-3-1-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2550,11 +2550,11 @@ The basic (non-suffixed) API call on datasets deals with double precision (see T
</div>
</div>
<div id="outline-container-orgca68ba9" class="outline-5">
<h5 id="orgca68ba9"><span class="section-number-5">3.3.1.4</span> Source code for memory-safe functions</h5>
<div id="outline-container-orgcc84df4" class="outline-5">
<h5 id="orgcc84df4"><span class="section-number-5">3.3.1.4</span> Source code for memory-safe functions</h5>
<div class="outline-text-5" id="text-3-3-1-4">
<div class="org-src-container">
<pre class="src src-c" id="orgeaeed05"><span style="color: #228b22;">trexio_exit_code</span> <span style="color: #a0522d;">rc</span>;
<pre class="src src-c" id="orgbd9827c"><span style="color: #228b22;">trexio_exit_code</span> <span style="color: #a0522d;">rc</span>;
int64_t $group_dset_dim$ = 0;
/* <span style="color: #b22222;">Error handling for this call is added by the generator </span>*/
@ -2710,8 +2710,8 @@ rc = trexio_read_$group_dset_dim$_64(file, &amp;($group_dset_dim$));
</div>
</div>
<div id="outline-container-org398b3b1" class="outline-5">
<h5 id="org398b3b1"><span class="section-number-5">3.3.1.5</span> Source code for default functions</h5>
<div id="outline-container-orgcb09b9b" class="outline-5">
<h5 id="orgcb09b9b"><span class="section-number-5">3.3.1.5</span> Source code for default functions</h5>
<div class="outline-text-5" id="text-3-3-1-5">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2785,8 +2785,8 @@ rc = trexio_read_$group_dset_dim$_64(file, &amp;($group_dset_dim$));
</div>
</div>
<div id="outline-container-org6a3254c" class="outline-4">
<h4 id="org6a3254c"><span class="section-number-4">3.3.2</span> Fortran templates for front end</h4>
<div id="outline-container-orgc530c78" class="outline-4">
<h4 id="orgc530c78"><span class="section-number-4">3.3.2</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-3-2">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from <code>Fortran</code>.
@ -2871,8 +2871,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org1fedc44" class="outline-4">
<h4 id="org1fedc44"><span class="section-number-4">3.3.3</span> Python templates for front end</h4>
<div id="outline-container-orgd570341" class="outline-4">
<h4 id="orgd570341"><span class="section-number-4">3.3.3</span> Python templates for front end</h4>
<div class="outline-text-4" id="text-3-3-3">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">write_</span>$group_dset$(trexio_file, dset_w) -&gt; <span style="color: #008b8b;">None</span>:
@ -3067,8 +3067,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orgb6365bd" class="outline-3">
<h3 id="orgb6365bd"><span class="section-number-3">3.4</span> Sparse data structures</h3>
<div id="outline-container-org89eb3a4" class="outline-3">
<h3 id="org89eb3a4"><span class="section-number-3">3.4</span> Sparse data structures</h3>
<div class="outline-text-3" id="text-3-4">
<p>
Sparse data structures are used typically for large tensors such as
@ -3209,12 +3209,12 @@ For the values,
</div>
</div>
<div id="outline-container-org7b6605f" class="outline-3">
<h3 id="org7b6605f"><span class="section-number-3">3.5</span> Templates for front end has/read/write a dataset of strings</h3>
<div id="outline-container-orgdb7dc33" class="outline-3">
<h3 id="orgdb7dc33"><span class="section-number-3">3.5</span> Templates for front end has/read/write a dataset of strings</h3>
<div class="outline-text-3" id="text-3-5">
</div>
<div id="outline-container-orgc066816" class="outline-4">
<h4 id="orgc066816"><span class="section-number-4">3.5.1</span> Introduction</h4>
<div id="outline-container-orged23511" class="outline-4">
<h4 id="orged23511"><span class="section-number-4">3.5.1</span> Introduction</h4>
<div class="outline-text-4" id="text-3-5-1">
<p>
This section concerns API calls related to datasets of strings.
@ -3254,8 +3254,8 @@ This section concerns API calls related to datasets of strings.
</div>
</div>
<div id="outline-container-org9ffe3c4" class="outline-4">
<h4 id="org9ffe3c4"><span class="section-number-4">3.5.2</span> C templates for front end</h4>
<div id="outline-container-orgdca1a7e" class="outline-4">
<h4 id="orgdca1a7e"><span class="section-number-4">3.5.2</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-5-2">
<p>
First parameter is the <code>TREXIO</code> file handle. Second parameter is the variable to be written/read
@ -3502,8 +3502,8 @@ to/from the <code>TREXIO</code> file (except for <code>trexio_has_</code> functi
</div>
</div>
<div id="outline-container-org5cb63f5" class="outline-4">
<h4 id="org5cb63f5"><span class="section-number-4">3.5.3</span> Fortran templates for front end</h4>
<div id="outline-container-org94eb6b3" class="outline-4">
<h4 id="org94eb6b3"><span class="section-number-4">3.5.3</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-5-3">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from <code>Fortran</code>.
@ -3599,8 +3599,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org0e9f0e1" class="outline-4">
<h4 id="org0e9f0e1"><span class="section-number-4">3.5.4</span> Python templates for front end</h4>
<div id="outline-container-org1885436" class="outline-4">
<h4 id="org1885436"><span class="section-number-4">3.5.4</span> Python templates for front end</h4>
<div class="outline-text-4" id="text-3-5-4">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">write_</span>$group_dset$(trexio_file, dset_w: <span style="color: #483d8b;">list</span>) -&gt; <span style="color: #008b8b;">None</span>:
@ -3716,12 +3716,12 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orgc019e99" class="outline-3">
<h3 id="orgc019e99"><span class="section-number-3">3.6</span> Templates for front end has/read/write a single string attribute</h3>
<div id="outline-container-orgcd8d922" class="outline-3">
<h3 id="orgcd8d922"><span class="section-number-3">3.6</span> Templates for front end has/read/write a single string attribute</h3>
<div class="outline-text-3" id="text-3-6">
</div>
<div id="outline-container-orgc454074" class="outline-4">
<h4 id="orgc454074"><span class="section-number-4">3.6.1</span> Introduction</h4>
<div id="outline-container-org9e913f3" class="outline-4">
<h4 id="org9e913f3"><span class="section-number-4">3.6.1</span> Introduction</h4>
<div class="outline-text-4" id="text-3-6-1">
<p>
This section concerns API calls related to string attributes.
@ -3761,8 +3761,8 @@ This section concerns API calls related to string attributes.
</div>
</div>
<div id="outline-container-org1a63ceb" class="outline-4">
<h4 id="org1a63ceb"><span class="section-number-4">3.6.2</span> C templates for front end</h4>
<div id="outline-container-org647db30" class="outline-4">
<h4 id="org647db30"><span class="section-number-4">3.6.2</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-6-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -3861,8 +3861,8 @@ This section concerns API calls related to string attributes.
</div>
</div>
<div id="outline-container-org62829ed" class="outline-4">
<h4 id="org62829ed"><span class="section-number-4">3.6.3</span> Fortran templates for front end</h4>
<div id="outline-container-org83d136d" class="outline-4">
<h4 id="org83d136d"><span class="section-number-4">3.6.3</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-6-3">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from Fortran.
@ -3939,8 +3939,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orgb87b73f" class="outline-4">
<h4 id="orgb87b73f"><span class="section-number-4">3.6.4</span> Python templates for front end</h4>
<div id="outline-container-orgca7a13a" class="outline-4">
<h4 id="orgca7a13a"><span class="section-number-4">3.6.4</span> Python templates for front end</h4>
<div class="outline-text-4" id="text-3-6-4">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">write_</span>$group_str$(trexio_file, str_w: <span style="color: #483d8b;">str</span>) -&gt; <span style="color: #008b8b;">None</span>:
@ -4030,8 +4030,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org02a4393" class="outline-2">
<h2 id="org02a4393"><span class="section-number-2">4</span> Fortran helper/wrapper functions</h2>
<div id="outline-container-org4caf991" class="outline-2">
<h2 id="org4caf991"><span class="section-number-2">4</span> Fortran helper/wrapper functions</h2>
<div class="outline-text-2" id="text-4">
<p>
The function below adapts the original C-based <code>trexio_open</code> for Fortran.
@ -4165,7 +4165,7 @@ two code are identical, i.e. if the <code>assert</code> statement pass.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-09-14 Tue 09:40</p>
<p class="date">Created: 2021-09-15 Wed 12:59</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-09-14 Tue 09:40 -->
<!-- 2021-09-15 Wed 12:59 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>HDF5 back end</title>
@ -311,27 +311,27 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgcdebfe6">1. HDF5 back end</a>
<li><a href="#orga15b4d9">1. HDF5 back end</a>
<ul>
<li><a href="#orgd2f3eef">1.1. Template for HDF5 definitions</a></li>
<li><a href="#orga832185">1.2. Template for HDF5 structures</a></li>
<li><a href="#orga9ed498">1.3. Template for HDF5 init/deinit</a></li>
<li><a href="#org57e1c12">1.4. Template for HDF5 has/read/write a single dimensioning variable</a></li>
<li><a href="#org864bc17">1.5. Template for HDF5 has/read/write a dataset of numerical data</a></li>
<li><a href="#org1e8a08f">1.6. Template for HDF5 has/read/write a dataset of strings</a></li>
<li><a href="#org68b4d7f">1.7. Template for HDF5 has/read/write a single string attribute</a></li>
<li><a href="#orgba7274d">1.1. Template for HDF5 definitions</a></li>
<li><a href="#org5a69a2a">1.2. Template for HDF5 structures</a></li>
<li><a href="#org583b65f">1.3. Template for HDF5 init/deinit</a></li>
<li><a href="#orgd74ffd9">1.4. Template for HDF5 has/read/write a single dimensioning variable</a></li>
<li><a href="#orgeb179c4">1.5. Template for HDF5 has/read/write a dataset of numerical data</a></li>
<li><a href="#org05f9929">1.6. Template for HDF5 has/read/write a dataset of strings</a></li>
<li><a href="#orge3d1ab9">1.7. Template for HDF5 has/read/write a single string attribute</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-orgcdebfe6" class="outline-2">
<h2 id="orgcdebfe6"><span class="section-number-2">1</span> HDF5 back end</h2>
<div id="outline-container-orga15b4d9" class="outline-2">
<h2 id="orga15b4d9"><span class="section-number-2">1</span> HDF5 back end</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-orgd2f3eef" class="outline-3">
<h3 id="orgd2f3eef"><span class="section-number-3">1.1</span> Template for HDF5 definitions</h3>
<div id="outline-container-orgba7274d" class="outline-3">
<h3 id="orgba7274d"><span class="section-number-3">1.1</span> Template for HDF5 definitions</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#define</span> $GROUP$_GROUP_NAME <span style="color: #8b2252;">"$group$"</span>
@ -343,8 +343,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-orga832185" class="outline-3">
<h3 id="orga832185"><span class="section-number-3">1.2</span> Template for HDF5 structures</h3>
<div id="outline-container-org5a69a2a" class="outline-3">
<h3 id="org5a69a2a"><span class="section-number-3">1.2</span> Template for HDF5 structures</h3>
<div class="outline-text-3" id="text-1-2">
<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;">trexio_hdf5_s</span> {
@ -358,8 +358,8 @@ for the JavaScript code in this tag.
</div>
<div id="outline-container-orga9ed498" class="outline-3">
<h3 id="orga9ed498"><span class="section-number-3">1.3</span> Template for HDF5 init/deinit</h3>
<div id="outline-container-org583b65f" class="outline-3">
<h3 id="org583b65f"><span class="section-number-3">1.3</span> Template for HDF5 init/deinit</h3>
<div class="outline-text-3" id="text-1-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -439,8 +439,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org57e1c12" class="outline-3">
<h3 id="org57e1c12"><span class="section-number-3">1.4</span> Template for HDF5 has/read/write a single dimensioning variable</h3>
<div id="outline-container-orgd74ffd9" class="outline-3">
<h3 id="orgd74ffd9"><span class="section-number-3">1.4</span> Template for HDF5 has/read/write a single dimensioning variable</h3>
<div class="outline-text-3" id="text-1-4">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -556,8 +556,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org864bc17" class="outline-3">
<h3 id="org864bc17"><span class="section-number-3">1.5</span> Template for HDF5 has/read/write a dataset of numerical data</h3>
<div id="outline-container-orgeb179c4" class="outline-3">
<h3 id="orgeb179c4"><span class="section-number-3">1.5</span> Template for HDF5 has/read/write a dataset of numerical data</h3>
<div class="outline-text-3" id="text-1-5">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -686,8 +686,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org1e8a08f" class="outline-3">
<h3 id="org1e8a08f"><span class="section-number-3">1.6</span> Template for HDF5 has/read/write a dataset of strings</h3>
<div id="outline-container-org05f9929" class="outline-3">
<h3 id="org05f9929"><span class="section-number-3">1.6</span> Template for HDF5 has/read/write a dataset of strings</h3>
<div class="outline-text-3" id="text-1-6">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -898,8 +898,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org68b4d7f" class="outline-3">
<h3 id="org68b4d7f"><span class="section-number-3">1.7</span> Template for HDF5 has/read/write a single string attribute</h3>
<div id="outline-container-orge3d1ab9" class="outline-3">
<h3 id="orge3d1ab9"><span class="section-number-3">1.7</span> Template for HDF5 has/read/write a single string attribute</h3>
<div class="outline-text-3" id="text-1-7">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -1026,7 +1026,7 @@ for the JavaScript code in this tag.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-09-14 Tue 09:40</p>
<p class="date">Created: 2021-09-15 Wed 12:59</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-09-14 Tue 09:40 -->
<!-- 2021-09-15 Wed 12:59 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>TEXT back end</title>
@ -311,26 +311,26 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org7e9e3d5">1. TEXT back end</a>
<li><a href="#org5a6b943">1. TEXT back end</a>
<ul>
<li><a href="#org156bfd7">1.1. Template for group-related structures in text back end</a></li>
<li><a href="#orgf0a45e5">1.2. Template for general structure in text back end</a></li>
<li><a href="#org1c6d6d9">1.3. Initialize function (constant part)</a></li>
<li><a href="#org9742140">1.4. Deinitialize function (templated part)</a></li>
<li><a href="#orgf133ae6">1.5. Template for text read struct</a></li>
<li><a href="#orgc0303d2">1.6. Template for text flush struct</a></li>
<li><a href="#org27a4649">1.7. Template for text free memory</a></li>
<li><a href="#orged532e5">1.8. Template for has/read/write the num attribute</a></li>
<li><a href="#org6af60ce">1.9. Template for has/read/write the dataset of numerical data</a></li>
<li><a href="#orgb202fcf">1.10. Template for has/read/write the dataset of strings</a></li>
<li><a href="#orgd35aaf4">1.11. Template for has/read/write the string attribute</a></li>
<li><a href="#orge676bca">1.12. RDM struct (hard-coded)</a>
<li><a href="#org0ed06e8">1.1. Template for group-related structures in text back end</a></li>
<li><a href="#org7b17bc8">1.2. Template for general structure in text back end</a></li>
<li><a href="#org4be192f">1.3. Initialize function (constant part)</a></li>
<li><a href="#org0fa98bf">1.4. Deinitialize function (templated part)</a></li>
<li><a href="#org7e7cddb">1.5. Template for text read struct</a></li>
<li><a href="#org1bd6f65">1.6. Template for text flush struct</a></li>
<li><a href="#org2f6c3a4">1.7. Template for text free memory</a></li>
<li><a href="#org3112551">1.8. Template for has/read/write the num attribute</a></li>
<li><a href="#orgf98d600">1.9. Template for has/read/write the dataset of numerical data</a></li>
<li><a href="#org937e93c">1.10. Template for has/read/write the dataset of strings</a></li>
<li><a href="#orgbd299d4">1.11. Template for has/read/write the string attribute</a></li>
<li><a href="#org13d81f4">1.12. RDM struct (hard-coded)</a>
<ul>
<li><a href="#orgd2708f4">1.12.1. Read the complete struct</a></li>
<li><a href="#org59113f3">1.12.2. Flush the complete struct</a></li>
<li><a href="#org82c03c8">1.12.3. Free memory</a></li>
<li><a href="#orgf7cdc37">1.12.4. Read/Write the one<sub>e</sub> attribute</a></li>
<li><a href="#org62a430a">1.12.5. Read/Write the two<sub>e</sub> attribute</a></li>
<li><a href="#orgf4b91c2">1.12.1. Read the complete struct</a></li>
<li><a href="#orgdc82e88">1.12.2. Flush the complete struct</a></li>
<li><a href="#org2d081e2">1.12.3. Free memory</a></li>
<li><a href="#org7c39934">1.12.4. Read/Write the one<sub>e</sub> attribute</a></li>
<li><a href="#orgd5186b4">1.12.5. Read/Write the two<sub>e</sub> attribute</a></li>
</ul>
</li>
</ul>
@ -339,8 +339,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org7e9e3d5" class="outline-2">
<h2 id="org7e9e3d5"><span class="section-number-2">1</span> TEXT back end</h2>
<div id="outline-container-org5a6b943" class="outline-2">
<h2 id="org5a6b943"><span class="section-number-2">1</span> TEXT back end</h2>
<div class="outline-text-2" id="text-1">
<p>
The "file" produced by the text back end is a directory with one
@ -361,8 +361,8 @@ The file is written when closed, or when the flush function is called.
</p>
</div>
<div id="outline-container-org156bfd7" class="outline-3">
<h3 id="org156bfd7"><span class="section-number-3">1.1</span> Template for group-related structures in text back end</h3>
<div id="outline-container-org0ed06e8" class="outline-3">
<h3 id="org0ed06e8"><span class="section-number-3">1.1</span> Template for group-related structures in text back end</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> $group$_s {
@ -380,8 +380,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-orgf0a45e5" class="outline-3">
<h3 id="orgf0a45e5"><span class="section-number-3">1.2</span> Template for general structure in text back end</h3>
<div id="outline-container-org7b17bc8" class="outline-3">
<h3 id="org7b17bc8"><span class="section-number-3">1.2</span> Template for general structure in text back end</h3>
<div class="outline-text-3" id="text-1-2">
<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;">rdm_s</span> {
@ -407,8 +407,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-org1c6d6d9" class="outline-3">
<h3 id="org1c6d6d9"><span class="section-number-3">1.3</span> Initialize function (constant part)</h3>
<div id="outline-container-org4be192f" class="outline-3">
<h3 id="org4be192f"><span class="section-number-3">1.3</span> Initialize function (constant part)</h3>
<div class="outline-text-3" id="text-1-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -509,8 +509,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-org9742140" class="outline-3">
<h3 id="org9742140"><span class="section-number-3">1.4</span> Deinitialize function (templated part)</h3>
<div id="outline-container-org0fa98bf" class="outline-3">
<h3 id="org0fa98bf"><span class="section-number-3">1.4</span> Deinitialize function (templated part)</h3>
<div class="outline-text-3" id="text-1-4">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -535,8 +535,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-orgf133ae6" class="outline-3">
<h3 id="orgf133ae6"><span class="section-number-3">1.5</span> Template for text read struct</h3>
<div id="outline-container-org7e7cddb" class="outline-3">
<h3 id="org7e7cddb"><span class="section-number-3">1.5</span> Template for text read struct</h3>
<div class="outline-text-3" id="text-1-5">
<div class="org-src-container">
<pre class="src src-c">$group$_t*
@ -805,8 +805,8 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
</div>
</div>
<div id="outline-container-orgc0303d2" class="outline-3">
<h3 id="orgc0303d2"><span class="section-number-3">1.6</span> Template for text flush struct</h3>
<div id="outline-container-org1bd6f65" class="outline-3">
<h3 id="org1bd6f65"><span class="section-number-3">1.6</span> Template for text flush struct</h3>
<div class="outline-text-3" id="text-1-6">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -870,8 +870,8 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
</div>
</div>
<div id="outline-container-org27a4649" class="outline-3">
<h3 id="org27a4649"><span class="section-number-3">1.7</span> Template for text free memory</h3>
<div id="outline-container-org2f6c3a4" class="outline-3">
<h3 id="org2f6c3a4"><span class="section-number-3">1.7</span> Template for text free memory</h3>
<div class="outline-text-3" id="text-1-7">
<p>
Memory is allocated when reading. The following function frees memory.
@ -916,8 +916,8 @@ Memory is allocated when reading. The following function frees memory.
</div>
</div>
<div id="outline-container-orged532e5" class="outline-3">
<h3 id="orged532e5"><span class="section-number-3">1.8</span> Template for has/read/write the num attribute</h3>
<div id="outline-container-org3112551" class="outline-3">
<h3 id="org3112551"><span class="section-number-3">1.8</span> Template for has/read/write the num attribute</h3>
<div class="outline-text-3" id="text-1-8">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -979,8 +979,8 @@ Memory is allocated when reading. The following function frees memory.
</div>
</div>
<div id="outline-container-org6af60ce" class="outline-3">
<h3 id="org6af60ce"><span class="section-number-3">1.9</span> Template for has/read/write the dataset of numerical data</h3>
<div id="outline-container-orgf98d600" class="outline-3">
<h3 id="orgf98d600"><span class="section-number-3">1.9</span> Template for has/read/write the dataset of numerical data</h3>
<div class="outline-text-3" id="text-1-9">
<p>
The <code>group_dset</code> array is assumed allocated with the appropriate size.
@ -1076,8 +1076,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
</div>
<div id="outline-container-orgb202fcf" class="outline-3">
<h3 id="orgb202fcf"><span class="section-number-3">1.10</span> Template for has/read/write the dataset of strings</h3>
<div id="outline-container-org937e93c" class="outline-3">
<h3 id="org937e93c"><span class="section-number-3">1.10</span> Template for has/read/write the dataset of strings</h3>
<div class="outline-text-3" id="text-1-10">
<p>
The <code>group_dset</code> array is assumed allocated with the appropriate size.
@ -1178,8 +1178,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
</div>
<div id="outline-container-orgd35aaf4" class="outline-3">
<h3 id="orgd35aaf4"><span class="section-number-3">1.11</span> Template for has/read/write the string attribute</h3>
<div id="outline-container-orgbd299d4" class="outline-3">
<h3 id="orgbd299d4"><span class="section-number-3">1.11</span> Template for has/read/write the string attribute</h3>
<div class="outline-text-3" id="text-1-11">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -1253,12 +1253,12 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
</div>
<div id="outline-container-orge676bca" class="outline-3">
<h3 id="orge676bca"><span class="section-number-3">1.12</span> RDM struct (hard-coded)</h3>
<div id="outline-container-org13d81f4" class="outline-3">
<h3 id="org13d81f4"><span class="section-number-3">1.12</span> RDM struct (hard-coded)</h3>
<div class="outline-text-3" id="text-1-12">
</div>
<div id="outline-container-orgd2708f4" class="outline-4">
<h4 id="orgd2708f4"><span class="section-number-4">1.12.1</span> Read the complete struct</h4>
<div id="outline-container-orgf4b91c2" class="outline-4">
<h4 id="orgf4b91c2"><span class="section-number-4">1.12.1</span> Read the complete struct</h4>
<div class="outline-text-4" id="text-1-12-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">rdm_t</span>* <span style="color: #0000ff;">trexio_text_read_rdm</span>(<span style="color: #228b22;">trexio_text_t</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">file</span>);
@ -1353,8 +1353,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
<div id="outline-container-org59113f3" class="outline-4">
<h4 id="org59113f3"><span class="section-number-4">1.12.2</span> Flush the complete struct</h4>
<div id="outline-container-orgdc82e88" class="outline-4">
<h4 id="orgdc82e88"><span class="section-number-4">1.12.2</span> Flush the complete struct</h4>
<div class="outline-text-4" id="text-1-12-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span> <span style="color: #0000ff;">trexio_text_flush_rdm</span>(<span style="color: #228b22;">trexio_text_t</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">file</span>);
@ -1396,8 +1396,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
<div id="outline-container-org82c03c8" class="outline-4">
<h4 id="org82c03c8"><span class="section-number-4">1.12.3</span> Free memory</h4>
<div id="outline-container-org2d081e2" class="outline-4">
<h4 id="org2d081e2"><span class="section-number-4">1.12.3</span> Free memory</h4>
<div class="outline-text-4" id="text-1-12-3">
<p>
Memory is allocated when reading. The followig function frees memory.
@ -1433,8 +1433,8 @@ Memory is allocated when reading. The followig function frees memory.
</div>
</div>
<div id="outline-container-orgf7cdc37" class="outline-4">
<h4 id="orgf7cdc37"><span class="section-number-4">1.12.4</span> Read/Write the one<sub>e</sub> attribute</h4>
<div id="outline-container-org7c39934" class="outline-4">
<h4 id="org7c39934"><span class="section-number-4">1.12.4</span> Read/Write the one<sub>e</sub> attribute</h4>
<div class="outline-text-4" id="text-1-12-4">
<p>
The <code>one_e</code> array is assumed allocated with the appropriate size.
@ -1500,8 +1500,8 @@ The <code>one_e</code> array is assumed allocated with the appropriate size.
</div>
</div>
<div id="outline-container-org62a430a" class="outline-4">
<h4 id="org62a430a"><span class="section-number-4">1.12.5</span> Read/Write the two<sub>e</sub> attribute</h4>
<div id="outline-container-orgd5186b4" class="outline-4">
<h4 id="orgd5186b4"><span class="section-number-4">1.12.5</span> Read/Write the two<sub>e</sub> attribute</h4>
<div class="outline-text-4" id="text-1-12-5">
<p>
<code>two_e</code> is a sparse data structure, which can be too large to fit
@ -1609,7 +1609,7 @@ file for each sparse float structure.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-09-14 Tue 09:40</p>
<p class="date">Created: 2021-09-15 Wed 12:59</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

184
trex.html
View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-09-14 Tue 09:40 -->
<!-- 2021-09-15 Wed 12:59 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>TREX Configuration file</title>
@ -333,28 +333,28 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org2f16569">1. Metadata (metadata group)</a></li>
<li><a href="#orgb452162">2. Electron (electron group)</a></li>
<li><a href="#orgabad19e">3. Nucleus (nucleus group)</a></li>
<li><a href="#orgd5df5c8">4. <span class="todo TODO">TODO</span> Effective core potentials (ecp group)</a></li>
<li><a href="#org0a84d8f">5. Basis set (basis group)</a></li>
<li><a href="#orgbada45c">6. Atomic orbitals (ao group)</a>
<li><a href="#orgcd9c9c7">1. Metadata (metadata group)</a></li>
<li><a href="#orgf4b51c3">2. Electron (electron group)</a></li>
<li><a href="#orgca572d7">3. Nucleus (nucleus group)</a></li>
<li><a href="#org24055aa">4. Effective core potentials (ecp group)</a></li>
<li><a href="#orgc052c4e">5. Basis set (basis group)</a></li>
<li><a href="#org794baf2">6. Atomic orbitals (ao group)</a>
<ul>
<li><a href="#ao_one_e">6.1. One-electron integrals (<code>ao_1e_int</code> group)</a></li>
<li><a href="#ao_two_e">6.2. Two-electron integrals (<code>ao_2e_int</code> group)</a></li>
</ul>
</li>
<li><a href="#org4470e02">7. Molecular orbitals (mo group)</a>
<li><a href="#orge24982a">7. Molecular orbitals (mo group)</a>
<ul>
<li><a href="#org2ea4e2a">7.1. One-electron integrals (<code>mo_1e_int</code> group)</a></li>
<li><a href="#orge4610d3">7.2. Two-electron integrals (<code>mo_2e_int</code> group)</a></li>
<li><a href="#org7f89e14">7.1. One-electron integrals (<code>mo_1e_int</code> group)</a></li>
<li><a href="#org7018d89">7.2. Two-electron integrals (<code>mo_2e_int</code> group)</a></li>
</ul>
</li>
<li><a href="#orge97dd8f">8. <span class="todo TODO">TODO</span> Slater determinants</a></li>
<li><a href="#org0ca22c3">9. <span class="todo TODO">TODO</span> Reduced density matrices (rdm group)</a></li>
<li><a href="#org7bef632">10. Appendix</a>
<li><a href="#org66f6985">8. <span class="todo TODO">TODO</span> Slater determinants</a></li>
<li><a href="#orga67ab4e">9. <span class="todo TODO">TODO</span> Reduced density matrices (rdm group)</a></li>
<li><a href="#org0cfd980">10. Appendix</a>
<ul>
<li><a href="#org94e3ba8">10.1. Python script from table to json</a></li>
<li><a href="#org29e8853">10.1. Python script from table to json</a></li>
</ul>
</li>
</ul>
@ -386,8 +386,8 @@ arrays are 0-based. Hence, we introduce the <code>index</code> type which is an
1-based <code>int</code> in the Fortran interface and 0-based otherwise.
</p>
<div id="outline-container-org2f16569" class="outline-2">
<h2 id="org2f16569"><span class="section-number-2">1</span> Metadata (metadata group)</h2>
<div id="outline-container-orgcd9c9c7" class="outline-2">
<h2 id="orgcd9c9c7"><span class="section-number-2">1</span> Metadata (metadata group)</h2>
<div class="outline-text-2" id="text-1">
<p>
As we expect our files to be archived in open-data repositories, we
@ -397,7 +397,7 @@ which have participated to the creation of the file, a list of
authors of the file, and a textual description.
</p>
<table id="org42e41bd" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgaaeccfe" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -464,15 +464,15 @@ authors of the file, and a textual description.
</div>
</div>
<div id="outline-container-orgb452162" class="outline-2">
<h2 id="orgb452162"><span class="section-number-2">2</span> Electron (electron group)</h2>
<div id="outline-container-orgf4b51c3" class="outline-2">
<h2 id="orgf4b51c3"><span class="section-number-2">2</span> Electron (electron group)</h2>
<div class="outline-text-2" id="text-2">
<p>
We consider wave functions expressed in the spin-free formalism, where
the number of &uarr; and &darr; electrons is fixed.
</p>
<table id="org176bbb7" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org10326a7" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -511,15 +511,15 @@ the number of &uarr; and &darr; electrons is fixed.
</div>
</div>
<div id="outline-container-orgabad19e" class="outline-2">
<h2 id="orgabad19e"><span class="section-number-2">3</span> Nucleus (nucleus group)</h2>
<div id="outline-container-orgca572d7" class="outline-2">
<h2 id="orgca572d7"><span class="section-number-2">3</span> Nucleus (nucleus group)</h2>
<div class="outline-text-2" id="text-3">
<p>
The nuclei are considered as fixed point charges. Coordinates are
given in Cartesian \((x,y,z)\) format.
</p>
<table id="orge9b6ebd" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org8f7faa5" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -579,53 +579,33 @@ given in Cartesian \((x,y,z)\) format.
</div>
</div>
<div id="outline-container-orgd5df5c8" class="outline-2">
<h2 id="orgd5df5c8"><span class="section-number-2">4</span> <span class="todo TODO">TODO</span> Effective core potentials (ecp group)</h2>
<div id="outline-container-org24055aa" class="outline-2">
<h2 id="org24055aa"><span class="section-number-2">4</span> Effective core potentials (ecp group)</h2>
<div class="outline-text-2" id="text-4">
<p>
An effective core potential (ECP) \(V_A^{\text{pp}}\) replacing the
core electrons of atom \(A\) is the sum of a local component
\(V_A^{\text{l}}\) and a non-local component \(V_A^{\text{nl}}\).
The local component is given by
</p>
<p>
An effective core potential (ECP) \(V_A^{\text{ECP}}\) replacing the
core electrons of atom \(A\) is expressed as
\[
\hat{V}_A^{\text{l}}(r) = -\frac{Z_A^{\text{eff}}}{r} +
\frac{Z_A^{\text{eff}}}{r}\, \exp\left( -\alpha_A\, r^2\right) +
Z_{\text{eff}}\, \alpha_A\, r\, \exp\left( -\beta_A\, r^2\right) +
\gamma_A \exp\left( -\delta_A\, r^2\right),
V_A^{\text{ECP}} =
V_{A \ell_{\max}} +
\sum_{\ell=0}^{\ell_{\max} -1}
\sum_{m=-\ell}^{\ell} | Y_{\ell m} \rangle \left[
V_{A \ell} - V_{A \ell_{\max}} \right] \langle Y_{\ell m} |
\]
</p>
<p>
and the component obtained after localizing the non-local operator is
</p>
<p>
The functions \(V_{A\ell}\) are parameterized as:
\[
\hat{V}_A^{\text{nl}}(r) =
\zeta_A\, \exp\left( -\eta_A\, r^2\right) |0\rangle \langle 0| +
\mu_A \, \exp\left( -\nu_A \, r^2\right) |1\rangle \langle 1|
V_{A \ell}(\mathbf{r}) = \sum_{q=1}^{N_{q \ell}} \beta_{A q \ell}\, |\mathbf{r}-\mathbf{R}_A}|^{n_{A q \ell}}\, e^{-\alpha_{A q \ell} |\mathbf{r}-\mathbf{R}_A|^2}}
\]
</p>
<p>
where \(r=|\mathbf{r-R}_A|\) is the distance to the nucleus on which the
potential is centered, \(Z_A^{\text{eff}}\) is the effective charge
due to the removed electrons, \(|0\rangle \langle 0|\)
and \(|1\rangle \langle 1|\) are projections over zero and one principal angular
momenta, respectively (generalization to higher angular momenta is
straightforward), and all the parameters labeled by Greek
letters are parameters.
See <a href="http://dx.doi.org/10.1063/1.4984046">http://dx.doi.org/10.1063/1.4984046</a> for more info.
</p>
<ul class="org-ul">
<li>\(\hat{V}_\text{ecp,l} = \sum_A \hat{V}_A^{\text{l}}\) : local component</li>
<li>\(\hat{V}_\text{ecp,nl} = \sum_A \hat{V}_A^{\text{nl}}\) : non-local component</li>
</ul>
<table id="org97db082" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgc859806" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -650,7 +630,7 @@ letters are parameters.
<td class="org-left"><code>lmax_plus_1</code></td>
<td class="org-left"><code>int</code></td>
<td class="org-left"><code>(nucleus.num)</code></td>
<td class="org-left">\(l_{\max} + 1\)</td>
<td class="org-left">\(\ell_{\max} + 1\), one higher than the maximum angular momentum in the removed core orbitals</td>
</tr>
<tr>
@ -664,78 +644,78 @@ letters are parameters.
<td class="org-left"><code>local_n</code></td>
<td class="org-left"><code>int</code></td>
<td class="org-left"><code>(nucleus.num)</code></td>
<td class="org-left">Number of local function</td>
<td class="org-left">Number of local functions \(N_{q \ell}\)</td>
</tr>
<tr>
<td class="org-left"><code>local_num_n_max</code></td>
<td class="org-left"><code>int</code></td>
<td class="org-left">&#xa0;</td>
<td class="org-left">Maximum value of <code>local_n</code></td>
<td class="org-left">Maximum value of <code>local_n</code>, used for dimensioning arrays</td>
</tr>
<tr>
<td class="org-left"><code>local_exponent</code></td>
<td class="org-left"><code>float</code></td>
<td class="org-left"><code>(ecp.local_num_n_max, nucleus.num)</code></td>
<td class="org-left">&#xa0;</td>
<td class="org-left">\(\alpha_{A q \ell_{\max}}}\)</td>
</tr>
<tr>
<td class="org-left"><code>local_coef</code></td>
<td class="org-left"><code>float</code></td>
<td class="org-left"><code>(ecp.local_num_n_max, nucleus.num)</code></td>
<td class="org-left">&#xa0;</td>
<td class="org-left">\(\beta_{A q \ell_{\max}}}\)</td>
</tr>
<tr>
<td class="org-left"><code>local_power</code></td>
<td class="org-left"><code>int</code></td>
<td class="org-left"><code>(ecp.local_num_n_max, nucleus.num)</code></td>
<td class="org-left">&#xa0;</td>
<td class="org-left">\(n_{A q \ell_{\max}}\)</td>
</tr>
<tr>
<td class="org-left"><code>non_local_n</code></td>
<td class="org-left"><code>int</code></td>
<td class="org-left"><code>(nucleus.num)</code></td>
<td class="org-left">&#xa0;</td>
<td class="org-left">\(N_{q \ell_{\max}}\)</td>
</tr>
<tr>
<td class="org-left"><code>non_local_num_n_max</code></td>
<td class="org-left"><code>int</code></td>
<td class="org-left">&#xa0;</td>
<td class="org-left">&#xa0;</td>
<td class="org-left">Maximum value of <code>non_local_n</code>, used for dimensioning arrays</td>
</tr>
<tr>
<td class="org-left"><code>non_local_exponent</code></td>
<td class="org-left"><code>float</code></td>
<td class="org-left"><code>(ecp.non_local_num_n_max, nucleus.num)</code></td>
<td class="org-left">&#xa0;</td>
<td class="org-left">\(\alpha_{A q \ell}\)</td>
</tr>
<tr>
<td class="org-left"><code>non_local_coef</code></td>
<td class="org-left"><code>float</code></td>
<td class="org-left"><code>(ecp.non_local_num_n_max, nucleus.num)</code></td>
<td class="org-left">&#xa0;</td>
<td class="org-left">\(\beta_{A q \ell}\)</td>
</tr>
<tr>
<td class="org-left"><code>non_local_power</code></td>
<td class="org-left"><code>int</code></td>
<td class="org-left"><code>(ecp.non_local_num_n_max, nucleus.num)</code></td>
<td class="org-left">&#xa0;</td>
<td class="org-left">\(n_{A q \ell}\)</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-org0a84d8f" class="outline-2">
<h2 id="org0a84d8f"><span class="section-number-2">5</span> Basis set (basis group)</h2>
<div id="outline-container-orgc052c4e" class="outline-2">
<h2 id="orgc052c4e"><span class="section-number-2">5</span> Basis set (basis group)</h2>
<div class="outline-text-2" id="text-5">
<p>
We consider here basis functions centered on nuclei. Hence, we enable
@ -788,7 +768,7 @@ If the the basis function is not considered normalized, \(\mathcal{N}_s=1\).
All the basis set parameters are stored in one-dimensional arrays:
</p>
<table id="orgad3e33d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org04105db" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -957,8 +937,8 @@ prim_factor =
</div>
</div>
<div id="outline-container-orgbada45c" class="outline-2">
<h2 id="orgbada45c"><span class="section-number-2">6</span> Atomic orbitals (ao group)</h2>
<div id="outline-container-org794baf2" class="outline-2">
<h2 id="org794baf2"><span class="section-number-2">6</span> Atomic orbitals (ao group)</h2>
<div class="outline-text-2" id="text-6">
<p>
Going from the atomic basis set to AOs implies a systematic
@ -1006,13 +986,13 @@ shell, as in the GAMESS convention where
<p>
In such a case, one should set the normalization of the shell (in
the <a href="#org0a84d8f">Basis set</a> section) to \(\mathcal{N}_{z^2}\), which is the
the <a href="#orgc052c4e">Basis set</a> section) to \(\mathcal{N}_{z^2}\), which is the
normalization factor of the atomic orbitals in spherical coordinates.
The normalization factor of the \(xy\) function which should be
introduced here should be \(\frac{\mathcal{N}_{xy}}{\mathcal{N}_{z^2}}\).
</p>
<table id="org0691110" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgab54ff5" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1064,8 +1044,8 @@ introduced here should be \(\frac{\mathcal{N}_{xy}}{\mathcal{N}_{z^2}}\).
</table>
</div>
<div id="outline-container-org3b67e63" class="outline-3">
<h3 id="ao_one_e"><a id="org3b67e63"></a><span class="section-number-3">6.1</span> One-electron integrals (<code>ao_1e_int</code> group)</h3>
<div id="outline-container-org849429b" class="outline-3">
<h3 id="ao_one_e"><a id="org849429b"></a><span class="section-number-3">6.1</span> One-electron integrals (<code>ao_1e_int</code> group)</h3>
<div class="outline-text-3" id="text-ao_one_e">
<ul class="org-ul">
<li>\[ \hat{V}_{\text{ne}} = \sum_{A=1}^{N_\text{nucl}}
@ -1083,7 +1063,7 @@ The one-electron integrals for a one-electron operator \(\hat{O}\) are
over atomic orbitals.
</p>
<table id="org61fa8d5" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orge6796a0" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1150,8 +1130,8 @@ over atomic orbitals.
</div>
</div>
<div id="outline-container-org5e1fe06" class="outline-3">
<h3 id="ao_two_e"><a id="org5e1fe06"></a><span class="section-number-3">6.2</span> Two-electron integrals (<code>ao_2e_int</code> group)</h3>
<div id="outline-container-org043abd4" class="outline-3">
<h3 id="ao_two_e"><a id="org043abd4"></a><span class="section-number-3">6.2</span> Two-electron integrals (<code>ao_2e_int</code> group)</h3>
<div class="outline-text-3" id="text-ao_two_e">
<p>
The two-electron integrals for a two-electron operator \(\hat{O}\) are
@ -1172,7 +1152,7 @@ notation.
\mathbf{r}_j \vert)}{\vert \mathbf{r}_i - \mathbf{r}_j \vert} \] : electron-electron long range potential</li>
</ul>
<table id="org5ba3c58" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org76ce3a7" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1212,10 +1192,10 @@ notation.
</div>
</div>
<div id="outline-container-org4470e02" class="outline-2">
<h2 id="org4470e02"><span class="section-number-2">7</span> Molecular orbitals (mo group)</h2>
<div id="outline-container-orge24982a" class="outline-2">
<h2 id="orge24982a"><span class="section-number-2">7</span> Molecular orbitals (mo group)</h2>
<div class="outline-text-2" id="text-7">
<table id="org282dc66" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgb983408" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1240,7 +1220,7 @@ notation.
<td class="org-left"><code>type</code></td>
<td class="org-left"><code>str</code></td>
<td class="org-left">&#xa0;</td>
<td class="org-left">String identify the set of MOs</td>
<td class="org-left">Free text to identify the set of MOs (HF, Natural, Local, CASSCF, <i>etc</i>)</td>
</tr>
<tr>
@ -1261,7 +1241,7 @@ notation.
<td class="org-left"><code>class</code></td>
<td class="org-left"><code>str</code></td>
<td class="org-left"><code>(mo.num)</code></td>
<td class="org-left">Core, Inactive, Active, Virtual, Deleted</td>
<td class="org-left">Choose among: Core, Inactive, Active, Virtual, Deleted</td>
</tr>
<tr>
@ -1281,8 +1261,8 @@ notation.
</table>
</div>
<div id="outline-container-org2ea4e2a" class="outline-3">
<h3 id="org2ea4e2a"><span class="section-number-3">7.1</span> One-electron integrals (<code>mo_1e_int</code> group)</h3>
<div id="outline-container-org7f89e14" class="outline-3">
<h3 id="org7f89e14"><span class="section-number-3">7.1</span> One-electron integrals (<code>mo_1e_int</code> group)</h3>
<div class="outline-text-3" id="text-7-1">
<p>
The operators as the same as those defined in the
@ -1290,7 +1270,7 @@ The operators as the same as those defined in the
the basis of molecular orbitals.
</p>
<table id="org7c679fe" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org626cb84" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1357,8 +1337,8 @@ the basis of molecular orbitals.
</div>
</div>
<div id="outline-container-orge4610d3" class="outline-3">
<h3 id="orge4610d3"><span class="section-number-3">7.2</span> Two-electron integrals (<code>mo_2e_int</code> group)</h3>
<div id="outline-container-org7018d89" class="outline-3">
<h3 id="org7018d89"><span class="section-number-3">7.2</span> Two-electron integrals (<code>mo_2e_int</code> group)</h3>
<div class="outline-text-3" id="text-7-2">
<p>
The operators as the same as those defined in the
@ -1366,7 +1346,7 @@ The operators as the same as those defined in the
the basis of molecular orbitals.
</p>
<table id="orgdafffad" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org9df2069" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1406,13 +1386,13 @@ the basis of molecular orbitals.
</div>
</div>
<div id="outline-container-orge97dd8f" class="outline-2">
<h2 id="orge97dd8f"><span class="section-number-2">8</span> <span class="todo TODO">TODO</span> Slater determinants</h2>
<div id="outline-container-org66f6985" class="outline-2">
<h2 id="org66f6985"><span class="section-number-2">8</span> <span class="todo TODO">TODO</span> Slater determinants</h2>
</div>
<div id="outline-container-org0ca22c3" class="outline-2">
<h2 id="org0ca22c3"><span class="section-number-2">9</span> <span class="todo TODO">TODO</span> Reduced density matrices (rdm group)</h2>
<div id="outline-container-orga67ab4e" class="outline-2">
<h2 id="orga67ab4e"><span class="section-number-2">9</span> <span class="todo TODO">TODO</span> Reduced density matrices (rdm group)</h2>
<div class="outline-text-2" id="text-9">
<table id="org566b79d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgd553fea" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1465,15 +1445,15 @@ the basis of molecular orbitals.
</div>
</div>
<div id="outline-container-org7bef632" class="outline-2">
<h2 id="org7bef632"><span class="section-number-2">10</span> Appendix</h2>
<div id="outline-container-org0cfd980" class="outline-2">
<h2 id="org0cfd980"><span class="section-number-2">10</span> Appendix</h2>
<div class="outline-text-2" id="text-10">
</div>
<div id="outline-container-org94e3ba8" class="outline-3">
<h3 id="org94e3ba8"><span class="section-number-3">10.1</span> Python script from table to json</h3>
<div id="outline-container-org29e8853" class="outline-3">
<h3 id="org29e8853"><span class="section-number-3">10.1</span> Python script from table to json</h3>
<div class="outline-text-3" id="text-10-1">
<div class="org-src-container">
<pre class="src src-python" id="orgfec9f9a"><span style="color: #a020f0;">print</span>(<span style="color: #8b2252;">"""#+begin_src python :tangle trex.json"""</span>)
<pre class="src src-python" id="orgd09bc32"><span style="color: #a020f0;">print</span>(<span style="color: #8b2252;">"""#+begin_src python :tangle trex.json"""</span>)
<span style="color: #a020f0;">print</span>(<span style="color: #8b2252;">""" "%s": {"""</span>%(title))
<span style="color: #a0522d;">indent</span> = <span style="color: #8b2252;">" "</span>
<span style="color: #a0522d;">f1</span> = 0 ; <span style="color: #a0522d;">f2</span> = 0 ; <span style="color: #a0522d;">f3</span> = 0
@ -1526,7 +1506,7 @@ the basis of molecular orbitals.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-09-14 Tue 09:40</p>
<p class="date">Created: 2021-09-15 Wed 12:59</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>