1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-12-25 05:43:53 +01:00

Deploying to gh-pages from @ TREX-CoE/trexio@77dbd5fa43 🚀

This commit is contained in:
scemama 2022-01-10 09:35:34 +00:00
parent 2a6e752f7d
commit 45d2f09ddd
7 changed files with 420 additions and 420 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>
<!-- 2022-01-10 Mon 09:28 -->
<!-- 2022-01-10 Mon 09:35 -->
<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>
@ -347,7 +347,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-10 Mon 09:28</p>
<p class="date">Created: 2022-01-10 Mon 09:35</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>
<!-- 2022-01-10 Mon 09:28 -->
<!-- 2022-01-10 Mon 09:35 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Examples</title>
@ -333,24 +333,24 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org57a9729">1. Accessing sparse quantities</a>
<li><a href="#org0b406b3">1. Accessing sparse quantities</a>
<ul>
<li><a href="#org62eaa47">1.1. Fortran</a>
<li><a href="#orgb091721">1.1. Fortran</a>
<ul>
<li><a href="#org9e00b20">1.1.1. Declare Temporary variables</a></li>
<li><a href="#org5475759">1.1.2. Obtain the name of the TREXIO file from the command line, and open it for reading</a></li>
<li><a href="#org6cca1e8">1.1.3. Read the nuclear repulsion energy</a></li>
<li><a href="#org254a250">1.1.4. Read the number of molecular orbitals</a></li>
<li><a href="#org60edb66">1.1.5. Allocate memory</a></li>
<li><a href="#org788d0f3">1.1.6. Read one-electron quantities</a></li>
<li><a href="#orgce2e21a">1.1.7. Read two-electron quantities</a>
<li><a href="#org8f92994">1.1.1. Declare Temporary variables</a></li>
<li><a href="#orga078839">1.1.2. Obtain the name of the TREXIO file from the command line, and open it for reading</a></li>
<li><a href="#orgd3c4193">1.1.3. Read the nuclear repulsion energy</a></li>
<li><a href="#orgb6076c2">1.1.4. Read the number of molecular orbitals</a></li>
<li><a href="#org8fc5d8e">1.1.5. Allocate memory</a></li>
<li><a href="#orga1fc4f1">1.1.6. Read one-electron quantities</a></li>
<li><a href="#org823a5b6">1.1.7. Read two-electron quantities</a>
<ul>
<li><a href="#orgdef46f2">1.1.7.1. Electron repulsion integrals</a></li>
<li><a href="#orgf6677a7">1.1.7.2. Reduced density matrix</a></li>
<li><a href="#org45bceeb">1.1.7.1. Electron repulsion integrals</a></li>
<li><a href="#orgb342ff9">1.1.7.2. Reduced density matrix</a></li>
</ul>
</li>
<li><a href="#orgeb30191">1.1.8. Compute the energy</a></li>
<li><a href="#org835f222">1.1.9. Terminate</a></li>
<li><a href="#orge099873">1.1.8. Compute the energy</a></li>
<li><a href="#org544d9b5">1.1.9. Terminate</a></li>
</ul>
</li>
</ul>
@ -360,12 +360,12 @@ for the JavaScript code in this tag.
</div>
<div id="outline-container-org57a9729" class="outline-2">
<h2 id="org57a9729"><span class="section-number-2">1</span> Accessing sparse quantities</h2>
<div id="outline-container-org0b406b3" class="outline-2">
<h2 id="org0b406b3"><span class="section-number-2">1</span> Accessing sparse quantities</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-org62eaa47" class="outline-3">
<h3 id="org62eaa47"><span class="section-number-3">1.1</span> Fortran</h3>
<div id="outline-container-orgb091721" class="outline-3">
<h3 id="orgb091721"><span class="section-number-3">1.1</span> Fortran</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #a020f0;">program</span> <span style="color: #0000ff;">print_energy</span>
@ -411,8 +411,8 @@ One needs to read from the TREXIO file:
</div>
</div>
<div id="outline-container-org9e00b20" class="outline-4">
<h4 id="org9e00b20"><span class="section-number-4">1.1.1</span> Declare Temporary variables</h4>
<div id="outline-container-org8f92994" class="outline-4">
<h4 id="org8f92994"><span class="section-number-4">1.1.1</span> Declare Temporary variables</h4>
<div class="outline-text-4" id="text-1-1-1">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">integer</span> ::<span style="color: #a0522d;"> i, j, k, l, m</span>
@ -427,8 +427,8 @@ One needs to read from the TREXIO file:
</div>
</div>
<div id="outline-container-org5475759" class="outline-4">
<h4 id="org5475759"><span class="section-number-4">1.1.2</span> Obtain the name of the TREXIO file from the command line, and open it for reading</h4>
<div id="outline-container-orga078839" class="outline-4">
<h4 id="orga078839"><span class="section-number-4">1.1.2</span> Obtain the name of the TREXIO file from the command line, and open it for reading</h4>
<div class="outline-text-4" id="text-1-1-2">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #a020f0;">call</span> <span style="color: #0000ff;">getarg</span>(1, filename)
@ -444,8 +444,8 @@ f = trexio_open (filename, <span style="color: #8b2252;">'r'</span>, TREXIO_HDF5
</div>
</div>
<div id="outline-container-org6cca1e8" class="outline-4">
<h4 id="org6cca1e8"><span class="section-number-4">1.1.3</span> Read the nuclear repulsion energy</h4>
<div id="outline-container-orgd3c4193" class="outline-4">
<h4 id="orgd3c4193"><span class="section-number-4">1.1.3</span> Read the nuclear repulsion energy</h4>
<div class="outline-text-4" id="text-1-1-3">
<div class="org-src-container">
<pre class="src src-f90">rc = trexio_read_nucleus_repulsion(f, E_nn)
@ -459,8 +459,8 @@ f = trexio_open (filename, <span style="color: #8b2252;">'r'</span>, TREXIO_HDF5
</div>
</div>
<div id="outline-container-org254a250" class="outline-4">
<h4 id="org254a250"><span class="section-number-4">1.1.4</span> Read the number of molecular orbitals</h4>
<div id="outline-container-orgb6076c2" class="outline-4">
<h4 id="orgb6076c2"><span class="section-number-4">1.1.4</span> Read the number of molecular orbitals</h4>
<div class="outline-text-4" id="text-1-1-4">
<div class="org-src-container">
<pre class="src src-f90">rc = trexio_read_mo_num(f, n)
@ -474,8 +474,8 @@ f = trexio_open (filename, <span style="color: #8b2252;">'r'</span>, TREXIO_HDF5
</div>
</div>
<div id="outline-container-org60edb66" class="outline-4">
<h4 id="org60edb66"><span class="section-number-4">1.1.5</span> Allocate memory</h4>
<div id="outline-container-org8fc5d8e" class="outline-4">
<h4 id="org8fc5d8e"><span class="section-number-4">1.1.5</span> Allocate memory</h4>
<div class="outline-text-4" id="text-1-1-5">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #a020f0;">allocate</span>( D(n,n), h0(n,n) )
@ -487,8 +487,8 @@ W(:,:,:,:) = 0.d0
</div>
</div>
<div id="outline-container-org788d0f3" class="outline-4">
<h4 id="org788d0f3"><span class="section-number-4">1.1.6</span> Read one-electron quantities</h4>
<div id="outline-container-orga1fc4f1" class="outline-4">
<h4 id="orga1fc4f1"><span class="section-number-4">1.1.6</span> Read one-electron quantities</h4>
<div class="outline-text-4" id="text-1-1-6">
<div class="org-src-container">
<pre class="src src-f90">rc = trexio_has_mo_1e_int_core_hamiltonian(f)
@ -520,8 +520,8 @@ rc = trexio_read_rdm_1e(f, D)
</div>
</div>
<div id="outline-container-orgce2e21a" class="outline-4">
<h4 id="orgce2e21a"><span class="section-number-4">1.1.7</span> Read two-electron quantities</h4>
<div id="outline-container-org823a5b6" class="outline-4">
<h4 id="org823a5b6"><span class="section-number-4">1.1.7</span> Read two-electron quantities</h4>
<div class="outline-text-4" id="text-1-1-7">
<p>
Reading is done with OpenMP. Each thread reads its own buffer, and
@ -537,8 +537,8 @@ to be protected in the critical section when modified.
</p>
</div>
<div id="outline-container-orgdef46f2" class="outline-5">
<h5 id="orgdef46f2"><span class="section-number-5">1.1.7.1</span> Electron repulsion integrals</h5>
<div id="outline-container-org45bceeb" class="outline-5">
<h5 id="org45bceeb"><span class="section-number-5">1.1.7.1</span> Electron repulsion integrals</h5>
<div class="outline-text-5" id="text-1-1-7-1">
<div class="org-src-container">
<pre class="src src-f90">rc = trexio_has_mo_2e_int_eri(f)
@ -587,8 +587,8 @@ icount = BUFSIZE
</div>
</div>
<div id="outline-container-orgf6677a7" class="outline-5">
<h5 id="orgf6677a7"><span class="section-number-5">1.1.7.2</span> Reduced density matrix</h5>
<div id="outline-container-orgb342ff9" class="outline-5">
<h5 id="orgb342ff9"><span class="section-number-5">1.1.7.2</span> Reduced density matrix</h5>
<div class="outline-text-5" id="text-1-1-7-2">
<div class="org-src-container">
<pre class="src src-f90">rc = trexio_has_rdm_2e(f)
@ -632,8 +632,8 @@ icount = bufsize
</div>
</div>
<div id="outline-container-orgeb30191" class="outline-4">
<h4 id="orgeb30191"><span class="section-number-4">1.1.8</span> Compute the energy</h4>
<div id="outline-container-orge099873" class="outline-4">
<h4 id="orge099873"><span class="section-number-4">1.1.8</span> Compute the energy</h4>
<div class="outline-text-4" id="text-1-1-8">
<p>
When the orbitals are real, we can use
@ -679,8 +679,8 @@ E = E + E_nn
</div>
</div>
<div id="outline-container-org835f222" class="outline-4">
<h4 id="org835f222"><span class="section-number-4">1.1.9</span> Terminate</h4>
<div id="outline-container-org544d9b5" class="outline-4">
<h4 id="org544d9b5"><span class="section-number-4">1.1.9</span> Terminate</h4>
<div class="outline-text-4" id="text-1-1-9">
<div class="org-src-container">
<pre class="src src-f90"> <span style="color: #a020f0;">deallocate</span>( D, h0, G, W )
@ -695,7 +695,7 @@ E = E + E_nn
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2022-01-10 Mon 09:28</p>
<p class="date">Created: 2022-01-10 Mon 09:35</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>
<!-- 2022-01-10 Mon 09:28 -->
<!-- 2022-01-10 Mon 09:35 -->
<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>
@ -347,7 +347,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-10 Mon 09:28</p>
<p class="date">Created: 2022-01-10 Mon 09:35</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>
<!-- 2022-01-10 Mon 09:28 -->
<!-- 2022-01-10 Mon 09:35 -->
<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,131 +333,131 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orge276cc0">1. Coding conventions</a>
<li><a href="#org956c50b">1. Coding conventions</a>
<ul>
<li><a href="#orgd45d9f3">1.1. Memory allocation</a></li>
<li><a href="#orgd047d12">1.1. Memory allocation</a></li>
</ul>
</li>
<li><a href="#org870defb">2. Front end</a>
<li><a href="#org266e708">2. Front end</a>
<ul>
<li><a href="#org5b4b79a">2.1. Error handling</a>
<li><a href="#org4702848">2.1. Error handling</a>
<ul>
<li><a href="#orge16fb4b">2.1.1. Decoding errors</a>
<li><a href="#org7af5543">2.1.1. Decoding errors</a>
<ul>
<li><a href="#orgcf65be8">2.1.1.1. C source code</a></li>
<li><a href="#org9ead6ca">2.1.1.2. Fortran interface</a></li>
<li><a href="#orgab7ade9">2.1.1.3. Python interface</a></li>
<li><a href="#orgce8fd38">2.1.1.1. C source code</a></li>
<li><a href="#orgf6d3d1d">2.1.1.2. Fortran interface</a></li>
<li><a href="#org768bb02">2.1.1.3. Python interface</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org7c4615f">2.2. Back ends</a>
<li><a href="#org401626b">2.2. Back ends</a>
<ul>
<li><a href="#orgcb7e063">2.2.1. C</a></li>
<li><a href="#org5ffa6a0">2.2.2. Fortran</a></li>
<li><a href="#org529796e">2.2.3. Python</a></li>
<li><a href="#org77a8ba8">2.2.1. C</a></li>
<li><a href="#org86ec0a6">2.2.2. Fortran</a></li>
<li><a href="#org9aa146f">2.2.3. Python</a></li>
</ul>
</li>
<li><a href="#org0ea1aa7">2.3. Read/write behavior</a></li>
<li><a href="#org06379f8">2.4. TREXIO file type</a>
<li><a href="#org7192c2b">2.3. Read/write behavior</a></li>
<li><a href="#org0bee8ad">2.4. TREXIO file type</a>
<ul>
<li><a href="#org00c4bec">2.4.1. TREXIO<sub>File</sub> Python class</a></li>
<li><a href="#orgcda5c4e">2.4.1. TREXIO<sub>File</sub> Python class</a></li>
</ul>
</li>
<li><a href="#org00a2b2f">2.5. Polymorphism of the file handle</a></li>
<li><a href="#org8b6940d">2.6. File opening</a>
<li><a href="#orgbc85238">2.5. Polymorphism of the file handle</a></li>
<li><a href="#orgfbfdf7a">2.6. File opening</a>
<ul>
<li><a href="#org2a4a5ea">2.6.1. C</a></li>
<li><a href="#org7f641f6">2.6.2. Fortran</a></li>
<li><a href="#org18c2104">2.6.3. Python</a></li>
<li><a href="#org90ec2d2">2.6.4. Zero-based versus one-based arrays of indices</a></li>
<li><a href="#org32849f3">2.6.1. C</a></li>
<li><a href="#org96849f4">2.6.2. Fortran</a></li>
<li><a href="#orgf1469b2">2.6.3. Python</a></li>
<li><a href="#orgdaa8953">2.6.4. Zero-based versus one-based arrays of indices</a></li>
</ul>
</li>
<li><a href="#org6e57d7e">2.7. File closing</a>
<li><a href="#org663218e">2.7. File closing</a>
<ul>
<li><a href="#org13dabab">2.7.1. C</a></li>
<li><a href="#org2bd874b">2.7.2. Fortran</a></li>
<li><a href="#org05b940c">2.7.3. Python</a></li>
<li><a href="#org940c8cd">2.7.1. C</a></li>
<li><a href="#orgd03fc36">2.7.2. Fortran</a></li>
<li><a href="#orgfc0984f">2.7.3. Python</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org7276b9c">3. Templates for front end</a>
<li><a href="#orgacf8d29">3. Templates for front end</a>
<ul>
<li><a href="#org2510137">3.1. Description</a></li>
<li><a href="#org83a52eb">3.2. Templates for front end has/read/write a single numerical attribute</a>
<li><a href="#org30bf8ed">3.1. Description</a></li>
<li><a href="#orgcbc5d15">3.2. Templates for front end has/read/write a single numerical attribute</a>
<ul>
<li><a href="#org0cfb6ad">3.2.1. Introduction</a></li>
<li><a href="#org38de214">3.2.2. C templates for front end</a>
<li><a href="#orgef87da5">3.2.1. Introduction</a></li>
<li><a href="#orgca9736d">3.2.2. C templates for front end</a>
<ul>
<li><a href="#org26ec6aa">3.2.2.1. Function declarations</a></li>
<li><a href="#org9eed01e">3.2.2.2. Source code for double precision functions</a></li>
<li><a href="#orgae45d18">3.2.2.3. Source code for single precision functions</a></li>
<li><a href="#org939ecbd">3.2.2.4. Source code for default functions</a></li>
<li><a href="#org48f1573">3.2.2.1. Function declarations</a></li>
<li><a href="#org10c0ae7">3.2.2.2. Source code for double precision functions</a></li>
<li><a href="#org7a07bc6">3.2.2.3. Source code for single precision functions</a></li>
<li><a href="#org1c98953">3.2.2.4. Source code for default functions</a></li>
</ul>
</li>
<li><a href="#org2bb9dbb">3.2.3. Fortran templates for front end</a></li>
<li><a href="#orgf09b06a">3.2.4. Python templates for front end</a></li>
<li><a href="#orgdb7dc4e">3.2.3. Fortran templates for front end</a></li>
<li><a href="#orgfe627ff">3.2.4. Python templates for front end</a></li>
</ul>
</li>
<li><a href="#orga8e3927">3.3. Templates for front end has/read/write a dataset of numerical data</a>
<li><a href="#org9ce9571">3.3. Templates for front end has/read/write a dataset of numerical data</a>
<ul>
<li><a href="#orgb51e6ab">3.3.1. Introduction</a></li>
<li><a href="#orgbc32007">3.3.2. C templates for front end</a>
<li><a href="#orgce5fea6">3.3.1. Introduction</a></li>
<li><a href="#org01bde3f">3.3.2. C templates for front end</a>
<ul>
<li><a href="#orge31f396">3.3.2.1. Function declarations</a></li>
<li><a href="#org8e10cc6">3.3.2.2. Source code for double precision functions</a></li>
<li><a href="#org8150852">3.3.2.3. Source code for single precision functions</a></li>
<li><a href="#org9435c55">3.3.2.4. Source code for memory-safe functions</a></li>
<li><a href="#orgbd7a4f4">3.3.2.5. Source code for default functions</a></li>
<li><a href="#org737924f">3.3.2.1. Function declarations</a></li>
<li><a href="#org93644d4">3.3.2.2. Source code for double precision functions</a></li>
<li><a href="#org9b2733f">3.3.2.3. Source code for single precision functions</a></li>
<li><a href="#orga3a081c">3.3.2.4. Source code for memory-safe functions</a></li>
<li><a href="#orgab2e8c1">3.3.2.5. Source code for default functions</a></li>
</ul>
</li>
<li><a href="#org8da78cf">3.3.3. Fortran templates for front end</a></li>
<li><a href="#org77b3b1b">3.3.4. Python templates for front end</a></li>
<li><a href="#org1109900">3.3.3. Fortran templates for front end</a></li>
<li><a href="#org6e3fefb">3.3.4. Python templates for front end</a></li>
</ul>
</li>
<li><a href="#orge6a8779">3.4. Templates for front end has/read/write a dataset of sparse data</a>
<li><a href="#orge93fdcb">3.4. Templates for front end has/read/write a dataset of sparse data</a>
<ul>
<li><a href="#orgc47178b">3.4.1. Introduction</a></li>
<li><a href="#orga5fde88">3.4.2. C templates for front end</a>
<li><a href="#orgba927dc">3.4.1. Introduction</a></li>
<li><a href="#org26c0215">3.4.2. C templates for front end</a>
<ul>
<li><a href="#org2ee5787">3.4.2.1. Function declarations</a></li>
<li><a href="#orge369406">3.4.2.2. Source code for default functions</a></li>
<li><a href="#org9194050">3.4.2.1. Function declarations</a></li>
<li><a href="#org2e7c11b">3.4.2.2. Source code for default functions</a></li>
</ul>
</li>
<li><a href="#org4ed4aed">3.4.3. Fortran templates for front end</a></li>
<li><a href="#orgd0f821c">3.4.4. Python templates for front end</a></li>
<li><a href="#org6afda80">3.4.3. Fortran templates for front end</a></li>
<li><a href="#org65e1ef6">3.4.4. Python templates for front end</a></li>
</ul>
</li>
<li><a href="#org41c3f03">3.5. Templates for front end has/read/write a dataset of strings</a>
<li><a href="#org6089008">3.5. Templates for front end has/read/write a dataset of strings</a>
<ul>
<li><a href="#orgbdcded4">3.5.1. Introduction</a></li>
<li><a href="#org0748303">3.5.2. C templates for front end</a>
<li><a href="#org6dee37a">3.5.1. Introduction</a></li>
<li><a href="#org1783e7a">3.5.2. C templates for front end</a>
<ul>
<li><a href="#orgc12d5ee">3.5.2.1. Function declarations</a></li>
<li><a href="#org2a44b8a">3.5.2.2. Source code for default functions</a></li>
<li><a href="#orga4fac9e">3.5.2.1. Function declarations</a></li>
<li><a href="#org8d1fc81">3.5.2.2. Source code for default functions</a></li>
</ul>
</li>
<li><a href="#orgfd65bee">3.5.3. Fortran templates for front end</a></li>
<li><a href="#org764588b">3.5.4. Python templates for front end</a></li>
<li><a href="#orgf25a3e0">3.5.3. Fortran templates for front end</a></li>
<li><a href="#org72ce31f">3.5.4. Python templates for front end</a></li>
</ul>
</li>
<li><a href="#org3692f9e">3.6. Templates for front end has/read/write a single string attribute</a>
<li><a href="#org3e2af42">3.6. Templates for front end has/read/write a single string attribute</a>
<ul>
<li><a href="#orgd5da7ca">3.6.1. Introduction</a></li>
<li><a href="#org6f6160b">3.6.2. C templates for front end</a>
<li><a href="#org42598ae">3.6.1. Introduction</a></li>
<li><a href="#orge24aac0">3.6.2. C templates for front end</a>
<ul>
<li><a href="#orgab2f5c2">3.6.2.1. Function declarations</a></li>
<li><a href="#org5b42fc8">3.6.2.2. Source code for default functions</a></li>
<li><a href="#org67157bd">3.6.2.1. Function declarations</a></li>
<li><a href="#orgd3db94a">3.6.2.2. Source code for default functions</a></li>
</ul>
</li>
<li><a href="#orgeb461a7">3.6.3. Fortran templates for front end</a></li>
<li><a href="#org08b5a2f">3.6.4. Python templates for front end</a></li>
<li><a href="#orgaa49a67">3.6.3. Fortran templates for front end</a></li>
<li><a href="#orgb2e4203">3.6.4. Python templates for front end</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org51dc908">4. Fortran helper/wrapper functions</a></li>
<li><a href="#org0342021">4. Fortran helper/wrapper functions</a></li>
</ul>
</div>
</div>
@ -465,8 +465,8 @@ for the JavaScript code in this tag.
break;
</p>
<div id="outline-container-orge276cc0" class="outline-2">
<h2 id="orge276cc0"><span class="section-number-2">1</span> Coding conventions</h2>
<div id="outline-container-org956c50b" class="outline-2">
<h2 id="org956c50b"><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>
@ -481,8 +481,8 @@ break;
</ul>
</div>
<div id="outline-container-orgd45d9f3" class="outline-3">
<h3 id="orgd45d9f3"><span class="section-number-3">1.1</span> Memory allocation</h3>
<div id="outline-container-orgd047d12" class="outline-3">
<h3 id="orgd047d12"><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
@ -517,8 +517,8 @@ The maximum string size for the filenames is 4096 characters.
</div>
</div>
<div id="outline-container-org870defb" class="outline-2">
<h2 id="org870defb"><span class="section-number-2">2</span> Front end</h2>
<div id="outline-container-org266e708" class="outline-2">
<h2 id="org266e708"><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.
@ -526,10 +526,10 @@ TREXIO front end is modular, which simplifies implementation of new back ends.
</p>
</div>
<div id="outline-container-org5b4b79a" class="outline-3">
<h3 id="org5b4b79a"><span class="section-number-3">2.1</span> Error handling</h3>
<div id="outline-container-org4702848" class="outline-3">
<h3 id="org4702848"><span class="section-number-3">2.1</span> Error handling</h3>
<div class="outline-text-3" id="text-2-1">
<table id="orgd218f02" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgfae716d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -770,8 +770,8 @@ and the corresponding message are not propagated to the source code.
</div>
</div>
<div id="outline-container-orge16fb4b" class="outline-4">
<h4 id="orge16fb4b"><span class="section-number-4">2.1.1</span> Decoding errors</h4>
<div id="outline-container-org7af5543" class="outline-4">
<h4 id="org7af5543"><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
@ -797,8 +797,8 @@ and the corresponding message are not propagated to the source code.
</p>
</div>
<div id="outline-container-orgcf65be8" class="outline-5">
<h5 id="orgcf65be8"><span class="section-number-5">2.1.1.1</span> C source code</h5>
<div id="outline-container-orgce8fd38" class="outline-5">
<h5 id="orgce8fd38"><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>*
@ -909,8 +909,8 @@ and the corresponding message are not propagated to the source code.
</div>
</div>
<div id="outline-container-org9ead6ca" class="outline-5">
<h5 id="org9ead6ca"><span class="section-number-5">2.1.1.2</span> Fortran interface</h5>
<div id="outline-container-orgf6d3d1d" class="outline-5">
<h5 id="orgf6d3d1d"><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>
@ -926,8 +926,8 @@ and the corresponding message are not propagated to the source code.
</div>
</div>
<div id="outline-container-orgab7ade9" class="outline-5">
<h5 id="orgab7ade9"><span class="section-number-5">2.1.1.3</span> Python interface</h5>
<div id="outline-container-org768bb02" class="outline-5">
<h5 id="org768bb02"><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>):
@ -966,8 +966,8 @@ and the corresponding message are not propagated to the source code.
</div>
</div>
<div id="outline-container-org7c4615f" class="outline-3">
<h3 id="org7c4615f"><span class="section-number-3">2.2</span> Back ends</h3>
<div id="outline-container-org401626b" class="outline-3">
<h3 id="org401626b"><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:
@ -991,8 +991,8 @@ lines that correspond to the <code>TREXIO_JSON</code> back end (not implemented
</p>
</div>
<div id="outline-container-orgcb7e063" class="outline-4">
<h4 id="orgcb7e063"><span class="section-number-4">2.2.1</span> C</h4>
<div id="outline-container-org77a8ba8" class="outline-4">
<h4 id="org77a8ba8"><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>;
@ -1035,8 +1035,8 @@ This is useful due to the fact that HDF5 back end can be disabled at configure s
</div>
</div>
<div id="outline-container-org5ffa6a0" class="outline-4">
<h4 id="org5ffa6a0"><span class="section-number-4">2.2.2</span> Fortran</h4>
<div id="outline-container-org86ec0a6" class="outline-4">
<h4 id="org86ec0a6"><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>
@ -1062,8 +1062,8 @@ The function below is a Fortran interface for the aforementioned C-compatible <c
</div>
</div>
<div id="outline-container-org529796e" class="outline-4">
<h4 id="org529796e"><span class="section-number-4">2.2.3</span> Python</h4>
<div id="outline-container-org9aa146f" class="outline-4">
<h4 id="org9aa146f"><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>
@ -1077,8 +1077,8 @@ The function below is a Fortran interface for the aforementioned C-compatible <c
</div>
</div>
<div id="outline-container-org0ea1aa7" class="outline-3">
<h3 id="org0ea1aa7"><span class="section-number-3">2.3</span> Read/write behavior</h3>
<div id="outline-container-org7192c2b" class="outline-3">
<h3 id="org7192c2b"><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
@ -1106,8 +1106,8 @@ concurrent programs, the behavior is not specified.
</p>
</div>
</div>
<div id="outline-container-org06379f8" class="outline-3">
<h3 id="org06379f8"><span class="section-number-3">2.4</span> TREXIO file type</h3>
<div id="outline-container-org0bee8ad" class="outline-3">
<h3 id="org0bee8ad"><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
@ -1141,8 +1141,8 @@ TREXIO files will have as a first argument the TREXIO file handle.
</div>
</div>
<div id="outline-container-org00c4bec" class="outline-4">
<h4 id="org00c4bec"><span class="section-number-4">2.4.1</span> TREXIO<sub>File</sub> Python class</h4>
<div id="outline-container-orgcda5c4e" class="outline-4">
<h4 id="orgcda5c4e"><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>:
@ -1215,8 +1215,8 @@ TREXIO files will have as a first argument the TREXIO file handle.
</div>
</div>
<div id="outline-container-org00a2b2f" class="outline-3">
<h3 id="org00a2b2f"><span class="section-number-3">2.5</span> Polymorphism of the file handle</h3>
<div id="outline-container-orgbc85238" class="outline-3">
<h3 id="orgbc85238"><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
@ -1235,8 +1235,8 @@ corresponding types for all back ends can be safely casted to
</div>
</div>
<div id="outline-container-org8b6940d" class="outline-3">
<h3 id="org8b6940d"><span class="section-number-3">2.6</span> File opening</h3>
<div id="outline-container-orgfbfdf7a" class="outline-3">
<h3 id="orgfbfdf7a"><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.
@ -1275,8 +1275,8 @@ renaming the <code>.txt</code> data files.
</p>
</div>
<div id="outline-container-org2a4a5ea" class="outline-4">
<h4 id="org2a4a5ea"><span class="section-number-4">2.6.1</span> C</h4>
<div id="outline-container-org32849f3" class="outline-4">
<h4 id="org32849f3"><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>*
@ -1463,8 +1463,8 @@ renaming the <code>.txt</code> data files.
</div>
</div>
<div id="outline-container-org7f641f6" class="outline-4">
<h4 id="org7f641f6"><span class="section-number-4">2.6.2</span> Fortran</h4>
<div id="outline-container-org96849f4" class="outline-4">
<h4 id="org96849f4"><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>
@ -1482,8 +1482,8 @@ renaming the <code>.txt</code> data files.
</div>
</div>
<div id="outline-container-org18c2104" class="outline-4">
<h4 id="org18c2104"><span class="section-number-4">2.6.3</span> Python</h4>
<div id="outline-container-orgf1469b2" class="outline-4">
<h4 id="orgf1469b2"><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>):
@ -1531,8 +1531,8 @@ renaming the <code>.txt</code> data files.
</div>
</div>
<div id="outline-container-org90ec2d2" class="outline-4">
<h4 id="org90ec2d2"><span class="section-number-4">2.6.4</span> Zero-based versus one-based arrays of indices</h4>
<div id="outline-container-orgdaa8953" class="outline-4">
<h4 id="orgdaa8953"><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
@ -1565,8 +1565,8 @@ know if we need to shift by 1 arrays of indices.
</div>
</div>
<div id="outline-container-org6e57d7e" class="outline-3">
<h3 id="org6e57d7e"><span class="section-number-3">2.7</span> File closing</h3>
<div id="outline-container-org663218e" class="outline-3">
<h3 id="org663218e"><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.
@ -1583,8 +1583,8 @@ output:
</p>
</div>
<div id="outline-container-org13dabab" class="outline-4">
<h4 id="org13dabab"><span class="section-number-4">2.7.1</span> C</h4>
<div id="outline-container-org940c8cd" class="outline-4">
<h4 id="org940c8cd"><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>
@ -1665,8 +1665,8 @@ output:
</div>
</div>
<div id="outline-container-org2bd874b" class="outline-4">
<h4 id="org2bd874b"><span class="section-number-4">2.7.2</span> Fortran</h4>
<div id="outline-container-orgd03fc36" class="outline-4">
<h4 id="orgd03fc36"><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>
@ -1680,8 +1680,8 @@ output:
</div>
</div>
<div id="outline-container-org05b940c" class="outline-4">
<h4 id="org05b940c"><span class="section-number-4">2.7.3</span> Python</h4>
<div id="outline-container-orgfc0984f" class="outline-4">
<h4 id="orgfc0984f"><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):
@ -1703,12 +1703,12 @@ output:
</div>
</div>
<div id="outline-container-org7276b9c" class="outline-2">
<h2 id="org7276b9c"><span class="section-number-2">3</span> Templates for front end</h2>
<div id="outline-container-orgacf8d29" class="outline-2">
<h2 id="orgacf8d29"><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-org2510137" class="outline-3">
<h3 id="org2510137"><span class="section-number-3">3.1</span> Description</h3>
<div id="outline-container-org30bf8ed" class="outline-3">
<h3 id="org30bf8ed"><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>:
@ -1929,12 +1929,12 @@ value will result in <code>TREXIO_INVALID_ARG_2</code> exit code.
</div>
</div>
<div id="outline-container-org83a52eb" class="outline-3">
<h3 id="org83a52eb"><span class="section-number-3">3.2</span> Templates for front end has/read/write a single numerical attribute</h3>
<div id="outline-container-orgcbc5d15" class="outline-3">
<h3 id="orgcbc5d15"><span class="section-number-3">3.2</span> Templates for front end has/read/write a single numerical attribute</h3>
<div class="outline-text-3" id="text-3-2">
</div>
<div id="outline-container-org0cfb6ad" class="outline-4">
<h4 id="org0cfb6ad"><span class="section-number-4">3.2.1</span> Introduction</h4>
<div id="outline-container-orgef87da5" class="outline-4">
<h4 id="orgef87da5"><span class="section-number-4">3.2.1</span> Introduction</h4>
<div class="outline-text-4" id="text-3-2-1">
<p>
This section concerns API calls related to numerical attributes,
@ -2005,8 +2005,8 @@ namely single value of int/float types.
</div>
</div>
<div id="outline-container-org38de214" class="outline-4">
<h4 id="org38de214"><span class="section-number-4">3.2.2</span> C templates for front end</h4>
<div id="outline-container-orgca9736d" class="outline-4">
<h4 id="orgca9736d"><span class="section-number-4">3.2.2</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-2-2">
<p>
The <code>C</code> templates that correspond to each of the abovementioned
@ -2020,12 +2020,12 @@ precision (see Table above).
</p>
</div>
<div id="outline-container-org26ec6aa" class="outline-5">
<h5 id="org26ec6aa"><span class="section-number-5">3.2.2.1</span> Function declarations</h5>
<div id="outline-container-org48f1573" class="outline-5">
<h5 id="org48f1573"><span class="section-number-5">3.2.2.1</span> Function declarations</h5>
</div>
<div id="outline-container-org9eed01e" class="outline-5">
<h5 id="org9eed01e"><span class="section-number-5">3.2.2.2</span> Source code for double precision functions</h5>
<div id="outline-container-org10c0ae7" class="outline-5">
<h5 id="org10c0ae7"><span class="section-number-5">3.2.2.2</span> Source code for double precision functions</h5>
<div class="outline-text-5" id="text-3-2-2-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2088,8 +2088,8 @@ precision (see Table above).
</div>
</div>
<div id="outline-container-orgae45d18" class="outline-5">
<h5 id="orgae45d18"><span class="section-number-5">3.2.2.3</span> Source code for single precision functions</h5>
<div id="outline-container-org7a07bc6" class="outline-5">
<h5 id="org7a07bc6"><span class="section-number-5">3.2.2.3</span> Source code for single precision functions</h5>
<div class="outline-text-5" id="text-3-2-2-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2164,8 +2164,8 @@ precision (see Table above).
</div>
</div>
<div id="outline-container-org939ecbd" class="outline-5">
<h5 id="org939ecbd"><span class="section-number-5">3.2.2.4</span> Source code for default functions</h5>
<div id="outline-container-org1c98953" class="outline-5">
<h5 id="org1c98953"><span class="section-number-5">3.2.2.4</span> Source code for default functions</h5>
<div class="outline-text-5" id="text-3-2-2-4">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2220,8 +2220,8 @@ precision (see Table above).
</div>
</div>
<div id="outline-container-org2bb9dbb" class="outline-4">
<h4 id="org2bb9dbb"><span class="section-number-4">3.2.3</span> Fortran templates for front end</h4>
<div id="outline-container-orgdb7dc4e" class="outline-4">
<h4 id="orgdb7dc4e"><span class="section-number-4">3.2.3</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-2-3">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from Fortran.
@ -2306,8 +2306,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orgf09b06a" class="outline-4">
<h4 id="orgf09b06a"><span class="section-number-4">3.2.4</span> Python templates for front end</h4>
<div id="outline-container-orgfe627ff" class="outline-4">
<h4 id="orgfe627ff"><span class="section-number-4">3.2.4</span> Python templates for front end</h4>
<div class="outline-text-4" id="text-3-2-4">
<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: $group_num_py_dtype$) -&gt; <span style="color: #008b8b;">None</span>:
@ -2392,12 +2392,12 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orga8e3927" class="outline-3">
<h3 id="orga8e3927"><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-org9ce9571" class="outline-3">
<h3 id="org9ce9571"><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">
</div>
<div id="outline-container-orgb51e6ab" class="outline-4">
<h4 id="orgb51e6ab"><span class="section-number-4">3.3.1</span> Introduction</h4>
<div id="outline-container-orgce5fea6" class="outline-4">
<h4 id="orgce5fea6"><span class="section-number-4">3.3.1</span> Introduction</h4>
<div class="outline-text-4" id="text-3-3-1">
<p>
This section concerns API calls related to datasets.
@ -2479,8 +2479,8 @@ This section concerns API calls related to datasets.
</div>
</div>
<div id="outline-container-orgbc32007" class="outline-4">
<h4 id="orgbc32007"><span class="section-number-4">3.3.2</span> C templates for front end</h4>
<div id="outline-container-org01bde3f" class="outline-4">
<h4 id="org01bde3f"><span class="section-number-4">3.3.2</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-3-2">
<p>
The C templates that correspond to each of the abovementioned functions can be found below.
@ -2491,12 +2491,12 @@ The basic (non-suffixed) API call on datasets deals with double precision (see T
</p>
</div>
<div id="outline-container-orge31f396" class="outline-5">
<h5 id="orge31f396"><span class="section-number-5">3.3.2.1</span> Function declarations</h5>
<div id="outline-container-org737924f" class="outline-5">
<h5 id="org737924f"><span class="section-number-5">3.3.2.1</span> Function declarations</h5>
</div>
<div id="outline-container-org8e10cc6" class="outline-5">
<h5 id="org8e10cc6"><span class="section-number-5">3.3.2.2</span> Source code for double precision functions</h5>
<div id="outline-container-org93644d4" class="outline-5">
<h5 id="org93644d4"><span class="section-number-5">3.3.2.2</span> Source code for double precision functions</h5>
<div class="outline-text-5" id="text-3-3-2-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2659,8 +2659,8 @@ The basic (non-suffixed) API call on datasets deals with double precision (see T
</div>
</div>
<div id="outline-container-org8150852" class="outline-5">
<h5 id="org8150852"><span class="section-number-5">3.3.2.3</span> Source code for single precision functions</h5>
<div id="outline-container-org9b2733f" class="outline-5">
<h5 id="org9b2733f"><span class="section-number-5">3.3.2.3</span> Source code for single precision functions</h5>
<div class="outline-text-5" id="text-3-3-2-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2811,11 +2811,11 @@ The basic (non-suffixed) API call on datasets deals with double precision (see T
</div>
</div>
<div id="outline-container-org9435c55" class="outline-5">
<h5 id="org9435c55"><span class="section-number-5">3.3.2.4</span> Source code for memory-safe functions</h5>
<div id="outline-container-orga3a081c" class="outline-5">
<h5 id="orga3a081c"><span class="section-number-5">3.3.2.4</span> Source code for memory-safe functions</h5>
<div class="outline-text-5" id="text-3-3-2-4">
<div class="org-src-container">
<pre class="src src-c" id="org5cb1d4e"><span style="color: #228b22;">trexio_exit_code</span> <span style="color: #a0522d;">rc</span>;
<pre class="src src-c" id="orgf2ac2f7"><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>*/
@ -2971,8 +2971,8 @@ rc = trexio_read_$group_dset_dim$_64(file, &amp;($group_dset_dim$));
</div>
</div>
<div id="outline-container-orgbd7a4f4" class="outline-5">
<h5 id="orgbd7a4f4"><span class="section-number-5">3.3.2.5</span> Source code for default functions</h5>
<div id="outline-container-orgab2e8c1" class="outline-5">
<h5 id="orgab2e8c1"><span class="section-number-5">3.3.2.5</span> Source code for default functions</h5>
<div class="outline-text-5" id="text-3-3-2-5">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -3047,8 +3047,8 @@ rc = trexio_read_$group_dset_dim$_64(file, &amp;($group_dset_dim$));
</div>
</div>
<div id="outline-container-org8da78cf" class="outline-4">
<h4 id="org8da78cf"><span class="section-number-4">3.3.3</span> Fortran templates for front end</h4>
<div id="outline-container-org1109900" class="outline-4">
<h4 id="org1109900"><span class="section-number-4">3.3.3</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-3-3">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from <code>Fortran</code>.
@ -3133,8 +3133,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org77b3b1b" class="outline-4">
<h4 id="org77b3b1b"><span class="section-number-4">3.3.4</span> Python templates for front end</h4>
<div id="outline-container-org6e3fefb" class="outline-4">
<h4 id="org6e3fefb"><span class="section-number-4">3.3.4</span> Python templates for front end</h4>
<div class="outline-text-4" id="text-3-3-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) -&gt; <span style="color: #008b8b;">None</span>:
@ -3329,12 +3329,12 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orge6a8779" class="outline-3">
<h3 id="orge6a8779"><span class="section-number-3">3.4</span> Templates for front end has/read/write a dataset of sparse data</h3>
<div id="outline-container-orge93fdcb" class="outline-3">
<h3 id="orge93fdcb"><span class="section-number-3">3.4</span> Templates for front end has/read/write a dataset of sparse data</h3>
<div class="outline-text-3" id="text-3-4">
</div>
<div id="outline-container-orgc47178b" class="outline-4">
<h4 id="orgc47178b"><span class="section-number-4">3.4.1</span> Introduction</h4>
<div id="outline-container-orgba927dc" class="outline-4">
<h4 id="orgba927dc"><span class="section-number-4">3.4.1</span> Introduction</h4>
<div class="outline-text-4" id="text-3-4-1">
<p>
Sparse data structures are used typically for large tensors such as
@ -3495,16 +3495,16 @@ This section concerns API calls related to sparse data structures.
</div>
</div>
<div id="outline-container-orga5fde88" class="outline-4">
<h4 id="orga5fde88"><span class="section-number-4">3.4.2</span> C templates for front end</h4>
<div id="outline-container-org26c0215" class="outline-4">
<h4 id="org26c0215"><span class="section-number-4">3.4.2</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-4-2">
</div>
<div id="outline-container-org2ee5787" class="outline-5">
<h5 id="org2ee5787"><span class="section-number-5">3.4.2.1</span> Function declarations</h5>
<div id="outline-container-org9194050" class="outline-5">
<h5 id="org9194050"><span class="section-number-5">3.4.2.1</span> Function declarations</h5>
</div>
<div id="outline-container-orge369406" class="outline-5">
<h5 id="orge369406"><span class="section-number-5">3.4.2.2</span> Source code for default functions</h5>
<div id="outline-container-org2e7c11b" class="outline-5">
<h5 id="org2e7c11b"><span class="section-number-5">3.4.2.2</span> Source code for default functions</h5>
<div class="outline-text-5" id="text-3-4-2-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span> <span style="color: #0000ff;">trexio_read_safe_$group_dset$</span>(<span style="color: #228b22;">trexio_t</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">file</span>,
@ -3779,8 +3779,8 @@ This section concerns API calls related to sparse data structures.
</div>
</div>
<div id="outline-container-org4ed4aed" class="outline-4">
<h4 id="org4ed4aed"><span class="section-number-4">3.4.3</span> Fortran templates for front end</h4>
<div id="outline-container-org6afda80" class="outline-4">
<h4 id="org6afda80"><span class="section-number-4">3.4.3</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-4-3">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from <code>Fortran</code>.
@ -3875,8 +3875,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orgd0f821c" class="outline-4">
<h4 id="orgd0f821c"><span class="section-number-4">3.4.4</span> Python templates for front end</h4>
<div id="outline-container-org65e1ef6" class="outline-4">
<h4 id="org65e1ef6"><span class="section-number-4">3.4.4</span> Python templates for front end</h4>
<div class="outline-text-4" id="text-3-4-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: File, offset_file: <span style="color: #483d8b;">int</span>, buffer_size: <span style="color: #483d8b;">int</span>, indices: <span style="color: #483d8b;">list</span>, values: <span style="color: #483d8b;">list</span>) -&gt; <span style="color: #008b8b;">None</span>:
@ -4097,12 +4097,12 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org41c3f03" class="outline-3">
<h3 id="org41c3f03"><span class="section-number-3">3.5</span> Templates for front end has/read/write a dataset of strings</h3>
<div id="outline-container-org6089008" class="outline-3">
<h3 id="org6089008"><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-orgbdcded4" class="outline-4">
<h4 id="orgbdcded4"><span class="section-number-4">3.5.1</span> Introduction</h4>
<div id="outline-container-org6dee37a" class="outline-4">
<h4 id="org6dee37a"><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.
@ -4142,8 +4142,8 @@ This section concerns API calls related to datasets of strings.
</div>
</div>
<div id="outline-container-org0748303" class="outline-4">
<h4 id="org0748303"><span class="section-number-4">3.5.2</span> C templates for front end</h4>
<div id="outline-container-org1783e7a" class="outline-4">
<h4 id="org1783e7a"><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
@ -4151,12 +4151,12 @@ to/from the <code>TREXIO</code> file (except for <code>trexio_has_</code> functi
</p>
</div>
<div id="outline-container-orgc12d5ee" class="outline-5">
<h5 id="orgc12d5ee"><span class="section-number-5">3.5.2.1</span> Function declarations</h5>
<div id="outline-container-orga4fac9e" class="outline-5">
<h5 id="orga4fac9e"><span class="section-number-5">3.5.2.1</span> Function declarations</h5>
</div>
<div id="outline-container-org2a44b8a" class="outline-5">
<h5 id="org2a44b8a"><span class="section-number-5">3.5.2.2</span> Source code for default functions</h5>
<div id="outline-container-org8d1fc81" class="outline-5">
<h5 id="org8d1fc81"><span class="section-number-5">3.5.2.2</span> Source code for default functions</h5>
<div class="outline-text-5" id="text-3-5-2-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -4406,8 +4406,8 @@ to/from the <code>TREXIO</code> file (except for <code>trexio_has_</code> functi
</div>
</div>
<div id="outline-container-orgfd65bee" class="outline-4">
<h4 id="orgfd65bee"><span class="section-number-4">3.5.3</span> Fortran templates for front end</h4>
<div id="outline-container-orgf25a3e0" class="outline-4">
<h4 id="orgf25a3e0"><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>.
@ -4503,8 +4503,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org764588b" class="outline-4">
<h4 id="org764588b"><span class="section-number-4">3.5.4</span> Python templates for front end</h4>
<div id="outline-container-org72ce31f" class="outline-4">
<h4 id="org72ce31f"><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>:
@ -4620,12 +4620,12 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org3692f9e" class="outline-3">
<h3 id="org3692f9e"><span class="section-number-3">3.6</span> Templates for front end has/read/write a single string attribute</h3>
<div id="outline-container-org3e2af42" class="outline-3">
<h3 id="org3e2af42"><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-orgd5da7ca" class="outline-4">
<h4 id="orgd5da7ca"><span class="section-number-4">3.6.1</span> Introduction</h4>
<div id="outline-container-org42598ae" class="outline-4">
<h4 id="org42598ae"><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.
@ -4665,16 +4665,16 @@ This section concerns API calls related to string attributes.
</div>
</div>
<div id="outline-container-org6f6160b" class="outline-4">
<h4 id="org6f6160b"><span class="section-number-4">3.6.2</span> C templates for front end</h4>
<div id="outline-container-orge24aac0" class="outline-4">
<h4 id="orge24aac0"><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>
<div id="outline-container-orgab2f5c2" class="outline-5">
<h5 id="orgab2f5c2"><span class="section-number-5">3.6.2.1</span> Function declarations</h5>
<div id="outline-container-org67157bd" class="outline-5">
<h5 id="org67157bd"><span class="section-number-5">3.6.2.1</span> Function declarations</h5>
</div>
<div id="outline-container-org5b42fc8" class="outline-5">
<h5 id="org5b42fc8"><span class="section-number-5">3.6.2.2</span> Source code for default functions</h5>
<div id="outline-container-orgd3db94a" class="outline-5">
<h5 id="orgd3db94a"><span class="section-number-5">3.6.2.2</span> Source code for default functions</h5>
<div class="outline-text-5" id="text-3-6-2-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -4778,8 +4778,8 @@ This section concerns API calls related to string attributes.
</div>
</div>
<div id="outline-container-orgeb461a7" class="outline-4">
<h4 id="orgeb461a7"><span class="section-number-4">3.6.3</span> Fortran templates for front end</h4>
<div id="outline-container-orgaa49a67" class="outline-4">
<h4 id="orgaa49a67"><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.
@ -4856,8 +4856,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org08b5a2f" class="outline-4">
<h4 id="org08b5a2f"><span class="section-number-4">3.6.4</span> Python templates for front end</h4>
<div id="outline-container-orgb2e4203" class="outline-4">
<h4 id="orgb2e4203"><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>:
@ -4947,8 +4947,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org51dc908" class="outline-2">
<h2 id="org51dc908"><span class="section-number-2">4</span> Fortran helper/wrapper functions</h2>
<div id="outline-container-org0342021" class="outline-2">
<h2 id="org0342021"><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.
@ -5083,7 +5083,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: 2022-01-10 Mon 09:28</p>
<p class="date">Created: 2022-01-10 Mon 09:35</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>
<!-- 2022-01-10 Mon 09:28 -->
<!-- 2022-01-10 Mon 09:35 -->
<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,29 +311,29 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org6b4f90a">1. HDF5 back end</a>
<li><a href="#org218cb2b">1. HDF5 back end</a>
<ul>
<li><a href="#org476e29f">1.1. Template for HDF5 definitions</a></li>
<li><a href="#orgaa0fb0d">1.2. Template for HDF5 structures</a></li>
<li><a href="#org4143dfa">1.3. Template for HDF5 init/deinit</a></li>
<li><a href="#orgef39995">1.4. Template for HDF5 has/read/write the numerical attribute</a></li>
<li><a href="#org3ff3653">1.5. Template for HDF5 has/read/write the dataset of numerical data</a></li>
<li><a href="#org8922069">1.6. Template for HDF5 has/read/write the dataset of sparse data</a></li>
<li><a href="#orgcb0b77f">1.7. Template for HDF5 has/read/write the dataset of strings</a></li>
<li><a href="#org5fa8de6">1.8. Template for HDF5 has/read/write the string attribute</a></li>
<li><a href="#org92246b1">1.9. Helper functions</a></li>
<li><a href="#org59e8d8b">1.1. Template for HDF5 definitions</a></li>
<li><a href="#orga369a3a">1.2. Template for HDF5 structures</a></li>
<li><a href="#orged1a613">1.3. Template for HDF5 init/deinit</a></li>
<li><a href="#org667cfaa">1.4. Template for HDF5 has/read/write the numerical attribute</a></li>
<li><a href="#org60fcb4d">1.5. Template for HDF5 has/read/write the dataset of numerical data</a></li>
<li><a href="#org76f96af">1.6. Template for HDF5 has/read/write the dataset of sparse data</a></li>
<li><a href="#org8a1eb01">1.7. Template for HDF5 has/read/write the dataset of strings</a></li>
<li><a href="#orgcb0b0d7">1.8. Template for HDF5 has/read/write the string attribute</a></li>
<li><a href="#orgd5d942d">1.9. Helper functions</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org6b4f90a" class="outline-2">
<h2 id="org6b4f90a"><span class="section-number-2">1</span> HDF5 back end</h2>
<div id="outline-container-org218cb2b" class="outline-2">
<h2 id="org218cb2b"><span class="section-number-2">1</span> HDF5 back end</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-org476e29f" class="outline-3">
<h3 id="org476e29f"><span class="section-number-3">1.1</span> Template for HDF5 definitions</h3>
<div id="outline-container-org59e8d8b" class="outline-3">
<h3 id="org59e8d8b"><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>
@ -345,8 +345,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-orgaa0fb0d" class="outline-3">
<h3 id="orgaa0fb0d"><span class="section-number-3">1.2</span> Template for HDF5 structures</h3>
<div id="outline-container-orga369a3a" class="outline-3">
<h3 id="orga369a3a"><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> {
@ -360,8 +360,8 @@ for the JavaScript code in this tag.
</div>
<div id="outline-container-org4143dfa" class="outline-3">
<h3 id="org4143dfa"><span class="section-number-3">1.3</span> Template for HDF5 init/deinit</h3>
<div id="outline-container-orged1a613" class="outline-3">
<h3 id="orged1a613"><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>
@ -441,8 +441,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-orgef39995" class="outline-3">
<h3 id="orgef39995"><span class="section-number-3">1.4</span> Template for HDF5 has/read/write the numerical attribute</h3>
<div id="outline-container-org667cfaa" class="outline-3">
<h3 id="org667cfaa"><span class="section-number-3">1.4</span> Template for HDF5 has/read/write the numerical attribute</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>
@ -536,8 +536,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org3ff3653" class="outline-3">
<h3 id="org3ff3653"><span class="section-number-3">1.5</span> Template for HDF5 has/read/write the dataset of numerical data</h3>
<div id="outline-container-org60fcb4d" class="outline-3">
<h3 id="org60fcb4d"><span class="section-number-3">1.5</span> Template for HDF5 has/read/write the 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>
@ -659,8 +659,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org8922069" class="outline-3">
<h3 id="org8922069"><span class="section-number-3">1.6</span> Template for HDF5 has/read/write the dataset of sparse data</h3>
<div id="outline-container-org76f96af" class="outline-3">
<h3 id="org76f96af"><span class="section-number-3">1.6</span> Template for HDF5 has/read/write the dataset of sparse data</h3>
<div class="outline-text-3" id="text-1-6">
<p>
Sparse data is stored using extensible datasets of HDF5. Extensibility is required
@ -861,8 +861,8 @@ due to the fact that the sparse data will be written in chunks of user-defined s
</div>
</div>
<div id="outline-container-orgcb0b77f" class="outline-3">
<h3 id="orgcb0b77f"><span class="section-number-3">1.7</span> Template for HDF5 has/read/write the dataset of strings</h3>
<div id="outline-container-org8a1eb01" class="outline-3">
<h3 id="org8a1eb01"><span class="section-number-3">1.7</span> Template for HDF5 has/read/write the dataset of strings</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>
@ -1066,8 +1066,8 @@ due to the fact that the sparse data will be written in chunks of user-defined s
</div>
</div>
<div id="outline-container-org5fa8de6" class="outline-3">
<h3 id="org5fa8de6"><span class="section-number-3">1.8</span> Template for HDF5 has/read/write the string attribute</h3>
<div id="outline-container-orgcb0b0d7" class="outline-3">
<h3 id="orgcb0b0d7"><span class="section-number-3">1.8</span> Template for HDF5 has/read/write the string 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>
@ -1189,8 +1189,8 @@ due to the fact that the sparse data will be written in chunks of user-defined s
</div>
</div>
</div>
<div id="outline-container-org92246b1" class="outline-3">
<h3 id="org92246b1"><span class="section-number-3">1.9</span> Helper functions</h3>
<div id="outline-container-orgd5d942d" class="outline-3">
<h3 id="orgd5d942d"><span class="section-number-3">1.9</span> Helper functions</h3>
<div class="outline-text-3" id="text-1-9">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -1452,7 +1452,7 @@ due to the fact that the sparse data will be written in chunks of user-defined s
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2022-01-10 Mon 09:28</p>
<p class="date">Created: 2022-01-10 Mon 09:35</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>
<!-- 2022-01-10 Mon 09:28 -->
<!-- 2022-01-10 Mon 09:35 -->
<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,28 +311,28 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org97516b0">1. TEXT back end</a>
<li><a href="#org05d768e">1. TEXT back end</a>
<ul>
<li><a href="#org86003ba">1.1. Template for group-related structures in text back end</a></li>
<li><a href="#orgd04e4a7">1.2. Template for general structure in text back end</a></li>
<li><a href="#orge0557c8">1.3. Initialize function (constant part)</a></li>
<li><a href="#org79de0eb">1.4. Deinitialize function (templated part)</a></li>
<li><a href="#org624784d">1.5. Template for text read struct</a></li>
<li><a href="#org315f36b">1.6. Template for text flush struct</a></li>
<li><a href="#orgd4e9f64">1.7. Template for text free memory</a></li>
<li><a href="#org9cec566">1.8. Template for has/read/write the numerical attribute</a></li>
<li><a href="#org7d78a0e">1.9. Template for has/read/write the dataset of numerical data</a></li>
<li><a href="#org48c90d0">1.10. Template for has/read/write the dataset of strings</a></li>
<li><a href="#org73cced3">1.11. Template for has/read/write the string attribute</a></li>
<li><a href="#org563b98f">1.12. Template for has/read/write the dataset of sparse data</a></li>
<li><a href="#org13eaf28">1.1. Template for group-related structures in text back end</a></li>
<li><a href="#org4d5f841">1.2. Template for general structure in text back end</a></li>
<li><a href="#org74c7f03">1.3. Initialize function (constant part)</a></li>
<li><a href="#orgcb27ff5">1.4. Deinitialize function (templated part)</a></li>
<li><a href="#orgc161140">1.5. Template for text read struct</a></li>
<li><a href="#orgc25416d">1.6. Template for text flush struct</a></li>
<li><a href="#org6f00af9">1.7. Template for text free memory</a></li>
<li><a href="#org27adc0d">1.8. Template for has/read/write the numerical attribute</a></li>
<li><a href="#org453a8c4">1.9. Template for has/read/write the dataset of numerical data</a></li>
<li><a href="#orgc86baf3">1.10. Template for has/read/write the dataset of strings</a></li>
<li><a href="#org2433f62">1.11. Template for has/read/write the string attribute</a></li>
<li><a href="#orgda27417">1.12. Template for has/read/write the dataset of sparse data</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org97516b0" class="outline-2">
<h2 id="org97516b0"><span class="section-number-2">1</span> TEXT back end</h2>
<div id="outline-container-org05d768e" class="outline-2">
<h2 id="org05d768e"><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
@ -353,8 +353,8 @@ The file is written when closed, or when the flush function is called.
</p>
</div>
<div id="outline-container-org86003ba" class="outline-3">
<h3 id="org86003ba"><span class="section-number-3">1.1</span> Template for group-related structures in text back end</h3>
<div id="outline-container-org13eaf28" class="outline-3">
<h3 id="org13eaf28"><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 {
@ -373,8 +373,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-orgd04e4a7" class="outline-3">
<h3 id="orgd04e4a7"><span class="section-number-3">1.2</span> Template for general structure in text back end</h3>
<div id="outline-container-org4d5f841" class="outline-3">
<h3 id="org4d5f841"><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;">trexio_text_s</span> {
@ -387,8 +387,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-orge0557c8" class="outline-3">
<h3 id="orge0557c8"><span class="section-number-3">1.3</span> Initialize function (constant part)</h3>
<div id="outline-container-org74c7f03" class="outline-3">
<h3 id="org74c7f03"><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>
@ -519,8 +519,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-org79de0eb" class="outline-3">
<h3 id="org79de0eb"><span class="section-number-3">1.4</span> Deinitialize function (templated part)</h3>
<div id="outline-container-orgcb27ff5" class="outline-3">
<h3 id="orgcb27ff5"><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>
@ -542,8 +542,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-org624784d" class="outline-3">
<h3 id="org624784d"><span class="section-number-3">1.5</span> Template for text read struct</h3>
<div id="outline-container-orgc161140" class="outline-3">
<h3 id="orgc161140"><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*
@ -835,8 +835,8 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
</div>
</div>
<div id="outline-container-org315f36b" class="outline-3">
<h3 id="org315f36b"><span class="section-number-3">1.6</span> Template for text flush struct</h3>
<div id="outline-container-orgc25416d" class="outline-3">
<h3 id="orgc25416d"><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>
@ -901,8 +901,8 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
</div>
</div>
<div id="outline-container-orgd4e9f64" class="outline-3">
<h3 id="orgd4e9f64"><span class="section-number-3">1.7</span> Template for text free memory</h3>
<div id="outline-container-org6f00af9" class="outline-3">
<h3 id="org6f00af9"><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.
@ -947,8 +947,8 @@ Memory is allocated when reading. The following function frees memory.
</div>
</div>
<div id="outline-container-org9cec566" class="outline-3">
<h3 id="org9cec566"><span class="section-number-3">1.8</span> Template for has/read/write the numerical attribute</h3>
<div id="outline-container-org27adc0d" class="outline-3">
<h3 id="org27adc0d"><span class="section-number-3">1.8</span> Template for has/read/write the numerical 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>
@ -1011,8 +1011,8 @@ Memory is allocated when reading. The following function frees memory.
</div>
</div>
<div id="outline-container-org7d78a0e" class="outline-3">
<h3 id="org7d78a0e"><span class="section-number-3">1.9</span> Template for has/read/write the dataset of numerical data</h3>
<div id="outline-container-org453a8c4" class="outline-3">
<h3 id="org453a8c4"><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.
@ -1108,8 +1108,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
</div>
<div id="outline-container-org48c90d0" class="outline-3">
<h3 id="org48c90d0"><span class="section-number-3">1.10</span> Template for has/read/write the dataset of strings</h3>
<div id="outline-container-orgc86baf3" class="outline-3">
<h3 id="orgc86baf3"><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.
@ -1210,8 +1210,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
</div>
<div id="outline-container-org73cced3" class="outline-3">
<h3 id="org73cced3"><span class="section-number-3">1.11</span> Template for has/read/write the string attribute</h3>
<div id="outline-container-org2433f62" class="outline-3">
<h3 id="org2433f62"><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>
@ -1285,8 +1285,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
</div>
<div id="outline-container-org563b98f" class="outline-3">
<h3 id="org563b98f"><span class="section-number-3">1.12</span> Template for has/read/write the dataset of sparse data</h3>
<div id="outline-container-orgda27417" class="outline-3">
<h3 id="orgda27417"><span class="section-number-3">1.12</span> Template for has/read/write the dataset of sparse data</h3>
<div class="outline-text-3" id="text-1-12">
<p>
Each sparse array is stored in a separate <code>.txt</code> file due to the fact that sparse I/O has to be decoupled
@ -1563,7 +1563,7 @@ User provides indices and values of the sparse array as two separate variables.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2022-01-10 Mon 09:28</p>
<p class="date">Created: 2022-01-10 Mon 09:35</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

188
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>
<!-- 2022-01-10 Mon 09:28 -->
<!-- 2022-01-10 Mon 09:35 -->
<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,33 +333,33 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orge2708d5">1. Metadata (metadata group)</a></li>
<li><a href="#orgc17c195">2. Electron (electron group)</a></li>
<li><a href="#orgbd3c307">3. Nucleus (nucleus group)</a></li>
<li><a href="#org7a3bc61">4. Effective core potentials (ecp group)</a>
<li><a href="#orgc705fee">1. Metadata (metadata group)</a></li>
<li><a href="#org0e52b03">2. Electron (electron group)</a></li>
<li><a href="#orga5df6dc">3. Nucleus (nucleus group)</a></li>
<li><a href="#org573842a">4. Effective core potentials (ecp group)</a>
<ul>
<li><a href="#org75753bc">4.1. Example</a></li>
<li><a href="#org66bffcb">4.1. Example</a></li>
</ul>
</li>
<li><a href="#orgcbc2b99">5. Basis set (basis group)</a>
<li><a href="#org679011f">5. Basis set (basis group)</a>
<ul>
<li><a href="#orgb77b98f">5.1. Example</a></li>
<li><a href="#orgc1e84a0">5.1. Example</a></li>
</ul>
</li>
<li><a href="#org71681e2">6. Atomic orbitals (ao group)</a>
<li><a href="#org8c7b545">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="#org044e1c6">7. Molecular orbitals (mo group)</a>
<li><a href="#orgc189830">7. Molecular orbitals (mo group)</a>
<ul>
<li><a href="#org5cc2422">7.1. One-electron integrals (<code>mo_1e_int</code> group)</a></li>
<li><a href="#orga500d39">7.2. Two-electron integrals (<code>mo_2e_int</code> group)</a></li>
<li><a href="#orgfe729c5">7.1. One-electron integrals (<code>mo_1e_int</code> group)</a></li>
<li><a href="#org9be98df">7.2. Two-electron integrals (<code>mo_2e_int</code> group)</a></li>
</ul>
</li>
<li><a href="#org292fed8">8. <span class="todo TODO">TODO</span> Slater determinants</a></li>
<li><a href="#org37c7d96">9. Reduced density matrices (rdm group)</a></li>
<li><a href="#org1b09c8e">8. <span class="todo TODO">TODO</span> Slater determinants</a></li>
<li><a href="#org72b64fe">9. Reduced density matrices (rdm group)</a></li>
</ul>
</div>
</div>
@ -409,8 +409,8 @@ fetched using multiple function calls to perform I/O on buffers.
</p>
<div id="outline-container-orge2708d5" class="outline-2">
<h2 id="orge2708d5"><span class="section-number-2">1</span> Metadata (metadata group)</h2>
<div id="outline-container-orgc705fee" class="outline-2">
<h2 id="orgc705fee"><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
@ -420,7 +420,7 @@ which have participated to the creation of the file, a list of
authors of the file, and a textual description.
</p>
<table id="orgb8895df" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org0544eb8" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -487,15 +487,15 @@ authors of the file, and a textual description.
</div>
</div>
<div id="outline-container-orgc17c195" class="outline-2">
<h2 id="orgc17c195"><span class="section-number-2">2</span> Electron (electron group)</h2>
<div id="outline-container-org0e52b03" class="outline-2">
<h2 id="org0e52b03"><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="org15f6a4b" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org7c3c29f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -534,15 +534,15 @@ the number of &uarr; and &darr; electrons is fixed.
</div>
</div>
<div id="outline-container-orgbd3c307" class="outline-2">
<h2 id="orgbd3c307"><span class="section-number-2">3</span> Nucleus (nucleus group)</h2>
<div id="outline-container-orga5df6dc" class="outline-2">
<h2 id="orga5df6dc"><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="org12dc182" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org9a7ff06" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -609,8 +609,8 @@ given in Cartesian \((x,y,z)\) format.
</div>
</div>
<div id="outline-container-org7a3bc61" class="outline-2">
<h2 id="org7a3bc61"><span class="section-number-2">4</span> Effective core potentials (ecp group)</h2>
<div id="outline-container-org573842a" class="outline-2">
<h2 id="org573842a"><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{ECP}}\) replacing the
@ -620,7 +620,7 @@ core electrons of atom \(A\) can be expressed as
V_{A \ell_{\max}+1} +
\sum_{\ell=0}^{\ell_{\max}}
\sum_{m=-\ell}^{\ell} | Y_{\ell m} \rangle \left[
V_{A \ell} - V_{A \ell_{\max}+1} \right] \langle Y_{\ell m} |
V_{A \ell} - V_{A \ell_{\max}+1} \right] \langle Y_{\ell m} |
\]
</p>
@ -643,7 +643,7 @@ The functions \(V_{A\ell}\) are parameterized as:
See <a href="http://dx.doi.org/10.1063/1.4984046">http://dx.doi.org/10.1063/1.4984046</a> or <a href="https://doi.org/10.1063/1.5121006">https://doi.org/10.1063/1.5121006</a> for more info.
</p>
<table id="org6746153" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org1de6b58" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -724,38 +724,38 @@ See <a href="http://dx.doi.org/10.1063/1.4984046">http://dx.doi.org/10.1063/1.49
<p>
There might be some confusion in the meaning of the \(\ell_{\max}\).
It can be attributed to the maximum angular momentum occupied
There might be some confusion in the meaning of the \(\ell_{\max}\).
It can be attributed to the maximum angular momentum occupied
in the core orbitals, which are removed by the ECP.
On the other hand, it can be attributed to the maximum angular momentum of the
ECP that replaces the core electrons.
On the other hand, it can be attributed to the maximum angular momentum of the
ECP that replaces the core electrons.
<b>Note</b>, that the latter \(\ell_{\max}\) is always higher by 1 than the former.
</p>
<p>
<b>Note for developers</b>: avoid having variables with similar prefix in their name.
<b>Note for developers</b>: avoid having variables with similar prefix in their name.
HDF5 back end might cause issues due to the way <code>find_dataset</code> function works.
For example, in the ECP group we use <code>max_ang_mom</code> and not <code>ang_mom_max</code>.
For example, in the ECP group we use <code>max_ang_mom</code> and not <code>ang_mom_max</code>.
The latter causes issues when written before <code>ang_mom</code> in the TREXIO file.
</p>
</div>
<div id="outline-container-org75753bc" class="outline-3">
<h3 id="org75753bc"><span class="section-number-3">4.1</span> Example</h3>
<div id="outline-container-org66bffcb" class="outline-3">
<h3 id="org66bffcb"><span class="section-number-3">4.1</span> Example</h3>
<div class="outline-text-3" id="text-4-1">
<p>
For example, consider H<sub>2</sub> molecule with the following
<a href="https://pseudopotentiallibrary.org/recipes/H/ccECP/H.ccECP.gamess">effective core potential</a>
For example, consider H<sub>2</sub> molecule with the following
<a href="https://pseudopotentiallibrary.org/recipes/H/ccECP/H.ccECP.gamess">effective core potential</a>
(in GAMESS input format for the H atom):
</p>
<pre class="example">
H-ccECP GEN 0 1
3
1.00000000000000 1 21.24359508259891
21.24359508259891 3 21.24359508259891
-10.85192405303825 2 21.77696655044365
1.00000000000000 1 21.24359508259891
21.24359508259891 3 21.24359508259891
-10.85192405303825 2 21.77696655044365
1
0.00000000000000 2 1.000000000000000
</pre>
@ -779,7 +779,7 @@ nucleus_index = [
1, 1, 1, 1
]
# 3 first ECP elements correspond to potential of the P orbital (l=1), then 1 element for the S orbital (l=0) ; similar for the second H atom
# 3 first ECP elements correspond to potential of the P orbital (l=1), then 1 element for the S orbital (l=0) ; similar for the second H atom
ang_mom = [
1, 1, 1, 0,
1, 1, 1, 0
@ -791,13 +791,13 @@ coefficient = [
1.00000000000000, 21.24359508259891, -10.85192405303825, 0.00000000000000
]
exponent = [
exponent = [
21.24359508259891, 21.24359508259891, 21.77696655044365, 1.000000000000000,
21.24359508259891, 21.24359508259891, 21.77696655044365, 1.000000000000000
]
power = [
-1, 1, 0, 0,
power = [
-1, 1, 0, 0,
-1, 1, 0, 0
]
</pre>
@ -805,8 +805,8 @@ power = [
</div>
</div>
<div id="outline-container-orgcbc2b99" class="outline-2">
<h2 id="orgcbc2b99"><span class="section-number-2">5</span> Basis set (basis group)</h2>
<div id="outline-container-org679011f" class="outline-2">
<h2 id="org679011f"><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
@ -859,7 +859,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="orgc557591" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgabb6837" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -953,8 +953,8 @@ All the basis set parameters are stored in one-dimensional arrays:
</table>
</div>
<div id="outline-container-orgb77b98f" class="outline-3">
<h3 id="orgb77b98f"><span class="section-number-3">5.1</span> Example</h3>
<div id="outline-container-orgc1e84a0" class="outline-3">
<h3 id="orgc1e84a0"><span class="section-number-3">5.1</span> Example</h3>
<div class="outline-text-3" id="text-5-1">
<p>
For example, consider H<sub>2</sub> with the following basis set (in GAMESS
@ -991,32 +991,32 @@ prim_num = 20
shell_num = 12
# 6 shells per H atom
nucleus_index =
[ 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1 ]
nucleus_index =
[ 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1 ]
# 3 shells in S (l=0), 2 in P (l=1), 1 in D (l=2)
shell_ang_mom =
[ 0, 0, 0, 1, 1, 2,
[ 0, 0, 0, 1, 1, 2,
0, 0, 0, 1, 1, 2 ]
# no need to renormalize shells
shell_factor =
[ 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1. ]
# no need to renormalize shells
shell_factor =
[ 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1. ]
# 5 primitives for the first S shell and then 1 primitive per remaining shells in each H atom
shell_index =
[ 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
shell_index =
[ 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
6, 6, 6, 6, 6, 7, 8, 9, 10, 11 ]
# parameters of the primitives (10 per H atom)
exponent =
[ 33.87, 5.095, 1.159, 0.3258, 0.1027, 0.3258, 0.1027, 1.407, 0.388, 1.057,
[ 33.87, 5.095, 1.159, 0.3258, 0.1027, 0.3258, 0.1027, 1.407, 0.388, 1.057,
33.87, 5.095, 1.159, 0.3258, 0.1027, 0.3258, 0.1027, 1.407, 0.388, 1.057 ]
coefficient =
[ 0.006068, 0.045308, 0.202822, 0.503903, 0.383421, 1.0, 1.0, 1.0, 1.0, 1.0,
[ 0.006068, 0.045308, 0.202822, 0.503903, 0.383421, 1.0, 1.0, 1.0, 1.0, 1.0,
0.006068, 0.045308, 0.202822, 0.503903, 0.383421, 1.0, 1.0, 1.0, 1.0, 1.0 ]
prim_factor =
@ -1032,8 +1032,8 @@ prim_factor =
</div>
</div>
<div id="outline-container-org71681e2" class="outline-2">
<h2 id="org71681e2"><span class="section-number-2">6</span> Atomic orbitals (ao group)</h2>
<div id="outline-container-org8c7b545" class="outline-2">
<h2 id="org8c7b545"><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
@ -1085,13 +1085,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="#orgcbc2b99">Basis set</a> section) to \(\mathcal{N}_{z^2}\), which is the
the <a href="#org679011f">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="org3d93142" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org28a025f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1143,8 +1143,8 @@ introduced here should be \(\frac{\mathcal{N}_{xy}}{\mathcal{N}_{z^2}}\).
</table>
</div>
<div id="outline-container-orge0a6714" class="outline-3">
<h3 id="ao_one_e"><a id="orge0a6714"></a><span class="section-number-3">6.1</span> One-electron integrals (<code>ao_1e_int</code> group)</h3>
<div id="outline-container-org453dc82" class="outline-3">
<h3 id="ao_one_e"><a id="org453dc82"></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}}
@ -1162,7 +1162,7 @@ The one-electron integrals for a one-electron operator \(\hat{O}\) are
over atomic orbitals.
</p>
<table id="org2f4d31c" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orga8bc870" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1229,8 +1229,8 @@ over atomic orbitals.
</div>
</div>
<div id="outline-container-orgcc6c496" class="outline-3">
<h3 id="ao_two_e"><a id="orgcc6c496"></a><span class="section-number-3">6.2</span> Two-electron integrals (<code>ao_2e_int</code> group)</h3>
<div id="outline-container-orgc4c1698" class="outline-3">
<h3 id="ao_two_e"><a id="orgc4c1698"></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
@ -1251,7 +1251,7 @@ notation.
\mathbf{r}_j \vert)}{\vert \mathbf{r}_i - \mathbf{r}_j \vert} \] : electron-electron long range potential</li>
</ul>
<table id="orgc2bf351" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org0d4c9b2" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1291,10 +1291,10 @@ notation.
</div>
</div>
<div id="outline-container-org044e1c6" class="outline-2">
<h2 id="org044e1c6"><span class="section-number-2">7</span> Molecular orbitals (mo group)</h2>
<div id="outline-container-orgc189830" class="outline-2">
<h2 id="orgc189830"><span class="section-number-2">7</span> Molecular orbitals (mo group)</h2>
<div class="outline-text-2" id="text-7">
<table id="org856668c" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org86ba407" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1360,8 +1360,8 @@ notation.
</table>
</div>
<div id="outline-container-org5cc2422" class="outline-3">
<h3 id="org5cc2422"><span class="section-number-3">7.1</span> One-electron integrals (<code>mo_1e_int</code> group)</h3>
<div id="outline-container-orgfe729c5" class="outline-3">
<h3 id="orgfe729c5"><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
@ -1369,7 +1369,7 @@ The operators as the same as those defined in the
the basis of molecular orbitals.
</p>
<table id="org76ab231" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgfc7ef6a" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1436,8 +1436,8 @@ the basis of molecular orbitals.
</div>
</div>
<div id="outline-container-orga500d39" class="outline-3">
<h3 id="orga500d39"><span class="section-number-3">7.2</span> Two-electron integrals (<code>mo_2e_int</code> group)</h3>
<div id="outline-container-org9be98df" class="outline-3">
<h3 id="org9be98df"><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
@ -1445,7 +1445,7 @@ The operators as the same as those defined in the
the basis of molecular orbitals.
</p>
<table id="org6f026d5" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org2a9179a" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1485,11 +1485,11 @@ the basis of molecular orbitals.
</div>
</div>
<div id="outline-container-org292fed8" class="outline-2">
<h2 id="org292fed8"><span class="section-number-2">8</span> <span class="todo TODO">TODO</span> Slater determinants</h2>
<div id="outline-container-org1b09c8e" class="outline-2">
<h2 id="org1b09c8e"><span class="section-number-2">8</span> <span class="todo TODO">TODO</span> Slater determinants</h2>
</div>
<div id="outline-container-org37c7d96" class="outline-2">
<h2 id="org37c7d96"><span class="section-number-2">9</span> Reduced density matrices (rdm group)</h2>
<div id="outline-container-org72b64fe" class="outline-2">
<h2 id="org72b64fe"><span class="section-number-2">9</span> Reduced density matrices (rdm group)</h2>
<div class="outline-text-2" id="text-9">
<p>
The reduced density matrices are defined in the basis of molecular
@ -1501,13 +1501,13 @@ The $&uarr;$-spin and $&darr;$-spin components of the one-body
density matrix are given by
</p>
\begin{eqnarray*}
\gamma_{ij}^{\uparrow} &=& \langle \Psi | a^{\dagger}_{j\alpha}\, a_{i\alpha} | \Psi \rangle \\
\gamma_{ij}^{\downarrow} &=& \langle \Psi | a^{\dagger}_{j\beta} \, a_{i\beta} | \Psi \rangle
\gamma_{ij}^{\uparrow} &=& \langle \Psi | \hat{a}^{\dagger}_{j\alpha}\, \hat{a}_{i\alpha} | \Psi \rangle \\
\gamma_{ij}^{\downarrow} &=& \langle \Psi | \hat{a}^{\dagger}_{j\beta} \, \hat{a}_{i\beta} | \Psi \rangle
\end{eqnarray*}
<p>
and the spin-summed one-body density matrix is
\[
\gamma_{ij} = \gamma^{\uparrow}_{ij} + \gamma^{\downarrow}_{ij}
\gamma_{ij} = \gamma^{\uparrow}_{ij} + \gamma^{\downarrow}_{ij}
\]
</p>
@ -1517,19 +1517,19 @@ components of the two-body density matrix are given by
</p>
\begin{eqnarray*}
\Gamma_{ijkl}^{\uparrow \uparrow} &=&
\langle \Psi | a^{\dagger}_{k\alpha}\, a^{\dagger}_{l\alpha} a_{j\alpha}\, a_{i\alpha} | \Psi \rangle \\
\langle \Psi | \hat{a}^{\dagger}_{k\alpha}\, \hat{a}^{\dagger}_{l\alpha} \hat{a}_{j\alpha}\, \hat{a}_{i\alpha} | \Psi \rangle \\
\Gamma_{ijkl}^{\downarrow \downarrow} &=&
\langle \Psi | a^{\dagger}_{k\beta}\, a^{\dagger}_{l\beta} a_{j\beta}\, a_{i\beta} | \Psi \rangle \\
\langle \Psi | \hat{a}^{\dagger}_{k\beta}\, \hat{a}^{\dagger}_{l\beta} \hat{a}_{j\beta}\, \hat{a}_{i\beta} | \Psi \rangle \\
\Gamma_{ijkl}^{\uparrow \downarrow} &=&
+\langle \Psi | a^{\dagger}_{k\alpha}\, a^{\dagger}_{l\beta} a_{j\beta}\, a_{i\alpha} | \Psi \rangle \\
\langle \Psi | \hat{a}^{\dagger}_{k\alpha}\, \hat{a}^{\dagger}_{l\beta} \hat{a}_{j\beta}\, \hat{a}_{i\alpha} | \Psi \rangle \\
\Gamma_{ijkl}^{\downarrow \uparrow} &=&
\langle \Psi | a^{\dagger}_{k\beta}\, a^{\dagger}_{l\alpha} a_{j\alpha}\, a_{i\beta} | \Psi \rangle \\
\langle \Psi | \hat{a}^{\dagger}_{k\beta}\, \hat{a}^{\dagger}_{l\alpha} \hat{a}_{j\alpha}\, \hat{a}_{i\beta} | \Psi \rangle \\
\end{eqnarray*}
<p>
and the spin-summed one-body density matrix is
\[
\Gamma_{ijkl} = \Gamma_{ijkl}^{\uparrow \uparrow} +
\Gamma_{ijkl}^{\downarrow \downarrow} + \Gamma_{ijkl}^{\uparrow \downarrow}
\Gamma_{ijkl}^{\downarrow \downarrow} + \Gamma_{ijkl}^{\uparrow \downarrow}
\Gamma_{ijkl}^{\downarrow \uparrow}
\]
</p>
@ -1542,7 +1542,7 @@ The total energy can be computed as:
\]
</p>
<table id="orgd8d0ba4" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org2efb7f9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1625,7 +1625,7 @@ The total energy can be computed as:
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2022-01-10 Mon 09:28</p>
<p class="date">Created: 2022-01-10 Mon 09:35</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>