From c2afeba05fa5bab1c676cccb767ef8b916e70edc Mon Sep 17 00:00:00 2001 From: q-posev <45995097+q-posev@users.noreply.github.com> Date: Wed, 16 Feb 2022 13:52:14 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20TREX-CoE?= =?UTF-8?q?/trexio@9482ff357dfc374e0965de3d310d0c7416f391ad=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 | 494 +++++++++++++++++++++--------------------- templator_hdf5.html | 64 +++--- templator_text.html | 497 ++++++++++++++++++++++--------------------- trex.html | 116 +++++----- 7 files changed, 635 insertions(+), 626 deletions(-) diff --git a/README.html b/README.html index a34aacb..4439d24 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-02-04 Fri 10:23

+

Created: 2022-02-16 Wed 13:52

Validate

diff --git a/examples.html b/examples.html index 674a08f..a5fd9ce 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-02-04 Fri 10:23

+

Created: 2022-02-16 Wed 13:52

Validate

diff --git a/index.html b/index.html index a34aacb..4439d24 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-02-04 Fri 10:23

+

Created: 2022-02-16 Wed 13:52

Validate

diff --git a/templator_front.html b/templator_front.html index aeb544b..0efecdc 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,159 @@ 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 +500,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 +536,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 +545,10 @@ TREXIO front end is modular, which simplifies implementation of new back ends.

-
-

2.1 Error handling

+
+

2.1 Error handling

- +
@@ -795,8 +795,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 +822,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 +937,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 +954,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 +994,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 +1024,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 +1074,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 +1116,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 +1132,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 +1162,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 +1197,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:
@@ -1280,8 +1280,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 @@ -1300,8 +1300,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. @@ -1357,8 +1357,8 @@ renaming the .txt data files.

-
-

2.6.1 C

+
+

2.6.1 C

trexio_t*
@@ -1628,8 +1628,8 @@ renaming the .txt data files.
 
-
-

2.6.2 Fortran

+
+

2.6.2 Fortran

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

2.6.3 Python

+
+

2.6.3 Python

def _open(file_name: str, mode: str, back_end: int):
@@ -1696,8 +1696,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 @@ -1730,8 +1730,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. @@ -1748,8 +1748,8 @@ output:

-
-

2.7.1 C

+
+

2.7.1 C

trexio_exit_code
@@ -1830,8 +1830,8 @@ output:
 
-
-

2.7.2 Fortran

+
+

2.7.2 Fortran

interface
@@ -1846,8 +1846,8 @@ output:
 
-
-

2.7.3 Python

+
+

2.7.3 Python

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

2.8 File existence

+
+

2.8 File existence

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

-
-

2.8.1 C

+
+

2.8.1 C

trexio_exit_code
@@ -1937,8 +1937,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. @@ -1958,8 +1958,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:
@@ -1979,12 +1979,12 @@ The front end Fortran function for trexio_inquire can be found in t
 
-
-

3 Templates for front end

+
+

3 Templates for front end

-
-

3.1 Description

+
+

3.1 Description

Consider the following block of trex.json: @@ -2205,12 +2205,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, @@ -2281,8 +2281,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 @@ -2296,12 +2296,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
@@ -2365,8 +2365,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
@@ -2442,8 +2442,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
@@ -2498,8 +2498,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. @@ -2591,8 +2591,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:
@@ -2677,12 +2677,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. @@ -2764,8 +2764,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. @@ -2776,12 +2776,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
@@ -2944,8 +2944,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
@@ -3096,11 +3096,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 */
@@ -3256,8 +3256,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
@@ -3332,8 +3332,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. @@ -3425,8 +3425,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:
@@ -3621,12 +3621,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 @@ -3787,16 +3787,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,
@@ -4072,8 +4072,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. @@ -4174,8 +4174,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:
@@ -4396,12 +4396,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. @@ -4441,8 +4441,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 @@ -4450,12 +4450,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
@@ -4705,8 +4705,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. @@ -4805,8 +4805,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:
@@ -4922,12 +4922,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. @@ -4967,16 +4967,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
@@ -5080,8 +5080,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. @@ -5161,8 +5161,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:
@@ -5251,12 +5251,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. @@ -5286,8 +5286,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
@@ -5322,8 +5322,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. @@ -5343,8 +5343,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:
@@ -5369,8 +5369,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. @@ -5397,8 +5397,8 @@ then value of the metadata_unsafe attribute can be changed using th

