1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-07-22 10:47:43 +02: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

540
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")
@ -220,7 +227,7 @@
*** Gaussian and Slater-type orbitals *** Gaussian and Slater-type orbitals
We consider here basis functions centered on nuclei. Hence, it is We consider here basis functions centered on nuclei. Hence, it is
possibile to define /dummy atoms/ to place basis functions in possibile to define /dummy atoms/ to place basis functions in
arbitrary positions. arbitrary positions.
@ -257,10 +264,10 @@
All the basis set parameters are stored in one-dimensional arrays. All the basis set parameters are stored in one-dimensional arrays.
*** Numerical orbitals *** Numerical orbitals
Trexio supports numerical atom centered orbitals. The implementation is Trexio supports numerical atom centered orbitals. The implementation is
based on the approach of FHI-aims [Blum, V. et al; Ab initio molecular based on the approach of FHI-aims [Blum, V. et al; Ab initio molecular
simulations with numeric atom-centered orbitals; Computer Physics simulations with numeric atom-centered orbitals; Computer Physics
Communications 2009]. These orbitals are Communications 2009]. These orbitals are
defined by the atom they are centered on, their angular momentum and a defined by the atom they are centered on, their angular momentum and a
radial function $R_s$, which is of the form radial function $R_s$, which is of the form
@ -271,7 +278,7 @@
grid. It is constructed to vanish for any $\mathbf{r}$ grid. It is constructed to vanish for any $\mathbf{r}$
outside of the grid. The reference points are stored in ~nao_grid_r~ outside of the grid. The reference points are stored in ~nao_grid_r~
and ~nao_grid_phi~. Additionaly, a separate spline for the first and second and ~nao_grid_phi~. Additionaly, a separate spline for the first and second
derivative of $u(\mathbf{r})$ can be stored in ~nao_grid_grad~ and ~nao_grid_lap~. derivative of $u(\mathbf{r})$ can be stored in ~nao_grid_grad~ and ~nao_grid_lap~.
Storing them in this form allows to calculate the actual first and Storing them in this form allows to calculate the actual first and
second derivatives easily as follows: second derivatives easily as follows:
@ -307,7 +314,7 @@
\] \]
For convenience, this conversion and functions to evaluate the splines For convenience, this conversion and functions to evaluate the splines
are provided with trexio. Since these implementations are not adapted to are provided with trexio. Since these implementations are not adapted to
a specific software architecture, a programm using these orbitals should a specific software architecture, a programm using these orbitals should
reimplement them with consideration for its specific needs. reimplement them with consideration for its specific needs.
*** Plane waves *** Plane waves
@ -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")
@ -1092,7 +1099,7 @@ power = [
\Gamma_{ijkl}^{\downarrow \downarrow} &=& \Gamma_{ijkl}^{\downarrow \downarrow} &=&
\langle \Psi | \hat{a}^{\dagger}_{k\beta}\, \hat{a}^{\dagger}_{l\beta} \hat{a}_{j\beta}\, \hat{a}_{i\beta} | \Psi \rangle \\ \langle \Psi | \hat{a}^{\dagger}_{k\beta}\, \hat{a}^{\dagger}_{l\beta} \hat{a}_{j\beta}\, \hat{a}_{i\beta} | \Psi \rangle \\
\Gamma_{ijkl}^{\uparrow \downarrow} &=& \Gamma_{ijkl}^{\uparrow \downarrow} &=&
\langle \Psi | \hat{a}^{\dagger}_{k\alpha}\, \hat{a}^{\dagger}_{l\beta} \hat{a}_{j\beta}\, \hat{a}_{i\alpha} | \Psi \rangle \langle \Psi | \hat{a}^{\dagger}_{k\alpha}\, \hat{a}^{\dagger}_{l\beta} \hat{a}_{j\beta}\, \hat{a}_{i\alpha} | \Psi \rangle
+ \langle \Psi | \hat{a}^{\dagger}_{l\alpha}\, \hat{a}^{\dagger}_{k\beta} \hat{a}_{i\beta}\, \hat{a}_{j\alpha} | \Psi \rangle \\ + \langle \Psi | \hat{a}^{\dagger}_{l\alpha}\, \hat{a}^{\dagger}_{k\beta} \hat{a}_{i\beta}\, \hat{a}_{j\alpha} | \Psi \rangle \\
\end{eqnarray*} \end{eqnarray*}
and the spin-summed one-body density matrix is and the spin-summed one-body density matrix is
@ -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")
@ -1217,7 +1224,7 @@ power = [
\sum_{p=2}^{N_\text{ord}^b} b_{p+1}\, [f_{\text{ee}}(r_{ij})]^p - J_{\text{ee},ij}^\infty \sum_{p=2}^{N_\text{ord}^b} b_{p+1}\, [f_{\text{ee}}(r_{ij})]^p - J_{\text{ee},ij}^\infty
\right] \right]
\] \]
$\delta^{\uparrow\downarrow}_{ij}$ is zero when the electrons $i$ and $\delta^{\uparrow\downarrow}_{ij}$ is zero when the electrons $i$ and
$j$ have the same spin, and one otherwise. $j$ have the same spin, and one otherwise.
@ -1242,9 +1249,9 @@ power = [
$J_{\text{eN}}$ and $J_{\text{ee}}$ have an asymptotic value of zero: $J_{\text{eN}}$ and $J_{\text{ee}}$ have an asymptotic value of zero:
\[ \[
J_{\text{eN}}^{\infty} = J_{\text{eN}}^{\infty} =
\frac{a_{1,\alpha}\, \kappa_\alpha^{-1}}{1+a_{2,\alpha}\, \frac{a_{1,\alpha}\, \kappa_\alpha^{-1}}{1+a_{2,\alpha}\,
\kappa_\alpha^{-1}} + \sum_{p=2}^{N_\text{ord}^a} a_{p+1,\alpha}\, \kappa_\alpha^{-p} \kappa_\alpha^{-1}} + \sum_{p=2}^{N_\text{ord}^a} a_{p+1,\alpha}\, \kappa_\alpha^{-p}
\] \]
\[ \[
J_{\text{ee},ij}^{\infty} = J_{\text{ee},ij}^{\infty} =
@ -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
} }