16 KiB
TREX Configuration file
- Metadata
- Electron
- Nucleus
- Effective core potentials
- Basis set
- Atomic orbitals
- Molecular orbitals
- Slater determinants
- Reduced density matrices
All the quantities are saved in atomic units.
{
Metadata
code_num |
int |
Number of codes used to produce the file | |
~code ~ | str |
(metadata.code_num) |
Names of the codes used |
author_num |
int |
Number of authors of the file | |
author |
str |
(metadata.author_num) |
Names of the authors of the file |
description |
str |
Text describing the content of file |
"metadata": {
"code_num" : [ "int", [] ]
, "code " : [ "str", [ "metadata.code_num" ] ]
, "author_num" : [ "int", [] ]
, "author" : [ "str", [ "metadata.author_num" ] ]
, "description" : [ "str", [] ]
} ,
Electron
#+NAME:electron
up_num |
int |
Number of $\uparrow$-spin electrons |
dn_num |
int |
Number of $\downarrow$-spin electrons |
"electron": {
"up_num" : [ "int", [] ]
, "dn_num" : [ "int", [] ]
} ,
Nucleus
num |
int |
Number of nuclei | |
charge |
float |
(nucleus.num) |
Charges of the nuclei |
coord |
float |
(nucleus.num, 3) |
Coordinates of the atoms |
label |
str |
(nucleus.num) |
Atom labels |
point_group |
str |
Symmetry point group |
"nucleus": {
"num" : [ "int" , [] ]
, "charge" : [ "float", [ "nucleus.num" ] ]
, "coord" : [ "float", [ "nucleus.num", "3" ] ]
, "label" : [ "str" , [ "nucleus.num" ] ]
, "point_group" : [ "str" , [] ]
} ,
TODO Effective core potentials
- $\hat{V}_\text{ecp,l} =$ : local component
- $\hat{V}_\text{ecp,nl} =$ : non-local component
lmax_plus_1 |
int |
(nucleus.num) |
$l_{\max} + 1$ |
z_core |
float |
(nucleus.num) |
Charges to remove |
local_n |
int |
(nucleus.num) |
Number of local function |
local_num_n_max |
int |
Maximum value of local_n |
|
local_exponent |
float |
(nucleus.num, ecp.local_num_n_max) |
|
local_coef |
float |
(nucleus.num, ecp.local_num_n_max) |
|
local_power |
int |
(nucleus.num, ecp.local_num_n_max) |
|
non_local_n |
int |
(nucleus.num) |
|
non_local_num_n_max |
int |
||
non_local_exponent |
float |
(nucleus.num, ecp.non_local_num_n_max) |
|
non_local_coef |
float |
(nucleus.num, ecp.non_local_num_n_max) |
|
non_local_power |
int |
(nucleus.num, ecp.non_local_num_n_max) |
"ecp": {
"lmax_plus_1" : [ "int" , [ "nucleus.num" ] ]
, "z_core" : [ "float", [ "nucleus.num" ] ]
, "local_n" : [ "int" , [ "nucleus.num" ] ]
, "local_num_n_max" : [ "int" , [] ]
, "local_exponent" : [ "float", [ "nucleus.num", "ecp.local_num_n_max" ] ]
, "local_coef" : [ "float", [ "nucleus.num", "ecp.local_num_n_max" ] ]
, "local_power" : [ "int" , [ "nucleus.num", "ecp.local_num_n_max" ] ]
, "non_local_n" : [ "int" , [ "nucleus.num" ] ]
, "non_local_num_n_max" : [ "int" , [] ]
, "non_local_exponent" : [ "float", [ "nucleus.num", "ecp.non_local_num_n_max" ] ]
, "non_local_coef" : [ "float", [ "nucleus.num", "ecp.non_local_num_n_max" ] ]
, "non_local_power" : [ "int" , [ "nucleus.num", "ecp.non_local_num_n_max" ] ]
} ,
Basis set
type |
str |
Type of basis set: "Gaussian" or "Slater" | |
shell_num |
int |
Total Number of shells | |
shell_factor |
float |
(basis.shell_num) |
Normalization factor of the shell |
shell_center |
int |
(basis.shell_num) |
Nucleus on which the shell is centered |
shell_ang_mom |
int |
(basis.shell_num) |
Angular momentum 0:S, 1:P, 2:D, ... |
shell_prim_num |
int |
(basis.shell_num) |
Number of primitives in the shell |
prim_index |
int |
(basis.shell_num) |
Index of the first primitive in the complete list |
prim_num |
int |
Total number of primitives | |
exponent |
float |
(basis.prim_num) |
Exponents of the primitives |
coefficient |
float |
(basis.prim_num) |
Coefficients of the primitives |
"basis": {
"type" : [ "str" , [] ]
, "shell_num" : [ "int" , [] ]
, "shell_factor" : [ "float", [ "basis.shell_num" ] ]
, "shell_center" : [ "int" , [ "basis.shell_num" ] ]
, "shell_ang_mom" : [ "int" , [ "basis.shell_num" ] ]
, "shell_prim_num" : [ "int" , [ "basis.shell_num" ] ]
, "prim_index" : [ "int" , [ "basis.shell_num" ] ]
, "prim_num" : [ "int" , [] ]
, "exponent" : [ "float", [ "basis.prim_num" ] ]
, "coefficient" : [ "float", [ "basis.prim_num" ] ]
} ,
Atomic orbitals
num |
int |
Number of atomic orbitals | |
cartesian |
int |
1 : true, 0 : false |
|
shell |
int |
ao.num |
ID of the basis set shell |
normalization |
float |
ao.num |
Normalization factor of the AOs |
"ao": {
"num" : [ "int" , [] ]
, "cartesian" : [ "int" , [] ]
, "shell" : [ "int" , [] ]
, "normalization" : [ "float", [] ]
} ,
One-electron integrals
- \[ \hat{V}_{\text{ne}} = \sum_{A=1}^{N_\text{nucl}} \sum_{i=1}^{N_\text{elec}} \frac{-Q_A }{\vert \mathbf{R}_A - \mathbf{r}_i \vert} \] : electron-nucleus attractive potential,
- \[ \hat{T}_{\text{e}} = \sum_{i=1}^{N_\text{elec}} -\frac{1}{2}\hat{\Delta}_i \] : electronic kinetic energy
- $\hat{h} = \hat{T}_\text{e} + \hat{V}_\text{ne} + \hat{V}_\text{ecp,l} + \hat{V}_\text{ecp,nl}$ : core electronic Hamiltonian
The one-electron integrals for a one-electron operator $\hat{O}$ are \[ \langle p \vert \hat{O} \vert q \rangle \], returned as a matrix over atomic orbitals.
overlap |
float |
(ao.num, ao.num) |
$\langle p \vert q \rangle$ |
kinetic |
float |
(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$ |
ecp_local |
float |
(ao.num, ao.num) |
$\langle p \vert \hat{V}_{\text{ecp,l} \vert q \rangle$ |
ecp_non_local |
float |
(ao.num, ao.num) |
$\langle p \vert \hat{V}_{\text{ecp,nl} \vert q \rangle$ |
core_hamiltonian |
float |
(ao.num, ao.num) |
$\langle p \vert \hat{h} \vert q \rangle$ |
"ao_1e_int": {
"overlap" : [ "float", [ "ao.num", "ao.num" ] ]
, "kinetic" : [ "float", [ "ao.num", "ao.num" ] ]
, "potential_n_e" : [ "float", [ "ao.num", "ao.num" ] ]
, "ecp_local" : [ "float", [ "ao.num", "ao.num" ] ]
, "ecp_non_local" : [ "float", [ "ao.num", "ao.num" ] ]
, "core_hamiltonian" : [ "float", [ "ao.num", "ao.num" ] ]
} ,
Two-electron integrals
The two-electron integrals for a two-electron operator $\hat{O}$ are \[ \langle p q \vert \hat{O} \vert r s \rangle \] in physicists notation or \[ ( pr \vert \hat{O} \vert qs ) \] in chemists notation, where $p,q,r,s$ are indices over atomic orbitals.
Functions are provided to get the indices in physicists or chemists notation.
- \[ \hat{W}_{\text{ee}} = \sum_{i=2}^{N_\text{elec}} \sum_{j=1}^{i-1} \frac{1}{\vert \mathbf{r}_i - \mathbf{r}_j \vert} \] : electron-electron repulsive potential operator.
- \[ \hat{W}^{lr}_{\text{ee}} = \sum_{i=2}^{N_\text{elec}} \sum_{j=1}^{i-1} \frac{\text{erf}(\vert \mathbf{r}_i - \mathbf{r}_j \vert)}{\vert \mathbf{r}_i - \mathbf{r}_j \vert} \] : electron-electron long range potential
eri |
float sparse |
(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 |
"ao_2e_int": {
"eri" : [ "float sparse", [ "ao.num", "ao.num", "ao.num", "ao.num" ] ]
, "eri_lr" : [ "float sparse", [ "ao.num", "ao.num", "ao.num", "ao.num" ] ]
} ,
Molecular orbitals
type |
str |
String identify the set of MOs | |
num |
int |
Number of MOs | |
coef |
float |
(ao.num, mo.num) |
MO coefficients |
class |
str |
(mo.num) |
Core, Inactive, Active, Virtual, Deleted |
symmetry |
str |
(mo.num) |
Symmetry in the point group |
occupation |
float |
(mo.num) |
Occupation number |
"mo": {
"type" : [ "str" , [] ]
, "num" : [ "int" , [] ]
, "coef" : [ "float", [ "ao.num", "mo.num" ] ]
, "class" : [ "str" , [ "mo.num" ] ]
, "symmetry" : [ "str" , [ "mo.num" ] ]
, "occupation" : [ "float", [ "mo.num" ] ]
} ,
One-electron integrals
The operators as the same as those defined in the AO one-electron integrals section. Here, the integrals are given in the basis of molecular orbitals.
overlap |
float |
(mo.num, mo.num) |
$\langle i \vert j \rangle$ |
kinetic |
float |
(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$ |
ecp_local |
float |
(mo.num, mo.num) |
$\langle i \vert \hat{V}_{\text{ecp,l} \vert j \rangle$ |
ecp_non_local |
float |
(mo.num, mo.num) |
$\langle i \vert \hat{V}_{\text{ecp,nl} \vert j \rangle$ |
core_hamiltonian |
float |
(mo.num, mo.num) |
$\langle i \vert \hat{h} \vert j \rangle$ |
"mo_1e_int": {
"overlap" : [ "float", [ "mo.num", "mo.num" ] ]
, "kinetic" : [ "float", [ "mo.num", "mo.num" ] ]
, "potential_n_e" : [ "float", [ "mo.num", "mo.num" ] ]
, "ecp_local" : [ "float", [ "mo.num", "mo.num" ] ]
, "ecp_non_local" : [ "float", [ "mo.num", "mo.num" ] ]
, "core_hamiltonian" : [ "float", [ "mo.num", "mo.num" ] ]
} ,
Two-electron integrals
The operators as the same as those defined in the AO two-electron integrals section. Here, the integrals are given in the basis of molecular orbitals.
eri |
float sparse |
(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 |
"mo_2e_int": {
"eri" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ]
, "eri_lr" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ]
} ,
TODO Slater determinants
TODO Reduced density matrices
one_e |
float |
(mo.num, mo.num) |
one_e_up |
float |
(mo.num, mo.num) |
one_e_dn |
float |
(mo.num, mo.num) |
two_e |
float sparse |
(mo.num, mo.num, mo.num, mo.num) |
"rdm": {
"one_e" : [ "float" , [ "mo.num", "mo.num" ] ]
, "one_e_up" : [ "float" , [ "mo.num", "mo.num" ] ]
, "one_e_dn" : [ "float" , [ "mo.num", "mo.num" ] ]
, "two_e" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ]
}