-
-

4.1 C

+
+

4.1 C

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

4.2 Fortran

+
+

4.2 Fortran

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

4.3 Python

+
+

4.3 Python

def info():
@@ -5474,8 +5474,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. @@ -5627,7 +5627,7 @@ two code are identical, i.e. if the assert statement pass.

Author: TREX-CoE

-

Created: 2022-02-04 Fri 10:22

+

Created: 2022-02-16 Wed 13:52

Validate

diff --git a/templator_hdf5.html b/templator_hdf5.html index c1a736e..77cd41b 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 @@ -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-02-04 Fri 10:23

+

Created: 2022-02-16 Wed 13:52

Validate

diff --git a/templator_text.html b/templator_text.html index e7fc0c1..f3c86a1 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,18 +354,18 @@ 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 {
   $group_num_dtype_double$ $group_num$;
-  bool $group_num$_isSet;
   $group_dset_dtype$*  $group_dset$;
-  uint32_t rank_$group_dset$;
-  uint32_t to_flush;
   uint64_t dims_$group_dset$[16];
   uint64_t len_$group_str$;
+  uint32_t rank_$group_dset$;
+  uint32_t to_flush;
+  bool $group_num$_isSet;
   char*    $group_str$;
   char     file_name[TREXIO_MAX_FILENAME_LENGTH];
 } $group$_t;
@@ -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*
@@ -605,234 +605,243 @@ trexio_text_read_$group$ (trexio_text_t* return NULL;
     }
 
-    /* Read the dimensioning variables */
     int rc = 0;
-    // START REPEAT GROUP_DSET_ALL
-    rc = fscanf(f, "%1023s", buffer);
-    if ((rc != 1) || (strcmp(buffer, "rank_$group_dset$") != 0)) {
-      FREE(buffer);
-      fclose(f);
-      FREE($group$);
-      return NULL;
-    }
-
-    rc = fscanf(f, "%u", &($group$->rank_$group_dset$));
-    if (rc != 1) {
-      FREE(buffer);
-      fclose(f);
-      FREE($group$);
-      return NULL;
-    }
+    trexio_exit_code rc_free = TREXIO_FAILURE;
 
     /* workaround for the case of missing blocks in the file */
+    // START REPEAT GROUP_DSET_ALL
     uint64_t size_$group_dset$ = 0;
-    if ($group$->rank_$group_dset$ != 0) size_$group_dset$ = 1;
-
-    for (uint32_t i=0; i<$group$->rank_$group_dset$; ++i){
-
-      uint32_t j=0;
-
-      rc = fscanf(f, "%1023s %u", buffer, &j);
-      if ((rc != 2) || (strcmp(buffer, "dims_$group_dset$") != 0) || (j!=i)) {
-        FREE(buffer);
-        fclose(f);
-        FREE($group$);
-        return NULL;
-      }
-
-      rc = fscanf(f, "%" SCNu64 "\n", &($group$->dims_$group_dset$[i]));
-      assert(!(rc != 1));
-      if (rc != 1) {
-        FREE(buffer);
-        fclose(f);
-        FREE($group$);
-        return NULL;
-      }
-
-      size_$group_dset$ *= $group$->dims_$group_dset$[i];
-    }
     // END REPEAT GROUP_DSET_ALL
 
