diff --git a/README.html b/README.html index 29fad68..1da723f 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 @@ -342,7 +342,7 @@ and bug reports should be submitted at

Author: TREX-CoE

-

Created: 2021-06-22 Tue 10:22

+

Created: 2021-06-22 Tue 20:32

Validate

diff --git a/Sparse.html b/Sparse.html index c51174a..19f8559 100644 --- a/Sparse.html +++ b/Sparse.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + @@ -232,8 +232,8 @@ for the JavaScript code in this tag.

Table of Contents

@@ -241,8 +241,8 @@ for the JavaScript code in this tag. See templatorfront.org

-
-

1 Text back end

+
+

1 Text back end

As the size of the dataset should be extensible, the simplest @@ -256,8 +256,8 @@ The offset can be used with fseek(69L*offset, SEEK_SET)

-
-

2 HDF5 Back end

+
+

2 HDF5 Back end

We need to declare the number of rows of the dataset as @@ -278,7 +278,7 @@ If the offset+num > nmax, we need to extend the dataset.

-

Created: 2021-06-22 Tue 10:22

+

Created: 2021-06-22 Tue 20:32

Validate

diff --git a/index.html b/index.html index 29fad68..1da723f 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 @@ -342,7 +342,7 @@ and bug reports should be submitted at

Author: TREX-CoE

-

Created: 2021-06-22 Tue 10:22

+

Created: 2021-06-22 Tue 20:32

Validate

diff --git a/templator_front.html b/templator_front.html index 993d47e..0769f82 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,61 +333,61 @@ 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
  • @@ -402,8 +402,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 @@ -438,8 +438,8 @@ The maximum string size for the filenames is 4096 characters.

-
-

2 Front end

+
+

2 Front end

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

-
-

2.1 Error handling

+
+

2.1 Error handling

- +
@@ -553,9 +553,9 @@ TREXIO front end is modular, which simplifies implementation of new back ends. - + - + @@ -691,8 +691,8 @@ The text strings are extracted from the previous table. case TREXIO_INVALID_NUM: return"Invalid dimensions"; break; - case TREXIO_NUM_ALREADY_EXISTS: - return"Dimensioning variable already exists"; + case TREXIO_ATTR_ALREADY_EXISTS: + return"Attribute (num/str) already exists"; break; case TREXIO_DSET_ALREADY_EXISTS: return"Dataset already exists"; @@ -750,8 +750,8 @@ The text strings are extracted from the previous table. -
-

2.2 Back ends

+
+

2.2 Back ends

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

-
-

2.3 Read/write behavior

+
+

2.3 Read/write behavior

Every time a reading function is called, the data is read from the @@ -812,8 +812,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 @@ -846,8 +846,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 @@ -866,8 +866,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 existing one. @@ -1058,8 +1058,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. @@ -1155,12 +1155,12 @@ output:

-
-

3 Templates for front end

+
+

3 Templates for front end

-
-

3.1 Description

+
+

3.1 Description

Consider the following block of trex.json: @@ -1350,8 +1350,8 @@ or double precision for integer and floating point numbers.

-
-

3.2 Templates for front end has/read/write a single dimensioning variable

+
+

3.2 Templates for front end has/read/write a single dimensioning variable

This section concerns API calls related to dimensioning variables. @@ -1420,8 +1420,8 @@ This section concerns API calls related to dimensioning variables.

TREXIO_NUM_ALREADY_EXISTSTREXIO_ATTR_ALREADY_EXISTS 13'Dimensioning variable already exists''Attribute (num/str) already exists'
-
-

3.2.1 C templates for front end

+
+

3.2.1 C templates for front end

