From 19e3c1bf5fee579428e30125ae53729bf4d3dd7e Mon Sep 17 00:00:00 2001 From: q-posev <45995097+q-posev@users.noreply.github.com> Date: Wed, 13 Apr 2022 14:40:39 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20TREX-CoE?= =?UTF-8?q?/trexio@dc783bc1e03a48b3d3d020edf6ce349d533dc8d6=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.html | 4 +- examples.html | 82 +++--- index.html | 4 +- templator_front.html | 583 ++++++++++++++++++++++++------------------- templator_hdf5.html | 68 ++--- templator_text.html | 88 +++---- theme.setup | 2 +- trex.html | 210 +++++++++++----- 8 files changed, 597 insertions(+), 444 deletions(-) diff --git a/README.html b/README.html index 7796902..e979e39 100644 --- a/README.html +++ b/README.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + TREXIO source code documentation @@ -347,7 +347,7 @@ and bug reports should be submitted at

Author: TREX-CoE

-

Created: 2022-03-11 Fri 12:54

+

Created: 2022-04-13 Wed 14:40

Validate

diff --git a/examples.html b/examples.html index 7dc493c..1f990b8 100644 --- a/examples.html +++ b/examples.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Examples @@ -333,24 +333,24 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Accessing sparse quantities

+
+

1 Accessing sparse quantities

-
-

1.1 Fortran

+
+

1.1 Fortran

program print_energy
@@ -411,8 +411,8 @@ One needs to read from the TREXIO file:
 
-
-

1.1.1 Declare Temporary variables

+
+

1.1.1 Declare Temporary variables

integer                       :: i, j, k, l, m
@@ -427,8 +427,8 @@ One needs to read from the TREXIO file:
 
-
-

1.1.2 Obtain the name of the TREXIO file from the command line, and open it for reading

+
+

1.1.2 Obtain the name of the TREXIO file from the command line, and open it for reading

call getarg(1, filename)
@@ -444,8 +444,8 @@ f = trexio_open (filename, 'r', TREXIO_HDF5
 
-
-

1.1.3 Read the nuclear repulsion energy

+
+

1.1.3 Read the nuclear repulsion energy

rc = trexio_read_nucleus_repulsion(f, E_nn)
@@ -459,8 +459,8 @@ f = trexio_open (filename, 'r', TREXIO_HDF5
 
-
-

1.1.4 Read the number of molecular orbitals

+
+

1.1.4 Read the number of molecular orbitals

rc = trexio_read_mo_num(f, n)
@@ -474,8 +474,8 @@ f = trexio_open (filename, 'r', TREXIO_HDF5
 
-
-

1.1.5 Allocate memory

+
+

1.1.5 Allocate memory

allocate( D(n,n), h0(n,n) )
@@ -487,8 +487,8 @@ W(:,:,:,:) = 0.d0
 
-
-

1.1.6 Read one-electron quantities

+
+

1.1.6 Read one-electron quantities

rc = trexio_has_mo_1e_int_core_hamiltonian(f)
@@ -520,8 +520,8 @@ rc = trexio_read_rdm_1e(f, D)
 
-
-

1.1.7 Read two-electron quantities

+
+

1.1.7 Read two-electron quantities

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.

-
-
1.1.7.1 Electron repulsion integrals
+
+
1.1.7.1 Electron repulsion integrals
rc = trexio_has_mo_2e_int_eri(f)
@@ -587,8 +587,8 @@ icount = BUFSIZE
 
-
-
1.1.7.2 Reduced density matrix
+
+
1.1.7.2 Reduced density matrix
rc = trexio_has_rdm_2e(f)
@@ -632,8 +632,8 @@ icount = bufsize
 
-
-

1.1.8 Compute the energy

+
+

1.1.8 Compute the energy

When the orbitals are real, we can use @@ -679,8 +679,8 @@ E = E + E_nn

-
-

1.1.9 Terminate

+
+

1.1.9 Terminate

  deallocate( D, h0, G, W )
@@ -695,7 +695,7 @@ E = E + E_nn
 

Author: TREX-CoE

-

Created: 2022-03-11 Fri 12:54

+

Created: 2022-04-13 Wed 14:40

Validate

diff --git a/index.html b/index.html index 7796902..e979e39 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + TREXIO source code documentation @@ -347,7 +347,7 @@ and bug reports should be submitted at

Author: TREX-CoE

-

Created: 2022-03-11 Fri 12:54

+

Created: 2022-04-13 Wed 14:40

Validate

diff --git a/templator_front.html b/templator_front.html index 1f771d0..16a0680 100644 --- a/templator_front.html +++ b/templator_front.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Front end API @@ -333,159 +333,160 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Coding conventions

+
+

1 Coding conventions

  • integer types will be defined using types given in stdint.h
  • @@ -500,8 +501,8 @@ for the JavaScript code in this tag.
-
-

1.1 Memory allocation

+
+

1.1 Memory allocation

Memory allocation of structures can be facilitated by using the @@ -536,8 +537,8 @@ The maximum string size for the filenames is 4096 characters.

-
-

2 Front end

+
+

2 Front end

All calls to TREXIO are thread-safe. @@ -545,10 +546,10 @@ TREXIO front end is modular, which simplifies implementation of new back ends.

-
-

2.1 Error handling

+
+

2.1 Error handling

- +
@@ -795,8 +796,8 @@ and the corresponding message are not propagated to the source code. -
-

2.1.1 Decoding errors

+
+

2.1.1 Decoding errors

The trexio_string_of_error converts an exit code into a string. The @@ -822,8 +823,8 @@ and the corresponding message are not propagated to the source code.

-
-
2.1.1.1 C source code
+
+
2.1.1.1 C source code
const char*
@@ -937,8 +938,8 @@ and the corresponding message are not propagated to the source code.
 
-
-
2.1.1.2 Fortran interface
+
+
2.1.1.2 Fortran interface
interface
@@ -954,8 +955,8 @@ and the corresponding message are not propagated to the source code.
 
-
-
2.1.1.3 Python interface
+
+
2.1.1.3 Python interface
class Error(Exception):
@@ -994,8 +995,8 @@ and the corresponding message are not propagated to the source code.
 
-
-

2.2 Back ends

+
+

2.2 Back ends

TREXIO has several back ends: @@ -1024,8 +1025,8 @@ lines that correspond to the TREXIO_JSON back end (not implemented

-
-

2.2.1 C

+
+

2.2.1 C

typedef int32_t back_end_t;
@@ -1074,8 +1075,8 @@ This is useful due to the fact that HDF5 back end can be disabled at configure s
 
-
-

2.2.2 Fortran

+
+

2.2.2 Fortran

  integer(trexio_back_end_t), parameter :: TREXIO_HDF5 = 0
@@ -1116,8 +1117,8 @@ consistency, in version 2.2 it was renamed trexio_has_back_end.
 
-
-

2.2.3 Python

+
+

2.2.3 Python

# define TREXIO back ends
@@ -1132,8 +1133,8 @@ consistency, in version 2.2 it was renamed trexio_has_back_end.
 
-
-

2.3 Read/write behavior

+
+

2.3 Read/write behavior

Every time a reading function is called, the data is read from the @@ -1162,8 +1163,8 @@ concurrent programs, the behavior is not specified.

-
-

2.4 TREXIO file type

+
+

2.4 TREXIO file type

trexio_s is the the main type for TREXIO files, visible to the users @@ -1197,8 +1198,8 @@ TREXIO files will have as a first argument the TREXIO file handle.

-
-

2.4.1 TREXIOFile Python class

+
+

2.4.1 TREXIOFile Python class

class File:
@@ -1287,8 +1288,8 @@ TREXIO files will have as a first argument the TREXIO file handle.
 
-
-

2.5 Polymorphism of the file handle

+
+

2.5 Polymorphism of the file handle

Polymorphism of the trexio_t type is handled by ensuring that the @@ -1307,8 +1308,8 @@ corresponding types for all back ends can be safely casted to

-
-

2.6 File opening

+
+

2.6 File opening

trexio_open creates a new TREXIO file or opens the existing one. @@ -1364,8 +1365,8 @@ renaming the .txt data files.

-
-

2.6.1 C

+
+

2.6.1 C

trexio_t*
@@ -1401,19 +1402,17 @@ renaming the .txt data files.
   /* Try to determine the applicable backend if the back_end argument is TREXIO_AUTO */
   if (back_end == TREXIO_AUTO && mode == 'r') {
 #ifdef HAVE_HDF5
-    trexio_exit_code rc_text, rc_hdf5;
     /* Check if the TREXIO file exists and if it is a directory */
-    rc_text = trexio_text_inquire(file_name);
+    trexio_exit_code rc_text = trexio_text_inquire(file_name);
     if (rc_text == TREXIO_SUCCESS) {
       back_end_local = TREXIO_TEXT;
     } else {
     /* If not, check if it is an HDF5 file */
-      rc_hdf5 = trexio_hdf5_inquire(file_name);
+      trexio_exit_code rc_hdf5 = trexio_hdf5_inquire(file_name);
       if (rc_hdf5 == TREXIO_SUCCESS) {
         back_end_local = TREXIO_HDF5;
       } else {
     /* File is neither a directory nor an HDF5 file -> return an error */
-        back_end_local = -1;
         if (rc_open != NULL) *rc_open = TREXIO_FILE_ERROR;
         return NULL;
       }
@@ -1635,8 +1634,8 @@ renaming the .txt data files.
 
-
-

2.6.2 Fortran

+
+

2.6.2 Fortran

interface
@@ -1654,8 +1653,8 @@ renaming the .txt data files.
 
-
-

2.6.3 Python

+
+

2.6.3 Python

def _open(file_name: str, mode: str, back_end: int):
@@ -1703,8 +1702,8 @@ renaming the .txt data files.
 
-
-

2.6.4 Zero-based versus one-based arrays of indices

+
+

2.6.4 Zero-based versus one-based arrays of indices

Because arrays are zero-based in Fortran, we need to set a flag to @@ -1737,8 +1736,8 @@ know if we need to shift by 1 arrays of indices.

-
-

2.7 File closing

+
+

2.7 File closing

trexio_close closes an existing trexio_t file. @@ -1755,8 +1754,8 @@ output:

-
-

2.7.1 C

+
+

2.7.1 C

trexio_exit_code
@@ -1769,6 +1768,12 @@ output:
 
   assert(file->back_end < TREXIO_INVALID_BACK_END);
 
+  /* Things to be done before the closing the file in the back-end */
+  rc = trexio_pre_close(file);
+  if (rc != TREXIO_SUCCESS) {
+    return rc;
+  }
+
   /* Terminate the back end */
   switch (file->back_end) {
 
@@ -1837,8 +1842,8 @@ output:
 
-
-

2.7.2 Fortran

+
+

2.7.2 Fortran

interface
@@ -1853,8 +1858,8 @@ output:
 
-
-

2.7.3 Python

+
+

2.7.3 Python

def _close(trexio_file):
@@ -1875,8 +1880,8 @@ output:
 
-
-

2.8 File existence

+
+

2.8 File existence

trexio_inquire check whether TREXIO file exists. @@ -1913,8 +1918,8 @@ You can see examples of both functionalities in test_f.f90 (search

-
-

2.8.1 C

+
+

2.8.1 C

trexio_exit_code
@@ -1944,8 +1949,8 @@ You can see examples of both functionalities in test_f.f90  (search
 
-
-

2.8.2 Fortran

+
+

2.8.2 Fortran

The function below is a C binding. @@ -1965,8 +1970,8 @@ The front end Fortran function for trexio_inquire can be found in t

-
-

2.8.3 Python

+
+

2.8.3 Python

def _inquire(file_name: str) -> bool:
@@ -1984,14 +1989,90 @@ The front end Fortran function for trexio_inquire can be found in t
 
+ +
+

2.9 Tasks to be done before closing

+
+
+
trexio_exit_code
+trexio_pre_close (trexio_t* file)
+{
+
+  if (file == NULL) return TREXIO_FILE_ERROR;
+
+  { /* Up-spin and down-spin electrons */
+    trexio_exit_code rc;
+
+    int32_t nup, ndn, nelec;
+    bool has_up   = (trexio_has_electron_up_num(file) == TREXIO_SUCCESS);
+    bool has_dn   = (trexio_has_electron_dn_num(file) == TREXIO_SUCCESS);
+    bool has_updn = (trexio_has_electron_num(file) == TREXIO_SUCCESS);
+
+    if (has_updn && has_up && has_dn) {
+      rc = trexio_read_electron_up_num(file, &nup);
+      if (rc != TREXIO_SUCCESS) return rc;
+
+      rc = trexio_read_electron_dn_num(file, &ndn);
+      if (rc != TREXIO_SUCCESS) return rc;
+
+      rc = trexio_read_electron_num(file, &nelec);
+      if (rc != TREXIO_SUCCESS) return rc;
+
+      if (nelec != nup + ndn) {
+        nelec = nup + ndn;
+        rc = trexio_write_electron_num(file, nelec);
+        if (rc != TREXIO_SUCCESS) return rc;
+      }
+    } else if (has_up && has_dn) {
+      rc = trexio_read_electron_up_num(file, &nup);
+      if (rc != TREXIO_SUCCESS) return rc;
+
+      rc = trexio_read_electron_dn_num(file, &ndn);
+      if (rc != TREXIO_SUCCESS) return rc;
+
+      nelec = nup + ndn;
+      rc = trexio_write_electron_num(file, nelec);
+      if (rc != TREXIO_SUCCESS) return rc;
+    } else if (has_up) {
+      rc = trexio_read_electron_up_num(file, &nup);
+      if (rc != TREXIO_SUCCESS) return rc;
+
+      ndn = 0;
+      rc = trexio_write_electron_dn_num(file, ndn);
+      if (rc != TREXIO_SUCCESS) return rc;
+
+      nelec = nup;
+      rc = trexio_write_electron_num(file, nelec);
+      if (rc != TREXIO_SUCCESS) return rc;
+    } else if (has_dn) {
+      rc = trexio_read_electron_dn_num(file, &ndn);
+      if (rc != TREXIO_SUCCESS) return rc;
+
+      nup = 0;
+      rc = trexio_write_electron_up_num(file, nup);
+      if (rc != TREXIO_SUCCESS) return rc;
+
+      nelec = ndn;
+      rc = trexio_write_electron_num(file, nelec);
+      if (rc != TREXIO_SUCCESS) return rc;
+    }
+
+  }
+
+  return TREXIO_SUCCESS;
+}
+
+
+
+
-
-

3 Templates for front end

+
+

3 Templates for front end

-
-

3.1 Description

+
+

3.1 Description

Consider the following block of trex.json: @@ -2212,12 +2293,12 @@ value will result in TREXIO_INVALID_ARG_2 exit code.

-
-

3.2 Templates for front end has/read/write a single numerical attribute

+
+

3.2 Templates for front end has/read/write a single numerical attribute

-
-

3.2.1 Introduction

+
+

3.2.1 Introduction

This section concerns API calls related to numerical attributes, @@ -2288,8 +2369,8 @@ namely single value of int/float types.

-
-

3.2.2 C templates for front end

+
+

3.2.2 C templates for front end

The C templates that correspond to each of the abovementioned @@ -2303,12 +2384,12 @@ precision (see Table above).

-
-
3.2.2.1 Function declarations
+
+
3.2.2.1 Function declarations
-
-
3.2.2.2 Source code for double precision functions
+
+
3.2.2.2 Source code for double precision functions
trexio_exit_code
@@ -2372,8 +2453,8 @@ precision (see Table above).
 
-
-
3.2.2.3 Source code for single precision functions
+
+
3.2.2.3 Source code for single precision functions
trexio_exit_code
@@ -2449,8 +2530,8 @@ precision (see Table above).
 
-
-
3.2.2.4 Source code for default functions
+
+
3.2.2.4 Source code for default functions
trexio_exit_code
@@ -2505,8 +2586,8 @@ precision (see Table above).
 
-
-

3.2.3 Fortran templates for front end

+
+

3.2.3 Fortran templates for front end

The Fortran templates that provide an access to the C API calls from Fortran. @@ -2598,8 +2679,8 @@ These templates are based on the use of iso_c_binding. Pointers hav

-
-

3.2.4 Python templates for front end

+
+

3.2.4 Python templates for front end

def write_$group_num$(trexio_file, num_w: $group_num_py_dtype$) -> None:
@@ -2684,12 +2765,12 @@ These templates are based on the use of iso_c_binding. Pointers hav
 
-
-

3.3 Templates for front end has/read/write a dataset of numerical data

+
+

3.3 Templates for front end has/read/write a dataset of numerical data

-
-

3.3.1 Introduction

+
+

3.3.1 Introduction

This section concerns API calls related to datasets. @@ -2771,8 +2852,8 @@ This section concerns API calls related to datasets.

-
-

3.3.2 C templates for front end

+
+

3.3.2 C templates for front end

The C templates that correspond to each of the abovementioned functions can be found below. @@ -2783,12 +2864,12 @@ The basic (non-suffixed) API call on datasets deals with real(cdouble

-
-
3.3.2.1 Function declarations
+
+
3.3.2.1 Function declarations
-
-
3.3.2.2 Source code for double precision functions
+
+
3.3.2.2 Source code for double precision functions
trexio_exit_code
@@ -2951,8 +3032,8 @@ The basic (non-suffixed) API call on datasets deals with real(cdouble
 
-
-
3.3.2.3 Source code for single precision functions
+
+
3.3.2.3 Source code for single precision functions
trexio_exit_code
@@ -3103,11 +3184,11 @@ The basic (non-suffixed) API call on datasets deals with real(cdouble
 
-
-
3.3.2.4 Source code for memory-safe functions
+
+
3.3.2.4 Source code for memory-safe functions
-
trexio_exit_code rc;
+
trexio_exit_code rc;
 int64_t $group_dset_dim$ = 0;
 
 /* Error handling for this call is added by the generator */
@@ -3263,8 +3344,8 @@ rc = trexio_read_$group_dset_dim$_64(file, &($group_dset_dim$));
 
-
-
3.3.2.5 Source code for default functions
+
+
3.3.2.5 Source code for default functions
trexio_exit_code
@@ -3339,8 +3420,8 @@ rc = trexio_read_$group_dset_dim$_64(file, &($group_dset_dim$));
 
-
-

3.3.3 Fortran templates for front end

+
+

3.3.3 Fortran templates for front end

The Fortran templates that provide an access to the C API calls from Fortran. @@ -3432,8 +3513,8 @@ These templates are based on the use of iso_c_binding. Pointers hav

-
-

3.3.4 Python templates for front end

+
+

3.3.4 Python templates for front end

def write_$group_dset$(trexio_file, dset_w) -> None:
@@ -3628,12 +3709,12 @@ These templates are based on the use of iso_c_binding. Pointers hav
 
-
-

3.4 Templates for front end has/read/write a dataset of sparse data

+
+

3.4 Templates for front end has/read/write a dataset of sparse data

-
-

3.4.1 Introduction

+
+

3.4.1 Introduction

Sparse data structures are used typically for large tensors such as @@ -3794,16 +3875,16 @@ This section concerns API calls related to sparse data structures.

-
-

3.4.2 C templates for front end

+
+

3.4.2 C templates for front end

-
-
3.4.2.1 Function declarations
+
+
3.4.2.1 Function declarations
-
-
3.4.2.2 Source code for default functions
+
+
3.4.2.2 Source code for default functions
trexio_exit_code trexio_read_safe_$group_dset$(trexio_t* const file,
@@ -4079,8 +4160,8 @@ This section concerns API calls related to sparse data structures.
 
-
-

3.4.3 Fortran templates for front end

+
+

3.4.3 Fortran templates for front end

The Fortran templates that provide an access to the C API calls from Fortran. @@ -4181,8 +4262,8 @@ These templates are based on the use of iso_c_binding. Pointers hav

-
-

3.4.4 Python templates for front end

+
+

3.4.4 Python templates for front end

def write_$group_dset$(trexio_file: File, offset_file: int, buffer_size: int, indices: list, values: list) -> None:
@@ -4403,12 +4484,12 @@ These templates are based on the use of iso_c_binding. Pointers hav
 
-
-

3.5 Templates for front end has/read/write a dataset of strings

+
+

3.5 Templates for front end has/read/write a dataset of strings

-
-

3.5.1 Introduction

+
+

3.5.1 Introduction

This section concerns API calls related to datasets of strings. @@ -4448,8 +4529,8 @@ This section concerns API calls related to datasets of strings.

-
-

3.5.2 C templates for front end

+
+

3.5.2 C templates for front end

First parameter is the TREXIO file handle. Second parameter is the variable to be written/read @@ -4457,12 +4538,12 @@ to/from the TREXIO file (except for trexio_has_ functi

-
-
3.5.2.1 Function declarations
+
+
3.5.2.1 Function declarations
-
-
3.5.2.2 Source code for default functions
+
+
3.5.2.2 Source code for default functions
trexio_exit_code
@@ -4712,8 +4793,8 @@ to/from the TREXIO file (except for trexio_has_ functi
 
-
-

3.5.3 Fortran templates for front end

+
+

3.5.3 Fortran templates for front end

The Fortran templates that provide an access to the C API calls from Fortran. @@ -4812,8 +4893,8 @@ These templates are based on the use of iso_c_binding. Pointers hav

-
-

3.5.4 Python templates for front end

+
+

3.5.4 Python templates for front end

def write_$group_dset$(trexio_file, dset_w: list) -> None:
@@ -4929,12 +5010,12 @@ These templates are based on the use of iso_c_binding. Pointers hav
 
-
-

3.6 Templates for front end has/read/write a single string attribute

+
+

3.6 Templates for front end has/read/write a single string attribute

-
-

3.6.1 Introduction

+
+

3.6.1 Introduction

This section concerns API calls related to string attributes. @@ -4974,16 +5055,16 @@ This section concerns API calls related to string attributes.

-
-

3.6.2 C templates for front end

+
+

3.6.2 C templates for front end

-
-
3.6.2.1 Function declarations
+
+
3.6.2.1 Function declarations
-
-
3.6.2.2 Source code for default functions
+
+
3.6.2.2 Source code for default functions
trexio_exit_code
@@ -5087,8 +5168,8 @@ This section concerns API calls related to string attributes.
 
-
-

3.6.3 Fortran templates for front end

+
+

3.6.3 Fortran templates for front end

The Fortran templates that provide an access to the C API calls from Fortran. @@ -5168,8 +5249,8 @@ These templates are based on the use of iso_c_binding. Pointers hav

-
-

3.6.4 Python templates for front end

+
+

3.6.4 Python templates for front end

def write_$group_str$(trexio_file, str_w: str) -> None:
@@ -5258,12 +5339,12 @@ These templates are based on the use of iso_c_binding. Pointers hav
 
-
-

3.7 Templates for front end delete an entire group (UNSAFE MODE)

+
+

3.7 Templates for front end delete an entire group (UNSAFE MODE)

-
-

3.7.1 Introduction

+
+

3.7.1 Introduction

This section concerns API calls related to string attributes. @@ -5293,8 +5374,8 @@ This section concerns API calls related to string attributes.

-
-

3.7.2 C templates for front end

+
+

3.7.2 C templates for front end

trexio_exit_code
@@ -5329,8 +5410,8 @@ This section concerns API calls related to string attributes.
 
-
-

3.7.3 Fortran templates for front end

+
+

3.7.3 Fortran templates for front end

The Fortran templates that provide an access to the C API calls from Fortran. @@ -5350,8 +5431,8 @@ These templates are based on the use of iso_c_binding. Pointers hav

-
-

3.7.4 Python templates for front end

+
+

3.7.4 Python templates for front end

def delete_$group$(trexio_file) -> None:
@@ -5376,8 +5457,8 @@ These templates are based on the use of iso_c_binding. Pointers hav
 
-
-

4 General helper functions

+
+

4 General helper functions

This section contains general helper functions like trexio_info. @@ -5404,8 +5485,8 @@ then value of the metadata_unsafe attribute can be changed using th

-
-

4.1 C

+
+

4.1 C

trexio_exit_code
@@ -5450,8 +5531,8 @@ then value of the metadata_unsafe attribute can be changed using th
 
-
-

4.2 Fortran

+
+

4.2 Fortran

interface
@@ -5464,8 +5545,8 @@ then value of the metadata_unsafe attribute can be changed using th
 
-
-

4.3 Python

+
+

4.3 Python

def info():
@@ -5481,8 +5562,8 @@ then value of the metadata_unsafe attribute can be changed using th
 
-
-

5 Fortran helper/wrapper functions

+
+

5 Fortran helper/wrapper functions

The function below adapts the original C-based trexio_open for Fortran. @@ -5634,7 +5715,7 @@ two code are identical, i.e. if the assert statement pass.

Author: TREX-CoE

-

Created: 2022-03-11 Fri 12:54

+

Created: 2022-04-13 Wed 14:40

Validate

diff --git a/templator_hdf5.html b/templator_hdf5.html index 8eb3d0c..17fce5c 100644 --- a/templator_hdf5.html +++ b/templator_hdf5.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + HDF5 back end @@ -311,22 +311,22 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Template for HDF5 definitions

+
+

1 Template for HDF5 definitions

#define $GROUP$_GROUP_NAME          "$group$"
@@ -338,8 +338,8 @@ for the JavaScript code in this tag.
 
-
-

2 Template for HDF5 structures

+
+

2 Template for HDF5 structures

typedef struct trexio_hdf5_s {
@@ -352,8 +352,8 @@ for the JavaScript code in this tag.
 
-
-

3 Template for HDF5 init/deinit

+
+

3 Template for HDF5 init/deinit

trexio_exit_code
@@ -456,8 +456,8 @@ for the JavaScript code in this tag.
 
-
-

4 Template for HDF5 has/read/write a numerical attribute

+
+

4 Template for HDF5 has/read/write a numerical attribute

trexio_exit_code
@@ -560,8 +560,8 @@ for the JavaScript code in this tag.
 
-
-

5 Template for HDF5 has/read/write a dataset of numerical data

+
+

5 Template for HDF5 has/read/write a dataset of numerical data

trexio_exit_code
@@ -694,8 +694,8 @@ for the JavaScript code in this tag.
 
-
-

6 Template for HDF5 has/read/write a dataset of sparse data

+
+

6 Template for HDF5 has/read/write a dataset of sparse data

Sparse data is stored using extensible datasets of HDF5. Extensibility is required @@ -717,7 +717,7 @@ due to the fact that the sparse data will be written in chunks of user-defined s trexio_hdf5_t* f = (trexio_hdf5_t*) file; hid_t index_dtype; - void* index_p = NULL; + const void* index_p; uint64_t size_ranked = (uint64_t) size * $group_dset_rank$; /* Determine the optimal type for storing indices depending on the size_max (usually mo_num or ao_num) */ if (size_max < UINT8_MAX) { @@ -737,7 +737,7 @@ due to the fact that the sparse data will be written in chunks of user-defined s index_p = index; index_dtype = H5T_NATIVE_UINT16; } else { - index_p = (int32_t*) index_sparse; + index_p = (const int32_t*) index_sparse; index_dtype = H5T_NATIVE_INT32; } @@ -896,8 +896,8 @@ due to the fact that the sparse data will be written in chunks of user-defined s

-
-

7 Template for HDF5 has/read/write a dataset of strings

+
+

7 Template for HDF5 has/read/write a dataset of strings

trexio_exit_code
@@ -1094,8 +1094,8 @@ due to the fact that the sparse data will be written in chunks of user-defined s
 
-
-

8 Template for HDF5 has/read/write a string attribute

+
+

8 Template for HDF5 has/read/write a string attribute

trexio_exit_code
@@ -1221,8 +1221,8 @@ due to the fact that the sparse data will be written in chunks of user-defined s
 
-
-

9 Template for HDF5 delete a group (UNSAFE mode)

+
+

9 Template for HDF5 delete a group (UNSAFE mode)

Note: in early versions of the HDF5 library (v < 1.10) unlinking an object was not working as expected @@ -1262,8 +1262,8 @@ Thus, any corrupted/lost file space will remain in the first file. The use of

-
-

10 Helper functions

+
+

10 Helper functions

trexio_exit_code
@@ -1524,7 +1524,7 @@ Thus, any corrupted/lost file space will remain in the first file. The use of 
 

Author: TREX-CoE

-

Created: 2022-03-11 Fri 12:54

+

Created: 2022-04-13 Wed 14:40

Validate

diff --git a/templator_text.html b/templator_text.html index 4ebd90d..5b2a567 100644 --- a/templator_text.html +++ b/templator_text.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + TEXT back end @@ -311,29 +311,29 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 TEXT back end

+
+

1 TEXT back end

The "file" produced by the text back end is a directory with one @@ -354,8 +354,8 @@ The file is written when closed, or when the flush function is called.

-
-

1.1 Template for group-related structures in text back end

+
+

1.1 Template for group-related structures in text back end

typedef struct $group$_s {
@@ -374,8 +374,8 @@ The file is written when closed, or when the flush function is called.
 
-
-

1.2 Template for general structure in text back end

+
+

1.2 Template for general structure in text back end

typedef struct trexio_text_s {
@@ -388,8 +388,8 @@ The file is written when closed, or when the flush function is called.
 
-
-

1.3 Initialize function (constant part)

+
+

1.3 Initialize function (constant part)

trexio_exit_code
@@ -532,8 +532,8 @@ The file is written when closed, or when the flush function is called.
 
-
-

1.4 Deinitialize function (templated part)

+
+

1.4 Deinitialize function (templated part)

trexio_exit_code
@@ -555,8 +555,8 @@ The file is written when closed, or when the flush function is called.
 
-
-

1.5 Template for text read a group

+
+

1.5 Template for text read a group

$group$_t*
@@ -857,8 +857,8 @@ trexio_text_read_$group$ (trexio_text_t* 
 
-
-

1.6 Template for text flush a group

+
+

1.6 Template for text flush a group

trexio_exit_code
@@ -922,8 +922,8 @@ trexio_text_read_$group$ (trexio_text_t* 
 
-
-

1.7 Template for text free memory

+
+

1.7 Template for text free memory

Memory is allocated when reading. The following function frees memory. @@ -970,8 +970,8 @@ Memory is allocated when reading. The following function frees memory.

-
-

1.8 Template for has/read/write a numerical attribute

+
+

1.8 Template for has/read/write a numerical attribute

trexio_exit_code
@@ -1034,8 +1034,8 @@ Memory is allocated when reading. The following function frees memory.
 
-
-

1.9 Template for has/read/write a dataset of numerical data

+
+

1.9 Template for has/read/write a dataset of numerical data

The group_dset array is assumed allocated with the appropriate size. @@ -1131,8 +1131,8 @@ The group_dset array is assumed allocated with the appropriate size

-
-

1.10 Template for has/read/write a dataset of strings

+
+

1.10 Template for has/read/write a dataset of strings

The group_dset array is assumed allocated with the appropriate size. @@ -1233,8 +1233,8 @@ The group_dset array is assumed allocated with the appropriate size

-
-

1.11 Template for has/read/write a string attribute

+
+

1.11 Template for has/read/write a string attribute

trexio_exit_code
@@ -1308,8 +1308,8 @@ The group_dset array is assumed allocated with the appropriate size
 
-
-

1.12 Template for has/read/write the dataset of sparse data

+
+

1.12 Template for has/read/write the dataset of sparse data

Each sparse array is stored in a separate .txt file due to the fact that sparse I/O has to be decoupled @@ -1583,8 +1583,8 @@ User provides indices and values of the sparse array as two separate variables.

-
-

1.13 Template for text delete a group (UNSAFE mode)

+
+

1.13 Template for text delete a group (UNSAFE mode)

trexio_exit_code
@@ -1615,7 +1615,7 @@ User provides indices and values of the sparse array as two separate variables.
 

Author: TREX-CoE

-

Created: 2022-03-11 Fri 12:54

+

Created: 2022-04-13 Wed 14:40

Validate

diff --git a/theme.setup b/theme.setup index eb5b7f6..f259c95 100644 --- a/theme.setup +++ b/theme.setup @@ -8,7 +8,7 @@ #+INFOJS_OPT: toc:t mouse:underline path:org-info.js #+HTML_HEAD: -#+STARTUP: align fold nodlcheck hidestars oddeven lognotestate +#+STARTUP: align nodlcheck hidestars oddeven lognotestate #+AUTHOR: TREX-CoE #+LANGUAGE: en diff --git a/trex.html b/trex.html index 0f9e4bd..28be10e 100644 --- a/trex.html +++ b/trex.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + TREX Configuration file @@ -333,33 +333,34 @@ for the JavaScript code in this tag.

Table of Contents

@@ -367,18 +368,12 @@ for the JavaScript code in this tag. This page contains information about the general structure of the TREXIO library. The source code of the library can be automatically generated based on the contents of the trex.json configuration file, -which itself is compiled from different sections (groups) presented +which itself is generated from different sections (groups) presented below.

-For more information about the automatic generation on the source code -or regarding possible modifications, please contact the TREXIO -developers. -

- -

-All quantities are saved in TREXIO file in atomic units. The +All quantities are saved in TREXIO files in atomic units. The dimensions of the arrays in the tables below are given in column-major order (as in Fortran), and the ordering of the dimensions is reversed in the produced trex.json configuration file as the library is @@ -389,7 +384,7 @@ written in C. TREXIO currently supports int, float and str types for both single attributes and arrays. Note, that some attributes might have dim type (e.g. num of the nucleus group). This type is treated -exactly the same as int with the only difference that dim +exactly in the same way as int with the only difference that dim variables cannot be negative. This additional constraint is required because dim attributes are used internally to allocate memory and to check array boundaries in the memory-safe API. Most of the times, the @@ -397,8 +392,8 @@ check array boundaries in the memory-safe API. Most of the times, the

-In Fortran, the arrays are 1-based and in most other languages the -arrays are 0-based. Hence, we introduce the index type which is an +In Fortran, arrays are 1-based and in most other languages the +arrays are 0-based. Hence, we introduce the index type which is a 1-based int in the Fortran interface and 0-based otherwise.

@@ -406,11 +401,13 @@ arrays are 0-based. Hence, we introduce the index type which is an For sparse data structures such as electron replusion integrals, the data can be too large to fit in memory and the data needs to be fetched using multiple function calls to perform I/O on buffers. +For more information on how to read/write sparse data structures, see +the examples.

-
-

1 Metadata (metadata group)

+
+

1 Metadata (metadata group)

As we expect our files to be archived in open-data repositories, we @@ -420,7 +417,7 @@ which have participated to the creation of the file, a list of authors of the file, and a textual description.

-
+
@@ -501,15 +498,15 @@ then the unsafe attribute value can be manually overwritten (in uns -
-

2 Electron (electron group)

+
+

2 Electron (electron group)

We consider wave functions expressed in the spin-free formalism, where the number of ↑ and ↓ electrons is fixed.

-
+
@@ -530,6 +527,13 @@ the number of ↑ and ↓ electrons is fixed. + + + + + + + @@ -548,15 +552,15 @@ the number of ↑ and ↓ electrons is fixed. -
-

3 Nucleus (nucleus group)

+
+

3 Nucleus (nucleus group)

The nuclei are considered as fixed point charges. Coordinates are given in Cartesian \((x,y,z)\) format.

-
numdim Number of electrons
up_num int
+
@@ -623,8 +627,8 @@ given in Cartesian \((x,y,z)\) format. -
-

4 Effective core potentials (ecp group)

+
+

4 Effective core potentials (ecp group)

An effective core potential (ECP) \(V_A^{\text{ECP}}\) replacing the @@ -657,7 +661,7 @@ The functions \(V_{A\ell}\) are parameterized as: See http://dx.doi.org/10.1063/1.4984046 or https://doi.org/10.1063/1.5121006 for more info.

-
+
@@ -759,8 +763,8 @@ If you encounter the aforementioned issue, please report it to our -

4.1 Example

+
+

4.1 Example

For example, consider H2 molecule with the following @@ -823,8 +827,8 @@ power = [

-
-

5 Basis set (basis group)

+
+

5 Basis set (basis group)

We consider here basis functions centered on nuclei. Hence, we enable @@ -877,7 +881,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:

-
+
@@ -971,8 +975,8 @@ All the basis set parameters are stored in one-dimensional arrays:
-
-

5.1 Example

+
+

5.1 Example

For example, consider H2 with the following basis set (in GAMESS @@ -1050,8 +1054,8 @@ prim_factor =

-
-

6 Atomic orbitals (ao group)

+
+

6 Atomic orbitals (ao group)

Going from the atomic basis set to AOs implies a systematic @@ -1104,13 +1108,13 @@ shell, as in the GAMESS convention where

In such a case, one should set the normalization of the shell (in -the Basis set section) to \(\mathcal{N}_{z^2}\), which is the +the Basis set 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}}\).

- +
@@ -1162,8 +1166,8 @@ introduced here should be \(\frac{\mathcal{N}_{xy}}{\mathcal{N}_{z^2}}\).
-
-

6.1 One-electron integrals (ao_1e_int group)

+
+

6.1 One-electron integrals (ao_1e_int group)

  • \[ \hat{V}_{\text{ne}} = \sum_{A=1}^{N_\text{nucl}} @@ -1180,7 +1184,7 @@ The one-electron integrals for a one-electron operator \(\hat{O}\) are over atomic orbitals.

    - +
    @@ -1240,8 +1244,8 @@ over atomic orbitals. -
    -

    6.2 Two-electron integrals (ao_2e_int group)

    +
    +

    6.2 Two-electron integrals (ao_2e_int group)

    The two-electron integrals for a two-electron operator \(\hat{O}\) are @@ -1262,7 +1266,7 @@ notation. \mathbf{r}_j \vert)}{\vert \mathbf{r}_i - \mathbf{r}_j \vert} \] : electron-electron long range potential -

    +
    @@ -1302,10 +1306,10 @@ notation. -
    -

    7 Molecular orbitals (mo group)

    +
    +

    7 Molecular orbitals (mo group)

    -
    +
    @@ -1371,8 +1375,8 @@ notation.
-
-

7.1 One-electron integrals (mo_1e_int group)

+
+

7.1 One-electron integrals (mo_1e_int group)

The operators as the same as those defined in the @@ -1380,7 +1384,7 @@ The operators as the same as those defined in the the basis of molecular orbitals.

- +
@@ -1440,8 +1444,8 @@ the basis of molecular orbitals. -
-

7.2 Two-electron integrals (mo_2e_int group)

+
+

7.2 Two-electron integrals (mo_2e_int group)

The operators as the same as those defined in the @@ -1449,7 +1453,7 @@ The operators as the same as those defined in the the basis of molecular orbitals.

-
+
@@ -1489,11 +1493,11 @@ the basis of molecular orbitals. -
-

8 TODO Slater determinants

+
+

8 TODO Slater determinants

-
-

9 Reduced density matrices (rdm group)

+
+

9 Reduced density matrices (rdm group)

The reduced density matrices are defined in the basis of molecular @@ -1546,7 +1550,7 @@ The total energy can be computed as: \]

-
+
@@ -1626,10 +1630,78 @@ The total energy can be computed as:
+ +
+

10 Quantum Monte Carlo data (qmc group)

+
+

+In quantum Monte Carlo calculations, the wave function is evaluated +at points of the 3N-dimensional space. Some algorithms require multiple +independent walkers, so it is possible to store multiple coordinates, +as well as some quantities evaluated at those points. +

+ +

+By convention, the electron coordinates contain first all the electrons +of $↑$-spin and then all the $↓$-spin. +

+ + + + +++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariableTypeDimensionsDescription
numdim Number of 3N-dimensional points
pointfloat(3, electron.num, qmc.num)3N-dimensional points
psifloat(qmc.num)Wave function evaluated at the points
e_locfloat(qmc.num)Local energy evaluated at the points
+
+

Author: TREX-CoE

-

Created: 2022-03-11 Fri 12:54

+

Created: 2022-04-13 Wed 14:40

Validate