-    // START REPEAT GROUP_NUM
-    /* Read data */
-    unsigned int $group_num$_isSet;
-    rc = fscanf(f, "%1023s", buffer);
-    assert(!((rc != 1) || (strcmp(buffer, "$group_num$_isSet") != 0)));
-    if ((rc != 1) || (strcmp(buffer, "$group_num$_isSet") != 0)) {
-      FREE(buffer);
-      fclose(f);
-      FREE($group$);
-      return NULL;
-    }
+    while(fscanf(f, "%1023s", buffer) != EOF) {
 
-    /* additional parameter $group_num$_isSet is needed to suppress warning when fscanf into bool variable using %u or %d */
-    rc = fscanf(f, "%u", &($group_num$_isSet));
-    $group$->$group_num$_isSet = (bool) $group_num$_isSet;
-    assert(!(rc != 1));
-    if (rc != 1) {
-      FREE(buffer);
-      fclose(f);
-      FREE($group$);
-      return NULL;
-    }
+      if (strcmp(buffer, "EXIT") == 0) {
+        break;
+      // START REPEAT GROUP_DSET_ALL
+      } else if (strcmp(buffer, "rank_$group_dset$") == 0) {
 
-    if ($group$->$group_num$_isSet == true) {
-      rc = fscanf(f, "%1023s", buffer);
-      assert(!((rc != 1) || (strcmp(buffer, "$group_num$") != 0)));
-      if ((rc != 1) || (strcmp(buffer, "$group_num$") != 0)) {
-        FREE(buffer);
-        fclose(f);
-        FREE($group$);
-        return NULL;
-      }
+        rc = fscanf(f, "%u", &($group$->rank_$group_dset$));
+        if (rc != 1) {
+          FREE(buffer);
+          fclose(f);
+          /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+          file->$group$ = $group$;
+          rc_free = trexio_text_free_$group$(file);
+          assert(rc_free == TREXIO_SUCCESS);
+          return NULL;
+        }
 
-      rc = fscanf(f, "%$group_num_format_scanf$", &($group$->$group_num$));
-      assert(!(rc != 1));
-      if (rc != 1) {
-        FREE(buffer);
-        fclose(f);
-        FREE($group$);
-        return NULL;
-      }
-    }
-    // END REPEAT GROUP_NUM
+        if ($group$->rank_$group_dset$ != 0) size_$group_dset$ = 1UL;
 
-    // START REPEAT GROUP_ATTR_STR
-    rc = fscanf(f, "%1023s", buffer);
-    assert(!((rc != 1) || (strcmp(buffer, "len_$group_str$") != 0)));
-    if ((rc != 1) || (strcmp(buffer, "len_$group_str$") != 0)) {
-      FREE(buffer);
-      fclose(f);
-      FREE($group$);
-      return NULL;
-    }
+        for (uint32_t i=0; i<$group$->rank_$group_dset$; ++i){
 
-    rc = fscanf(f, "%" SCNu64 "", &($group$->len_$group_str$));
-    assert(!(rc != 1));
-    if (rc != 1) {
-      FREE(buffer);
-      fclose(f);
-      FREE($group$);
-      return NULL;
-    }
+          uint32_t j=0;
+          rc = fscanf(f, "%1023s %u", buffer, &j);
+          if ((rc != 2) || (strcmp(buffer, "dims_$group_dset$") != 0) || (j!=i)) {
+            FREE(buffer);
+            fclose(f);
+            /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+            file->$group$ = $group$;
+            rc_free = trexio_text_free_$group$(file);
+            assert(rc_free == TREXIO_SUCCESS);
+            return NULL;
+          }
 
-    rc = fscanf(f, "%1023s", buffer);
-    assert(!((rc != 1) || (strcmp(buffer, "$group_str$") != 0)));
-    if ((rc != 1) || (strcmp(buffer, "$group_str$") != 0)) {
-      FREE(buffer);
-      fclose(f);
-      FREE($group$->$group_str$);
-      FREE($group$);
-      return NULL;
-    }
+          rc = fscanf(f, "%" SCNu64 "\n", &($group$->dims_$group_dset$[i]));
+          assert(!(rc != 1));
+          if (rc != 1) {
+            FREE(buffer);
+            fclose(f);
+            /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+            file->$group$ = $group$;
+            rc_free = trexio_text_free_$group$(file);
+            assert(rc_free == TREXIO_SUCCESS);
+            return NULL;
+          }
 
-    if ($group$->len_$group_str$ != 0) {
+          size_$group_dset$ *= $group$->dims_$group_dset$[i];
+        }
+      // END REPEAT GROUP_DSET_ALL
+      // START REPEAT GROUP_DSET_NUM
+      } else if (strcmp(buffer, "$group_dset$") == 0) {
 
-      $group$->$group_str$ = CALLOC($group$->len_$group_str$, char);
-      assert (!($group$->$group_str$ == NULL));
-      if ($group$->$group_str$ == NULL) {
-        FREE(buffer);
-        fclose(f);
-        FREE($group$->$group_str$);
-        FREE($group$);
-        return NULL;
-      }
+        /* Allocate arrays */
+        $group$->$group_dset$ = CALLOC(size_$group_dset$, $group_dset_dtype$);
+        if ($group$->$group_dset$ == NULL) {
+          FREE(buffer);
+          fclose(f);
+          /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+          file->$group$ = $group$;
+          rc_free = trexio_text_free_$group$(file);
+          assert(rc_free == TREXIO_SUCCESS);
+          return NULL;
+        }
 
-      rc = fscanf(f, " %1023[^\n]", $group$->$group_str$);
-      assert(!(rc != 1));
-      if (rc != 1) {
-        FREE(buffer);
-        fclose(f);
-        FREE($group$->$group_str$);
-        FREE($group$);
-        return NULL;
-      }
+        for (uint64_t i=0 ; i<size_$group_dset$ ; ++i) {
+          rc = fscanf(f, "%$group_dset_format_scanf$", &($group$->$group_dset$[i]));
+          if (rc != 1) {
+            FREE(buffer);
+            fclose(f);
+            /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+            file->$group$ = $group$;
+            rc_free = trexio_text_free_$group$(file);
+            assert(rc_free == TREXIO_SUCCESS);
+            return NULL;
+          }
+        }
 
-    }
-    // END REPEAT GROUP_ATTR_STR
+      // END REPEAT GROUP_DSET_NUM
+      // START REPEAT GROUP_DSET_STR
+      } else if (strcmp(buffer, "$group_dset$") == 0) {
 
-    // START REPEAT GROUP_DSET_NUM
-    /* Allocate arrays */
-    $group$->$group_dset$ = CALLOC(size_$group_dset$, $group_dset_dtype$);
-    assert (!($group$->$group_dset$ == NULL));
-    if ($group$->$group_dset$ == NULL) {
-      FREE(buffer);
-      fclose(f);
-      FREE($group$->$group_dset$);
-      FREE($group$);
-      return NULL;
-    }
+        if(size_$group_dset$ != 0) {
+          /* Allocate arrays */
+          $group$->$group_dset$ = CALLOC(size_$group_dset$, $group_dset_dtype$);
+          if ($group$->$group_dset$ == NULL) {
+            FREE(buffer);
+            fclose(f);
+            /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+            file->$group$ = $group$;
+            rc_free = trexio_text_free_$group$(file);
+            assert(rc_free == TREXIO_SUCCESS);
+            return NULL;
+          }
 
-    rc = fscanf(f, "%1023s", buffer);
-    assert(!((rc != 1) || (strcmp(buffer, "$group_dset$") != 0)));
-    if ((rc != 1) || (strcmp(buffer, "$group_dset$") != 0)) {
-      FREE(buffer);
-      fclose(f);
-      FREE($group$->$group_dset$);
-      FREE($group$);
-      return NULL;
-    }
+          /* WARNING: this tmp array allows to avoid allocation of space for each element of array of string
+             BUT it's size has to be number_of_str*max_len_str where max_len_str is somewhat arbitrary, e.g. 32.
+           */
+          char* tmp_$group_dset$;
+          tmp_$group_dset$ = CALLOC(size_$group_dset$*32, char);
 
-    for (uint64_t i=0 ; i<size_$group_dset$ ; ++i) {
-      rc = fscanf(f, "%$group_dset_format_scanf$", &($group$->$group_dset$[i]));
-      assert(!(rc != 1));
-      if (rc != 1) {
-        FREE(buffer);
-        fclose(f);
-        FREE($group$->$group_dset$);
-        FREE($group$);
-        return NULL;
-      }
-    }
-    // END REPEAT GROUP_DSET_NUM
+          for (uint64_t i=0 ; i<size_$group_dset$ ; ++i) {
+            $group$->$group_dset$[i] = tmp_$group_dset$;
+            /* conventional fcanf with "%s" only return the string before the first space character
+             * to read string with spaces use "%[^\n]" possible with space before or after, i.e. " %[^\n]"
+             * Q: depending on what ? */
+            rc = fscanf(f, " %1023[^\n]", tmp_$group_dset$);
+            assert(!(rc != 1));
+            if (rc != 1) {
+              FREE(buffer);
+              fclose(f);
+              /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+              file->$group$ = $group$;
+              rc_free = trexio_text_free_$group$(file);
+              assert(rc_free == TREXIO_SUCCESS);
+              return NULL;
+            }
 
-    // START REPEAT GROUP_DSET_STR
-    rc = fscanf(f, "%1023s", buffer);
-    assert(!((rc != 1) || (strcmp(buffer, "$group_dset$") != 0)));
-    if ((rc != 1) || (strcmp(buffer, "$group_dset$") != 0)) {
-      FREE(buffer);
-      fclose(f);
-      FREE($group$);
-      return NULL;
-    }
+            size_t tmp_$group_dset$_len = strlen($group$->$group_dset$[i]);
+            tmp_$group_dset$ += tmp_$group_dset$_len + 1;
+          }
+        }
 
-    /* Allocate arrays */
-    if(size_$group_dset$ != 0) {
-      $group$->$group_dset$ = CALLOC(size_$group_dset$, $group_dset_dtype$);
-      if ($group$->$group_dset$ == NULL) {
-        FREE(buffer);
-        fclose(f);
-        FREE($group$->$group_dset$);
-        FREE($group$);
-        return NULL;
-      }
+      // END REPEAT GROUP_DSET_STR
+      // START REPEAT GROUP_NUM
+      } else if (strcmp(buffer, "$group_num$_isSet") == 0) {
 
-      /* WARNING: this tmp array allows to avoid allocation of space for each element of array of string
-         BUT it's size has to be number_of_str*max_len_str where max_len_str is somewhat arbitrary, e.g. 32.
-       */
-      char* tmp_$group_dset$;
-      tmp_$group_dset$ = CALLOC(size_$group_dset$*32, char);
-
-      for (uint64_t i=0 ; i<size_$group_dset$ ; ++i) {
-        $group$->$group_dset$[i] = tmp_$group_dset$;
-        /* conventional fcanf with "%s" only return the string before the first space character
-         * to read string with spaces use "%[^\n]" possible with space before or after, i.e. " %[^\n]"
-         * Q: depending on what ? */
-        rc = fscanf(f, " %1023[^\n]", tmp_$group_dset$);
+        unsigned int $group_num$_isSet;
+        /* additional parameter $group_num$_isSet is needed to suppress warning when fscanf into bool variable using %u or %d */
+        rc = fscanf(f, "%u", &($group_num$_isSet));
+        $group$->$group_num$_isSet = (bool) $group_num$_isSet;
         assert(!(rc != 1));
         if (rc != 1) {
           FREE(buffer);
           fclose(f);
-          FREE($group$->$group_dset$);
-          FREE($group$);
+          /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+          file->$group$ = $group$;
+          rc_free = trexio_text_free_$group$(file);
+          assert(rc_free == TREXIO_SUCCESS);
           return NULL;
         }
 
-        size_t tmp_$group_dset$_len = strlen($group$->$group_dset$[i]);
-        tmp_$group_dset$ += tmp_$group_dset$_len + 1;
+        if ($group$->$group_num$_isSet == true) {
+          rc = fscanf(f, "%1023s", buffer);
+          assert(!((rc != 1) || (strcmp(buffer, "$group_num$") != 0)));
+          if ((rc != 1) || (strcmp(buffer, "$group_num$") != 0)) {
+            FREE(buffer);
+            fclose(f);
+            /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+            file->$group$ = $group$;
+            rc_free = trexio_text_free_$group$(file);
+            assert(rc_free == TREXIO_SUCCESS);
+            return NULL;
+          }
+
+          rc = fscanf(f, "%$group_num_format_scanf$", &($group$->$group_num$));
+          assert(!(rc != 1));
+          if (rc != 1) {
+            FREE(buffer);
+            fclose(f);
+            /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+            file->$group$ = $group$;
+            rc_free = trexio_text_free_$group$(file);
+            assert(rc_free == TREXIO_SUCCESS);
+            return NULL;
+          }
+        }
+
+      // END REPEAT GROUP_NUM
+      // START REPEAT GROUP_ATTR_STR
+      } else if (strcmp(buffer, "len_$group_str$") == 0) {
+
+        rc = fscanf(f, "%" SCNu64 "", &($group$->len_$group_str$));
+        assert(!(rc != 1));
+        if (rc != 1) {
+          FREE(buffer);
+          fclose(f);
+          /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+          file->$group$ = $group$;
+          rc_free = trexio_text_free_$group$(file);
+          assert(rc_free == TREXIO_SUCCESS);
+          return NULL;
+        }
+
+        rc = fscanf(f, "%1023s", buffer);
+        assert(!((rc != 1) || (strcmp(buffer, "$group_str$") != 0)));
+        if ((rc != 1) || (strcmp(buffer, "$group_str$") != 0)) {
+          FREE(buffer);
+          fclose(f);
+          /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+          file->$group$ = $group$;
+          rc_free = trexio_text_free_$group$(file);
+          assert(rc_free == TREXIO_SUCCESS);
+          return NULL;
+        }
+
+        if ($group$->len_$group_str$ != 0) {
+
+          $group$->$group_str$ = CALLOC($group$->len_$group_str$, char);
+          assert (!($group$->$group_str$ == NULL));
+          if ($group$->$group_str$ == NULL) {
+            FREE(buffer);
+            fclose(f);
+            /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+            file->$group$ = $group$;
+            rc_free = trexio_text_free_$group$(file);
+            assert(rc_free == TREXIO_SUCCESS);
+            return NULL;
+          }
+
+          rc = fscanf(f, " %1023[^\n]", $group$->$group_str$);
+          assert(!(rc != 1));
+          if (rc != 1) {
+            FREE(buffer);
+            fclose(f);
+            /* Set pointer to the struct so that the garbage collector can do the job on file handle */
+            file->$group$ = $group$;
+            rc_free = trexio_text_free_$group$(file);
+            assert(rc_free == TREXIO_SUCCESS);
+            return NULL;
+          }
+
+        }
+
+      // END REPEAT GROUP_ATTR_STR
+      } else {
+        continue;
       }
+
     }
-    // END REPEAT GROUP_DSET_STR
 
     FREE(buffer);
     fclose(f);
@@ -848,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
@@ -913,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. @@ -961,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
@@ -1025,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. @@ -1122,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. @@ -1224,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
@@ -1299,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 @@ -1574,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)

@@ -409,8 +409,8 @@ fetched using multiple function calls to perform I/O on buffers.

-
-

1 Metadata (metadata group)

+
+

1 Metadata (metadata group)

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.

-
+
@@ -501,15 +501,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.

-
+
@@ -548,15 +548,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.

-
+
@@ -623,8 +623,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 +657,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.

-
+
@@ -755,8 +755,8 @@ The latter causes issues when written before ang_mom in the TREXIO

-
-

4.1 Example

+
+

4.1 Example

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

-
-

5 Basis set (basis group)

+
+

5 Basis set (basis group)

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

-
+
@@ -967,8 +967,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 @@ -1046,8 +1046,8 @@ prim_factor =

-
-

6 Atomic orbitals (ao group)

+
+

6 Atomic orbitals (ao group)

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

- +
@@ -1158,8 +1158,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}} @@ -1177,7 +1177,7 @@ The one-electron integrals for a one-electron operator \(\hat{O}\) are over atomic orbitals.

    - +
    @@ -1244,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 @@ -1266,7 +1266,7 @@ notation. \mathbf{r}_j \vert)}{\vert \mathbf{r}_i - \mathbf{r}_j \vert} \] : electron-electron long range potential -

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

    7 Molecular orbitals (mo group)

    +
    +

    7 Molecular orbitals (mo group)

    -
    +
    @@ -1375,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 @@ -1384,7 +1384,7 @@ The operators as the same as those defined in the the basis of molecular orbitals.

- +
@@ -1451,8 +1451,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 @@ -1460,7 +1460,7 @@ The operators as the same as those defined in the the basis of molecular orbitals.

-
+
@@ -1500,11 +1500,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 @@ -1557,7 +1557,7 @@ The total energy can be computed as: \]

-
+
@@ -1640,7 +1640,7 @@ The total energy can be computed as:

Author: TREX-CoE

-

Created: 2022-02-04 Fri 10:23

+

Created: 2022-02-16 Wed 13:52

Validate