The C templates that correspond to each of the abovementioned @@ -1474,7 +1474,7 @@ precision (see Table above). { if (file == NULL) return TREXIO_INVALID_ARG_1; if (num < 0 ) return TREXIO_INVALID_ARG_2; - if (trexio_has_$group_num$(file) == TREXIO_SUCCESS) return TREXIO_NUM_ALREADY_EXISTS; + if (trexio_has_$group_num$(file) == TREXIO_SUCCESS) return TREXIO_ATTR_ALREADY_EXISTS; switch (file->back_end) { @@ -1537,7 +1537,7 @@ precision (see Table above). if (file == NULL) return TREXIO_INVALID_ARG_1; if (num < 0 ) return TREXIO_INVALID_ARG_2; - if (trexio_has_$group_num$(file) == TREXIO_SUCCESS) return TREXIO_NUM_ALREADY_EXISTS; + if (trexio_has_$group_num$(file) == TREXIO_SUCCESS) return TREXIO_ATTR_ALREADY_EXISTS; switch (file->back_end) { @@ -1610,8 +1610,8 @@ precision (see Table above).

-
-

3.2.2 Fortran templates for front end

+
+

3.2.2 Fortran templates for front end

The Fortran templates that provide an access to the C API calls from Fortran. @@ -1697,8 +1697,8 @@ 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

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

-
-

3.3.1 C templates for front end

+
+

3.3.1 C templates for front end

The C templates that correspond to each of the abovementioned functions can be found below. @@ -2087,8 +2087,8 @@ The basic (non-suffixed) API call on datasets deals with double precision (see T

-
-

3.3.2 Fortran templates for front end

+
+

3.3.2 Fortran templates for front end

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

-
-

3.4 Sparse data structures

+
+

3.4 Sparse data structures

Sparse data structures are used typically for large tensors such as @@ -2316,12 +2316,12 @@ For the values,

-
-

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. @@ -2361,8 +2361,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 @@ -2605,8 +2605,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. @@ -2703,12 +2703,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. @@ -2748,8 +2748,8 @@ 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

trexio_exit_code
@@ -2791,7 +2791,7 @@ This section concerns API calls related to string attributes.
   if (file == NULL) return TREXIO_INVALID_ARG_1;
   if (str  == NULL) return TREXIO_INVALID_ARG_2;
   if (max_str_len <= 0) return TREXIO_INVALID_ARG_3;
-  if (trexio_has_$group_str$(file) == TREXIO_SUCCESS) return TREXIO_NUM_ALREADY_EXISTS;
+  if (trexio_has_$group_str$(file) == TREXIO_SUCCESS) return TREXIO_ATTR_ALREADY_EXISTS;
 
   size_t len_write = strlen(str);
   if (max_str_len < len_write) return TREXIO_INVALID_STR_LEN;  
@@ -2849,8 +2849,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. @@ -2929,8 +2929,8 @@ These templates are based on the use of iso_c_binding. Pointers hav

-
-

4 Fortran helper/wrapper functions

+
+

4 Fortran helper/wrapper functions

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

Author: TREX-CoE

-

Created: 2021-06-22 Tue 10:22

+

Created: 2021-06-22 Tue 20:32

Validate

diff --git a/templator_hdf5.html b/templator_hdf5.html index 63eec39..d609030 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,27 +311,27 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 HDF5 back end

+
+

1 HDF5 back end

-
-

1.1 Template for HDF5 definitions

+
+

1.1 Template for HDF5 definitions

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

1.2 Template for HDF5 structures

+
+

1.2 Template for HDF5 structures

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

1.3 Template for HDF5 init/deinit

+
+

1.3 Template for HDF5 init/deinit

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

1.4 Template for HDF5 has/read/write a single dimensioning variable

+
+

1.4 Template for HDF5 has/read/write a single dimensioning variable

trexio_exit_code
@@ -515,25 +515,16 @@ for the JavaScript code in this tag.
     trexio_exit_code rc = trexio_hdf5_read_$group_num$(file, &(infile_num));
     if (rc != TREXIO_SUCCESS) return rc;
 
-    if (infile_num != num) {
+    const hid_t dtype = H5Tcopy(H5T_NATIVE_UINT64);
+    const hid_t num_id = H5Aopen(f->$group$_group, $GROUP_NUM$_NAME, H5P_DEFAULT);
+    if (num_id <= 0) return TREXIO_INVALID_ID;
 
-      if (infile_num != 0) {
+    const herr_t status = H5Awrite(num_id, dtype, &(num));
+    if (status < 0) return TREXIO_FAILURE;
 
-        return TREXIO_NUM_ALREADY_EXISTS;
+    H5Aclose(num_id);
+    H5Tclose(dtype);
 
-      } else {
-
-        const hid_t dtype = H5Tcopy(H5T_NATIVE_UINT64);
-        const hid_t num_id = H5Aopen(f->$group$_group, $GROUP_NUM$_NAME, H5P_DEFAULT);
-        if (num_id <= 0) return TREXIO_INVALID_ID;
-
-        const herr_t status = H5Awrite(num_id, dtype, &(num));
-        if (status < 0) return TREXIO_FAILURE;
-
-        H5Aclose(num_id);
-        H5Tclose(dtype);
-      }
-    }
     return TREXIO_SUCCESS;
   }
 
@@ -566,8 +557,8 @@ for the JavaScript code in this tag.
 
-
-

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

+
+

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

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

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

+
+

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

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

1.7 Template for HDF5 has/read/write a single string attribute

+
+

1.7 Template for HDF5 has/read/write a single string attribute

trexio_exit_code
@@ -1029,7 +1020,7 @@ for the JavaScript code in this tag.
 

Author: TREX-CoE

-

Created: 2021-06-22 Tue 10:22

+

Created: 2021-06-22 Tue 20:32

Validate

diff --git a/templator_text.html b/templator_text.html index ba2933e..6ccc7fd 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,26 +311,26 @@ 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 @@ -361,8 +361,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 {
@@ -380,8 +380,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 rdm_s {
@@ -407,8 +407,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
@@ -509,8 +509,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
@@ -535,8 +535,8 @@ The file is written when closed, or when the flush function is called.
 
-
-

1.5 Template for text read struct

+
+

1.5 Template for text read struct

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

1.6 Template for text flush struct

+
+

1.6 Template for text flush struct

trexio_exit_code
@@ -872,8 +872,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. @@ -918,8 +918,8 @@ Memory is allocated when reading. The following function frees memory.

-
-

1.8 Template for has/read/write the num attribute

+
+

1.8 Template for has/read/write the num attribute

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

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

+
+

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

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

-
-

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

+
+

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

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

-
-

1.11 Template for has/read/write the string attribute

+
+

1.11 Template for has/read/write the string attribute

trexio_exit_code
@@ -1256,12 +1256,12 @@ The group_dset array is assumed allocated with the appropriate size
 
-
-

1.12 RDM struct (hard-coded)

+
+

1.12 RDM struct (hard-coded)

-
-

1.12.1 Read the complete struct

+
+

1.12.1 Read the complete struct

rdm_t* trexio_text_read_rdm(trexio_text_t* const file);
@@ -1356,8 +1356,8 @@ The group_dset array is assumed allocated with the appropriate size
 
-
-

1.12.2 Flush the complete struct

+
+

1.12.2 Flush the complete struct

trexio_exit_code trexio_text_flush_rdm(trexio_text_t* const file);
@@ -1399,8 +1399,8 @@ The group_dset array is assumed allocated with the appropriate size
 
-
-

1.12.3 Free memory

+
+

1.12.3 Free memory

Memory is allocated when reading. The followig function frees memory. @@ -1436,8 +1436,8 @@ Memory is allocated when reading. The followig function frees memory.

-
-

1.12.4 Read/Write the onee attribute

+
+

1.12.4 Read/Write the onee attribute

The one_e array is assumed allocated with the appropriate size. @@ -1503,8 +1503,8 @@ The one_e array is assumed allocated with the appropriate size.

-
-

1.12.5 Read/Write the twoe attribute

+
+

1.12.5 Read/Write the twoe attribute

two_e is a sparse data structure, which can be too large to fit @@ -1612,7 +1612,7 @@ file for each sparse float structure.

Author: TREX-CoE

-

Created: 2021-06-22 Tue 10:22

+

Created: 2021-06-22 Tue 20:32

Validate

diff --git a/trex.html b/trex.html index aece918..3201e3a 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,28 +333,28 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Metadata

+
+

1 Metadata

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

- +
@@ -442,15 +442,15 @@ authors of the file, and a textual description. -
-

2 Electron

+
+

2 Electron

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

-
+
@@ -481,15 +481,15 @@ the number of ↑ and ↓ electrons is fixed. -
-

3 Nucleus

+
+

3 Nucleus

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

-
+
@@ -541,8 +541,8 @@ given in Cartesian \((x,y,z)\) format. -
-

4 TODO Effective core potentials

+
+

4 TODO Effective core potentials

An effective core potential (ECP) \(V_A^{\text{pp}}\) replacing the @@ -587,7 +587,7 @@ letters are parameters.

  • \(\hat{V}_\text{ecp,nl} = \sum_A \hat{V}_A^{\text{nl}}\) : non-local component
  • -
    +
    @@ -688,8 +688,8 @@ letters are parameters. -
    -

    5 Basis set

    +
    +

    5 Basis set

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

    -
    +
    @@ -903,8 +903,8 @@ prim_factor = -
    -

    6 Atomic orbitals

    +
    +

    6 Atomic orbitals

    Going from the atomic basis set to AOs implies a systematic @@ -952,13 +952,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}}\).

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

    6.1 One-electron integrals

    +
    +

    6.1 One-electron integrals

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

      - +
      @@ -1080,8 +1080,8 @@ over atomic orbitals. -
      -

      6.2 Two-electron integrals

      +
      +

      6.2 Two-electron integrals

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

      +
      @@ -1134,10 +1134,10 @@ notation. -
      -

      7 Molecular orbitals

      +
      +

      7 Molecular orbitals

      -
      +
      @@ -1195,8 +1195,8 @@ notation.
    -
    -

    7.1 One-electron integrals

    +
    +

    7.1 One-electron integrals

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

    - +
    @@ -1263,8 +1263,8 @@ the basis of molecular orbitals. -
    -

    7.2 Two-electron integrals

    +
    +

    7.2 Two-electron integrals

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

    -
    +
    @@ -1304,13 +1304,13 @@ the basis of molecular orbitals. -
    -

    8 TODO Slater determinants

    +
    +

    8 TODO Slater determinants

    -
    -

    9 TODO Reduced density matrices

    +
    +

    9 TODO Reduced density matrices

    -
    +
    @@ -1349,15 +1349,15 @@ the basis of molecular orbitals. -
    -

    10 Appendix

    +
    +

    10 Appendix

    -
    -

    10.1 Python script from table to json

    +
    +

    10.1 Python script from table to json

    -
    print("""#+begin_src python :tangle trex.json""")
    +
    print("""#+begin_src python :tangle trex.json""")
     print("""    "%s": {"""%(title))
     indent = "        "
     f1 = 0 ; f2 = 0 ; f3 = 0
    @@ -1416,7 +1416,7 @@ the basis of molecular orbitals.
     

    Author: TREX-CoE

    -

    Created: 2021-06-22 Tue 10:22

    +

    Created: 2021-06-22 Tue 20:32

    Validate