From 71604e1d163b3b1a45a67ed1e29e43637856efcd Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 30 Nov 2022 17:18:36 +0100 Subject: [PATCH] Added Cholesky-decomposed 2RDM --- trex.org | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/trex.org b/trex.org index a6239d3..880bb16 100644 --- a/trex.org +++ b/trex.org @@ -833,17 +833,23 @@ prim_factor = \frac{1}{2} \sum_{ijlk} \Gamma_{ijkl} \langle k l | i j \rangle \] + + To compress the storage, the Cholesky decomposition of the RDMs can + also be stored. + #+NAME: rdm - | Variable | Type | Dimensions | Description | - |-----------+----------------+------------------------------------+-----------------------------------------------------------------------| - | ~1e~ | ~float~ | ~(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_dn~ | ~float~ | ~(mo.num, mo.num)~ | \downarrow-spin component of the one body density matrix | - | ~2e~ | ~float sparse~ | ~(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_dndn~ | ~float sparse~ | ~(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_dnup~ | ~float sparse~ | ~(mo.num, mo.num, mo.num, mo.num)~ | \downarrow\uparrow component of the two-body reduced density matrix | + | Variable | Type | Dimensions | Description | + |---------------+----------------+------------------------------------+-----------------------------------------------------------------------| + | ~1e~ | ~float~ | ~(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_dn~ | ~float~ | ~(mo.num, mo.num)~ | \downarrow-spin component of the one body density matrix | + | ~2e~ | ~float sparse~ | ~(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_dndn~ | ~float sparse~ | ~(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_dnup~ | ~float sparse~ | ~(mo.num, mo.num, mo.num, mo.num)~ | \downarrow\uparrow component of the two-body reduced density matrix | + | ~chol_num~ | ~dim~ | | Number of cholesky vector | + | ~2e_cholesky~ | ~float sparse~ | ~(mo.num, mo.num, rdm.chol_num)~ | Two-body RDM (spin trace) in the basis of Cholesky vectors | #+CALL: json(data=rdm, title="rdm") @@ -851,14 +857,16 @@ prim_factor = :results: #+begin_src python :tangle trex.json "rdm": { - "1e" : [ "float" , [ "mo.num", "mo.num" ] ] - , "1e_up" : [ "float" , [ "mo.num", "mo.num" ] ] - , "1e_dn" : [ "float" , [ "mo.num", "mo.num" ] ] - , "2e" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ] - , "2e_upup" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ] - , "2e_dndn" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ] - , "2e_updn" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ] - , "2e_dnup" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ] + "1e" : [ "float" , [ "mo.num", "mo.num" ] ] + , "1e_up" : [ "float" , [ "mo.num", "mo.num" ] ] + , "1e_dn" : [ "float" , [ "mo.num", "mo.num" ] ] + , "2e" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ] + , "2e_upup" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ] + , "2e_dndn" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ] + , "2e_updn" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ] + , "2e_dnup" : [ "float sparse", [ "mo.num", "mo.num", "mo.num", "mo.num" ] ] + , "chol_num" : [ "dim" , [] ] + , "2e_cholesky" : [ "float sparse", [ "rdm.chol_num", "mo.num", "mo.num" ] ] } , #+end_src :end: