mirror of
https://github.com/TREX-CoE/trexio.git
synced 2025-04-26 02:14:54 +02:00
Add state group
This commit is contained in:
parent
3bc8a449db
commit
f0189cb8da
63
trex.org
63
trex.org
@ -637,46 +637,71 @@ prim_factor =
|
|||||||
|
|
||||||
* Slater determinants (determinant group)
|
* Slater determinants (determinant group)
|
||||||
|
|
||||||
The configuration interaction (CI) wave function $\Psi$
|
The configuration interaction (CI) wave function $\Psi$
|
||||||
can be expanded in the basis of Slater determinants $D_I$ as follows
|
can be expanded in the basis of Slater determinants $D_I$ as follows
|
||||||
|
|
||||||
\[
|
\[
|
||||||
| \Psi> = \sum_I C_I | D_I>
|
| \Psi> = \sum_I C_I | D_I> |
|
||||||
\]
|
\]
|
||||||
|
|
||||||
For relatively small expansions, a given determinant can be represented as a list of ~mo.num~ occupation numbers.
|
For relatively small expansions, a given determinant can be represented as a list of ~mo.num~ occupation numbers.
|
||||||
However, this requires a lot of extra memory and would be technically impossible for larger expansions
|
However, this requires a lot of extra memory and would be technically impossible for larger expansions
|
||||||
(~millions of determinants). This is why the determinants are stored as bit fields in the TREXIO file
|
(~millions of determinants). This is why the determinants are stored as bit fields in the TREXIO file
|
||||||
(see ~int bitfield~ type in the table below). By default, the chemist notation is used, namely
|
(see ~int bitfield~ type in the table below). By default, the chemist notation is used, namely
|
||||||
|
|
||||||
\[
|
\[
|
||||||
| D_I > = | \alpha_1 \alpha_2 \ldots \alpha_{n\uparrow} \beta_1 \beta_2 \ldots \beta_{n\downarrow} >
|
| D_I > = | \alpha_1 \alpha_2 \ldots \alpha_{n\uparrow} \beta_1 \beta_2 \ldots \beta_{n\downarrow} > |
|
||||||
\]
|
\]
|
||||||
|
|
||||||
where $\alpha$ and $\beta$ denote $\uparrow$-spin and $\downarrow$-spin electrons, respectively,
|
where $\alpha$ and $\beta$ denote $\uparrow$-spin and $\downarrow$-spin electrons, respectively,
|
||||||
$n\uparrow$ and $n\downarrow$ correspond to ~electron.up_num~ and ~electron.dn_num~, respectively.
|
$n\uparrow$ and $n\downarrow$ correspond to ~electron.up_num~ and ~electron.dn_num~, respectively.
|
||||||
Internally, bit fields for $\alpha$ and $\beta$ electrons are stored separately,
|
Internally, bit fields for $\alpha$ and $\beta$ electrons are stored separately,
|
||||||
which is why the ~determinant.list~ attribute has a second dimension.
|
which is why the ~determinant.list~ attribute has a second dimension.
|
||||||
|
|
||||||
#+NAME: determinant
|
#+NAME: determinant
|
||||||
| Variable | Type | Dimensions | Description |
|
| Variable | Type | Dimensions | Description |
|
||||||
|---------------+-----------------+------------------------+--------------------------------------------------------|
|
|---------------+-----------------+-------------------------------+--------------------------------------------------------|
|
||||||
| ~num~ | ~dim~ | | Number of determinants |
|
| ~num~ | ~dim~ | | Number of determinants |
|
||||||
| ~list~ | ~int special~ | ~(determinant.num, 2)~ | List of determinants as integer bit fields |
|
| ~list~ | ~int special~ | ~(determinant.num)~ | List of determinants as integer bit fields |
|
||||||
| ~coefficient~ | ~float special~ | ~(determinant.num)~ | Coefficients of the determinants from the CI expansion |
|
| ~coefficient~ | ~float special~ | ~(state.num,determinant.num)~ | Coefficients of the determinants from the CI expansion |
|
||||||
|
|
||||||
#+CALL: json(data=determinant, title="determinant")
|
#+CALL: json(data=determinant, title="determinant")
|
||||||
|
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
:results:
|
:RESULTS:
|
||||||
#+begin_src python :tangle trex.json
|
#+begin_src python :tangle trex.json
|
||||||
"determinant": {
|
"determinant": {
|
||||||
"num" : [ "dim" , [] ]
|
"num" : [ "dim" , [] ]
|
||||||
, "list" : [ "int special" , [ "2", "determinant.num" ] ]
|
, "list" : [ "int special" , [ "determinant.num" ] ]
|
||||||
, "coefficient" : [ "float special", [ "determinant.num" ] ]
|
, "coefficient" : [ "float special", [ "determinant.num", "state.num" ] ]
|
||||||
} ,
|
} ,
|
||||||
#+end_src
|
#+end_src
|
||||||
:end:
|
:END:
|
||||||
|
|
||||||
|
* Excited states (state group)
|
||||||
|
|
||||||
|
By default, the ~determinant~ group corresponds to the ground state.
|
||||||
|
However, it should be also possible to store the coefficients that
|
||||||
|
correspond to excited state wave functions for the same set of
|
||||||
|
determinants. This is the goal of the present group
|
||||||
|
|
||||||
|
#+NAME: state
|
||||||
|
| Variable | Type | Dimensions | Description |
|
||||||
|
|----------+-------+---------------+------------------------------------------------|
|
||||||
|
| ~num~ | ~dim~ | | Number of states (including the ground state) |
|
||||||
|
| ~label~ | ~str~ | ~(state.num)~ | Label of a given state (e.g. 'S' for singlets) |
|
||||||
|
|
||||||
|
#+CALL: json(data=state, title="state")
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
:RESULTS:
|
||||||
|
#+begin_src python :tangle trex.json
|
||||||
|
"state": {
|
||||||
|
"num" : [ "dim", [] ]
|
||||||
|
, "label" : [ "str", [ "state.num" ] ]
|
||||||
|
} ,
|
||||||
|
#+end_src
|
||||||
|
:END:
|
||||||
|
|
||||||
* Reduced density matrices (rdm group)
|
* Reduced density matrices (rdm group)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user