1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-11-03 20:54:07 +01:00

Added row- and column- major orderings in documentation

This commit is contained in:
Anthony Scemama 2024-03-20 14:49:58 +01:00
parent 8a333ef657
commit 0d4a0cd353

520
trex.org
View File

@ -13,6 +13,13 @@
{ {
#+end_src #+end_src
Dimensions are given both in row-major ~[]~ and column-major ~()~
formats. Pick the one adapted the the programming language in which
you use TREXIO (Numpy is by default row-major, and Fortran is column-major).
In the column-major representation, ~A(i,j)~ and ~A(i+1,j)~ are
contiguous in memory. In the row-major representation, ~A[i,j]~ and
~A[i,j+1]~ are contiguous.
* Metadata (metadata group) * Metadata (metadata group)
As we expect TREXIO files to be archived in open-data repositories, As we expect TREXIO files to be archived in open-data repositories,
@ -22,15 +29,15 @@
the file, and a textual description. the file, and a textual description.
#+NAME: metadata #+NAME: metadata
| Variable | Type | Dimensions (for arrays) | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|-------------------+-------+-------------------------+------------------------------------------| |-------------------+-------+-------------------------+-------------------------+------------------------------------------|
| ~code_num~ | ~dim~ | | Number of codes used to produce the file | | ~code_num~ | ~dim~ | | | Number of codes used to produce the file |
| ~code~ | ~str~ | ~(metadata.code_num)~ | Names of the codes used | | ~code~ | ~str~ | ~[metadata.code_num]~ | ~(metadata.code_num)~ | Names of the codes used |
| ~author_num~ | ~dim~ | | Number of authors of the file | | ~author_num~ | ~dim~ | | | Number of authors of the file |
| ~author~ | ~str~ | ~(metadata.author_num)~ | Names of the authors of the file | | ~author~ | ~str~ | ~[metadata.author_num]~ | ~(metadata.author_num)~ | Names of the authors of the file |
| ~package_version~ | ~str~ | | TREXIO version used to produce the file | | ~package_version~ | ~str~ | | | TREXIO version used to produce the file |
| ~description~ | ~str~ | | Text describing the content of file | | ~description~ | ~str~ | | | Text describing the content of file |
| ~unsafe~ | ~int~ | | ~1~: true, ~0~: false | | ~unsafe~ | ~int~ | | | ~1~: true, ~0~: false |
**Note:** The ~unsafe~ attribute of the ~metadata~ group indicates **Note:** The ~unsafe~ attribute of the ~metadata~ group indicates
whether the file has been previously opened with ~'u'~ mode. It is whether the file has been previously opened with ~'u'~ mode. It is
@ -62,14 +69,14 @@
given in Cartesian $(x,y,z)$ format. given in Cartesian $(x,y,z)$ format.
#+NAME: nucleus #+NAME: nucleus
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description | |
|---------------+---------+-------------------+--------------------------| |---------------+---------+----------------------+-------------------------+--------------------------+---|
| ~num~ | ~dim~ | | Number of nuclei | | ~num~ | ~dim~ | | | Number of nuclei | |
| ~charge~ | ~float~ | ~(nucleus.num)~ | Charges of the nuclei | | ~charge~ | ~float~ | ~[nucleus.num]~ | ~(nucleus.num)~ | Charges of the nuclei | |
| ~coord~ | ~float~ | ~(3,nucleus.num)~ | Coordinates of the atoms | | ~coord~ | ~float~ | ~[nucleus.num, 3]~ | ~(3, nucleus.num)~ | Coordinates of the atoms | |
| ~label~ | ~str~ | ~(nucleus.num)~ | Atom labels | | ~label~ | ~str~ | ~[nucleus.num]~ | ~(nucleus.num)~ | Atom labels | |
| ~point_group~ | ~str~ | | Symmetry point group | | ~point_group~ | ~str~ | | | Symmetry point group | |
| ~repulsion~ | ~float~ | | Nuclear repulsion energy | | ~repulsion~ | ~float~ | | | Nuclear repulsion energy | |
#+CALL: json(data=nucleus, title="nucleus") #+CALL: json(data=nucleus, title="nucleus")
#+RESULTS: #+RESULTS:
@ -92,15 +99,15 @@
used in periodic calculations. used in periodic calculations.
#+NAME: cell #+NAME: cell
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|----------+---------+------------+--------------------------------------------------------------------------| |----------+---------+----------------------+-------------------------+--------------------------------------------------------------------------|
| ~a~ | ~float~ | ~(3)~ | First real space lattice vector | | ~a~ | ~float~ | ~[3]~ | ~(3)~ | First real space lattice vector |
| ~b~ | ~float~ | ~(3)~ | Second real space lattice vector | | ~b~ | ~float~ | ~[3]~ | ~(3)~ | Second real space lattice vector |
| ~c~ | ~float~ | ~(3)~ | Third real space lattice vector | | ~c~ | ~float~ | ~[3]~ | ~(3)~ | Third real space lattice vector |
| ~G_a~ | ~float~ | ~(3)~ | First reciprocal space lattice vector | | ~G_a~ | ~float~ | ~[3]~ | ~(3)~ | First reciprocal space lattice vector |
| ~G_b~ | ~float~ | ~(3)~ | Second reciprocal space lattice vector | | ~G_b~ | ~float~ | ~[3]~ | ~(3)~ | Second reciprocal space lattice vector |
| ~G_c~ | ~float~ | ~(3)~ | Third reciprocal space lattice vector | | ~G_c~ | ~float~ | ~[3]~ | ~(3)~ | Third reciprocal space lattice vector |
| ~two_pi~ | ~int~ | | ~0~ or ~1~. If ~two_pi=1~, $2\pi$ is included in the reciprocal vectors. | | ~two_pi~ | ~int~ | | | ~0~ or ~1~. If ~two_pi=1~, $2\pi$ is included in the reciprocal vectors. |
#+CALL: json(data=cell, title="cell") #+CALL: json(data=cell, title="cell")
@ -125,10 +132,10 @@
defined in this group. defined in this group.
#+NAME: pbc #+NAME: pbc
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|------------+---------+------------+-------------------------| |------------+---------+----------------------+-------------------------+-------------------------|
| ~periodic~ | ~int~ | | ~1~: true or ~0~: false | | ~periodic~ | ~int~ | | | ~1~: true or ~0~: false |
| ~k_point~ | ~float~ | ~(3)~ | $k$-point sampling | | ~k_point~ | ~float~ | ~[3]~ | ~(3)~ | $k$-point sampling |
#+CALL: json(data=pbc, title="pbc") #+CALL: json(data=pbc, title="pbc")
@ -158,11 +165,11 @@
#+NAME:electron #+NAME:electron
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|----------+-------+------------+-------------------------------------| |----------+-------+----------------------+-------------------------+-------------------------------------|
| ~num~ | ~dim~ | | Number of electrons | | ~num~ | ~dim~ | | | Number of electrons |
| ~up_num~ | ~int~ | | Number of \uparrow-spin electrons | | ~up_num~ | ~int~ | | | Number of \uparrow-spin electrons |
| ~dn_num~ | ~int~ | | Number of \downarrow-spin electrons | | ~dn_num~ | ~int~ | | | Number of \downarrow-spin electrons |
#+CALL: json(data=electron, title="electron") #+CALL: json(data=electron, title="electron")
#+RESULTS: #+RESULTS:
@ -190,14 +197,14 @@
The ~id~ and ~current_label~ attributes need to be specified for each file. The ~id~ and ~current_label~ attributes need to be specified for each file.
#+NAME: state #+NAME: state
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|-----------------+---------+---------------+---------------------------------------------------------------------------------------------| |-----------------+---------+----------------------+-------------------------+---------------------------------------------------------------------------------------------|
| ~num~ | ~dim~ | | Number of states (including the ground state) | | ~num~ | ~dim~ | | | Number of states (including the ground state) |
| ~id~ | ~index~ | | Index of the current state (0 is ground state) | | ~id~ | ~index~ | | | Index of the current state (0 is ground state) |
| ~energy~ | ~float~ | | Energy of the current state | | ~energy~ | ~float~ | | | Energy of the current state |
| ~current_label~ | ~str~ | | Label of the current state | | ~current_label~ | ~str~ | | | Label of the current state |
| ~label~ | ~str~ | ~(state.num)~ | Labels of all states | | ~label~ | ~str~ | ~[state.num]~ | ~(state.num)~ | Labels of all states |
| ~file_name~ | ~str~ | ~(state.num)~ | Names of the TREXIO files linked to the current one (i.e. containing data for other states) | | ~file_name~ | ~str~ | ~[state.num]~ | ~(state.num)~ | Names of the TREXIO files linked to the current one (i.e. containing data for other states) |
#+CALL: json(data=state, title="state") #+CALL: json(data=state, title="state")
@ -326,32 +333,32 @@
*** Data definitions *** Data definitions
#+NAME: basis #+NAME: basis
| Variable | Type | Dimensions | Description | | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|---------------------+---------+-----------------------------------------------+------------------------------------------------------------------------------+---| |---------------------+---------+------------------------------------------------+------------------------------------------------+------------------------------------------------------------------------------|
| ~type~ | ~str~ | | Type of basis set: "Gaussian", "Slater", "Numerical" or "PW" for plane waves | | | ~type~ | ~str~ | | | Type of basis set: "Gaussian", "Slater", "Numerical" or "PW" for plane waves |
| ~prim_num~ | ~dim~ | | Total number of primitives | | | ~prim_num~ | ~dim~ | | | Total number of primitives |
| ~shell_num~ | ~dim~ | | Total number of shells | | | ~shell_num~ | ~dim~ | | | Total number of shells |
| ~nao_grid_num~ | ~dim~ | | Total number of grid points for numerical orbitals | | | ~nao_grid_num~ | ~dim~ | | | Total number of grid points for numerical orbitals |
| ~interp_coeff_cnt~ | ~dim~ | | Number of coefficients for the numerical orbital interpolator | | | ~interp_coeff_cnt~ | ~dim~ | | | Number of coefficients for the numerical orbital interpolator |
| ~nucleus_index~ | ~index~ | ~(basis.shell_num)~ | One-to-one correspondence between shells and atomic indices | | | ~nucleus_index~ | ~index~ | ~[basis.shell_num]~ | ~(basis.shell_num)~ | One-to-one correspondence between shells and atomic indices |
| ~shell_ang_mom~ | ~int~ | ~(basis.shell_num)~ | One-to-one correspondence between shells and angular momenta | | | ~shell_ang_mom~ | ~int~ | ~[basis.shell_num]~ | ~(basis.shell_num)~ | One-to-one correspondence between shells and angular momenta |
| ~shell_factor~ | ~float~ | ~(basis.shell_num)~ | Normalization factor of each shell ($\mathcal{N}_s$) | | | ~shell_factor~ | ~float~ | ~[basis.shell_num]~ | ~(basis.shell_num)~ | Normalization factor of each shell ($\mathcal{N}_s$) |
| ~r_power~ | ~int~ | ~(basis.shell_num)~ | Power to which $r$ is raised ($n_s$) | | | ~r_power~ | ~int~ | ~[basis.shell_num]~ | ~(basis.shell_num)~ | Power to which $r$ is raised ($n_s$) |
| ~nao_grid_start~ | ~index~ | ~(basis.shell_num)~ | Index of the first data point for a given numerical orbital | | | ~nao_grid_start~ | ~index~ | ~[basis.shell_num]~ | ~(basis.shell_num)~ | Index of the first data point for a given numerical orbital |
| ~nao_grid_size~ | ~dim~ | ~(basis.shell_num)~ | Number of data points per numerical orbital | | | ~nao_grid_size~ | ~dim~ | ~[basis.shell_num]~ | ~(basis.shell_num)~ | Number of data points per numerical orbital |
| ~shell_index~ | ~index~ | ~(basis.prim_num)~ | One-to-one correspondence between primitives and shell index | | | ~shell_index~ | ~index~ | ~[basis.prim_num]~ | ~(basis.prim_num)~ | One-to-one correspondence between primitives and shell index |
| ~exponent~ | ~float~ | ~(basis.prim_num)~ | Exponents of the primitives ($\gamma_{ks}$) | | | ~exponent~ | ~float~ | ~[basis.prim_num]~ | ~(basis.prim_num)~ | Exponents of the primitives ($\gamma_{ks}$) |
| ~coefficient~ | ~float~ | ~(basis.prim_num)~ | Coefficients of the primitives ($a_{ks}$) | | | ~coefficient~ | ~float~ | ~[basis.prim_num]~ | ~(basis.prim_num)~ | Coefficients of the primitives ($a_{ks}$) |
| ~prim_factor~ | ~float~ | ~(basis.prim_num)~ | Normalization coefficients for the primitives ($f_{ks}$) | | | ~prim_factor~ | ~float~ | ~[basis.prim_num]~ | ~(basis.prim_num)~ | Normalization coefficients for the primitives ($f_{ks}$) |
| ~e_cut~ | ~float~ | | Energy cut-off for plane-wave calculations | | | ~e_cut~ | ~float~ | | | Energy cut-off for plane-wave calculations |
| ~nao_grid_radius~ | ~float~ | ~(basis.nao_grid_num)~ | Radii of grid points for numerical orbitals | | | ~nao_grid_radius~ | ~float~ | ~[basis.nao_grid_num]~ | ~(basis.nao_grid_num)~ | Radii of grid points for numerical orbitals |
| ~nao_grid_phi~ | ~float~ | ~(basis.nao_grid_num)~ | Wave function values for numerical orbitals | | | ~nao_grid_phi~ | ~float~ | ~[basis.nao_grid_num]~ | ~(basis.nao_grid_num)~ | Wave function values for numerical orbitals |
| ~nao_grid_grad~ | ~float~ | ~(basis.nao_grid_num)~ | Radial gradient of numerical orbitals | | | ~nao_grid_grad~ | ~float~ | ~[basis.nao_grid_num]~ | ~(basis.nao_grid_num)~ | Radial gradient of numerical orbitals |
| ~nao_grid_lap~ | ~float~ | ~(basis.nao_grid_num)~ | Laplacian of numerical orbitals | | | ~nao_grid_lap~ | ~float~ | ~[basis.nao_grid_num]~ | ~(basis.nao_grid_num)~ | Laplacian of numerical orbitals |
| ~interpolator_kind~ | ~str~ | | Kind of spline, e.g. "Polynomial" | | | ~interpolator_kind~ | ~str~ | | | Kind of spline, e.g. "Polynomial" |
| ~interpolator_phi~ | ~float~ | ~(basis.interp_coeff_cnt,basis.nao_grid_num)~ | Coefficients for numerical orbital interpolation function | | | ~interpolator_phi~ | ~float~ | ~[basis.nao_grid_num, basis.interp_coeff_cnt]~ | ~(basis.interp_coeff_cnt, basis.nao_grid_num)~ | Coefficients for numerical orbital interpolation function |
| ~interpolator_grad~ | ~float~ | ~(basis.interp_coeff_cnt,basis.nao_grid_num)~ | Coefficients for numerical orbital gradient interpolation function | | | ~interpolator_grad~ | ~float~ | ~[basis.nao_grid_num, basis.interp_coeff_cnt]~ | ~(basis.interp_coeff_cnt, basis.nao_grid_num)~ | Coefficients for numerical orbital gradient interpolation function |
| ~interpolator_lap~ | ~float~ | ~(basis.interp_coeff_cnt,basis.nao_grid_num)~ | Coefficients for numerical orbital laplacian interpolation function | | | ~interpolator_lap~ | ~float~ | ~[basis.nao_grid_num, basis.interp_coeff_cnt]~ | ~(basis.interp_coeff_cnt, basis.nao_grid_num)~ | Coefficients for numerical orbital laplacian interpolation function |
@ -360,32 +367,32 @@
#+RESULTS: #+RESULTS:
:results: :results:
#+begin_src python :tangle trex.json #+begin_src python :tangle trex.json
"basis": { "basis": {
"type" : [ "str" , [] ] "type" : [ "str" , [] ]
, "prim_num" : [ "dim" , [] ] , "prim_num" : [ "dim" , [] ]
, "shell_num" : [ "dim" , [] ] , "shell_num" : [ "dim" , [] ]
, "nao_grid_num" : [ "dim" , [] ] , "nao_grid_num" : [ "dim" , [] ]
, "interp_coeff_cnt" : [ "dim" , [] ] , "interp_coeff_cnt" : [ "dim" , [] ]
, "nucleus_index" : [ "index", [ "basis.shell_num" ] ] , "nucleus_index" : [ "index", [ "basis.shell_num" ] ]
, "shell_ang_mom" : [ "int" , [ "basis.shell_num" ] ] , "shell_ang_mom" : [ "int" , [ "basis.shell_num" ] ]
, "shell_factor" : [ "float", [ "basis.shell_num" ] ] , "shell_factor" : [ "float", [ "basis.shell_num" ] ]
, "r_power" : [ "int" , [ "basis.shell_num" ] ] , "r_power" : [ "int" , [ "basis.shell_num" ] ]
, "nao_grid_start" : [ "index", [ "basis.shell_num" ] ] , "nao_grid_start" : [ "index", [ "basis.shell_num" ] ]
, "nao_grid_size" : [ "dim" , [ "basis.shell_num" ] ] , "nao_grid_size" : [ "dim" , [ "basis.shell_num" ] ]
, "shell_index" : [ "index", [ "basis.prim_num" ] ] , "shell_index" : [ "index", [ "basis.prim_num" ] ]
, "exponent" : [ "float", [ "basis.prim_num" ] ] , "exponent" : [ "float", [ "basis.prim_num" ] ]
, "coefficient" : [ "float", [ "basis.prim_num" ] ] , "coefficient" : [ "float", [ "basis.prim_num" ] ]
, "prim_factor" : [ "float", [ "basis.prim_num" ] ] , "prim_factor" : [ "float", [ "basis.prim_num" ] ]
, "e_cut" : [ "float", [] ] , "e_cut" : [ "float", [] ]
, "nao_grid_radius" : [ "float", [ "basis.nao_grid_num" ] ] , "nao_grid_radius" : [ "float", [ "basis.nao_grid_num" ] ]
, "nao_grid_phi" : [ "float", [ "basis.nao_grid_num" ] ] , "nao_grid_phi" : [ "float", [ "basis.nao_grid_num" ] ]
, "nao_grid_grad" : [ "float", [ "basis.nao_grid_num" ] ] , "nao_grid_grad" : [ "float", [ "basis.nao_grid_num" ] ]
, "nao_grid_lap" : [ "float", [ "basis.nao_grid_num" ] ] , "nao_grid_lap" : [ "float", [ "basis.nao_grid_num" ] ]
, "interpolator_kind" : [ "str" , [] ] , "interpolator_kind" : [ "str" , [] ]
, "interpolator_phi" : [ "float", [ "basis.nao_grid_num", "basis.interp_coeff_cnt" ] ] , "interpolator_phi" : [ "float", [ "basis.nao_grid_num", "basis.interp_coeff_cnt" ] ]
, "interpolator_grad" : [ "float", [ "basis.nao_grid_num", "basis.interp_coeff_cnt" ] ] , "interpolator_grad" : [ "float", [ "basis.nao_grid_num", "basis.interp_coeff_cnt" ] ]
, "interpolator_lap" : [ "float", [ "basis.nao_grid_num", "basis.interp_coeff_cnt" ] ] , "interpolator_lap" : [ "float", [ "basis.nao_grid_num", "basis.interp_coeff_cnt" ] ]
} , } ,
#+end_src #+end_src
:end: :end:
@ -487,16 +494,16 @@ prim_factor =
See http://dx.doi.org/10.1063/1.4984046 or https://doi.org/10.1063/1.5121006 for more info. See http://dx.doi.org/10.1063/1.4984046 or https://doi.org/10.1063/1.5121006 for more info.
#+NAME: ecp #+NAME: ecp
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|----------------------+---------+-----------------+----------------------------------------------------------------------------------------| |----------------------+---------+----------------------+-------------------------+----------------------------------------------------------------------------------------|
| ~max_ang_mom_plus_1~ | ~int~ | ~(nucleus.num)~ | $\ell_{\max}+1$, one higher than the max angular momentum in the removed core orbitals | | ~max_ang_mom_plus_1~ | ~int~ | ~[nucleus.num]~ | ~(nucleus.num)~ | $\ell_{\max}+1$, one higher than the max angular momentum in the removed core orbitals |
| ~z_core~ | ~int~ | ~(nucleus.num)~ | Number of core electrons to remove per atom | | ~z_core~ | ~int~ | ~[nucleus.num]~ | ~(nucleus.num)~ | Number of core electrons to remove per atom |
| ~num~ | ~dim~ | | Total number of ECP functions for all atoms and all values of $\ell$ | | ~num~ | ~dim~ | | | Total number of ECP functions for all atoms and all values of $\ell$ |
| ~ang_mom~ | ~int~ | ~(ecp.num)~ | One-to-one correspondence between ECP items and the angular momentum $\ell$ | | ~ang_mom~ | ~int~ | ~[ecp.num]~ | ~(ecp.num)~ | One-to-one correspondence between ECP items and the angular momentum $\ell$ |
| ~nucleus_index~ | ~index~ | ~(ecp.num)~ | One-to-one correspondence between ECP items and the atom index | | ~nucleus_index~ | ~index~ | ~[ecp.num]~ | ~(ecp.num)~ | One-to-one correspondence between ECP items and the atom index |
| ~exponent~ | ~float~ | ~(ecp.num)~ | $\alpha_{A q \ell}$ all ECP exponents | | ~exponent~ | ~float~ | ~[ecp.num]~ | ~(ecp.num)~ | $\alpha_{A q \ell}$ all ECP exponents |
| ~coefficient~ | ~float~ | ~(ecp.num)~ | $\beta_{A q \ell}$ all ECP coefficients | | ~coefficient~ | ~float~ | ~[ecp.num]~ | ~(ecp.num)~ | $\beta_{A q \ell}$ all ECP coefficients |
| ~power~ | ~int~ | ~(ecp.num)~ | $n_{A q \ell}$ all ECP powers | | ~power~ | ~int~ | ~[ecp.num]~ | ~(ecp.num)~ | $n_{A q \ell}$ all ECP powers |
There might be some confusion in the meaning of the $\ell_{\max}$. There might be some confusion in the meaning of the $\ell_{\max}$.
It can be attributed to the maximum angular momentum occupied in It can be attributed to the maximum angular momentum occupied in
@ -604,21 +611,21 @@ power = [
Feel free to submit a PR if you find missing options/functionalities. Feel free to submit a PR if you find missing options/functionalities.
#+NAME: grid #+NAME: grid
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|-----------------+---------+------------------+-------------------------------------------------------------------------| |-----------------+---------+----------------------+-------------------------+-------------------------------------------------------------------------|
| ~description~ | ~str~ | | Details about the used quadratures can go here | | ~description~ | ~str~ | | | Details about the used quadratures can go here |
| ~rad_precision~ | ~float~ | | Radial precision parameter (not used in some schemes like Krack-Köster) | | ~rad_precision~ | ~float~ | | | Radial precision parameter (not used in some schemes like Krack-Köster) |
| ~num~ | ~dim~ | | Number of grid points | | ~num~ | ~dim~ | | | Number of grid points |
| ~max_ang_num~ | ~int~ | | Maximum number of angular grid points (for pruning) | | ~max_ang_num~ | ~int~ | | | Maximum number of angular grid points (for pruning) |
| ~min_ang_num~ | ~int~ | | Minimum number of angular grid points (for pruning) | | ~min_ang_num~ | ~int~ | | | Minimum number of angular grid points (for pruning) |
| ~coord~ | ~float~ | ~(grid.num)~ | Discretized coordinate space | | ~coord~ | ~float~ | ~[grid.num]~ | ~(grid.num)~ | Discretized coordinate space |
| ~weight~ | ~float~ | ~(grid.num)~ | Grid weights according to a given partitioning (e.g. Becke) | | ~weight~ | ~float~ | ~[grid.num]~ | ~(grid.num)~ | Grid weights according to a given partitioning (e.g. Becke) |
| ~ang_num~ | ~dim~ | | Number of angular integration points (if used) | | ~ang_num~ | ~dim~ | | | Number of angular integration points (if used) |
| ~ang_coord~ | ~float~ | ~(grid.ang_num)~ | Discretized angular space (if used) | | ~ang_coord~ | ~float~ | ~[grid.ang_num]~ | ~(grid.ang_num)~ | Discretized angular space (if used) |
| ~ang_weight~ | ~float~ | ~(grid.ang_num)~ | Angular grid weights (if used) | | ~ang_weight~ | ~float~ | ~[grid.ang_num]~ | ~(grid.ang_num)~ | Angular grid weights (if used) |
| ~rad_num~ | ~dim~ | | Number of radial integration points (if used) | | ~rad_num~ | ~dim~ | | | Number of radial integration points (if used) |
| ~rad_coord~ | ~float~ | ~(grid.rad_num)~ | Discretized radial space (if used) | | ~rad_coord~ | ~float~ | ~[grid.rad_num]~ | ~(grid.rad_num)~ | Discretized radial space (if used) |
| ~rad_weight~ | ~float~ | ~(grid.rad_num)~ | Radial grid weights (if used) | | ~rad_weight~ | ~float~ | ~[grid.rad_num]~ | ~(grid.rad_num)~ | Radial grid weights (if used) |
#+CALL: json(data=grid, title="grid") #+CALL: json(data=grid, title="grid")
@ -684,12 +691,12 @@ power = [
#+NAME: ao #+NAME: ao
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|-----------------+---------+------------+--------------------------------------| |-----------------+---------+----------------------+-------------------------+--------------------------------------|
| ~cartesian~ | ~int~ | | ~1~: true, ~0~: false | | ~cartesian~ | ~int~ | | | ~1~: true, ~0~: false |
| ~num~ | ~dim~ | | Total number of atomic orbitals | | ~num~ | ~dim~ | | | Total number of atomic orbitals |
| ~shell~ | ~index~ | ~(ao.num)~ | Basis set shell for each AO | | ~shell~ | ~index~ | ~[ao.num]~ | ~(ao.num)~ | Basis set shell for each AO |
| ~normalization~ | ~float~ | ~(ao.num)~ | Normalization factor $\mathcal{N}_i$ | | ~normalization~ | ~float~ | ~[ao.num]~ | ~(ao.num)~ | Normalization factor $\mathcal{N}_i$ |
#+CALL: json(data=ao, title="ao") #+CALL: json(data=ao, title="ao")
@ -722,18 +729,18 @@ power = [
over atomic orbitals. over atomic orbitals.
#+NAME: ao_1e_int #+NAME: ao_1e_int
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|-----------------------+---------+--------------------+--------------------------------------------------------------------------| |-----------------------+---------+----------------------+-------------------------+--------------------------------------------------------------------------|
| ~overlap~ | ~float~ | ~(ao.num, ao.num)~ | $\langle p \vert q \rangle$ | | ~overlap~ | ~float~ | ~[ao.num, ao.num]~ | ~(ao.num, ao.num)~ | $\langle p \vert q \rangle$ |
| ~kinetic~ | ~float~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{T}_e \vert q \rangle$ | | ~kinetic~ | ~float~ | ~[ao.num, ao.num]~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{T}_e \vert q \rangle$ |
| ~potential_n_e~ | ~float~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{V}_{\text{ne}} \vert q \rangle$ | | ~potential_n_e~ | ~float~ | ~[ao.num, ao.num]~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{V}_{\text{ne}} \vert q \rangle$ |
| ~ecp~ | ~float~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{V}_{\text{ecp}} \vert q \rangle$ | | ~ecp~ | ~float~ | ~[ao.num, ao.num]~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{V}_{\text{ecp}} \vert q \rangle$ |
| ~core_hamiltonian~ | ~float~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{h} \vert q \rangle$ | | ~core_hamiltonian~ | ~float~ | ~[ao.num, ao.num]~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{h} \vert q \rangle$ |
| ~overlap_im~ | ~float~ | ~(ao.num, ao.num)~ | $\langle p \vert q \rangle$ (imaginary part) | | ~overlap_im~ | ~float~ | ~[ao.num, ao.num]~ | ~(ao.num, ao.num)~ | $\langle p \vert q \rangle$ (imaginary part) |
| ~kinetic_im~ | ~float~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{T}_e \vert q \rangle$ (imaginary part) | | ~kinetic_im~ | ~float~ | ~[ao.num, ao.num]~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{T}_e \vert q \rangle$ (imaginary part) |
| ~potential_n_e_im~ | ~float~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{V}_{\text{ne}} \vert q \rangle$ (imaginary part) | | ~potential_n_e_im~ | ~float~ | ~[ao.num, ao.num]~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{V}_{\text{ne}} \vert q \rangle$ (imaginary part) |
| ~ecp_im~ | ~float~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{V}_{\text{ECP}} \vert q \rangle$ (imaginary part) | | ~ecp_im~ | ~float~ | ~[ao.num, ao.num]~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{V}_{\text{ECP}} \vert q \rangle$ (imaginary part) |
| ~core_hamiltonian_im~ | ~float~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{h} \vert q \rangle$ (imaginary part) | | ~core_hamiltonian_im~ | ~float~ | ~[ao.num, ao.num]~ | ~(ao.num, ao.num)~ | $\langle p \vert \hat{h} \vert q \rangle$ (imaginary part) |
#+CALL: json(data=ao_1e_int, title="ao_1e_int") #+CALL: json(data=ao_1e_int, title="ao_1e_int")
@ -780,14 +787,14 @@ power = [
\] \]
#+NAME: ao_2e_int #+NAME: ao_2e_int
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|-----------------------+----------------+---------------------------------------------------+-----------------------------------------------| |-----------------------+----------------+---------------------------------------------------+---------------------------------------------------+-----------------------------------------------|
| ~eri~ | ~float sparse~ | ~(ao.num, ao.num, ao.num, ao.num)~ | Electron repulsion integrals | | ~eri~ | ~float sparse~ | ~[ao.num, ao.num, ao.num, ao.num]~ | ~(ao.num, ao.num, ao.num, ao.num)~ | Electron repulsion integrals |
| ~eri_lr~ | ~float sparse~ | ~(ao.num, ao.num, ao.num, ao.num)~ | Long-range electron repulsion integrals | | ~eri_lr~ | ~float sparse~ | ~[ao.num, ao.num, ao.num, ao.num]~ | ~(ao.num, ao.num, ao.num, ao.num)~ | Long-range electron repulsion integrals |
| ~eri_cholesky_num~ | ~dim~ | | Number of Cholesky vectors for ERI | | ~eri_cholesky_num~ | ~dim~ | | | Number of Cholesky vectors for ERI |
| ~eri_cholesky~ | ~float sparse~ | ~(ao.num, ao.num, ao_2e_int.eri_cholesky_num)~ | Cholesky decomposition of the ERI | | ~eri_cholesky~ | ~float sparse~ | ~[ao_2e_int.eri_cholesky_num, ao.num, ao.num]~ | ~(ao.num, ao.num, ao_2e_int.eri_cholesky_num)~ | Cholesky decomposition of the ERI |
| ~eri_lr_cholesky_num~ | ~dim~ | | Number of Cholesky vectors for long range ERI | | ~eri_lr_cholesky_num~ | ~dim~ | | | Number of Cholesky vectors for long range ERI |
| ~eri_lr_cholesky~ | ~float sparse~ | ~(ao.num, ao.num, ao_2e_int.eri_lr_cholesky_num)~ | Cholesky decomposition of the long range ERI | | ~eri_lr_cholesky~ | ~float sparse~ | ~[ao_2e_int.eri_lr_cholesky_num, ao.num, ao.num]~ | ~(ao.num, ao.num, ao_2e_int.eri_lr_cholesky_num)~ | Cholesky decomposition of the long range ERI |
#+CALL: json(data=ao_2e_int, title="ao_2e_int") #+CALL: json(data=ao_2e_int, title="ao_2e_int")
@ -798,7 +805,7 @@ power = [
"eri" : [ "float sparse", [ "ao.num", "ao.num", "ao.num", "ao.num" ] ] "eri" : [ "float sparse", [ "ao.num", "ao.num", "ao.num", "ao.num" ] ]
, "eri_lr" : [ "float sparse", [ "ao.num", "ao.num", "ao.num", "ao.num" ] ] , "eri_lr" : [ "float sparse", [ "ao.num", "ao.num", "ao.num", "ao.num" ] ]
, "eri_cholesky_num" : [ "dim" , [] ] , "eri_cholesky_num" : [ "dim" , [] ]
, "eri_cholesky" : [ "float sparse", [ "ao_2e_int.eri_cholesky_num", "ao.num", "ao.num" ] ] , "eri_cholesky" : [ "float sparse", [ "ao_2e_int.eri_cholesky_num", "ao.num", "ao.num" ] ]
, "eri_lr_cholesky_num" : [ "dim" , [] ] , "eri_lr_cholesky_num" : [ "dim" , [] ]
, "eri_lr_cholesky" : [ "float sparse", [ "ao_2e_int.eri_lr_cholesky_num", "ao.num", "ao.num" ] ] , "eri_lr_cholesky" : [ "float sparse", [ "ao_2e_int.eri_lr_cholesky_num", "ao.num", "ao.num" ] ]
} , } ,
@ -808,17 +815,17 @@ power = [
** Molecular orbitals (mo group) ** Molecular orbitals (mo group)
#+NAME: mo #+NAME: mo
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|------------------+---------+--------------------+--------------------------------------------------------------------------| |------------------+---------+----------------------+-------------------------+--------------------------------------------------------------------------|
| ~type~ | ~str~ | | Free text to identify the set of MOs (HF, Natural, Local, CASSCF, /etc/) | | ~type~ | ~str~ | | | Free text to identify the set of MOs (HF, Natural, Local, CASSCF, /etc/) |
| ~num~ | ~dim~ | | Number of MOs | | ~num~ | ~dim~ | | | Number of MOs |
| ~coefficient~ | ~float~ | ~(ao.num, mo.num)~ | MO coefficients | | ~coefficient~ | ~float~ | ~[mo.num, ao.num]~ | ~(ao.num, mo.num)~ | MO coefficients |
| ~coefficient_im~ | ~float~ | ~(ao.num, mo.num)~ | MO coefficients (imaginary part) | | ~coefficient_im~ | ~float~ | ~[mo.num, ao.num]~ | ~(ao.num, mo.num)~ | MO coefficients (imaginary part) |
| ~class~ | ~str~ | ~(mo.num)~ | Choose among: Core, Inactive, Active, Virtual, Deleted | | ~class~ | ~str~ | ~[mo.num]~ | ~(mo.num)~ | Choose among: Core, Inactive, Active, Virtual, Deleted |
| ~symmetry~ | ~str~ | ~(mo.num)~ | Symmetry in the point group | | ~symmetry~ | ~str~ | ~[mo.num]~ | ~(mo.num)~ | Symmetry in the point group |
| ~occupation~ | ~float~ | ~(mo.num)~ | Occupation number | | ~occupation~ | ~float~ | ~[mo.num]~ | ~(mo.num)~ | Occupation number |
| ~energy~ | ~float~ | ~(mo.num)~ | For canonical MOs, corresponding eigenvalue | | ~energy~ | ~float~ | ~[mo.num]~ | ~(mo.num)~ | For canonical MOs, corresponding eigenvalue |
| ~spin~ | ~int~ | ~(mo.num)~ | For UHF wave functions, 0 is $\alpha$ and 1 is $\beta$ | | ~spin~ | ~int~ | ~[mo.num]~ | ~(mo.num)~ | For UHF wave functions, 0 is $\alpha$ and 1 is $\beta$ |
#+CALL: json(data=mo, title="mo") #+CALL: json(data=mo, title="mo")
@ -846,18 +853,18 @@ power = [
the basis of molecular orbitals. the basis of molecular orbitals.
#+NAME: mo_1e_int #+NAME: mo_1e_int
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|-----------------------+---------+--------------------+--------------------------------------------------------------------------| |-----------------------+---------+----------------------+-------------------------+--------------------------------------------------------------------------|
| ~overlap~ | ~float~ | ~(mo.num, mo.num)~ | $\langle i \vert j \rangle$ | | ~overlap~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | $\langle i \vert j \rangle$ |
| ~kinetic~ | ~float~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{T}_e \vert j \rangle$ | | ~kinetic~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{T}_e \vert j \rangle$ |
| ~potential_n_e~ | ~float~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{V}_{\text{ne}} \vert j \rangle$ | | ~potential_n_e~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{V}_{\text{ne}} \vert j \rangle$ |
| ~ecp~ | ~float~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{V}_{\text{ECP}} \vert j \rangle$ | | ~ecp~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{V}_{\text{ECP}} \vert j \rangle$ |
| ~core_hamiltonian~ | ~float~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{h} \vert j \rangle$ | | ~core_hamiltonian~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{h} \vert j \rangle$ |
| ~overlap_im~ | ~float~ | ~(mo.num, mo.num)~ | $\langle i \vert j \rangle$ (imaginary part) | | ~overlap_im~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | $\langle i \vert j \rangle$ (imaginary part) |
| ~kinetic_im~ | ~float~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{T}_e \vert j \rangle$ (imaginary part) | | ~kinetic_im~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{T}_e \vert j \rangle$ (imaginary part) |
| ~potential_n_e_im~ | ~float~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{V}_{\text{ne}} \vert j \rangle$ (imaginary part) | | ~potential_n_e_im~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{V}_{\text{ne}} \vert j \rangle$ (imaginary part) |
| ~ecp_im~ | ~float~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{V}_{\text{ECP}} \vert j \rangle$ (imaginary part) | | ~ecp_im~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{V}_{\text{ECP}} \vert j \rangle$ (imaginary part) |
| ~core_hamiltonian_im~ | ~float~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{h} \vert j \rangle$ (imaginary part) | | ~core_hamiltonian_im~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | $\langle i \vert \hat{h} \vert j \rangle$ (imaginary part) |
#+CALL: json(data=mo_1e_int, title="mo_1e_int") #+CALL: json(data=mo_1e_int, title="mo_1e_int")
@ -886,14 +893,14 @@ power = [
the basis of molecular orbitals. the basis of molecular orbitals.
#+NAME: mo_2e_int #+NAME: mo_2e_int
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|-----------------------+----------------+---------------------------------------------------+-----------------------------------------------| |-----------------------+----------------+---------------------------------------------------+---------------------------------------------------+-----------------------------------------------|
| ~eri~ | ~float sparse~ | ~(mo.num, mo.num, mo.num, mo.num)~ | Electron repulsion integrals | | ~eri~ | ~float sparse~ | ~[mo.num, mo.num, mo.num, mo.num]~ | ~(mo.num, mo.num, mo.num, mo.num)~ | Electron repulsion integrals |
| ~eri_lr~ | ~float sparse~ | ~(mo.num, mo.num, mo.num, mo.num)~ | Long-range electron repulsion integrals | | ~eri_lr~ | ~float sparse~ | ~[mo.num, mo.num, mo.num, mo.num]~ | ~(mo.num, mo.num, mo.num, mo.num)~ | Long-range electron repulsion integrals |
| ~eri_cholesky_num~ | ~dim~ | | Number of Cholesky vectors for ERI | | ~eri_cholesky_num~ | ~dim~ | | | Number of Cholesky vectors for ERI |
| ~eri_cholesky~ | ~float sparse~ | ~(mo.num, mo.num, mo_2e_int.eri_cholesky_num)~ | Cholesky decomposition of the ERI | | ~eri_cholesky~ | ~float sparse~ | ~[mo_2e_int.eri_cholesky_num, mo.num, mo.num]~ | ~(mo.num, mo.num, mo_2e_int.eri_cholesky_num)~ | Cholesky decomposition of the ERI |
| ~eri_lr_cholesky_num~ | ~dim~ | | Number of Cholesky vectors for long range ERI | | ~eri_lr_cholesky_num~ | ~dim~ | | | Number of Cholesky vectors for long range ERI |
| ~eri_lr_cholesky~ | ~float sparse~ | ~(mo.num, mo.num, mo_2e_int.eri_lr_cholesky_num)~ | Cholesky decomposition of the long range ERI | | ~eri_lr_cholesky~ | ~float sparse~ | ~[mo_2e_int.eri_lr_cholesky_num, mo.num, mo.num]~ | ~(mo.num, mo.num, mo_2e_int.eri_lr_cholesky_num)~ | Cholesky decomposition of the long range ERI |
#+CALL: json(data=mo_2e_int, title="mo_2e_int") #+CALL: json(data=mo_2e_int, title="mo_2e_int")
@ -941,11 +948,11 @@ power = [
An illustration on how to read determinants is presented in the [[./examples.html][examples]]. An illustration on how to read determinants is presented in the [[./examples.html][examples]].
#+NAME: determinant #+NAME: determinant
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|---------------+------------------+---------------------+--------------------------------------------------------| |---------------+------------------+----------------------+-------------------------+--------------------------------------------------------|
| ~num~ | ~dim readonly~ | | Number of determinants | | ~num~ | ~dim readonly~ | | | Number of determinants |
| ~list~ | ~int special~ | ~(determinant.num)~ | List of determinants as integer bit fields | | ~list~ | ~int special~ | ~[determinant.num]~ | ~(determinant.num)~ | List of determinants as integer bit fields |
| ~coefficient~ | ~float buffered~ | ~(determinant.num)~ | Coefficients of the determinants from the CI expansion | | ~coefficient~ | ~float buffered~ | ~[determinant.num]~ | ~(determinant.num)~ | Coefficients of the determinants from the CI expansion |
#+CALL: json(data=determinant, title="determinant") #+CALL: json(data=determinant, title="determinant")
@ -977,11 +984,11 @@ power = [
the basis of Slater determinants. the basis of Slater determinants.
#+NAME: csf #+NAME: csf
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|-------------------+------------------+-----------------------------+-----------------------------------------| |-------------------+------------------+------------------------------+------------------------------+-----------------------------------------|
| ~num~ | ~dim readonly~ | | Number of CSFs | | ~num~ | ~dim readonly~ | | | Number of CSFs |
| ~coefficient~ | ~float buffered~ | ~(csf.num)~ | Coefficients $C_I$ of the CSF expansion | | ~coefficient~ | ~float buffered~ | ~[csf.num]~ | ~(csf.num)~ | Coefficients $C_I$ of the CSF expansion |
| ~det_coefficient~ | ~float sparse~ | ~(determinant.num,csf.num)~ | Projection on the determinant basis | | ~det_coefficient~ | ~float sparse~ | ~[csf.num, determinant.num]~ | ~(determinant.num, csf.num)~ | Projection on the determinant basis |
#+CALL: json(data=csf, title="csf") #+CALL: json(data=csf, title="csf")
@ -1040,16 +1047,16 @@ power = [
- $\dots$ - $\dots$
#+NAME: amplitude #+NAME: amplitude
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|-----------------+----------------+-------------------------------------------------------------+-------------------------------------------------| |-----------------+----------------+-------------------------------------------------------------+-------------------------------------------------------------+-------------------------------------------------|
| ~single~ | ~float sparse~ | ~(mo.num,mo.num)~ | Single excitation amplitudes | | ~single~ | ~float sparse~ | ~[mo.num,mo.num]~ | ~(mo.num,mo.num)~ | Single excitation amplitudes |
| ~single_exp~ | ~float sparse~ | ~(mo.num,mo.num)~ | Exponentialized single excitation amplitudes | | ~single_exp~ | ~float sparse~ | ~[mo.num,mo.num]~ | ~(mo.num,mo.num)~ | Exponentialized single excitation amplitudes |
| ~double~ | ~float sparse~ | ~(mo.num,mo.num,mo.num,mo.num)~ | Double excitation amplitudes | | ~double~ | ~float sparse~ | ~[mo.num,mo.num,mo.num,mo.num]~ | ~(mo.num,mo.num,mo.num,mo.num)~ | Double excitation amplitudes |
| ~double_exp~ | ~float sparse~ | ~(mo.num,mo.num,mo.num,mo.num)~ | Exponentialized double excitation amplitudes | | ~double_exp~ | ~float sparse~ | ~[mo.num,mo.num,mo.num,mo.num]~ | ~(mo.num,mo.num,mo.num,mo.num)~ | Exponentialized double excitation amplitudes |
| ~triple~ | ~float sparse~ | ~(mo.num,mo.num,mo.num,mo.num,mo.num,mo.num)~ | Triple excitation amplitudes | | ~triple~ | ~float sparse~ | ~[mo.num,mo.num,mo.num,mo.num,mo.num,mo.num]~ | ~(mo.num,mo.num,mo.num,mo.num,mo.num,mo.num)~ | Triple excitation amplitudes |
| ~triple_exp~ | ~float sparse~ | ~(mo.num,mo.num,mo.num,mo.num,mo.num,mo.num)~ | Exponentialized triple excitation amplitudes | | ~triple_exp~ | ~float sparse~ | ~[mo.num,mo.num,mo.num,mo.num,mo.num,mo.num]~ | ~(mo.num,mo.num,mo.num,mo.num,mo.num,mo.num)~ | Exponentialized triple excitation amplitudes |
| ~quadruple~ | ~float sparse~ | ~(mo.num,mo.num,mo.num,mo.num,mo.num,mo.num,mo.num,mo.num)~ | Quadruple excitation amplitudes | | ~quadruple~ | ~float sparse~ | ~[mo.num,mo.num,mo.num,mo.num,mo.num,mo.num,mo.num,mo.num]~ | ~(mo.num,mo.num,mo.num,mo.num,mo.num,mo.num,mo.num,mo.num)~ | Quadruple excitation amplitudes |
| ~quadruple_exp~ | ~float sparse~ | ~(mo.num,mo.num,mo.num,mo.num,mo.num,mo.num,mo.num,mo.num)~ | Exponentialized quadruple excitation amplitudes | | ~quadruple_exp~ | ~float sparse~ | ~[mo.num,mo.num,mo.num,mo.num,mo.num,mo.num,mo.num,mo.num]~ | ~(mo.num,mo.num,mo.num,mo.num,mo.num,mo.num,mo.num,mo.num)~ | Exponentialized quadruple excitation amplitudes |
#+CALL: json(data=amplitude, title="amplitude") #+CALL: json(data=amplitude, title="amplitude")
@ -1124,25 +1131,25 @@ power = [
$g_{ik}(\mathbf{r}_1) = \phi_i(\mathbf{r}_1) \phi_k(\mathbf{r}_1)$. $g_{ik}(\mathbf{r}_1) = \phi_i(\mathbf{r}_1) \phi_k(\mathbf{r}_1)$.
#+NAME: rdm #+NAME: rdm
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|------------------------+----------------+---------------------------------------------------------+-----------------------------------------------------------------------| |------------------------+----------------+----------------------------------------------------------+----------------------------------------------------------+-----------------------------------------------------------------------|
| ~1e~ | ~float~ | ~(mo.num, mo.num)~ | One body density matrix | | ~1e~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | One body density matrix |
| ~1e_up~ | ~float~ | ~(mo.num, mo.num)~ | \uparrow-spin component of the one body density matrix | | ~1e_up~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | \uparrow-spin component of the one body density matrix |
| ~1e_dn~ | ~float~ | ~(mo.num, mo.num)~ | \downarrow-spin component of the one body density matrix | | ~1e_dn~ | ~float~ | ~[mo.num, mo.num]~ | ~(mo.num, mo.num)~ | \downarrow-spin component of the one body density matrix |
| ~1e_transition~ | ~float~ | ~(mo.num, mo.num, state.num, state.num) | One-particle transition density matrices | | ~1e_transition~ | ~float~ | ~[state.num, state.num, mo.num, mo.num]~ | ~(mo.num, mo.num, state.num, state.num)~ | One-particle transition density matrices |
| ~2e~ | ~float sparse~ | ~(mo.num, mo.num, mo.num, mo.num)~ | Two-body reduced density matrix (spin trace) | | ~2e~ | ~float sparse~ | ~[mo.num, mo.num, mo.num, mo.num]~ | ~(mo.num, mo.num, mo.num, mo.num)~ | Two-body reduced density matrix (spin trace) |
| ~2e_upup~ | ~float sparse~ | ~(mo.num, mo.num, mo.num, mo.num)~ | \uparrow\uparrow component of the two-body reduced density matrix | | ~2e_upup~ | ~float sparse~ | ~[mo.num, mo.num, mo.num, mo.num]~ | ~(mo.num, mo.num, mo.num, mo.num)~ | \uparrow\uparrow component of the two-body reduced density matrix |
| ~2e_dndn~ | ~float sparse~ | ~(mo.num, mo.num, mo.num, mo.num)~ | \downarrow\downarrow component of the two-body reduced density matrix | | ~2e_dndn~ | ~float sparse~ | ~[mo.num, mo.num, mo.num, mo.num]~ | ~(mo.num, mo.num, mo.num, mo.num)~ | \downarrow\downarrow component of the two-body reduced density matrix |
| ~2e_updn~ | ~float sparse~ | ~(mo.num, mo.num, mo.num, mo.num)~ | \uparrow\downarrow component of the two-body reduced density matrix | | ~2e_updn~ | ~float sparse~ | ~[mo.num, mo.num, mo.num, mo.num]~ | ~(mo.num, mo.num, mo.num, mo.num)~ | \uparrow\downarrow component of the two-body reduced density matrix |
| ~2e_transition~ | ~float sparse~ | ~(mo.num, mo.num, mo.num, mo.num, state.num, state.num) | Two-particle transition density matrices | | ~2e_transition~ | ~float sparse~ | ~[state.num, state.num, mo.num, mo.num, mo.num, mo.num]~ | ~(mo.num, mo.num, mo.num, mo.num, state.num, state.num)~ | Two-particle transition density matrices |
| ~2e_cholesky_num~ | ~dim~ | | Number of Cholesky vectors | | ~2e_cholesky_num~ | ~dim~ | | | Number of Cholesky vectors |
| ~2e_cholesky~ | ~float sparse~ | ~(mo.num, mo.num, rdm.2e_cholesky_num)~ | Cholesky decomposition of the two-body RDM (spin trace) | | ~2e_cholesky~ | ~float sparse~ | ~[rdm.2e_cholesky_num, mo.num, mo.num]~ | ~(mo.num, mo.num, rdm.2e_cholesky_num)~ | Cholesky decomposition of the two-body RDM (spin trace) |
| ~2e_upup_cholesky_num~ | ~dim~ | | Number of Cholesky vectors | | ~2e_upup_cholesky_num~ | ~dim~ | | | Number of Cholesky vectors |
| ~2e_upup_cholesky~ | ~float sparse~ | ~(mo.num, mo.num, rdm.2e_upup_cholesky_num)~ | Cholesky decomposition of the two-body RDM (\uparrow\uparrow) | | ~2e_upup_cholesky~ | ~float sparse~ | ~[rdm.2e_upup_cholesky_num, mo.num, mo.num]~ | ~(mo.num, mo.num, rdm.2e_upup_cholesky_num)~ | Cholesky decomposition of the two-body RDM (\uparrow\uparrow) |
| ~2e_dndn_cholesky_num~ | ~dim~ | | Number of Cholesky vectors | | ~2e_dndn_cholesky_num~ | ~dim~ | | | Number of Cholesky vectors |
| ~2e_dndn_cholesky~ | ~float sparse~ | ~(mo.num, mo.num, rdm.2e_dndn_cholesky_num)~ | Cholesky decomposition of the two-body RDM (\downarrow\downarrow) | | ~2e_dndn_cholesky~ | ~float sparse~ | ~[rdm.2e_dndn_cholesky_num, mo.num, mo.num]~ | ~(mo.num, mo.num, rdm.2e_dndn_cholesky_num)~ | Cholesky decomposition of the two-body RDM (\downarrow\downarrow) |
| ~2e_updn_cholesky_num~ | ~dim~ | | Number of Cholesky vectors | | ~2e_updn_cholesky_num~ | ~dim~ | | | Number of Cholesky vectors |
| ~2e_updn_cholesky~ | ~float sparse~ | ~(mo.num, mo.num, rdm.2e_updn_cholesky_num)~ | Cholesky decomposition of the two-body RDM (\uparrow\downarrow) | | ~2e_updn_cholesky~ | ~float sparse~ | ~[rdm.2e_updn_cholesky_num, mo.num, mo.num]~ | ~(mo.num, mo.num, rdm.2e_updn_cholesky_num)~ | Cholesky decomposition of the two-body RDM (\uparrow\downarrow) |
#+CALL: json(data=rdm, title="rdm") #+CALL: json(data=rdm, title="rdm")
@ -1329,19 +1336,19 @@ power = [
*** Table of values *** Table of values
#+name: jastrow #+name: jastrow
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|---------------+---------+---------------------+-----------------------------------------------------------------| |---------------+---------+----------------------+-------------------------+-----------------------------------------------------------------|
| ~type~ | ~str~ | | Type of Jastrow factor: ~CHAMP~ or ~Mu~ | | ~type~ | ~str~ | | | Type of Jastrow factor: ~CHAMP~ or ~Mu~ |
| ~en_num~ | ~dim~ | | Number of Electron-nucleus parameters | | ~en_num~ | ~dim~ | | | Number of Electron-nucleus parameters |
| ~ee_num~ | ~dim~ | | Number of Electron-electron parameters | | ~ee_num~ | ~dim~ | | | Number of Electron-electron parameters |
| ~een_num~ | ~dim~ | | Number of Electron-electron-nucleus parameters | | ~een_num~ | ~dim~ | | | Number of Electron-electron-nucleus parameters |
| ~en~ | ~float~ | ~(jastrow.en_num)~ | Electron-nucleus parameters | | ~en~ | ~float~ | ~[jastrow.en_num]~ | ~(jastrow.en_num)~ | Electron-nucleus parameters |
| ~ee~ | ~float~ | ~(jastrow.ee_num)~ | Electron-electron parameters | | ~ee~ | ~float~ | ~[jastrow.ee_num]~ | ~(jastrow.ee_num)~ | Electron-electron parameters |
| ~een~ | ~float~ | ~(jastrow.een_num)~ | Electron-electron-nucleus parameters | | ~een~ | ~float~ | ~[jastrow.een_num]~ | ~(jastrow.een_num)~ | Electron-electron-nucleus parameters |
| ~en_nucleus~ | ~index~ | ~(jastrow.en_num)~ | Nucleus relative to the eN parameter | | ~en_nucleus~ | ~index~ | ~[jastrow.en_num]~ | ~(jastrow.en_num)~ | Nucleus relative to the eN parameter |
| ~een_nucleus~ | ~index~ | ~(jastrow.een_num)~ | Nucleus relative to the eeN parameter | | ~een_nucleus~ | ~index~ | ~[jastrow.een_num]~ | ~(jastrow.een_num)~ | Nucleus relative to the eeN parameter |
| ~ee_scaling~ | ~float~ | | $\kappa$ value in CHAMP Jastrow for electron-electron distances | | ~ee_scaling~ | ~float~ | | | $\kappa$ value in CHAMP Jastrow for electron-electron distances |
| ~en_scaling~ | ~float~ | ~(nucleus.num)~ | $\kappa$ value in CHAMP Jastrow for electron-nucleus distances | | ~en_scaling~ | ~float~ | ~[nucleus.num]~ | ~(nucleus.num)~ | $\kappa$ value in CHAMP Jastrow for electron-nucleus distances |
#+CALL: json(data=jastrow, title="jastrow") #+CALL: json(data=jastrow, title="jastrow")
@ -1349,17 +1356,17 @@ power = [
:results: :results:
#+begin_src python :tangle trex.json #+begin_src python :tangle trex.json
"jastrow": { "jastrow": {
"type" : [ "str" , [] ] "type" : [ "str" , [] ]
, "en_num" : [ "dim" , [] ] , "en_num" : [ "dim" , [] ]
, "ee_num" : [ "dim" , [] ] , "ee_num" : [ "dim" , [] ]
, "een_num" : [ "dim" , [] ] , "een_num" : [ "dim" , [] ]
, "en" : [ "float" , [ "jastrow.en_num" ] ] , "en" : [ "float", [ "jastrow.en_num" ] ]
, "ee" : [ "float" , [ "jastrow.ee_num" ] ] , "ee" : [ "float", [ "jastrow.ee_num" ] ]
, "een" : [ "float" , [ "jastrow.een_num" ] ] , "een" : [ "float", [ "jastrow.een_num" ] ]
, "en_nucleus" : [ "index" , [ "jastrow.en_num" ] ] , "en_nucleus" : [ "index", [ "jastrow.en_num" ] ]
, "een_nucleus" : [ "index" , [ "jastrow.een_num" ] ] , "een_nucleus" : [ "index", [ "jastrow.een_num" ] ]
, "ee_scaling" : [ "float" , [] ] , "ee_scaling" : [ "float", [] ]
, "en_scaling" : [ "float" , [ "nucleus.num" ] ] , "en_scaling" : [ "float", [ "nucleus.num" ] ]
} , } ,
#+end_src #+end_src
:end: :end:
@ -1375,12 +1382,12 @@ power = [
of $\uparrow$-spin and then all the $\downarrow$-spin. of $\uparrow$-spin and then all the $\downarrow$-spin.
#+name: qmc #+name: qmc
| Variable | Type | Dimensions | Description | | Variable | Type | Row-major Dimensions | Column-major Dimensions | Description |
|----------+---------+------------------------------+---------------------------------------| |----------+---------+------------------------------+------------------------------+---------------------------------------|
| ~num~ | ~dim~ | | Number of 3N-dimensional points | | ~num~ | ~dim~ | | | Number of 3N-dimensional points |
| ~point~ | ~float~ | ~(3, electron.num, qmc.num)~ | 3N-dimensional points | | ~point~ | ~float~ | ~[qmc.num, electron.num, 3]~ | ~(3, electron.num, qmc.num)~ | 3N-dimensional points |
| ~psi~ | ~float~ | ~(qmc.num)~ | Wave function evaluated at the points | | ~psi~ | ~float~ | ~[qmc.num]~ | ~(qmc.num)~ | Wave function evaluated at the points |
| ~e_loc~ | ~float~ | ~(qmc.num)~ | Local energy evaluated at the points | | ~e_loc~ | ~float~ | ~[qmc.num]~ | ~(qmc.num)~ | Local energy evaluated at the points |
#+CALL: json(data=qmc, title="qmc", last=1) #+CALL: json(data=qmc, title="qmc", last=1)
@ -1410,7 +1417,7 @@ for line in data:
name = '"'+line[0]+'"' name = '"'+line[0]+'"'
typ = '"'+line[1]+'"' typ = '"'+line[1]+'"'
dims = line[2] dims = line[2]
if '(' in dims: if '[' in dims:
dims = dims.strip()[1:-1] dims = dims.strip()[1:-1]
dims = [ '"'+x.strip()+'"' for x in dims.split(',') ] dims = [ '"'+x.strip()+'"' for x in dims.split(',') ]
dims = "[ " + ", ".join(dims) + " ]" dims = "[ " + ", ".join(dims) + " ]"
@ -1426,10 +1433,9 @@ for line in data:
name = '"'+line[0]+'"' name = '"'+line[0]+'"'
typ = '"'+line[1]+'"' typ = '"'+line[1]+'"'
dims = line[2] dims = line[2]
if '(' in dims: if '[' in dims:
dims = dims.strip()[1:-1] dims = dims.strip()[1:-1]
dims = [ '"'+x.strip()+'"' for x in dims.split(',') ] dims = [ '"'+x.strip()+'"' for x in dims.split(',') ]
dims.reverse()
dims = "[ " + ", ".join(dims) + " ]" dims = "[ " + ", ".join(dims) + " ]"
else: else:
if dims.strip() != "": if dims.strip() != "":
@ -1448,6 +1454,20 @@ print("""#+end_src""")
#+end_src #+end_src
#+RESULTS: json
:results:
#+begin_src python :tangle trex.json
"nucleus": {
"num" : [ "dim" , [] ]
, "charge" : [ "float", [ "nucleus.num" ] ]
, "coord" : [ "float", [ "nucleus.num", "3" ] ]
, "label" : [ "str" , [ "nucleus.num" ] ]
, "point_group" : [ "str" , [] ]
, "repulsion" : [ "float", [] ]
} ,
#+end_src
:end:
#+begin_src python :tangle trex.json :results output drawer :exports none #+begin_src python :tangle trex.json :results output drawer :exports none
} }