From cbbda394b0f3f828c91c351cb1aa25b65592333a Mon Sep 17 00:00:00 2001 From: kevinsung Date: Tue, 13 Feb 2024 12:04:29 +0000 Subject: [PATCH] deploy: a4450f80196fe898269b40332e8c65a7fa77ac86 --- .doctrees/api/ffsim.optimize.doctree | Bin 37150 -> 37641 bytes .doctrees/environment.pickle | Bin 1975634 -> 1975221 bytes .../nbsphinx/tutorials/01-introduction.ipynb | 32 ++--- .../tutorials/02-orbital-rotation.ipynb | 32 ++--- .../tutorials/03-double-factorized.ipynb | 101 ++++++++-------- .doctrees/nbsphinx/tutorials/04-lucj.ipynb | 100 +++++++-------- .../tutorials/05-entanglement-forging.ipynb | 32 ++--- .../tutorials/06-fermion-operator.ipynb | 114 +++++++++--------- .../tutorials/03-double-factorized.doctree | Bin 51289 -> 50442 bytes .doctrees/tutorials/04-lucj.doctree | Bin 54233 -> 54257 bytes .../tutorials/05-entanglement-forging.doctree | Bin 15920 -> 15920 bytes .../tutorials/06-fermion-operator.doctree | Bin 41445 -> 41445 bytes _modules/ffsim/optimize/linear_method.html | 3 + api/ffsim.optimize.html | 2 + searchindex.js | 2 +- tutorials/01-introduction.ipynb | 32 ++--- tutorials/02-orbital-rotation.ipynb | 32 ++--- tutorials/03-double-factorized.html | 22 ++-- tutorials/03-double-factorized.ipynb | 101 ++++++++-------- tutorials/04-lucj.html | 60 ++++----- tutorials/04-lucj.ipynb | 100 +++++++-------- tutorials/05-entanglement-forging.html | 8 +- tutorials/05-entanglement-forging.ipynb | 32 ++--- tutorials/06-fermion-operator.html | 42 +++---- tutorials/06-fermion-operator.ipynb | 114 +++++++++--------- 25 files changed, 472 insertions(+), 489 deletions(-) diff --git a/.doctrees/api/ffsim.optimize.doctree b/.doctrees/api/ffsim.optimize.doctree index 1dd3bb8e6ce812c881dad019b42783bb9bc40d21..63c2ef21f9a3e27f27061d7c13e2a6ae4340d68f 100644 GIT binary patch delta 1894 zcma)-Urbwd6vzAfL1`(?5|YUVy=^b71PYXqRL37{7_b4OOvFXqjEuJQ;_aoQWu^R4 z7{iTPGK9+Md@vboX2EEp+w5G7aS!gnXfh3KX47RRnMpP+%X@u2gQZ7=K{4QcuBhGC*xYi!)>vfahkbrO?-6w2 zkl?LM{M^~BnGkndC*$MsQc*qg{Qso8o`834=Ep@%7jpAvO8$eJpI&x+D!yKeL2A*$ z)%{#s{u6V_bc7qyi~05VndEKp)tbiZfO7|}u-ujjvHhCj7OhGZ_F(juf0ewcfR&MI zeU)gC&TCXEkrOlKYb}X}L)R&JLxJVcAuV+7cnTl$^&AYpwo2w9*kvMd6d2)NvmVO3 z3rP&_yXwdSEO_?7^=>V=4|8M&jvd}cXSDEcF$V>fLbzSNg};Jjv8G{R+9tQ(@AmkG zv^#vUiF#S4UQ?(RB>vgGJxMHawURp!bXmw`$*u&H;kvqYcpfDk7P_>B;Fy`CIEw+$|oXpGKmWmH+b zFT}g~w6xA_Xz1X86JI2PjQhSr3una-k<;p{P-yid2Ar2d4jo7Ad`Kb)MPbd*e9$QEBQE4Gx`~! zcT&Pzz`yw=xg`r*PZWc?q1~dXH@*v^piU!=;HzVuyPZ?R4M9vCf{OY_k>G!)5x^&y78YO)$%e%$+D_ z*T8<7p=6TNv%8(tZH$#pvZU)x4<;5THB>u=SkdHs1wK7tA(6z*6FJ0|?5W~Ah!8Dn zFYbnDl=AUa0t|DKut$nO&eSi3it^ACmGc1}tdVy9bBvqO1U%B&{b+ntj=~VV0Q8EI3Ux#+dkr#27!A=)LXhYfbj$-23kD z&pG#;o40%oKG*{7g7!*7?qltr9$0;deFw~F8on*tPaf9Ey#F@Bc3^Rd2vWeRP3%p&C=PUB9jldv&85BqicY=*HW&&osJad#3&>w1pTTFBeK2-&9 zheI;hkAq{~Rar+}w*O_lI(9^ONNW;xqj^?UUp!rfe_yF&M>QtDYy|r8ZrEC}h0)O} zRgA-FyMXQOX4asqz5Cg+*4@Guv$qK`@*zB~rww%CAHKcBi^=gN5cIhFnhWg{4y~K^ z!z+6yej>z)fv6dMXL`WR1TK6wsH2BpoiTz_k9|V|>ZFq}z%V=B9pZ3Bx=wL-)K!!o z0$;UkJ8D!M>ta@jRYU&RrUKPZT4BB#3QvwG(EZ8hU|oewPQ5Zqtt}W2SNFA4b~^5a zEtO6^9>iav(LCjWPfEw@Cv?U~yU-Rm@zzu~+)2__;SjDrkMg5d3-(83IbnzC5?RfRl?JJ`IW$a9uvKtu$O{# zG}afi@EGH@=+hedKui*~>zN+LACs+cig8>>lMoN?PCp}0r0xNTygHHuBa}zdwoe*i zy%L>LSIJ7m`m~Sn%U9{8{$aeHj_KF<(rdKiRMY|aQX)3?9G*Md136Vw_bSy~W)(Wf zCAsz74FZJ<`z9LZ3UIT+?x*Y<3L87-W8?w8JKqK0sS?=X@%>CYTY^ymPoHQqnh z0Y~j6dU?F(6Yz9gz7*%JRL}U5hY63SV*ui$-*29XIWTg zVTp#+sy-f^j4-oV_GgrsZn>z*7WvsCH=7ch8OjXBJz}>sPB+-6X~ZAat+nhDXn_lu Y&FwQ5GfmKwQl=!^u}so}Ea$xBKkJ>!;s5{u diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 908574d69da1e475c3503b4167f81a1253da9807..61a17a747eceb64c9ebcf5629a3100bb02627f1c 100644 GIT binary patch delta 106572 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 aL-#4+T?d%K;$4O9xe^XsrHYDyss9J>Lc3`I diff --git a/.doctrees/nbsphinx/tutorials/01-introduction.ipynb b/.doctrees/nbsphinx/tutorials/01-introduction.ipynb index a1a91b00c..5d125ad08 100644 --- a/.doctrees/nbsphinx/tutorials/01-introduction.ipynb +++ b/.doctrees/nbsphinx/tutorials/01-introduction.ipynb @@ -16,10 +16,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:24.571055Z", - "iopub.status.busy": "2024-02-09T20:05:24.570878Z", - "iopub.status.idle": "2024-02-09T20:05:24.922607Z", - "shell.execute_reply": "2024-02-09T20:05:24.922060Z" + "iopub.execute_input": "2024-02-13T12:02:55.847701Z", + "iopub.status.busy": "2024-02-13T12:02:55.847195Z", + "iopub.status.idle": "2024-02-13T12:02:56.219559Z", + "shell.execute_reply": "2024-02-13T12:02:56.219031Z" } }, "outputs": [], @@ -70,10 +70,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:24.925709Z", - "iopub.status.busy": "2024-02-09T20:05:24.925273Z", - "iopub.status.idle": "2024-02-09T20:05:24.929740Z", - "shell.execute_reply": "2024-02-09T20:05:24.929199Z" + "iopub.execute_input": "2024-02-13T12:02:56.222755Z", + "iopub.status.busy": "2024-02-13T12:02:56.222246Z", + "iopub.status.idle": "2024-02-13T12:02:56.227136Z", + "shell.execute_reply": "2024-02-13T12:02:56.226484Z" } }, "outputs": [ @@ -112,10 +112,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:24.966076Z", - "iopub.status.busy": "2024-02-09T20:05:24.965637Z", - "iopub.status.idle": "2024-02-09T20:05:24.968621Z", - "shell.execute_reply": "2024-02-09T20:05:24.968144Z" + "iopub.execute_input": "2024-02-13T12:02:56.264468Z", + "iopub.status.busy": "2024-02-13T12:02:56.263988Z", + "iopub.status.idle": "2024-02-13T12:02:56.266925Z", + "shell.execute_reply": "2024-02-13T12:02:56.266367Z" } }, "outputs": [], @@ -135,10 +135,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:24.970844Z", - "iopub.status.busy": "2024-02-09T20:05:24.970501Z", - "iopub.status.idle": "2024-02-09T20:05:24.976667Z", - "shell.execute_reply": "2024-02-09T20:05:24.976189Z" + "iopub.execute_input": "2024-02-13T12:02:56.269255Z", + "iopub.status.busy": "2024-02-13T12:02:56.268908Z", + "iopub.status.idle": "2024-02-13T12:02:56.275273Z", + "shell.execute_reply": "2024-02-13T12:02:56.274627Z" } }, "outputs": [ diff --git a/.doctrees/nbsphinx/tutorials/02-orbital-rotation.ipynb b/.doctrees/nbsphinx/tutorials/02-orbital-rotation.ipynb index f1c395e6c..916c3f6c4 100644 --- a/.doctrees/nbsphinx/tutorials/02-orbital-rotation.ipynb +++ b/.doctrees/nbsphinx/tutorials/02-orbital-rotation.ipynb @@ -43,10 +43,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:26.385032Z", - "iopub.status.busy": "2024-02-09T20:05:26.384850Z", - "iopub.status.idle": "2024-02-09T20:05:26.735698Z", - "shell.execute_reply": "2024-02-09T20:05:26.735076Z" + "iopub.execute_input": "2024-02-13T12:02:57.693717Z", + "iopub.status.busy": "2024-02-13T12:02:57.693203Z", + "iopub.status.idle": "2024-02-13T12:02:58.069453Z", + "shell.execute_reply": "2024-02-13T12:02:58.068796Z" } }, "outputs": [], @@ -107,10 +107,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:26.738516Z", - "iopub.status.busy": "2024-02-09T20:05:26.738078Z", - "iopub.status.idle": "2024-02-09T20:05:26.765262Z", - "shell.execute_reply": "2024-02-09T20:05:26.764747Z" + "iopub.execute_input": "2024-02-13T12:02:58.072663Z", + "iopub.status.busy": "2024-02-13T12:02:58.072205Z", + "iopub.status.idle": "2024-02-13T12:02:58.098653Z", + "shell.execute_reply": "2024-02-13T12:02:58.097985Z" } }, "outputs": [], @@ -155,10 +155,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:26.768067Z", - "iopub.status.busy": "2024-02-09T20:05:26.767772Z", - "iopub.status.idle": "2024-02-09T20:05:26.775947Z", - "shell.execute_reply": "2024-02-09T20:05:26.775389Z" + "iopub.execute_input": "2024-02-13T12:02:58.102283Z", + "iopub.status.busy": "2024-02-13T12:02:58.101844Z", + "iopub.status.idle": "2024-02-13T12:02:58.111232Z", + "shell.execute_reply": "2024-02-13T12:02:58.110661Z" } }, "outputs": [], @@ -198,10 +198,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:26.778765Z", - "iopub.status.busy": "2024-02-09T20:05:26.778559Z", - "iopub.status.idle": "2024-02-09T20:05:26.785751Z", - "shell.execute_reply": "2024-02-09T20:05:26.785244Z" + "iopub.execute_input": "2024-02-13T12:02:58.114671Z", + "iopub.status.busy": "2024-02-13T12:02:58.114285Z", + "iopub.status.idle": "2024-02-13T12:02:58.120698Z", + "shell.execute_reply": "2024-02-13T12:02:58.120185Z" } }, "outputs": [], diff --git a/.doctrees/nbsphinx/tutorials/03-double-factorized.ipynb b/.doctrees/nbsphinx/tutorials/03-double-factorized.ipynb index 42dc22fce..d299902e1 100644 --- a/.doctrees/nbsphinx/tutorials/03-double-factorized.ipynb +++ b/.doctrees/nbsphinx/tutorials/03-double-factorized.ipynb @@ -43,10 +43,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:28.360738Z", - "iopub.status.busy": "2024-02-09T20:05:28.360242Z", - "iopub.status.idle": "2024-02-09T20:05:28.871806Z", - "shell.execute_reply": "2024-02-09T20:05:28.871258Z" + "iopub.execute_input": "2024-02-13T12:02:59.654072Z", + "iopub.status.busy": "2024-02-13T12:02:59.653882Z", + "iopub.status.idle": "2024-02-13T12:03:00.277036Z", + "shell.execute_reply": "2024-02-13T12:03:00.276454Z" } }, "outputs": [ @@ -54,7 +54,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "converged SCF energy = -77.4456267643962\n" + "converged SCF energy = -77.4456267643963\n" ] } ], @@ -108,10 +108,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:28.875264Z", - "iopub.status.busy": "2024-02-09T20:05:28.874869Z", - "iopub.status.idle": "2024-02-09T20:05:28.880055Z", - "shell.execute_reply": "2024-02-09T20:05:28.879494Z" + "iopub.execute_input": "2024-02-13T12:03:00.281662Z", + "iopub.status.busy": "2024-02-13T12:03:00.280426Z", + "iopub.status.idle": "2024-02-13T12:03:00.286143Z", + "shell.execute_reply": "2024-02-13T12:03:00.285596Z" } }, "outputs": [ @@ -214,10 +214,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:28.882744Z", - "iopub.status.busy": "2024-02-09T20:05:28.882451Z", - "iopub.status.idle": "2024-02-09T20:05:28.886603Z", - "shell.execute_reply": "2024-02-09T20:05:28.886057Z" + "iopub.execute_input": "2024-02-13T12:03:00.288476Z", + "iopub.status.busy": "2024-02-13T12:03:00.288166Z", + "iopub.status.idle": "2024-02-13T12:03:00.292366Z", + "shell.execute_reply": "2024-02-13T12:03:00.291877Z" } }, "outputs": [], @@ -272,10 +272,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:28.889413Z", - "iopub.status.busy": "2024-02-09T20:05:28.888546Z", - "iopub.status.idle": "2024-02-09T20:05:28.892711Z", - "shell.execute_reply": "2024-02-09T20:05:28.892315Z" + "iopub.execute_input": "2024-02-13T12:03:00.294585Z", + "iopub.status.busy": "2024-02-13T12:03:00.294247Z", + "iopub.status.idle": "2024-02-13T12:03:00.297745Z", + "shell.execute_reply": "2024-02-13T12:03:00.297293Z" } }, "outputs": [], @@ -312,10 +312,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:28.895768Z", - "iopub.status.busy": "2024-02-09T20:05:28.894877Z", - "iopub.status.idle": "2024-02-09T20:05:28.900757Z", - "shell.execute_reply": "2024-02-09T20:05:28.900280Z" + "iopub.execute_input": "2024-02-13T12:03:00.300007Z", + "iopub.status.busy": "2024-02-13T12:03:00.299660Z", + "iopub.status.idle": "2024-02-13T12:03:00.305151Z", + "shell.execute_reply": "2024-02-13T12:03:00.304632Z" } }, "outputs": [ @@ -323,7 +323,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Hartree Fock energy: -77.44562676439625\n" + "Hartree Fock energy: -77.44562676439627\n" ] } ], @@ -351,10 +351,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:28.903509Z", - "iopub.status.busy": "2024-02-09T20:05:28.903259Z", - "iopub.status.idle": "2024-02-09T20:05:29.501623Z", - "shell.execute_reply": "2024-02-09T20:05:29.501124Z" + "iopub.execute_input": "2024-02-13T12:03:00.307973Z", + "iopub.status.busy": "2024-02-13T12:03:00.307605Z", + "iopub.status.idle": "2024-02-13T12:03:00.921411Z", + "shell.execute_reply": "2024-02-13T12:03:00.920875Z" } }, "outputs": [ @@ -362,7 +362,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of evolved state w.r.t. initial state: 0.9315062301404611\n" + "Fidelity of evolved state w.r.t. initial state: 0.9315062301401348\n" ] } ], @@ -393,10 +393,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:29.504413Z", - "iopub.status.busy": "2024-02-09T20:05:29.504046Z", - "iopub.status.idle": "2024-02-09T20:05:29.520287Z", - "shell.execute_reply": "2024-02-09T20:05:29.519808Z" + "iopub.execute_input": "2024-02-13T12:03:00.925377Z", + "iopub.status.busy": "2024-02-13T12:03:00.924489Z", + "iopub.status.idle": "2024-02-13T12:03:00.939136Z", + "shell.execute_reply": "2024-02-13T12:03:00.938316Z" } }, "outputs": [ @@ -404,7 +404,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9928527668218099\n" + "Fidelity of Trotter-evolved state with exact state: 0.9928527668214803\n" ] } ], @@ -434,10 +434,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:29.522853Z", - "iopub.status.busy": "2024-02-09T20:05:29.522658Z", - "iopub.status.idle": "2024-02-09T20:05:29.598233Z", - "shell.execute_reply": "2024-02-09T20:05:29.597602Z" + "iopub.execute_input": "2024-02-13T12:03:00.942780Z", + "iopub.status.busy": "2024-02-13T12:03:00.942380Z", + "iopub.status.idle": "2024-02-13T12:03:01.053588Z", + "shell.execute_reply": "2024-02-13T12:03:01.052965Z" } }, "outputs": [ @@ -445,7 +445,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999320851290681\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999320851288157\n" ] } ], @@ -477,10 +477,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:29.602360Z", - "iopub.status.busy": "2024-02-09T20:05:29.601389Z", - "iopub.status.idle": "2024-02-09T20:05:29.704351Z", - "shell.execute_reply": "2024-02-09T20:05:29.703824Z" + "iopub.execute_input": "2024-02-13T12:03:01.057210Z", + "iopub.status.busy": "2024-02-13T12:03:01.056821Z", + "iopub.status.idle": "2024-02-13T12:03:01.129679Z", + "shell.execute_reply": "2024-02-13T12:03:01.129065Z" } }, "outputs": [ @@ -488,14 +488,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999320851290681" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999320851288157\n" ] } ], @@ -526,10 +519,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:29.708992Z", - "iopub.status.busy": "2024-02-09T20:05:29.708055Z", - "iopub.status.idle": "2024-02-09T20:05:29.762615Z", - "shell.execute_reply": "2024-02-09T20:05:29.762092Z" + "iopub.execute_input": "2024-02-13T12:03:01.133066Z", + "iopub.status.busy": "2024-02-13T12:03:01.132692Z", + "iopub.status.idle": "2024-02-13T12:03:01.175645Z", + "shell.execute_reply": "2024-02-13T12:03:01.174578Z" } }, "outputs": [ @@ -537,7 +530,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999913261312006\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999913261309125\n" ] } ], diff --git a/.doctrees/nbsphinx/tutorials/04-lucj.ipynb b/.doctrees/nbsphinx/tutorials/04-lucj.ipynb index 3f082f825..a7aa8db93 100644 --- a/.doctrees/nbsphinx/tutorials/04-lucj.ipynb +++ b/.doctrees/nbsphinx/tutorials/04-lucj.ipynb @@ -14,10 +14,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:31.528462Z", - "iopub.status.busy": "2024-02-09T20:05:31.527973Z", - "iopub.status.idle": "2024-02-09T20:05:32.135543Z", - "shell.execute_reply": "2024-02-09T20:05:32.134958Z" + "iopub.execute_input": "2024-02-13T12:03:03.103801Z", + "iopub.status.busy": "2024-02-13T12:03:03.103422Z", + "iopub.status.idle": "2024-02-13T12:03:03.727500Z", + "shell.execute_reply": "2024-02-13T12:03:03.726898Z" } }, "outputs": [ @@ -32,7 +32,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "CASCI E = -77.6290254326717 E(CI) = -3.57322412553863 S^2 = 0.0000000\n" + "CASCI E = -77.6290254326717 E(CI) = -3.57322412553862 S^2 = 0.0000000\n" ] } ], @@ -105,10 +105,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:32.139221Z", - "iopub.status.busy": "2024-02-09T20:05:32.138823Z", - "iopub.status.idle": "2024-02-09T20:05:32.798800Z", - "shell.execute_reply": "2024-02-09T20:05:32.798164Z" + "iopub.execute_input": "2024-02-13T12:03:03.731322Z", + "iopub.status.busy": "2024-02-13T12:03:03.730981Z", + "iopub.status.idle": "2024-02-13T12:03:04.145442Z", + "shell.execute_reply": "2024-02-13T12:03:04.144430Z" } }, "outputs": [ @@ -116,14 +116,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "E(CCSD) = -77.49387212754473 E_corr = -0.04824536314851438\n" + "E(CCSD) = -77.49387212754473 E_corr = -0.04824536314851236\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "Energy at initialization: -77.46975600021649\n" + "Energy at initialization: -77.46975600021732\n" ] } ], @@ -168,10 +168,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:32.801882Z", - "iopub.status.busy": "2024-02-09T20:05:32.801629Z", - "iopub.status.idle": "2024-02-09T20:05:58.433581Z", - "shell.execute_reply": "2024-02-09T20:05:58.432549Z" + "iopub.execute_input": "2024-02-13T12:03:04.148701Z", + "iopub.status.busy": "2024-02-13T12:03:04.148460Z", + "iopub.status.idle": "2024-02-13T12:03:40.971312Z", + "shell.execute_reply": "2024-02-13T12:03:40.970684Z" } }, "outputs": [ @@ -183,10 +183,10 @@ " message: STOP: TOTAL NO. of ITERATIONS REACHED LIMIT\n", " success: False\n", " status: 1\n", - " fun: -77.50963418313646\n", - " x: [-1.478e-01 1.875e-01 ... 3.415e-03 6.457e-01]\n", + " fun: -77.50963188244859\n", + " x: [-1.487e-01 1.913e-01 ... 6.596e-03 -1.987e+00]\n", " nit: 5\n", - " jac: [ 1.374e-03 -2.160e-03 ... -5.400e-04 -3.041e-04]\n", + " jac: [-1.171e-03 -1.066e-03 ... -5.613e-04 -2.785e-04]\n", " nfev: 584\n", " njev: 8\n", " hess_inv: <72x72 LbfgsInvHessProduct with dtype=float64>\n" @@ -241,10 +241,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:58.436736Z", - "iopub.status.busy": "2024-02-09T20:05:58.436486Z", - "iopub.status.idle": "2024-02-09T20:06:23.292938Z", - "shell.execute_reply": "2024-02-09T20:06:23.292396Z" + "iopub.execute_input": "2024-02-13T12:03:40.974870Z", + "iopub.status.busy": "2024-02-13T12:03:40.974483Z", + "iopub.status.idle": "2024-02-13T12:04:08.059163Z", + "shell.execute_reply": "2024-02-13T12:04:08.058349Z" } }, "outputs": [ @@ -256,10 +256,10 @@ " message: STOP: TOTAL NO. of ITERATIONS REACHED LIMIT\n", " success: False\n", " status: 1\n", - " fun: -77.45740824215505\n", - " x: [-4.087e-01 8.214e-02 ... -1.975e-02 7.002e-01]\n", + " fun: -77.45741018839536\n", + " x: [-4.125e-01 8.257e-02 ... -3.076e-02 -1.934e+00]\n", " nit: 5\n", - " jac: [ 1.592e-03 -2.700e-05 ... 4.121e-05 -1.151e-04]\n", + " jac: [ 8.257e-04 -2.132e-05 ... 2.274e-05 -2.700e-04]\n", " nfev: 423\n", " njev: 9\n", " hess_inv: <46x46 LbfgsInvHessProduct with dtype=float64>\n" @@ -309,10 +309,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:23.296963Z", - "iopub.status.busy": "2024-02-09T20:06:23.296056Z", - "iopub.status.idle": "2024-02-09T20:06:40.071916Z", - "shell.execute_reply": "2024-02-09T20:06:40.071303Z" + "iopub.execute_input": "2024-02-13T12:04:08.063212Z", + "iopub.status.busy": "2024-02-13T12:04:08.062762Z", + "iopub.status.idle": "2024-02-13T12:04:20.015170Z", + "shell.execute_reply": "2024-02-13T12:04:20.014567Z" } }, "outputs": [ @@ -323,34 +323,34 @@ "Number of parameters: 46\n", " message: Stop: Total number of iterations reached limit.\n", " success: False\n", - " fun: -77.47287325124879\n", - " x: [-6.364e-01 9.794e-02 ... -2.693e-01 1.014e+00]\n", + " fun: -77.4748881190414\n", + " x: [-6.957e-01 1.032e-01 ... 1.032e-01 -2.144e+00]\n", " nit: 5\n", - " jac: [ 7.382e-03 -1.722e-03 ... 3.435e-03 -2.444e-04]\n", - " nfev: 715\n", + " jac: [ 3.367e-03 6.205e-04 ... -1.783e-04 -7.974e-04]\n", + " nfev: 661\n", " njev: 5\n", - " nlinop: 485\n", + " nlinop: 431\n", "\n", "Iteration 1\n", - " Energy: -77.45688623202776\n", - " Norm of gradient: 0.014956560271852534\n", - " Regularization hyperparameter: 0.024771921012474045\n", - " Variation hyperparameter: 0.5336148668790237\n", + " Energy: -77.45612720016143\n", + " Norm of gradient: 0.021018115845501794\n", + " Regularization hyperparameter: 0.0023570677416965115\n", + " Variation hyperparameter: 0.23786614273116047\n", "Iteration 2\n", - " Energy: -77.45792336059738\n", - " Norm of gradient: 0.009825630644914023\n", - " Regularization hyperparameter: 0.00040123345909616\n", - " Variation hyperparameter: 0.5347375805660045\n", + " Energy: -77.45780263234413\n", + " Norm of gradient: 0.012974987146754376\n", + " Regularization hyperparameter: 0.001983330328317489\n", + " Variation hyperparameter: 0.2379126943508127\n", "Iteration 3\n", - " Energy: -77.45795393349911\n", - " Norm of gradient: 0.009416415000121095\n", - " Regularization hyperparameter: 1.039371694018352\n", - " Variation hyperparameter: 0.5188832093469503\n", + " Energy: -77.45784507615812\n", + " Norm of gradient: 0.012566485917974195\n", + " Regularization hyperparameter: 1.0909011353406566\n", + " Variation hyperparameter: 0.23541997933517844\n", "Iteration 4\n", - " Energy: -77.46211088518129\n", - " Norm of gradient: 0.025411194788397522\n", - " Regularization hyperparameter: 0.0022390057755842293\n", - " Variation hyperparameter: 0.1482417502950214\n" + " Energy: -77.46190183620553\n", + " Norm of gradient: 0.025825221643435443\n", + " Regularization hyperparameter: 0.004156448029612187\n", + " Variation hyperparameter: 0.47692707738700535\n" ] } ], diff --git a/.doctrees/nbsphinx/tutorials/05-entanglement-forging.ipynb b/.doctrees/nbsphinx/tutorials/05-entanglement-forging.ipynb index 158996fa9..cdd410110 100644 --- a/.doctrees/nbsphinx/tutorials/05-entanglement-forging.ipynb +++ b/.doctrees/nbsphinx/tutorials/05-entanglement-forging.ipynb @@ -14,10 +14,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:41.723095Z", - "iopub.status.busy": "2024-02-09T20:06:41.722928Z", - "iopub.status.idle": "2024-02-09T20:06:42.290850Z", - "shell.execute_reply": "2024-02-09T20:06:42.290307Z" + "iopub.execute_input": "2024-02-13T12:04:21.815901Z", + "iopub.status.busy": "2024-02-13T12:04:21.815722Z", + "iopub.status.idle": "2024-02-13T12:04:22.330225Z", + "shell.execute_reply": "2024-02-13T12:04:22.329661Z" } }, "outputs": [ @@ -25,7 +25,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "converged SCF energy = -75.6787887956298\n" + "converged SCF energy = -75.6787887956297\n" ] }, { @@ -77,10 +77,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:42.293465Z", - "iopub.status.busy": "2024-02-09T20:06:42.293073Z", - "iopub.status.idle": "2024-02-09T20:06:42.312862Z", - "shell.execute_reply": "2024-02-09T20:06:42.312370Z" + "iopub.execute_input": "2024-02-13T12:04:22.335237Z", + "iopub.status.busy": "2024-02-13T12:04:22.333789Z", + "iopub.status.idle": "2024-02-13T12:04:22.406100Z", + "shell.execute_reply": "2024-02-13T12:04:22.405529Z" } }, "outputs": [ @@ -88,7 +88,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Energy at initialialization: -74.20656273321597\n" + "Energy at initialialization: -74.20656273321595\n" ] } ], @@ -126,10 +126,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:42.316373Z", - "iopub.status.busy": "2024-02-09T20:06:42.315491Z", - "iopub.status.idle": "2024-02-09T20:06:43.236874Z", - "shell.execute_reply": "2024-02-09T20:06:43.236340Z" + "iopub.execute_input": "2024-02-13T12:04:22.410361Z", + "iopub.status.busy": "2024-02-13T12:04:22.409348Z", + "iopub.status.idle": "2024-02-13T12:04:23.355521Z", + "shell.execute_reply": "2024-02-13T12:04:23.354923Z" } }, "outputs": [ @@ -141,10 +141,10 @@ " message: STOP: TOTAL NO. of f AND g EVALUATIONS EXCEEDS LIMIT\n", " success: False\n", " status: 1\n", - " fun: -75.68085184930742\n", + " fun: -75.68085254776946\n", " x: [ 2.996e+00 -7.549e-01 ... 2.650e+00 8.012e-01]\n", " nit: 6\n", - " jac: [ 1.758e-03 9.115e-03 ... -1.192e-02 9.607e-04]\n", + " jac: [ 1.758e-03 9.113e-03 ... -1.192e-02 9.578e-04]\n", " nfev: 112\n", " njev: 7\n", " hess_inv: <15x15 LbfgsInvHessProduct with dtype=float64>\n" diff --git a/.doctrees/nbsphinx/tutorials/06-fermion-operator.ipynb b/.doctrees/nbsphinx/tutorials/06-fermion-operator.ipynb index e73f593c3..1bc2823e1 100644 --- a/.doctrees/nbsphinx/tutorials/06-fermion-operator.ipynb +++ b/.doctrees/nbsphinx/tutorials/06-fermion-operator.ipynb @@ -29,10 +29,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.482381Z", - "iopub.status.busy": "2024-02-09T20:06:44.482198Z", - "iopub.status.idle": "2024-02-09T20:06:44.824770Z", - "shell.execute_reply": "2024-02-09T20:06:44.824257Z" + "iopub.execute_input": "2024-02-13T12:04:24.796996Z", + "iopub.status.busy": "2024-02-13T12:04:24.796822Z", + "iopub.status.idle": "2024-02-13T12:04:25.165680Z", + "shell.execute_reply": "2024-02-13T12:04:25.165166Z" } }, "outputs": [ @@ -76,10 +76,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.827570Z", - "iopub.status.busy": "2024-02-09T20:06:44.826977Z", - "iopub.status.idle": "2024-02-09T20:06:44.831034Z", - "shell.execute_reply": "2024-02-09T20:06:44.830481Z" + "iopub.execute_input": "2024-02-13T12:04:25.168334Z", + "iopub.status.busy": "2024-02-13T12:04:25.167821Z", + "iopub.status.idle": "2024-02-13T12:04:25.171822Z", + "shell.execute_reply": "2024-02-13T12:04:25.171346Z" } }, "outputs": [ @@ -110,10 +110,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.833467Z", - "iopub.status.busy": "2024-02-09T20:06:44.833026Z", - "iopub.status.idle": "2024-02-09T20:06:44.837388Z", - "shell.execute_reply": "2024-02-09T20:06:44.836937Z" + "iopub.execute_input": "2024-02-13T12:04:25.174070Z", + "iopub.status.busy": "2024-02-13T12:04:25.173709Z", + "iopub.status.idle": "2024-02-13T12:04:25.178155Z", + "shell.execute_reply": "2024-02-13T12:04:25.177705Z" } }, "outputs": [ @@ -121,17 +121,17 @@ "data": { "text/plain": [ "FermionOperator({\n", + " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", + " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", + " (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,\n", " (cre_a(0), des_a(3)): 1,\n", + " (des_a(3), des_b(3)): 0.0625,\n", " (cre_b(1), des_b(5), cre_a(4)): 2+2j,\n", + " (cre_a(3), des_a(0)): -0.5,\n", " (cre_b(2)): 0-0.25j,\n", - " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", - " (des_a(3), des_b(3)): 0.0625,\n", - " (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", " (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,\n", - " (cre_a(3), des_a(0)): -0.5,\n", - " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625\n", + " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j\n", "})" ] }, @@ -169,10 +169,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.839684Z", - "iopub.status.busy": "2024-02-09T20:06:44.839271Z", - "iopub.status.idle": "2024-02-09T20:06:44.843235Z", - "shell.execute_reply": "2024-02-09T20:06:44.842618Z" + "iopub.execute_input": "2024-02-13T12:04:25.180541Z", + "iopub.status.busy": "2024-02-13T12:04:25.180098Z", + "iopub.status.idle": "2024-02-13T12:04:25.184276Z", + "shell.execute_reply": "2024-02-13T12:04:25.183691Z" } }, "outputs": [ @@ -180,17 +180,17 @@ "data": { "text/plain": [ "FermionOperator({\n", + " (cre_a(3), des_a(0), cre_b(2)): -1,\n", + " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", + " (cre_a(0), des_a(3), cre_b(2)): 2,\n", " (cre_a(0), des_a(3)): 0-6j,\n", + " (des_a(3), des_b(3)): 0-1.25j,\n", " (cre_b(1), des_b(5), cre_a(4)): 12-12j,\n", + " (cre_a(3), des_a(0)): 0+3j,\n", " (cre_b(2)): -5,\n", - " (cre_a(3), des_a(0), cre_b(2)): -1,\n", - " (des_a(3), des_b(3)): 0-1.25j,\n", - " (cre_a(0), des_a(3), cre_b(2)): 2,\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", " (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,\n", - " (cre_a(3), des_a(0)): 0+3j,\n", - " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j\n", + " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j\n", "})" ] }, @@ -219,10 +219,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.845178Z", - "iopub.status.busy": "2024-02-09T20:06:44.845006Z", - "iopub.status.idle": "2024-02-09T20:06:44.848455Z", - "shell.execute_reply": "2024-02-09T20:06:44.848026Z" + "iopub.execute_input": "2024-02-13T12:04:25.186955Z", + "iopub.status.busy": "2024-02-13T12:04:25.186438Z", + "iopub.status.idle": "2024-02-13T12:04:25.190413Z", + "shell.execute_reply": "2024-02-13T12:04:25.189881Z" } }, "outputs": [ @@ -230,16 +230,16 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", - " (cre_a(0), des_a(3)): 0-6j,\n", - " (des_b(3), des_a(3)): 0+1.25j,\n", " (cre_b(2)): -5,\n", - " (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,\n", " (cre_a(3), des_a(0)): 0+3j,\n", - " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", " (cre_b(2), cre_a(3), des_a(0)): -1,\n", + " (cre_a(0), des_a(3)): 0-6j,\n", + " (cre_b(2), cre_a(0), des_a(3)): 2,\n", " (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j,\n", - " (cre_b(2), cre_a(0), des_a(3)): 2\n", + " (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,\n", + " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", + " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", + " (des_b(3), des_a(3)): 0+1.25j\n", "})" ] }, @@ -264,10 +264,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.850554Z", - "iopub.status.busy": "2024-02-09T20:06:44.850242Z", - "iopub.status.idle": "2024-02-09T20:06:44.853454Z", - "shell.execute_reply": "2024-02-09T20:06:44.852895Z" + "iopub.execute_input": "2024-02-13T12:04:25.192731Z", + "iopub.status.busy": "2024-02-13T12:04:25.192349Z", + "iopub.status.idle": "2024-02-13T12:04:25.195709Z", + "shell.execute_reply": "2024-02-13T12:04:25.195146Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.855573Z", - "iopub.status.busy": "2024-02-09T20:06:44.855255Z", - "iopub.status.idle": "2024-02-09T20:06:44.859348Z", - "shell.execute_reply": "2024-02-09T20:06:44.858895Z" + "iopub.execute_input": "2024-02-13T12:04:25.198018Z", + "iopub.status.busy": "2024-02-13T12:04:25.197549Z", + "iopub.status.idle": "2024-02-13T12:04:25.201800Z", + "shell.execute_reply": "2024-02-13T12:04:25.201267Z" } }, "outputs": [ @@ -340,10 +340,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.861529Z", - "iopub.status.busy": "2024-02-09T20:06:44.861199Z", - "iopub.status.idle": "2024-02-09T20:06:44.866537Z", - "shell.execute_reply": "2024-02-09T20:06:44.866044Z" + "iopub.execute_input": "2024-02-13T12:04:25.204049Z", + "iopub.status.busy": "2024-02-13T12:04:25.203731Z", + "iopub.status.idle": "2024-02-13T12:04:25.209738Z", + "shell.execute_reply": "2024-02-13T12:04:25.209210Z" } }, "outputs": [ @@ -352,7 +352,7 @@ "text/plain": [ "array([ 0. +0.j , 0. +0.j ,\n", " 0. +0.j , 0. +0.j ,\n", - " -0.15416166+0.14096038j, 0. +0.j ,\n", + " -0.04234102+0.22061687j, 0. +0.j ,\n", " 0. +0.j , 0. +0.j ,\n", " 0. +0.j ])" ] @@ -379,10 +379,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.868473Z", - "iopub.status.busy": "2024-02-09T20:06:44.868308Z", - "iopub.status.idle": "2024-02-09T20:06:44.877740Z", - "shell.execute_reply": "2024-02-09T20:06:44.877293Z" + "iopub.execute_input": "2024-02-13T12:04:25.212020Z", + "iopub.status.busy": "2024-02-13T12:04:25.211708Z", + "iopub.status.idle": "2024-02-13T12:04:25.222247Z", + "shell.execute_reply": "2024-02-13T12:04:25.221711Z" } }, "outputs": [ diff --git a/.doctrees/tutorials/03-double-factorized.doctree b/.doctrees/tutorials/03-double-factorized.doctree index 1f5358e0d31ae4dc4fc77bbae9e42234448badd9..35fc81b3b63839cc0da902a0880ab1dd9796719d 100644 GIT binary patch delta 906 zcmaJW!b=2V?YDE~RcZPLmH|B*^npvicMVBEMuaNVQ>!;l7|rg}+@6O5Q`nGU{(@8sKgzkxG?VB7_P zP?q???DaA(aD*!f2Er=@Q+{9TX`-ICj$;?^*PQ45RRhJa(UJ#^;asgN9aftGZ%3-d z)wVON%I+w0LrJ7wCS8$DnWQ57x|>rM2GI44YH5EeyarBn*dP$el3GNj_k~7P=C(Ot z;m%o^>>vCj6FKizN*G{n=&>vsVkaabPQ^-gsNHV6(?$FqD41lEs{G-{B$HFFZmF%C z4DjwzJXvpuRi|s>(#YkkZ3Cl|O-vhnne6>lrh|0p!8%g2-2m8|sLSX@c- zRmg+YXZa9M)I)qU%nZPDVIHlqV9&AKgG}ZwXu-=2LvZ#0TrbsvQ_M#{Snvdopzkbn z7MLK`r9j%R7=rM7IKF7(1x*4H#0?YuAvGH!7e8%$Hb(E zg(nx`>zqbytFRw*N*f%SWA&24mDa$GD^=+qz>C2;=*bZ1+fTxU`Oc&(wO``=cVj@8 zF!^09aJXlmW>#{Lxzlx9hS9YXORh95J>@3#Rcl@)JvL!CT@k9qFqWvI&$bEu%%b@I zlMX@TiBHC?9D zvq)3Y5{jlblbex5VM^4WMMZy%K>cA91X0j$d+)uwTZQ!Jyw7vadCq&zJ@57Vr3(S6 zyj6bP@_I^c)1y47)9)g7L?0%0(U1zdUM2Vq)jS&`)|WxYuL-WE9z}cM+lp28ly}>yYfWPUfR7Kmd~d^ZDW$g6f1U60q=&& z*|!&us$>ObqY<)w)dKMPRs}+$24jrVn4{Nx5v3La>ZlS^Di|12V)bUg)E2N8x zVD{QE0c`2{DgdG01(E3BN$;pYY61s%z>Wv9*U5`$bD@#wEs!2kMVNW;O9Tm3&i)Zw zH0a>{&5=mFCQu%Wu`h>C#jjb=AF4x_;9IEUzh$>gRH9arrG?y~inT6)O-z;I3MSj> zge4{gb`Gb(2ves2fhg4w&_>2Rfg|pH$G`HQ@ynylK!9?^aq<;yQP_ zl%h&tKa1{lfbOQvusdzs{ zTF+$1AJ$@APeFovA3noHbFh_y#2XvAgxl^m^y06%f#T;5aAGYiJ*t-*^Jv=4ueoem zrRACU4WiRdQ2ey7xc=`$(qm6VB|ZY8jCyqVS#094s7NN8D~4Os%19pfJcufZzc2PX zggI%s@&hlUV42y#trFiQqcEkIbiK@Up^xm G4gCh-+<9~W diff --git a/.doctrees/tutorials/04-lucj.doctree b/.doctrees/tutorials/04-lucj.doctree index 246319cc51d7f55fd4c6caa4dc6348f25f5f767f..bd099e0740dc2cdbc690e482135e8281a212aed5 100644 GIT binary patch delta 4663 zcmeHK&2Lmy6z4HjQi`TyDN&&CrZFvTnK$>G`%QqMgm$3`x&x&pOhN_1hXxyC zJiJr*_fDbX;wxXz&vbP5BuKCKOvL9~bgAbrUd^u^rn760#ntcp{J!_S1oQuT#ZUpI zp`q&DD8HyajIuPhkxuVAvanu9-MyXkXxELXUmG0_GXHyY>&k+a_|=|j5VU*Gy(ok4 z@YueEb=~*7v5Qe37{?&<1LLdS7z5`}DX0DFbm8;)w)8+5GUe=4SwNaX=0V0~mSt&b zGVKkkGG!yrMk7K{t+ru=Rj|#>_fRHzx+^e(hCS|G|TnBiK%r zE1miLhrP)=%L&Gri4%uEp8oXQvm+v!M`Y1)Nm%lm6CBgaJtwWIC zul>_M4uXq8dM(Y<#84Tat`oy$r~^kZjYTdqVMEPhB!*NA#Mn68u#43X64^#amlQL! zDyo4O%%ke%M=d+~SYEl(m%O{Ii$AI5XWhQi^!AH>%|bAkcU~?0KY-l(QY0-)NSOw% zSC|VWdT{x8>rmta*MHfR7)oc(jwgBEdIn9N5i#Bm{Fi9@}_A#12y;-KjE z51V($OqxI(8G0v*Kqpn_5b$&evxcc+GatF3CgVw`KAQS$TWSo@YqM{zlt6>Cr7l2= zLVy7!Dfw}IH-_Q`&`xPBzHl3Z0G@vS5gbdz^L?V+QmS) zDKH?w0FXD-#)N6h;24kByy4qLj*;gtfYee6qYd58`-=>lExh$oYOqczs{Ooq4F?~b zG#oWu$B5dYMg*fIAFVhN5u*Zac&-cd1`wPL7)#0;k5*VK9d{co_3G`FPfkzmymfTd zSOLKkg zB)?Scx@nT@f93A}wy$HTW5o(8URX!fnaTEGexV0*-;$o)n8@uUzcg=OOX-}S{PV<` E$JLBi*Z=?k delta 4652 zcmeH}&u`R46u{Z;Dk&v&Ybnu!Wwyaqgq_ZN^X3-;N*h`dHU7AmBCWBBRY3hGKj?b6ptIk) z)ZQX#&wB?S%G;L*ujOrfc?VA)dA26^@b5?FbNSrRP-?RuhW57m(gAUz3X+_kswxlyq<1D4rIbQw zNszi)2rJ3BG{TdUJNLzj+EG4IMG02rV$!J^Nh)jUiwK6xNieyN zAPER@#E3{77~sL#Kbp7nscc~G?!p6W3jMFse5?2q1`Xn`D>mAM{;c(_;(x@GD{rep z^Kw$O3Dds?u>3$wj^Y~lDYdZ*Cqk5Oi;lBS3c@3$CaFR z#w%m3Qe^nj7osf~9pbbQ0BY6 z&}4&An&-dSy%hnJ_i+d?@a0c-wG#k@Shl^67ZGCet^-jArHpgNctQ+1*{j4zk-!;+ z(OSI3wj3Nd{ruG73nw>ETsV1nY$L<#J;UXjGt7^DdZu)`v}qIn(z&0n&UGh#kFAa0 z`i&h~Tm|uPLx}4t>DjnJ^1n{<>O99se_IXXjdcItF78I@?%}Injg{_6Xm`B6Bfb(Q fHp=q)EX%uYzO+~B@kVmj|C?(Sy4mcv(_8-p;yZBm diff --git a/.doctrees/tutorials/05-entanglement-forging.doctree b/.doctrees/tutorials/05-entanglement-forging.doctree index d57471b5a64e2f697d0677cc37a6a12399d8e5c7..48791e3f3709beeb91cb18d34fa92ffa3e5fbc25 100644 GIT binary patch delta 307 zcmdl`v!Q0g6JAF1$xnH0fuu6u!AXj8lbQHKCMk+fo}kDvxs<;WDE^+`fYE%jg1{Mm zM$^e}<00V{$2fC6M=?-+<9#vx2}G zen#`jZ{=Npq>;ioAjzm$0VY9;`+zKYC38me&EZPD9Gr$0CYHtq<|amy6AY9m3uwDA znoizpB+hJRV7@tDo0So-g8w@Gs0wm`y3ZQOfOJpJ*H+)`rO%63!DKIeZ=jnvC#M@e X#b*=HFx|;4#z%=zqrZ8BNdqSUN~%{b diff --git a/.doctrees/tutorials/06-fermion-operator.doctree b/.doctrees/tutorials/06-fermion-operator.doctree index 530459fe32e001e7991fce7b558f39e46bd76e05..8aa6387e52cb4ac46ff47e3f9ce3cd6c8a256e92 100644 GIT binary patch delta 1785 zcmcJPJ4{ny7=|O3BE6hmY%7%7o>r}CK{>sg({oC}sId*bATqc>OK+q|G?KU&1Il8g zScv#CnP}Zj3Z{uJXi1n%ybKO5hUkDXm=HDwBJpoiRxqTU{(pGC_xr!^fAX%cHmt8U zEbVk+SucakFUKE2jR}_rB`<{`uL1AK`AU$&>a}7y(1sqT0)GVxQHKV9Vs~YNX*JXn}psJD}Md_LhVM0Sbs)pUG2Jcr9B04HG zJQ&p=KdicIGd9yrSPb!1 zT4YZ{@-i^+1u1ZB3mHR+9BaV)u(krsN~#h0kP=hDGB8$rj+hBFdcsM06baFCB1gMp z4EYus?r?wI``m6lgI%thH*PxZU^IRCn4!%I0wgj#xVcLf~}boptG0ZpPt=URHUg-gf0L8 delta 1731 zcmcJNOH30{6oz912rZpH=u7BhM596}?aO1B{Zod8WJ_KLW8(-qr?q6W4bVLLA2gh)?h-rxH-wa|M`-8&bPiKSznT5 zHtetodZfZetU1(pAv7T0R*UCdax4lI9`xyOT2Nv|M?o%_@v+x{Ii?ZsgkI!^E1+;H zF&Q@CsKZq3yTF*R%D79;{Nnt8*FiZl?J}I=Ecnx22PbdDJS#_skAlEcILS64$g5ys z&4_TFkgz6rxJu+%Cum-a`M?4EcGVSoGX8pG_)5$gXe@G}vas{~lTyz?DjjQ@PVA0M zCpt0aZY(uEd+CU+8WX+sh{mhPUUeAtY9J#u87VlSBR(9&3h_Z9$dK%-MLO)lPj>_C zq`v8|gd(me`tYsGxaordbaxeoy4_{rE<`oBeBxzsf4M;|1~>zfK`kD|_7gAk`0Q&2 zMLd}E$%zv#C<7IEb+(q=sW#nE7Hw4nZ;_T zr5xPs+wemvX1b(EMw_rKsA2c2@i=Oj3R`eB;eki5!t8Ms#u7TD`n52|50N9qr-2rj zNlnI;_}<^XQ^Z2_J#0SN)Q}Z5tOmJ33O7Z4wZqD^wy`5ExEG`GRIJB!u^Dr$8q32J zLjDRo6I)>uW%x?oZK43XSOZF|E3P;g>nSO-u-@}SqdWcTmEqhFv1KSrj}PwJGC?pMIFr`Gawq#g!Hw-ghp{%1 M+BTH^G5JgV7r3Z#SpWb4 diff --git a/_modules/ffsim/optimize/linear_method.html b/_modules/ffsim/optimize/linear_method.html index 22b5b8a91..c31333600 100644 --- a/_modules/ffsim/optimize/linear_method.html +++ b/_modules/ffsim/optimize/linear_method.html @@ -323,6 +323,9 @@

Source code for ffsim.optimize.linear_method

                scipy.optimize.minimize(f, x0, **scipy_optimize_minimize_args)
 
+            If not specified, the default value of `dict(method="L-BFGS-B")` will be
+            used.
+
         callback: A callable called after each iteration. It is called with the
             signature
 
diff --git a/api/ffsim.optimize.html b/api/ffsim.optimize.html
index dbc5917da..031d4481b 100644
--- a/api/ffsim.optimize.html
+++ b/api/ffsim.optimize.html
@@ -249,6 +249,8 @@
 
scipy.optimize.minimize(f, x0, **scipy_optimize_minimize_args)
 
+

If not specified, the default value of dict(method=”L-BFGS-B”) will be +used.

  • callback (Optional[Callable[[OptimizeResult], Any]]) –

    A callable called after each iteration. It is called with the signature

    diff --git a/searchindex.js b/searchindex.js index 845a8bb8e..cadb5a0ba 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/ffsim", "api/ffsim.contract", "api/ffsim.linalg", "api/ffsim.optimize", "api/ffsim.random", "api/ffsim.testing", "api/index", "index", "tutorials/01-introduction", "tutorials/02-orbital-rotation", "tutorials/03-double-factorized", "tutorials/04-lucj", "tutorials/05-entanglement-forging", "tutorials/06-fermion-operator", "tutorials/index"], "filenames": ["api/ffsim.rst", "api/ffsim.contract.rst", "api/ffsim.linalg.rst", "api/ffsim.optimize.rst", "api/ffsim.random.rst", "api/ffsim.testing.rst", "api/index.md", "index.md", "tutorials/01-introduction.ipynb", "tutorials/02-orbital-rotation.ipynb", "tutorials/03-double-factorized.ipynb", "tutorials/04-lucj.ipynb", "tutorials/05-entanglement-forging.ipynb", "tutorials/06-fermion-operator.ipynb", "tutorials/index.md"], "titles": ["ffsim", "ffsim.contract", "ffsim.linalg", "ffsim.optimize", "ffsim.random", "ffsim.testing", "API Reference", "ffsim", "Introduction to ffsim", "Orbital rotations and quadratic Hamiltonians", "Diagonal Coulomb operators and double-factorized Trotter simulation", "The local unitary cluster Jastrow (LUCJ) ansatz", "Entanglement forging", "The FermionOperator class", "Tutorials"], "terms": {"i": [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13], "softwar": [0, 7, 8], "librari": [0, 7, 8], "fast": 0, "simul": [0, 7, 8, 9, 11, 12, 14], "fermion": [0, 7, 8, 9, 11, 13], "quantum": [0, 7, 8, 10, 11], "circuit": [0, 7, 8], "class": [0, 4, 11, 14], "doublefactorizedhamiltonian": [0, 6, 10], "one_body_tensor": [0, 6, 9, 10], "diag_coulomb_mat": [0, 6, 10], "orbital_rot": [0, 1, 6, 8, 9, 10], "constant": [0, 6, 10, 11], "0": [0, 3, 5, 9, 10, 11, 12, 13], "z_represent": [0, 1, 6], "fals": [0, 1, 2, 11, 12, 13], "sourc": [0, 1, 2, 3, 4, 5], "base": [0, 2], "object": [0, 2, 3, 11, 13], "A": [0, 1, 2, 3, 4, 5, 9, 10, 11, 13], "hamiltonian": [0, 3, 6, 11, 12, 14], "doubl": [0, 2, 11, 14], "factor": [0, 2, 11, 14], "represent": [0, 1, 2, 8, 13, 14], "The": [0, 1, 2, 3, 4, 5, 8, 9, 10, 14], "form": [0, 1, 2, 9, 10, 11, 13], "molecular": [0, 11, 12, 14], "h": [0, 10, 11, 12], "sum_": [0, 1, 2, 9, 10, 11], "sigma": [0, 1, 9, 10, 11], "pq": [0, 2, 10], "kappa_": 0, "dagger_": [0, 9, 10], "p": [0, 2, 10, 11], "a_": [0, 9, 10, 13], "q": [0, 10], "frac12": [0, 10, 11], "sum_t": 0, "tau": [0, 1, 10, 11], "ij": [0, 1, 2, 9, 10, 11], "z": [0, 1, 2, 7, 8, 11, 13], "t": [0, 2, 9, 10], "_": [0, 2, 9, 10, 11, 12], "n": [0, 2, 8, 9, 10, 11], "j": [0, 1, 9, 10, 11, 12, 13], "text": [0, 10], "where": [0, 1, 2, 3, 9, 10, 11], "u": [0, 1, 2], "pi": [0, 12], "qi": 0, "here": [0, 2, 8, 9, 10, 11], "each": [0, 2, 3, 8, 10, 11, 13], "unitari": [0, 1, 2, 4, 9, 10, 14], "matrix": [0, 1, 2, 3, 4, 8, 9, 10, 11, 13], "real": [0, 1, 2, 3, 4, 5, 9, 10, 11], "symmetr": [0, 1, 2, 4, 10, 11], "an": [0, 1, 2, 4, 7, 8, 9, 10, 11, 13], "altern": [0, 10], "sometim": 0, "yield": [0, 2, 10, 11, 12], "simpler": 0, "under": 0, "jordan": 0, "wigner": 0, "transform": [0, 1, 8, 9], "number": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13], "oper": [0, 1, 2, 3, 9, 11, 12, 13, 14], "take": [0, 3, 8, 11], "frac": 0, "1": [0, 2, 3, 4, 8, 9, 10, 11, 12, 13], "2": [0, 1, 2, 4, 8, 9, 10, 11, 12, 13], "pauli": 0, "rotat": [0, 1, 2, 6, 8, 10, 11, 14], "basi": [0, 6, 9, 10, 11, 12], "obtain": [0, 9, 10, 11], "rewrit": 0, "two": [0, 2, 4, 10, 11, 12], "bodi": [0, 1, 2, 4, 10, 11, 12], "part": [0, 2], "term": [0, 1, 2, 10, 11, 13], "updat": [0, 10], "one": [0, 1, 2, 8, 10, 11, 12], "appropri": 0, "kappa": 0, "frac18": 0, "asterisk": 0, "denot": [0, 1, 9], "summat": 0, "over": 0, "indic": [0, 2, 8, 11, 13], "neq": [0, 1], "refer": [0, 2, 3, 4, 11], "low": 0, "rank": [0, 2, 4], "electron": [0, 1, 4, 5, 8, 10], "structur": 0, "filter": 0, "diagon": [0, 1, 2, 9, 11, 14], "tensor": [0, 1, 2, 4, 10, 11, 12], "type": [0, 1, 2, 3, 4, 5], "np": [0, 4, 5, 8, 9, 10, 11, 12], "ndarrai": [0, 1, 2, 3, 4, 5, 10, 11], "coulomb": [0, 1, 2, 11, 14], "matric": [0, 1, 2, 9, 10, 11], "orbit": [0, 1, 2, 4, 5, 8, 10, 11, 13, 14], "float": [0, 2, 3, 4, 5, 10], "whether": [0, 1, 2, 3, 13], "rather": 0, "than": [0, 7, 8, 11], "bool": [0, 1, 2, 3, 5], "static": 0, "from_molecular_hamiltonian": [0, 6, 10], "tol": [0, 2], "1e": [0, 2, 3, 5], "08": [0, 2, 3], "max_vec": [0, 2], "none": [0, 1, 2, 3, 4, 5], "optim": [0, 2, 6, 12, 14], "method": [0, 2, 3, 12, 14], "l": [0, 2, 10, 11, 12], "bfg": [0, 2, 11, 12], "b": [0, 2, 5, 9, 10, 11, 12], "callback": [0, 2, 3, 11], "option": [0, 1, 2, 3, 11, 12], "diag_coulomb_mask": [0, 2], "choleski": [0, 2], "true": [0, 2, 3, 5, 8, 11, 12, 13], "initi": [0, 3, 4, 5, 10, 11, 12], "from": [0, 4, 8, 9, 11, 12, 13], "molecularhamiltonian": [0, 6, 10], "thi": [0, 2, 7, 8, 9, 10, 11, 12], "function": [0, 1, 2, 3, 8, 9, 10, 11, 13], "input": [0, 1, 3, 4, 5, 11], "which": [0, 2, 4, 8, 9, 10, 11, 13], "store": [0, 2, 10, 11], "It": [0, 2, 3, 7, 8, 10, 11, 13], "perform": [0, 2, 3, 9, 10], "decomposit": [0, 2], "comput": [0, 2, 9, 11, 12], "new": [0, 9, 13], "return": [0, 1, 2, 3, 4, 5, 10, 11, 12, 13], "result": [0, 1, 2, 3, 4, 8, 9, 10, 11, 12], "see": [0, 2], "descript": 0, "argument": [0, 2, 3, 9], "linalg": [0, 6, 9, 10, 11, 13], "double_factor": [0, 2, 6], "rest": [0, 10], "paramet": [0, 1, 2, 3, 4, 5, 11, 12], "whose": [0, 2, 8], "us": [0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 13], "toler": [0, 2, 5, 11], "error": [0, 2, 5], "defin": [0, 2, 10, 11, 12], "maximum": [0, 2, 3, 4], "absolut": [0, 2, 5], "differ": [0, 1, 2, 3, 11], "between": [0, 1, 2, 3, 11], "element": [0, 2], "origin": [0, 2, 10], "correspond": [0, 2, 3, 8, 9, 10, 11], "reconstruct": [0, 2], "int": [0, 1, 2, 3, 4, 5, 10, 12], "limit": [0, 2, 11, 12], "keep": [0, 2], "overrid": [0, 2], "str": [0, 2, 5], "document": [0, 2], "scipi": [0, 2, 3, 8, 9, 10, 11, 12, 13], "minim": [0, 2, 3, 11, 12], "possibl": [0, 2, 8], "valu": [0, 1, 2, 3, 5, 10, 11], "usag": [0, 2, 13], "dict": [0, 2, 3, 11, 12], "mask": [0, 2], "boolean": [0, 2], "nonzero": [0, 2, 11], "ar": [0, 1, 2, 4, 5, 8, 9, 10, 11, 13], "allow": [0, 2, 11], "onli": [0, 2, 8, 9, 11], "set": [0, 2, 8, 9, 10, 11], "upper": [0, 2, 11], "triangular": [0, 2], "modifi": [0, 2], "If": [0, 1, 2, 4, 5, 13], "full": [0, 2, 8], "eigenvalu": [0, 2, 3, 9], "instead": [0, 2, 11], "can": [0, 2, 7, 8, 9, 10, 11, 13], "much": [0, 2, 7, 8], "more": [0, 2, 3, 8, 11], "expens": [0, 2], "ignor": [0, 2, 10], "properti": [0, 9], "norb": [0, 1, 4, 5, 6, 8, 9, 10, 11, 12, 13], "spatial": [0, 1, 5, 8, 10, 11, 13], "to_number_represent": [0, 6], "to_z_represent": [0, 6], "fermionact": [0, 6], "action": [0, 1, 6, 9, 13], "spin": [0, 1, 6, 7, 8, 9, 11, 13], "orb": [0, 6, 13], "namedtupl": 0, "alia": 0, "field": 0, "fermionoper": [0, 6, 14], "coeff": [0, 1], "repres": [0, 3, 8, 11, 13], "linear": [0, 1, 2, 3, 9, 13, 14], "combin": [0, 1, 9, 13], "product": [0, 10, 13], "creation": [0, 9, 13], "annihil": [0, 13], "pass": [0, 2, 9, 11, 13], "dictionari": [0, 13], "map": [0, 9, 13], "associ": [0, 3, 11, 13], "coeffici": [0, 1, 2, 9, 11, 13], "ad": 0, "subtract": [0, 13], "multipli": [0, 13], "thei": [0, 9, 11, 13], "support": [0, 2, 13], "multipl": [0, 10, 13], "divis": [0, 13], "scalar": [0, 13], "when": [0, 3, 10, 11, 13], "should": [0, 4, 5, 9, 10], "go": [0, 13], "left": [0, 8, 9, 13], "side": 0, "e": [0, 10, 11, 12, 13], "g": [0, 11, 12], "op": [0, 13], "demonstr": [0, 9, 10, 11], "how": [0, 8, 9, 10, 11, 12, 13], "exampl": [0, 8, 9, 11, 13], "note": [0, 2, 3, 11, 13], "sinc": [0, 11], "unord": 0, "order": [0, 8, 10, 11, 13], "print": [0, 5, 8, 10, 11, 12, 13], "output": [0, 3, 10, 11], "below": [0, 9, 10, 11], "mai": [0, 2, 3, 7, 9, 11], "vari": 0, "run": [0, 7, 11], "import": [0, 8, 9, 10, 11, 12, 13], "op1": [0, 13], "cre_a": [0, 6, 13], "des_a": [0, 6, 13], "3": [0, 8, 9, 10, 11, 12, 13], "5": [0, 3, 10, 11, 13], "25": [0, 13], "cre_b": [0, 6, 13], "des_b": [0, 6, 13], "4": [0, 8, 9, 10, 11, 12, 13], "1j": [0, 9, 10, 13], "2j": [0, 13], "op2": [0, 13], "125": [0, 13], "0625": [0, 13], "25j": [0, 13], "5j": [0, 13], "tupl": [0, 1, 2, 5, 10, 13], "complex": [0, 1, 2, 4], "conserves_particle_numb": [0, 6, 13], "conserv": [0, 7, 8, 13], "particl": [0, 5, 7, 8, 9, 13], "otherwis": 0, "conserves_spin_z": [0, 6, 13], "compon": [0, 7, 8, 13], "many_body_ord": [0, 6], "mani": [0, 7], "length": [0, 8, 10, 11], "longest": 0, "contain": [0, 2, 3, 11, 13], "normal_ord": [0, 6, 13], "normal": [0, 13], "equival": [0, 8], "ha": [0, 1, 2, 8, 9, 10, 11], "been": 0, "reorder": 0, "canon": 0, "In": [0, 8, 9, 10, 11, 12, 13], "compris": [0, 13], "appear": [0, 13], "right": [0, 8, 9, 13], "descend": [0, 13], "lexicograph": [0, 13], "That": [0, 3, 9, 13], "all": [0, 3, 8, 11, 13], "befor": [0, 11, 13], "within": [0, 2, 13], "beta": [0, 1, 5, 6, 8, 11, 13], "alpha": [0, 1, 5, 6, 8, 11, 13], "larger": [0, 2, 3, 13], "smaller": [0, 2, 10, 13], "hopgateansatzoper": [0, 6, 12], "interaction_pair": [0, 12], "theta": [0, 12], "final_orbital_rot": [0, 6], "hop": 0, "gate": [0, 11], "ansatz": [0, 3, 12, 14], "to_paramet": [0, 6, 11], "convert": [0, 1, 8, 9, 10, 11, 13], "vector": [0, 1, 2, 3, 4, 8, 9, 11, 12, 13], "moleculardata": [0, 6, 10, 11, 12], "atom": [0, 6, 10, 11, 12], "symmetri": [0, 6, 7, 8, 9, 10, 11, 12], "nelec": [0, 1, 5, 6, 8, 9, 10, 11, 12, 13], "active_spac": [0, 6, 10, 11, 12], "core_energi": [0, 6], "one_body_integr": 0, "two_body_integr": [0, 6], "hf_energi": [0, 6, 10], "mo_coeff": [0, 6], "mo_occ": [0, 6], "mp2_energi": [0, 6], "mp2_t2": [0, 6], "ccsd_energi": [0, 6], "ccsd_t1": [0, 6], "ccsd_t2": [0, 6], "fci_energi": [0, 6], "fci_vec": [0, 6], "dipole_integr": [0, 6], "orbital_symmetri": [0, 6], "data": [0, 4, 10, 11, 12, 13], "coordin": 0, "molecul": [0, 10, 11, 12], "sto": [0, 10, 11, 12], "6g": [0, 10, 11, 12], "hartre": [0, 8, 9, 10, 11], "fock": [0, 8, 9, 10, 11], "ao": 0, "occup": [0, 8, 9, 10], "includ": [0, 2, 7, 8, 9, 10, 11], "activ": [0, 10, 11, 12], "space": [0, 8, 10, 11, 12], "core": 0, "energi": [0, 3, 9, 10, 11, 12], "integr": 0, "compress": [0, 2], "format": 0, "mp2": [0, 11], "t2": [0, 2, 4, 11], "amplitud": [0, 2, 4, 11], "ccsd": [0, 11], "t1": [0, 11], "fci": [0, 8, 11, 12], "state": [0, 1, 3, 4, 8, 9, 10, 11, 12], "dipol": 0, "from_mol": [0, 6, 10, 12], "scf_func": 0, "rhf": [0, 11], "pyscf": [0, 8, 10, 11, 12], "mole": [0, 10, 11, 12], "iter": [0, 3, 11], "list": [0, 2, 5, 8, 11, 12], "calcul": [0, 8, 10, 11], "scf": [0, 10, 11, 12], "from_scf": [0, 6, 11], "hartree_fock": [0, 11], "two_body_tensor": [0, 2, 6, 10], "h_": [0, 2, 10], "pqr": [0, 2, 10], "r": [0, 2, 10], "": [0, 2, 8, 10, 11, 12, 13], "call": [0, 3, 8, 9, 10, 11, 13], "given": [0, 1, 2, 9, 10], "mathcal": [0, 1, 9, 10, 11], "dagger": [0, 1, 2, 9, 10, 11, 13], "realucjoper": [0, 6], "diag_coulomb_mats_alpha_alpha": [0, 6], "diag_coulomb_mats_alpha_beta": [0, 6], "cluster": [0, 14], "jastrow": [0, 3, 14], "ucj": [0, 14], "prod_": [0, 11], "k": [0, 2, 9, 10, 11, 13], "w_k": [0, 11], "_k": [0, 10, 11], "mathbf": [0, 9, 10, 11], "n_": [0, 1, 8, 9, 10, 11], "commut": [0, 10, 11], "total": [0, 10, 11, 12], "we": [0, 9, 10, 11, 12, 13], "enforc": [0, 11], "As": [0, 8, 9, 10, 11], "have": [0, 2, 9, 11, 13], "describ": [0, 1, 8, 9, 10, 11, 13], "involv": [0, 11], "same": [0, 8, 11], "To": [0, 8, 9, 10, 11], "variat": [0, 3, 11], "final": [0, 3, 10, 11], "end": [0, 9, 11], "from_paramet": [0, 6, 11], "param": 0, "n_rep": [0, 6, 11], "alpha_alpha_indic": [0, 11], "alpha_beta_indic": [0, 11], "with_final_orbital_rot": 0, "from_t_amplitud": [0, 6, 11], "t2_amplitud": [0, 2], "t1_amplitud": 0, "repetit": [0, 11], "to_t_amplitud": [0, 6], "nocc": [0, 4], "possibli": [0, 11], "singlefactorizedhamiltonian": [0, 6], "one_body_squar": [0, 6], "singl": [0, 10], "m": [0, 1, 2, 9], "hermitian": [0, 2, 4, 9], "squar": [0, 2, 11], "sum": [0, 1, 10], "depend": [0, 2, 3, 8], "threshold": [0, 2, 3], "lead": [0, 3], "furthermor": [0, 2], "specifi": [0, 2, 5, 11], "bound": [0, 2], "current": [0, 2, 7, 11], "name": 0, "modul": [0, 8], "qualnam": 0, "start": 0, "boundari": 0, "flag": 0, "enumer": [0, 11], "both": [0, 2], "alpha_and_beta": [0, 6], "supportsapplyunitari": [0, 6], "arg": 0, "kwarg": 0, "protocol": 0, "appli": [0, 1, 2, 3, 8, 9, 10, 11], "supportsapproximateequ": [0, 6], "compar": [0, 5, 10], "approxim": [0, 2, 3, 10], "supportsfermionoper": [0, 6], "supportslinearoper": [0, 6], "linearoper": [0, 1, 3, 9, 10, 11, 13], "supportstrac": [0, 6], "trace": [0, 6, 10], "ucjoper": [0, 6, 11], "apply_diag_coulomb_evolut": [0, 6, 10], "vec": [0, 1, 2, 8, 9, 10, 13], "mat": [0, 1, 2, 8], "time": [0, 2, 3, 8, 10, 14], "mat_alpha_beta": [0, 1], "copi": [0, 13], "evolut": [0, 10, 14], "exp": [0, 2, 5, 9], "z_": [0, 1], "also": [0, 1, 3, 8, 9, 11, 13], "place": [0, 1, 11, 13], "interact": [0, 1, 8], "alwai": [0, 2, 9], "newli": 0, "alloc": 0, "untouch": 0, "still": [0, 11], "its": [0, 2, 9, 10, 13], "overwritten": 0, "evolv": [0, 10], "apply_fsim_g": [0, 6], "phi": [0, 2, 5], "target_orb": 0, "fsim": 0, "consist": 0, "tunnel": 0, "follow": [0, 3, 8, 9, 10, 11, 13], "neg": 0, "sign": 0, "convent": 0, "angl": [0, 12], "begin": [0, 9, 11], "align": [0, 9, 11], "nn": 0, "neighbor": 0, "qubit": [0, 11], "pmatrix": 0, "co": [0, 12], "sin": [0, 12], "phase": [0, 2, 5, 9], "choic": [0, 8], "sector": 0, "act": [0, 13], "default": [0, 2, 4], "apply_givens_rot": [0, 6], "apply_hop_g": [0, 6], "apply_num_interact": [0, 6], "apply_num_num_interact": [0, 6], "apply_num_op_prod_interact": [0, 6], "s_": 0, "sequenc": 0, "pair": [0, 2, 5], "integ": 0, "give": [0, 9], "first": [0, 2, 8, 9, 10, 11, 12], "second": [0, 2, 10, 12], "apply_num_op_sum_evolut": [0, 6, 9, 10], "lambda_i": [0, 1, 9], "rais": [0, 5], "valueerror": 0, "must": [0, 2, 3, 13], "dimension": [0, 2, 8], "apply_on_site_num_num_interact": [0, 6], "site": 0, "osnn": 0, "apply_orbital_rot": [0, 6, 8, 9], "allow_row_permut": 0, "allow_col_permut": 0, "mapsto": [0, 9], "u_": 0, "ji": [0, 9], "log": 0, "permut": [0, 2], "row": [0, 8], "column": [0, 2, 8, 9], "wa": [0, 3], "well": [0, 3], "actual": [0, 5, 9, 11], "effect": [0, 11], "apply_tunneling_interact": [0, 6], "apply_unitari": [0, 6, 11], "obj": 0, "ani": [0, 3, 9, 11], "approx_eq": [0, 6], "other": [0, 8, 11], "rtol": [0, 2, 5], "05": [0, 2, 3, 11], "atol": [0, 2, 5], "equal": [0, 2, 5], "isclos": 0, "interpret": 0, "rel": [0, 2, 5], "numer": [0, 2, 13], "up": [0, 3, 5, 9], "cre": [0, 6], "creat": [0, 8, 9, 10, 11, 13], "index": [0, 8, 11, 13], "de": [0, 6], "destroi": [0, 13], "dim": [0, 4, 6, 8, 13], "get": [0, 9, 10, 11, 12], "dimens": [0, 4, 8], "dim_a": [0, 8], "dim_b": [0, 8], "expectation_one_body_pow": [0, 6], "one_rdm": 0, "power": 0, "expect": [0, 3], "w": [0, 9, 10], "slater": [0, 8, 10], "determin": [0, 2, 8, 10], "o": [0, 12], "m_": [0, 1, 2], "a_p": 0, "a_q": 0, "let": [0, 10, 13], "lvert": [0, 11], "psi": [0, 11], "rangl": [0, 11], "Then": 0, "quantiti": 0, "langl": 0, "rvert": 0, "unlik": 0, "most": [0, 13], "word": [0, 11], "rdm": [0, 6], "shape": [0, 2, 4, 8, 10, 11], "treat": 0, "foot": 0, "expand": 0, "usual": 0, "elsewher": 0, "block_diag": 0, "reduc": [0, 2], "densiti": 0, "expectation_one_body_product": [0, 6], "o_1": 0, "o_2": 0, "dot": 0, "o_k": 0, "fermion_oper": [0, 6], "hartree_fock_st": [0, 6, 8, 9, 10, 11], "statevector": [0, 8, 9], "indices_to_str": [0, 6, 8], "bitstr": [0, 8], "rang": [0, 8, 9, 10, 11, 12], "001011": 0, "010011": 0, "100011": 0, "001101": 0, "010101": 0, "100101": 0, "001110": 0, "010110": 0, "100110": 0, "init_cach": [0, 6], "cach": 0, "prepar": 0, "typic": 0, "need": [0, 11], "benchmark": 0, "avoid": [0, 13], "count": 0, "cost": 0, "lookup": 0, "tabl": [0, 13], "linear_oper": [0, 6, 10, 11, 13], "multireference_st": [0, 6, 12], "ansatz_oper": 0, "reference_occup": [0, 12], "root": 0, "multirefer": 0, "desir": [0, 5], "eigenvector": [0, 9], "lowest": [0, 9, 10], "itself": [0, 13], "number_oper": [0, 6], "n_p": 0, "one_hot": [0, 6], "dtype": [0, 4, 11, 12], "arrai": [0, 2, 5, 8, 13], "zero": 0, "except": [0, 3], "hot": 0, "spin_sum": 0, "return_lower_rank": 0, "rdm1": 0, "definit": [0, 2, 3], "higher": [0, 10], "rdm2": 0, "rdm3": 0, "rdm4": 0, "v": 0, "lower": [0, 2], "addit": [0, 10, 13], "increas": [0, 10, 11], "For": [0, 3, 8, 9, 11, 13], "simulate_qdrift_double_factor": [0, 6], "n_step": [0, 10], "probabl": 0, "norm": [0, 3, 11], "n_sampl": 0, "seed": [0, 4, 5, 8, 9], "via": [0, 10], "qdrift": 0, "trotter": [0, 14], "step": [0, 9, 10], "sampl": [0, 4, 5], "els": [0, 4], "explicit": 0, "string": [0, 8, 13], "proport": [0, 9], "spectral": 0, "uniform": [0, 4, 12], "requir": [0, 11], "whenev": 0, "complet": 0, "character": 0, "trajectori": 0, "pseudorandom": [0, 4, 5], "gener": [0, 3, 4, 5, 7, 8, 9, 10, 11], "valid": [0, 4, 5], "random": [0, 5, 6, 8, 9, 12, 13], "default_rng": [0, 4, 5, 12], "numpi": [0, 2, 5, 8, 9, 10, 11, 12], "just": [0, 10, 11], "simulate_trotter_double_factor": [0, 6, 10], "suzuki": [0, 14], "formula": [0, 14], "slater_determin": [0, 6, 8], "occupied_orbit": [0, 8, 9], "occupi": [0, 4, 5, 10], "configur": [0, 8], "slater_determinant_rdm": [0, 6], "similarli": [0, 10], "construct": [1, 3, 8, 10, 11, 12, 13], "contract_diag_coulomb": [1, 6], "contract_num_op_sum": [1, 6], "contract_one_bodi": [1, 6], "dagger_i": 1, "a_j": 1, "implement": [1, 3, 8, 9, 11, 14], "diag_coulomb_linop": [1, 6], "num_op_sum_linop": [1, 6], "one_body_linop": [1, 6, 9], "algebra": [2, 13], "util": [2, 4, 5], "apply_matrix_to_slic": [2, 6], "target": 2, "slice": 2, "out": [2, 7, 10], "ell": 2, "pk": 2, "qk": 2, "respect": [2, 3], "so": [2, 9, 10, 11, 13], "too": 2, "small": [2, 11], "exce": [2, 12], "behavior": [2, 4], "routin": [2, 8, 13], "straightforward": 2, "exact": [2, 8, 10], "nest": 2, "addition": 2, "choos": [2, 8, 11], "achiev": [2, 10], "enabl": 2, "attempt": 2, "least": 2, "quantifi": 2, "gradient": [2, 3, 11], "constrain": 2, "certain": 2, "becaus": [2, 8, 10, 11, 13], "arxiv": [2, 4], "1808": 2, "02625": 2, "2104": 2, "08957": 2, "decompos": [2, 10], "collect": [2, 11], "double_factorized_t2": [2, 6], "t_": 2, "ijab": 2, "ap": 2, "ip": 2, "bq": 2, "jq": 2, "expm_multiply_taylor": [2, 6], "12": [2, 13], "expm": 2, "taylor": 2, "seri": 2, "expans": [2, 3], "givens_decomposit": [2, 6], "is_antihermitian": [2, 6], "anti": [2, 4], "is_hermitian": [2, 6], "is_orthogon": [2, 6], "orthogon": [2, 4], "union": 2, "bool_": 2, "is_real_symmetr": [2, 6], "is_special_orthogon": [2, 6], "special": [2, 4, 7, 8], "is_unitari": [2, 6], "lup": [2, 6], "pivot": 2, "lu": 2, "rtype": 2, "unit": 2, "match_global_phas": [2, 6], "match": [2, 10], "entri": [2, 11], "anoth": [2, 5], "some": [2, 5, 11, 13], "modified_choleski": [2, 6], "v_i": 2, "posit": [2, 3, 12], "No": 2, "check": [2, 5, 7, 9, 10], "verifi": 2, "1711": 2, "02242": 2, "assembl": 2, "reduced_matrix": [2, 6], "subspac": [2, 13], "span": [2, 8], "v_j": 2, "algorithm": [3, 7, 11], "minimize_linear_method": [3, 6, 11], "params_to_vec": [3, 11], "x0": [3, 11, 12], "maxit": [3, 11], "1000": 3, "regular": [3, 11], "lindep": 3, "epsilon": 3, "gtol": 3, "optimize_hyperparamet": 3, "optimize_hyperparameters_arg": 3, "feenberg": 3, "backflow": 3, "correl": 3, "callabl": [3, 11], "wavefunct": [3, 11], "those": 3, "guess": 3, "hyperparamet": [3, 11], "control": 3, "Its": [3, 8], "greater": 3, "size": [3, 12], "strictli": 3, "solv": 3, "problem": 3, "increment": 3, "finit": 3, "converg": [3, 10, 11, 12], "project": 3, "incur": 3, "evalu": [3, 12], "speed": 3, "fewer": [3, 10], "overal": 3, "f": [3, 8, 10, 11, 12], "scipy_optimize_minimize_arg": 3, "optimizeresult": [3, 11], "after": [3, 11], "signatur": 3, "intermediate_result": [3, 11], "attribut": 3, "x": [3, 11, 12], "fun": [3, 11, 12], "present": 3, "last": 3, "jac": [3, 11, 12], "hold": 3, "select": 3, "nfev": [3, 11, 12], "nlinop": [3, 11], "random_antihermitian": [4, 6], "width": 4, "height": 4, "dype": 4, "random_hermitian": [4, 6, 9], "random_orthogon": [4, 6], "distribut": 4, "haar": 4, "measur": 4, "instanc": [4, 9, 10], "math": [4, 12], "ph": 4, "0609050": 4, "random_real_symmetric_matrix": [4, 6], "random_special_orthogon": [4, 6], "random_statevector": [4, 6, 13], "random_t2_amplitud": [4, 6], "random_two_body_tensor": [4, 6], "random_unitari": [4, 6, 8, 9], "assert_allclose_up_to_global_phas": [5, 6], "07": 5, "equal_nan": 5, "err_msg": 5, "verbos": 5, "nan": 5, "messag": [5, 11, 12], "case": 5, "failur": 5, "conflict": 5, "append": [5, 11], "assertionerror": 5, "global": 5, "precis": [5, 11], "random_nelec": [5, 6], "n_alpha": [5, 8, 9], "n_beta": [5, 8, 9], "random_occupied_orbit": [5, 6], "occ_a": 5, "occ_b": 5, "ffsim": [6, 9, 10, 11, 12, 13, 14], "contract": [6, 9], "test": [6, 8, 9, 10], "faster": [7, 11], "categori": 7, "chemistri": 7, "By": [7, 8], "exploit": 7, "experiment": 7, "disclaim": 7, "releas": 7, "break": 7, "chang": 7, "introduc": [7, 9, 11], "without": [7, 11], "warn": 7, "avail": 7, "command": 7, "pip": 7, "tutori": [7, 9, 10, 11, 12], "advantag": 8, "effici": [8, 13], "primari": 8, "wai": [8, 9, 11], "directli": [8, 10, 11], "code": [8, 10, 11, 13], "show": [8, 9, 10, 11, 12, 13], "6": [8, 9, 10, 11, 12, 13], "1234": [8, 9, 12], "slater_det": 8, "assert_allclos": [8, 9], "plain": 8, "fix": 8, "system": [8, 9], "contrast": 8, "would": [8, 11], "2n": 8, "diment": 8, "conveni": 8, "comb": 8, "On": 8, "hand": 8, "assert": 8, "300": 8, "4096": 8, "standard": [8, 11], "often": [8, 11], "simpli": [8, 9], "reshap": 8, "you": [8, 9, 11], "half": 8, "20": 8, "39": [8, 13], "000011000111": 8, "000101000111": 8, "000110000111": 8, "001001000111": 8, "001010000111": 8, "001100000111": 8, "010001000111": 8, "010010000111": 8, "010100000111": 8, "011000000111": 8, "100001000111": 8, "100010000111": 8, "100100000111": 8, "101000000111": 8, "110000000111": 8, "000011001011": 8, "000101001011": 8, "000110001011": 8, "001001001011": 8, "001010001011": 8, "fundament": 9, "mode": 9, "sum_j": 9, "th": 9, "satisfi": [9, 13], "anticommut": 9, "relat": [9, 11], "_1": 9, "_2": 9, "section": 9, "ll": [9, 10, 11], "task": 9, "consid": [9, 11], "rewritten": 9, "eigendecomposit": 9, "sum_k": [9, 10], "lambda_k": 9, "ik": 9, "jk": 9, "our": [9, 10, 11], "ground": [9, 11], "pick": 9, "spars": [9, 10, 13], "eig": [9, 13], "eigsh": 9, "la": 9, "fact": 9, "illustr": 9, "purpos": 9, "explicitli": 9, "eigh": [9, 10], "evolved_vec": 9, "conj": 9, "undo": 9, "expected_phas": 9, "mention": [9, 10], "abov": [9, 10, 13], "better": [9, 10], "evolved_vec_alt": 9, "daunt": 10, "scale": 10, "cell": [10, 11], "ethen": [10, 11], "stretch": [10, 11], "bond": [10, 11, 12], "build": [10, 11, 12], "bond_dist": [10, 11], "678": [10, 11], "5626": [10, 11], "c": [10, 11], "9289": [10, 11], "mol": [10, 11, 12], "gto": [10, 11, 12], "d2h": [10, 11], "nelectron": [10, 11], "mol_data": [10, 11, 12], "mol_hamiltonian": [10, 11, 12], "df_hamiltonian": 10, "77": [10, 11], "4456267643962": [10, 11], "dataclass": [10, 11], "One": 10, "10": 10, "although": 10, "alreadi": 10, "built": 10, "manual": 10, "asymmetr": 10, "basic": 10, "h_k": 10, "divid": 10, "exponenti": 10, "individu": [10, 13], "do": [10, 13], "approx": 10, "prod_k": 10, "deriv": 10, "write": 10, "recal": 10, "think": 10, "compos": 10, "quadrat": [10, 14], "def": [10, 11, 12], "simulate_trotter_step_double_factor": 10, "one_body_energi": 10, "one_body_basis_chang": 10, "zip": [10, 11, 12], "finish": 10, "level": 10, "handl": 10, "split": 10, "wrote": 10, "step_tim": 10, "initial_st": 10, "\u03c8": [10, 11], "vdot": [10, 11], "44562676439625": 10, "now": 10, "later": 10, "exact_st": 10, "expm_multipli": 10, "tracea": 10, "fidel": 10, "ab": 10, "9315062301404611": 10, "7": [10, 11, 12, 13], "final_st": [10, 11], "9928527668218099": 10, "improv": 10, "8": [10, 11, 12, 13], "9999320851290681": 10, "commonli": 10, "known": 10, "fourth": 10, "reproduc": 10, "9": [10, 11, 12, 13], "9999913261312006": 10, "mcscf": [11, 12], "kernel": 11, "casci": [11, 12], "6290254326717": 11, "ci": [11, 12], "57322412553863": 11, "0000000": [11, 12], "phi_0": 11, "taken": 11, "express": 11, "previou": 11, "constructor": 11, "provid": 11, "truncat": 11, "cc": 11, "frozen": 11, "nao_nr": [11, 12], "reference_st": 11, "ansatz_st": [11, 12], "49387212754473": 11, "e_corr": 11, "04824536314851438": 11, "46975600021649": 11, "facilit": 11, "convers": 11, "somewhat": 11, "complic": 11, "short": 11, "non": 11, "redund": 11, "like": 11, "len": [11, 12], "72": 11, "stop": [11, 12], "NO": [11, 12], "reach": 11, "success": [11, 12], "statu": [11, 12], "50963418313646": 11, "478e": 11, "01": [11, 12], "875e": 11, "415e": 11, "03": [11, 12], "457e": 11, "nit": [11, 12], "374e": 11, "160e": 11, "400e": 11, "04": [11, 12], "041e": 11, "584": 11, "njev": [11, 12], "hess_inv": [11, 12], "lt": [11, 12], "72x72": 11, "lbfgsinvhessproduct": [11, 12], "float64": [11, 12], "gt": [11, 12], "either": 11, "connect": 11, "swap": 11, "network": 11, "make": 11, "challeng": 11, "noisi": 11, "pre": 11, "fault": 11, "processor": 11, "idea": 11, "impos": 11, "sparsiti": 11, "constraint": 11, "them": 11, "depth": 11, "topologi": 11, "triangl": 11, "lattic": 11, "parallel": 11, "line": 11, "rung": 11, "ladder": 11, "With": 11, "setup": 11, "while": 11, "share": 11, "ldot": 11, "Of": 11, "cours": 11, "less": 11, "notic": 11, "decreas": 11, "46": 11, "45740824215505": 11, "087e": 11, "214e": 11, "02": [11, 12], "975e": 11, "002e": 11, "592e": 11, "700e": 11, "121e": 11, "151e": 11, "423": 11, "46x46": 11, "interfac": 11, "similar": 11, "main": 11, "being": [11, 13], "save": 11, "intermedi": 11, "defaultdict": 11, "inform": [11, 13], "info": 11, "accept": 11, "hasattr": 11, "47287325124879": 11, "364e": 11, "794e": 11, "693e": 11, "014e": 11, "00": [11, 12], "382e": 11, "722e": 11, "435e": 11, "444e": 11, "715": 11, "485": 11, "45688623202776": 11, "014956560271852534": 11, "024771921012474045": 11, "5336148668790237": 11, "45792336059738": 11, "009825630644914023": 11, "00040123345909616": 11, "5347375805660045": 11, "45795393349911": 11, "009416415000121095": 11, "039371694018352": 11, "5188832093469503": 11, "46211088518129": 11, "025411194788397522": 11, "0022390057755842293": 11, "1482417502950214": 11, "water": 12, "equilibrium": 12, "radius_1": 12, "958": 12, "radius_2": 12, "bond_angle_deg": 12, "104": 12, "478": 12, "h1_x": 12, "h2_x": 12, "180": 12, "h2_y": 12, "c2v": 12, "75": 12, "6787887956298": 12, "7288249991515": 12, "23": 12, "6332495815006": 12, "brickwork": 12, "n_layer": 12, "rng": 12, "reference_occupations_spati": 12, "initiali": 12, "74": 12, "20656273321597": 12, "maxfun": 12, "100": 12, "15": 12, "AND": 12, "68085184930742": 12, "996e": 12, "549e": 12, "650e": 12, "012e": 12, "758e": 12, "115e": 12, "192e": 12, "607e": 12, "112": 12, "15x15": 12, "Such": 13, "programmat": 13, "hash": 13, "three": 13, "piec": 13, "upon": 13, "intern": 13, "recommend": 13, "helper": 13, "shown": 13, "repr": 13, "view": 13, "displai": 13, "0j": 13, "arithmet": 13, "op3": 13, "good": 13, "awar": 13, "especi": 13, "These": 13, "6j": 13, "12j": 13, "3j": 13, "4j": 13, "preserv": 13, "far": 13, "criteria": 13, "doe": 13, "op4": 13, "linop": 13, "onto": 13, "15416166": 13, "14096038j": 13, "lm": 13, "21984743e": 13, "18j": 13, "introduct": 14, "brief": 14, "background": 14, "local": 14, "lucj": 14, "entangl": 14, "forg": 14}, "objects": {"": [[0, 0, 0, "-", "ffsim"]], "ffsim": [[0, 1, 1, "", "DoubleFactorizedHamiltonian"], [0, 1, 1, "", "FermionAction"], [0, 1, 1, "", "FermionOperator"], [0, 1, 1, "", "HopGateAnsatzOperator"], [0, 1, 1, "", "MolecularData"], [0, 1, 1, "", "MolecularHamiltonian"], [0, 1, 1, "", "RealUCJOperator"], [0, 1, 1, "", "SingleFactorizedHamiltonian"], [0, 1, 1, "", "Spin"], [0, 1, 1, "", "SupportsApplyUnitary"], [0, 1, 1, "", "SupportsApproximateEquality"], [0, 1, 1, "", "SupportsFermionOperator"], [0, 1, 1, "", "SupportsLinearOperator"], [0, 1, 1, "", "SupportsTrace"], [0, 1, 1, "", "UCJOperator"], [0, 5, 1, "", "apply_diag_coulomb_evolution"], [0, 5, 1, "", "apply_fsim_gate"], [0, 5, 1, "", "apply_givens_rotation"], [0, 5, 1, "", "apply_hop_gate"], [0, 5, 1, "", "apply_num_interaction"], [0, 5, 1, "", "apply_num_num_interaction"], [0, 5, 1, "", "apply_num_op_prod_interaction"], [0, 5, 1, "", "apply_num_op_sum_evolution"], [0, 5, 1, "", "apply_on_site_num_num_interaction"], [0, 5, 1, "", "apply_orbital_rotation"], [0, 5, 1, "", "apply_tunneling_interaction"], [0, 5, 1, "", "apply_unitary"], [0, 5, 1, "", "approx_eq"], [1, 0, 0, "-", "contract"], [0, 5, 1, "", "cre"], [0, 5, 1, "", "cre_a"], [0, 5, 1, "", "cre_b"], [0, 5, 1, "", "des"], [0, 5, 1, "", "des_a"], [0, 5, 1, "", "des_b"], [0, 5, 1, "", "dim"], [0, 5, 1, "", "dims"], [0, 5, 1, "", "expectation_one_body_power"], [0, 5, 1, "", "expectation_one_body_product"], [0, 5, 1, "", "fermion_operator"], [0, 5, 1, "", "hartree_fock_state"], [0, 5, 1, "", "indices_to_strings"], [0, 5, 1, "", "init_cache"], [2, 0, 0, "-", "linalg"], [0, 5, 1, "", "linear_operator"], [0, 5, 1, "", "multireference_state"], [0, 5, 1, "", "number_operator"], [0, 5, 1, "", "one_hot"], [3, 0, 0, "-", "optimize"], [4, 0, 0, "-", "random"], [0, 5, 1, "", "rdm"], [0, 5, 1, "", "simulate_qdrift_double_factorized"], [0, 5, 1, "", "simulate_trotter_double_factorized"], [0, 5, 1, "", "slater_determinant"], [0, 5, 1, "", "slater_determinant_rdm"], [5, 0, 0, "-", "testing"], [0, 5, 1, "", "trace"]], "ffsim.DoubleFactorizedHamiltonian": [[0, 2, 1, "", "constant"], [0, 2, 1, "", "diag_coulomb_mats"], [0, 3, 1, "", "from_molecular_hamiltonian"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_number_representation"], [0, 3, 1, "", "to_z_representation"], [0, 2, 1, "", "z_representation"]], "ffsim.FermionAction": [[0, 2, 1, "", "action"], [0, 2, 1, "", "orb"], [0, 2, 1, "", "spin"]], "ffsim.FermionOperator": [[0, 3, 1, "", "conserves_particle_number"], [0, 3, 1, "", "conserves_spin_z"], [0, 3, 1, "", "many_body_order"], [0, 3, 1, "", "normal_ordered"]], "ffsim.HopGateAnsatzOperator": [[0, 3, 1, "", "to_parameters"]], "ffsim.MolecularData": [[0, 2, 1, "", "active_space"], [0, 2, 1, "", "atom"], [0, 2, 1, "", "basis"], [0, 2, 1, "", "ccsd_energy"], [0, 2, 1, "", "ccsd_t1"], [0, 2, 1, "", "ccsd_t2"], [0, 2, 1, "", "core_energy"], [0, 2, 1, "", "dipole_integrals"], [0, 2, 1, "", "fci_energy"], [0, 2, 1, "", "fci_vec"], [0, 3, 1, "", "from_mole"], [0, 3, 1, "", "from_scf"], [0, 4, 1, "", "hamiltonian"], [0, 2, 1, "", "hf_energy"], [0, 2, 1, "", "mo_coeff"], [0, 2, 1, "", "mo_occ"], [0, 2, 1, "", "mp2_energy"], [0, 2, 1, "", "mp2_t2"], [0, 2, 1, "", "nelec"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 2, 1, "", "orbital_symmetries"], [0, 2, 1, "", "spin"], [0, 2, 1, "", "symmetry"], [0, 2, 1, "", "two_body_integrals"]], "ffsim.MolecularHamiltonian": [[0, 2, 1, "", "constant"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 3, 1, "", "rotated"], [0, 2, 1, "", "two_body_tensor"]], "ffsim.RealUCJOperator": [[0, 2, 1, "", "diag_coulomb_mats_alpha_alpha"], [0, 2, 1, "", "diag_coulomb_mats_alpha_beta"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"], [0, 3, 1, "", "to_t_amplitudes"]], "ffsim.SingleFactorizedHamiltonian": [[0, 2, 1, "", "constant"], [0, 3, 1, "", "from_molecular_hamiltonian"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_squares"], [0, 2, 1, "", "one_body_tensor"]], "ffsim.Spin": [[0, 2, 1, "", "ALPHA"], [0, 2, 1, "", "ALPHA_AND_BETA"], [0, 2, 1, "", "BETA"]], "ffsim.UCJOperator": [[0, 2, 1, "", "diag_coulomb_mats_alpha_alpha"], [0, 2, 1, "", "diag_coulomb_mats_alpha_beta"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"], [0, 3, 1, "", "to_t_amplitudes"]], "ffsim.contract": [[1, 5, 1, "", "contract_diag_coulomb"], [1, 5, 1, "", "contract_num_op_sum"], [1, 5, 1, "", "contract_one_body"], [1, 5, 1, "", "diag_coulomb_linop"], [1, 5, 1, "", "num_op_sum_linop"], [1, 5, 1, "", "one_body_linop"]], "ffsim.linalg": [[2, 5, 1, "", "apply_matrix_to_slices"], [2, 5, 1, "", "double_factorized"], [2, 5, 1, "", "double_factorized_t2"], [2, 5, 1, "", "expm_multiply_taylor"], [2, 5, 1, "", "givens_decomposition"], [2, 5, 1, "", "is_antihermitian"], [2, 5, 1, "", "is_hermitian"], [2, 5, 1, "", "is_orthogonal"], [2, 5, 1, "", "is_real_symmetric"], [2, 5, 1, "", "is_special_orthogonal"], [2, 5, 1, "", "is_unitary"], [2, 5, 1, "", "lup"], [2, 5, 1, "", "match_global_phase"], [2, 5, 1, "", "modified_cholesky"], [2, 5, 1, "", "reduced_matrix"]], "ffsim.optimize": [[3, 5, 1, "", "minimize_linear_method"]], "ffsim.random": [[4, 5, 1, "", "random_antihermitian"], [4, 5, 1, "", "random_hermitian"], [4, 5, 1, "", "random_orthogonal"], [4, 5, 1, "", "random_real_symmetric_matrix"], [4, 5, 1, "", "random_special_orthogonal"], [4, 5, 1, "", "random_statevector"], [4, 5, 1, "", "random_t2_amplitudes"], [4, 5, 1, "", "random_two_body_tensor"], [4, 5, 1, "", "random_unitary"]], "ffsim.testing": [[5, 5, 1, "", "assert_allclose_up_to_global_phase"], [5, 5, 1, "", "random_nelec"], [5, 5, 1, "", "random_occupied_orbitals"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "function", "Python function"]}, "titleterms": {"ffsim": [0, 1, 2, 3, 4, 5, 7, 8], "contract": 1, "linalg": 2, "optim": [3, 11], "random": 4, "test": 5, "api": 6, "refer": 6, "what": 7, "i": 7, "instal": 7, "from": 7, "pypi": 7, "get": 7, "start": 7, "introduct": 8, "orbit": 9, "rotat": 9, "quadrat": 9, "hamiltonian": [9, 10], "time": 9, "evolut": 9, "diagon": 10, "coulomb": 10, "oper": 10, "doubl": 10, "factor": 10, "trotter": 10, "simul": 10, "represent": 10, "molecular": 10, "brief": 10, "background": 10, "suzuki": 10, "formula": 10, "implement": 10, "The": [11, 13], "local": 11, "unitari": 11, "cluster": 11, "jastrow": 11, "lucj": 11, "ansatz": 11, "ucj": 11, "linear": 11, "method": 11, "entangl": 12, "forg": 12, "fermionoper": 13, "class": 13, "tutori": 14}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "nbsphinx": 4, "sphinx": 60}, "alltitles": {"ffsim": [[0, "module-ffsim"], [7, "ffsim"]], "ffsim.contract": [[1, "module-ffsim.contract"]], "ffsim.linalg": [[2, "module-ffsim.linalg"]], "ffsim.optimize": [[3, "module-ffsim.optimize"]], "ffsim.random": [[4, "module-ffsim.random"]], "ffsim.testing": [[5, "module-ffsim.testing"]], "API Reference": [[6, "api-reference"]], "What is ffsim?": [[7, "what-is-ffsim"]], "Install from PyPI": [[7, "install-from-pypi"]], "Get started": [[7, "get-started"]], "Introduction to ffsim": [[8, "Introduction-to-ffsim"]], "Orbital rotations and quadratic Hamiltonians": [[9, "Orbital-rotations-and-quadratic-Hamiltonians"]], "Orbital rotations": [[9, "Orbital-rotations"]], "Time evolution by a quadratic Hamiltonian": [[9, "Time-evolution-by-a-quadratic-Hamiltonian"]], "Diagonal Coulomb operators and double-factorized Trotter simulation": [[10, "Diagonal-Coulomb-operators-and-double-factorized-Trotter-simulation"]], "Double-factorized representation of the molecular Hamiltonian": [[10, "Double-factorized-representation-of-the-molecular-Hamiltonian"]], "Trotter simulation of the double-factorized Hamiltonian": [[10, "Trotter-simulation-of-the-double-factorized-Hamiltonian"]], "Brief background on Trotter-Suzuki formulas": [[10, "Brief-background-on-Trotter-Suzuki-formulas"]], "Implementing Trotter simulation of the double-factorized Hamiltonian": [[10, "Implementing-Trotter-simulation-of-the-double-factorized-Hamiltonian"]], "The local unitary cluster Jastrow (LUCJ) ansatz": [[11, "The-local-unitary-cluster-Jastrow-(LUCJ)-ansatz"], [11, "id1"]], "The unitary cluster Jastrow (UCJ) ansatz": [[11, "The-unitary-cluster-Jastrow-(UCJ)-ansatz"]], "Optimize with the linear method": [[11, "Optimize-with-the-linear-method"]], "Entanglement forging": [[12, "Entanglement-forging"]], "The FermionOperator class": [[13, "The-FermionOperator-class"]], "Tutorials": [[14, "tutorials"]]}, "indexentries": {"alpha (ffsim.spin attribute)": [[0, "ffsim.Spin.ALPHA"]], "alpha_and_beta (ffsim.spin attribute)": [[0, "ffsim.Spin.ALPHA_AND_BETA"]], "beta (ffsim.spin attribute)": [[0, "ffsim.Spin.BETA"]], "doublefactorizedhamiltonian (class in ffsim)": [[0, "ffsim.DoubleFactorizedHamiltonian"]], "fermionaction (class in ffsim)": [[0, "ffsim.FermionAction"]], "fermionoperator (class in ffsim)": [[0, "ffsim.FermionOperator"]], "hopgateansatzoperator (class in ffsim)": [[0, "ffsim.HopGateAnsatzOperator"]], "moleculardata (class in ffsim)": [[0, "ffsim.MolecularData"]], "molecularhamiltonian (class in ffsim)": [[0, "ffsim.MolecularHamiltonian"]], "realucjoperator (class in ffsim)": [[0, "ffsim.RealUCJOperator"]], "singlefactorizedhamiltonian (class in ffsim)": [[0, "ffsim.SingleFactorizedHamiltonian"]], "spin (class in ffsim)": [[0, "ffsim.Spin"]], "supportsapplyunitary (class in ffsim)": [[0, "ffsim.SupportsApplyUnitary"]], "supportsapproximateequality (class in ffsim)": [[0, "ffsim.SupportsApproximateEquality"]], "supportsfermionoperator (class in ffsim)": [[0, "ffsim.SupportsFermionOperator"]], "supportslinearoperator (class in ffsim)": [[0, "ffsim.SupportsLinearOperator"]], "supportstrace (class in ffsim)": [[0, "ffsim.SupportsTrace"]], "ucjoperator (class in ffsim)": [[0, "ffsim.UCJOperator"]], "action (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.action"]], "active_space (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.active_space"]], "apply_diag_coulomb_evolution() (in module ffsim)": [[0, "ffsim.apply_diag_coulomb_evolution"]], "apply_fsim_gate() (in module ffsim)": [[0, "ffsim.apply_fsim_gate"]], "apply_givens_rotation() (in module ffsim)": [[0, "ffsim.apply_givens_rotation"]], "apply_hop_gate() (in module ffsim)": [[0, "ffsim.apply_hop_gate"]], "apply_num_interaction() (in module ffsim)": [[0, "ffsim.apply_num_interaction"]], "apply_num_num_interaction() (in module ffsim)": [[0, "ffsim.apply_num_num_interaction"]], "apply_num_op_prod_interaction() (in module ffsim)": [[0, "ffsim.apply_num_op_prod_interaction"]], "apply_num_op_sum_evolution() (in module ffsim)": [[0, "ffsim.apply_num_op_sum_evolution"]], "apply_on_site_num_num_interaction() (in module ffsim)": [[0, "ffsim.apply_on_site_num_num_interaction"]], "apply_orbital_rotation() (in module ffsim)": [[0, "ffsim.apply_orbital_rotation"]], "apply_tunneling_interaction() (in module ffsim)": [[0, "ffsim.apply_tunneling_interaction"]], "apply_unitary() (in module ffsim)": [[0, "ffsim.apply_unitary"]], "approx_eq() (in module ffsim)": [[0, "ffsim.approx_eq"]], "atom (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.atom"]], "basis (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.basis"]], "ccsd_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.ccsd_energy"]], "ccsd_t1 (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.ccsd_t1"]], "ccsd_t2 (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.ccsd_t2"]], "conserves_particle_number() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.conserves_particle_number"]], "conserves_spin_z() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.conserves_spin_z"]], "constant (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.constant"]], "constant (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.constant"]], "constant (ffsim.singlefactorizedhamiltonian attribute)": [[0, "ffsim.SingleFactorizedHamiltonian.constant"]], "core_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.core_energy"]], "cre() (in module ffsim)": [[0, "ffsim.cre"]], "cre_a() (in module ffsim)": [[0, "ffsim.cre_a"]], "cre_b() (in module ffsim)": [[0, "ffsim.cre_b"]], "des() (in module ffsim)": [[0, "ffsim.des"]], "des_a() (in module ffsim)": [[0, "ffsim.des_a"]], "des_b() (in module ffsim)": [[0, "ffsim.des_b"]], "diag_coulomb_mats (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.diag_coulomb_mats"]], "diag_coulomb_mats_alpha_alpha (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.diag_coulomb_mats_alpha_alpha"]], "diag_coulomb_mats_alpha_alpha (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.diag_coulomb_mats_alpha_alpha"]], "diag_coulomb_mats_alpha_beta (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.diag_coulomb_mats_alpha_beta"]], "diag_coulomb_mats_alpha_beta (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.diag_coulomb_mats_alpha_beta"]], "dim() (in module ffsim)": [[0, "ffsim.dim"]], "dims() (in module ffsim)": [[0, "ffsim.dims"]], "dipole_integrals (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.dipole_integrals"]], "expectation_one_body_power() (in module ffsim)": [[0, "ffsim.expectation_one_body_power"]], "expectation_one_body_product() (in module ffsim)": [[0, "ffsim.expectation_one_body_product"]], "fci_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.fci_energy"]], "fci_vec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.fci_vec"]], "fermion_operator() (in module ffsim)": [[0, "ffsim.fermion_operator"]], "ffsim": [[0, "module-ffsim"]], "final_orbital_rotation (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.final_orbital_rotation"]], "final_orbital_rotation (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.final_orbital_rotation"]], "from_mole() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_mole"]], "from_molecular_hamiltonian() (ffsim.doublefactorizedhamiltonian static method)": [[0, "ffsim.DoubleFactorizedHamiltonian.from_molecular_hamiltonian"]], "from_molecular_hamiltonian() (ffsim.singlefactorizedhamiltonian static method)": [[0, "ffsim.SingleFactorizedHamiltonian.from_molecular_hamiltonian"]], "from_parameters() (ffsim.realucjoperator static method)": [[0, "ffsim.RealUCJOperator.from_parameters"]], "from_parameters() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.from_parameters"]], "from_scf() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_scf"]], "from_t_amplitudes() (ffsim.realucjoperator static method)": [[0, "ffsim.RealUCJOperator.from_t_amplitudes"]], "from_t_amplitudes() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.from_t_amplitudes"]], "hamiltonian (ffsim.moleculardata property)": [[0, "ffsim.MolecularData.hamiltonian"]], "hartree_fock_state() (in module ffsim)": [[0, "ffsim.hartree_fock_state"]], "hf_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.hf_energy"]], "indices_to_strings() (in module ffsim)": [[0, "ffsim.indices_to_strings"]], "init_cache() (in module ffsim)": [[0, "ffsim.init_cache"]], "linear_operator() (in module ffsim)": [[0, "ffsim.linear_operator"]], "many_body_order() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.many_body_order"]], "mo_coeff (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mo_coeff"]], "mo_occ (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mo_occ"]], "module": [[0, "module-ffsim"], [1, "module-ffsim.contract"], [2, "module-ffsim.linalg"], [3, "module-ffsim.optimize"], [4, "module-ffsim.random"], [5, "module-ffsim.testing"]], "mp2_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mp2_energy"]], "mp2_t2 (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mp2_t2"]], "multireference_state() (in module ffsim)": [[0, "ffsim.multireference_state"]], "n_reps (ffsim.realucjoperator property)": [[0, "ffsim.RealUCJOperator.n_reps"]], "n_reps (ffsim.ucjoperator property)": [[0, "ffsim.UCJOperator.n_reps"]], "nelec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.nelec"]], "norb (ffsim.doublefactorizedhamiltonian property)": [[0, "ffsim.DoubleFactorizedHamiltonian.norb"]], "norb (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.norb"]], "norb (ffsim.molecularhamiltonian property)": [[0, "ffsim.MolecularHamiltonian.norb"]], "norb (ffsim.realucjoperator property)": [[0, "ffsim.RealUCJOperator.norb"]], "norb (ffsim.singlefactorizedhamiltonian property)": [[0, "ffsim.SingleFactorizedHamiltonian.norb"]], "norb (ffsim.ucjoperator property)": [[0, "ffsim.UCJOperator.norb"]], "normal_ordered() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.normal_ordered"]], "number_operator() (in module ffsim)": [[0, "ffsim.number_operator"]], "one_body_squares (ffsim.singlefactorizedhamiltonian attribute)": [[0, "ffsim.SingleFactorizedHamiltonian.one_body_squares"]], "one_body_tensor (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.one_body_tensor"]], "one_body_tensor (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.one_body_tensor"]], "one_body_tensor (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.one_body_tensor"]], "one_body_tensor (ffsim.singlefactorizedhamiltonian attribute)": [[0, "ffsim.SingleFactorizedHamiltonian.one_body_tensor"]], "one_hot() (in module ffsim)": [[0, "ffsim.one_hot"]], "orb (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.orb"]], "orbital_rotations (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.orbital_rotations"]], "orbital_rotations (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.orbital_rotations"]], "orbital_rotations (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.orbital_rotations"]], "orbital_symmetries (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.orbital_symmetries"]], "rdm() (in module ffsim)": [[0, "ffsim.rdm"]], "rotated() (ffsim.molecularhamiltonian method)": [[0, "ffsim.MolecularHamiltonian.rotated"]], "simulate_qdrift_double_factorized() (in module ffsim)": [[0, "ffsim.simulate_qdrift_double_factorized"]], "simulate_trotter_double_factorized() (in module ffsim)": [[0, "ffsim.simulate_trotter_double_factorized"]], "slater_determinant() (in module ffsim)": [[0, "ffsim.slater_determinant"]], "slater_determinant_rdm() (in module ffsim)": [[0, "ffsim.slater_determinant_rdm"]], "spin (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.spin"]], "spin (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.spin"]], "symmetry (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.symmetry"]], "to_number_representation() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_number_representation"]], "to_parameters() (ffsim.hopgateansatzoperator method)": [[0, "ffsim.HopGateAnsatzOperator.to_parameters"]], "to_parameters() (ffsim.realucjoperator method)": [[0, "ffsim.RealUCJOperator.to_parameters"]], "to_parameters() (ffsim.ucjoperator method)": [[0, "ffsim.UCJOperator.to_parameters"]], "to_t_amplitudes() (ffsim.realucjoperator method)": [[0, "ffsim.RealUCJOperator.to_t_amplitudes"]], "to_t_amplitudes() (ffsim.ucjoperator method)": [[0, "ffsim.UCJOperator.to_t_amplitudes"]], "to_z_representation() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_z_representation"]], "trace() (in module ffsim)": [[0, "ffsim.trace"]], "two_body_integrals (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.two_body_integrals"]], "two_body_tensor (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.two_body_tensor"]], "z_representation (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.z_representation"]], "contract_diag_coulomb() (in module ffsim.contract)": [[1, "ffsim.contract.contract_diag_coulomb"]], "contract_num_op_sum() (in module ffsim.contract)": [[1, "ffsim.contract.contract_num_op_sum"]], "contract_one_body() (in module ffsim.contract)": [[1, "ffsim.contract.contract_one_body"]], "diag_coulomb_linop() (in module ffsim.contract)": [[1, "ffsim.contract.diag_coulomb_linop"]], "ffsim.contract": [[1, "module-ffsim.contract"]], "num_op_sum_linop() (in module ffsim.contract)": [[1, "ffsim.contract.num_op_sum_linop"]], "one_body_linop() (in module ffsim.contract)": [[1, "ffsim.contract.one_body_linop"]], "apply_matrix_to_slices() (in module ffsim.linalg)": [[2, "ffsim.linalg.apply_matrix_to_slices"]], "double_factorized() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized"]], "double_factorized_t2() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized_t2"]], "expm_multiply_taylor() (in module ffsim.linalg)": [[2, "ffsim.linalg.expm_multiply_taylor"]], "ffsim.linalg": [[2, "module-ffsim.linalg"]], "givens_decomposition() (in module ffsim.linalg)": [[2, "ffsim.linalg.givens_decomposition"]], "is_antihermitian() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_antihermitian"]], "is_hermitian() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_hermitian"]], "is_orthogonal() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_orthogonal"]], "is_real_symmetric() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_real_symmetric"]], "is_special_orthogonal() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_special_orthogonal"]], "is_unitary() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_unitary"]], "lup() (in module ffsim.linalg)": [[2, "ffsim.linalg.lup"]], "match_global_phase() (in module ffsim.linalg)": [[2, "ffsim.linalg.match_global_phase"]], "modified_cholesky() (in module ffsim.linalg)": [[2, "ffsim.linalg.modified_cholesky"]], "reduced_matrix() (in module ffsim.linalg)": [[2, "ffsim.linalg.reduced_matrix"]], "ffsim.optimize": [[3, "module-ffsim.optimize"]], "minimize_linear_method() (in module ffsim.optimize)": [[3, "ffsim.optimize.minimize_linear_method"]], "ffsim.random": [[4, "module-ffsim.random"]], "random_antihermitian() (in module ffsim.random)": [[4, "ffsim.random.random_antihermitian"]], "random_hermitian() (in module ffsim.random)": [[4, "ffsim.random.random_hermitian"]], "random_orthogonal() (in module ffsim.random)": [[4, "ffsim.random.random_orthogonal"]], "random_real_symmetric_matrix() (in module ffsim.random)": [[4, "ffsim.random.random_real_symmetric_matrix"]], "random_special_orthogonal() (in module ffsim.random)": [[4, "ffsim.random.random_special_orthogonal"]], "random_statevector() (in module ffsim.random)": [[4, "ffsim.random.random_statevector"]], "random_t2_amplitudes() (in module ffsim.random)": [[4, "ffsim.random.random_t2_amplitudes"]], "random_two_body_tensor() (in module ffsim.random)": [[4, "ffsim.random.random_two_body_tensor"]], "random_unitary() (in module ffsim.random)": [[4, "ffsim.random.random_unitary"]], "assert_allclose_up_to_global_phase() (in module ffsim.testing)": [[5, "ffsim.testing.assert_allclose_up_to_global_phase"]], "ffsim.testing": [[5, "module-ffsim.testing"]], "random_nelec() (in module ffsim.testing)": [[5, "ffsim.testing.random_nelec"]], "random_occupied_orbitals() (in module ffsim.testing)": [[5, "ffsim.testing.random_occupied_orbitals"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/ffsim", "api/ffsim.contract", "api/ffsim.linalg", "api/ffsim.optimize", "api/ffsim.random", "api/ffsim.testing", "api/index", "index", "tutorials/01-introduction", "tutorials/02-orbital-rotation", "tutorials/03-double-factorized", "tutorials/04-lucj", "tutorials/05-entanglement-forging", "tutorials/06-fermion-operator", "tutorials/index"], "filenames": ["api/ffsim.rst", "api/ffsim.contract.rst", "api/ffsim.linalg.rst", "api/ffsim.optimize.rst", "api/ffsim.random.rst", "api/ffsim.testing.rst", "api/index.md", "index.md", "tutorials/01-introduction.ipynb", "tutorials/02-orbital-rotation.ipynb", "tutorials/03-double-factorized.ipynb", "tutorials/04-lucj.ipynb", "tutorials/05-entanglement-forging.ipynb", "tutorials/06-fermion-operator.ipynb", "tutorials/index.md"], "titles": ["ffsim", "ffsim.contract", "ffsim.linalg", "ffsim.optimize", "ffsim.random", "ffsim.testing", "API Reference", "ffsim", "Introduction to ffsim", "Orbital rotations and quadratic Hamiltonians", "Diagonal Coulomb operators and double-factorized Trotter simulation", "The local unitary cluster Jastrow (LUCJ) ansatz", "Entanglement forging", "The FermionOperator class", "Tutorials"], "terms": {"i": [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13], "softwar": [0, 7, 8], "librari": [0, 7, 8], "fast": 0, "simul": [0, 7, 8, 9, 11, 12, 14], "fermion": [0, 7, 8, 9, 11, 13], "quantum": [0, 7, 8, 10, 11], "circuit": [0, 7, 8], "class": [0, 4, 11, 14], "doublefactorizedhamiltonian": [0, 6, 10], "one_body_tensor": [0, 6, 9, 10], "diag_coulomb_mat": [0, 6, 10], "orbital_rot": [0, 1, 6, 8, 9, 10], "constant": [0, 6, 10, 11], "0": [0, 3, 5, 9, 10, 11, 12, 13], "z_represent": [0, 1, 6], "fals": [0, 1, 2, 11, 12, 13], "sourc": [0, 1, 2, 3, 4, 5], "base": [0, 2], "object": [0, 2, 3, 11, 13], "A": [0, 1, 2, 3, 4, 5, 9, 10, 11, 13], "hamiltonian": [0, 3, 6, 11, 12, 14], "doubl": [0, 2, 11, 14], "factor": [0, 2, 11, 14], "represent": [0, 1, 2, 8, 13, 14], "The": [0, 1, 2, 3, 4, 5, 8, 9, 10, 14], "form": [0, 1, 2, 9, 10, 11, 13], "molecular": [0, 11, 12, 14], "h": [0, 10, 11, 12], "sum_": [0, 1, 2, 9, 10, 11], "sigma": [0, 1, 9, 10, 11], "pq": [0, 2, 10], "kappa_": 0, "dagger_": [0, 9, 10], "p": [0, 2, 10, 11], "a_": [0, 9, 10, 13], "q": [0, 10], "frac12": [0, 10, 11], "sum_t": 0, "tau": [0, 1, 10, 11], "ij": [0, 1, 2, 9, 10, 11], "z": [0, 1, 2, 7, 8, 11, 13], "t": [0, 2, 9, 10], "_": [0, 2, 9, 10, 11, 12], "n": [0, 2, 8, 9, 10, 11], "j": [0, 1, 9, 10, 11, 12, 13], "text": [0, 10], "where": [0, 1, 2, 3, 9, 10, 11], "u": [0, 1, 2], "pi": [0, 12], "qi": 0, "here": [0, 2, 8, 9, 10, 11], "each": [0, 2, 3, 8, 10, 11, 13], "unitari": [0, 1, 2, 4, 9, 10, 14], "matrix": [0, 1, 2, 3, 4, 8, 9, 10, 11, 13], "real": [0, 1, 2, 3, 4, 5, 9, 10, 11], "symmetr": [0, 1, 2, 4, 10, 11], "an": [0, 1, 2, 4, 7, 8, 9, 10, 11, 13], "altern": [0, 10], "sometim": 0, "yield": [0, 2, 10, 11, 12], "simpler": 0, "under": 0, "jordan": 0, "wigner": 0, "transform": [0, 1, 8, 9], "number": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13], "oper": [0, 1, 2, 3, 9, 11, 12, 13, 14], "take": [0, 3, 8, 11], "frac": 0, "1": [0, 2, 3, 4, 8, 9, 10, 11, 12, 13], "2": [0, 1, 2, 4, 8, 9, 10, 11, 12, 13], "pauli": 0, "rotat": [0, 1, 2, 6, 8, 10, 11, 14], "basi": [0, 6, 9, 10, 11, 12], "obtain": [0, 9, 10, 11], "rewrit": 0, "two": [0, 2, 4, 10, 11, 12], "bodi": [0, 1, 2, 4, 10, 11, 12], "part": [0, 2], "term": [0, 1, 2, 10, 11, 13], "updat": [0, 10], "one": [0, 1, 2, 8, 10, 11, 12], "appropri": 0, "kappa": 0, "frac18": 0, "asterisk": 0, "denot": [0, 1, 9], "summat": 0, "over": 0, "indic": [0, 2, 8, 11, 13], "neq": [0, 1], "refer": [0, 2, 3, 4, 11], "low": 0, "rank": [0, 2, 4], "electron": [0, 1, 4, 5, 8, 10], "structur": 0, "filter": 0, "diagon": [0, 1, 2, 9, 11, 14], "tensor": [0, 1, 2, 4, 10, 11, 12], "type": [0, 1, 2, 3, 4, 5], "np": [0, 4, 5, 8, 9, 10, 11, 12], "ndarrai": [0, 1, 2, 3, 4, 5, 10, 11], "coulomb": [0, 1, 2, 11, 14], "matric": [0, 1, 2, 9, 10, 11], "orbit": [0, 1, 2, 4, 5, 8, 10, 11, 13, 14], "float": [0, 2, 3, 4, 5, 10], "whether": [0, 1, 2, 3, 13], "rather": 0, "than": [0, 7, 8, 11], "bool": [0, 1, 2, 3, 5], "static": 0, "from_molecular_hamiltonian": [0, 6, 10], "tol": [0, 2], "1e": [0, 2, 3, 5], "08": [0, 2, 3], "max_vec": [0, 2], "none": [0, 1, 2, 3, 4, 5], "optim": [0, 2, 6, 12, 14], "method": [0, 2, 3, 12, 14], "l": [0, 2, 3, 10, 11, 12], "bfg": [0, 2, 3, 11, 12], "b": [0, 2, 3, 5, 9, 10, 11, 12], "callback": [0, 2, 3, 11], "option": [0, 1, 2, 3, 11, 12], "diag_coulomb_mask": [0, 2], "choleski": [0, 2], "true": [0, 2, 3, 5, 8, 11, 12, 13], "initi": [0, 3, 4, 5, 10, 11, 12], "from": [0, 4, 8, 9, 11, 12, 13], "molecularhamiltonian": [0, 6, 10], "thi": [0, 2, 7, 8, 9, 10, 11, 12], "function": [0, 1, 2, 3, 8, 9, 10, 11, 13], "input": [0, 1, 3, 4, 5, 11], "which": [0, 2, 4, 8, 9, 10, 11, 13], "store": [0, 2, 10, 11], "It": [0, 2, 3, 7, 8, 10, 11, 13], "perform": [0, 2, 3, 9, 10], "decomposit": [0, 2], "comput": [0, 2, 9, 11, 12], "new": [0, 9, 13], "return": [0, 1, 2, 3, 4, 5, 10, 11, 12, 13], "result": [0, 1, 2, 3, 4, 8, 9, 10, 11, 12], "see": [0, 2], "descript": 0, "argument": [0, 2, 3, 9], "linalg": [0, 6, 9, 10, 11, 13], "double_factor": [0, 2, 6], "rest": [0, 10], "paramet": [0, 1, 2, 3, 4, 5, 11, 12], "whose": [0, 2, 8], "us": [0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 13], "toler": [0, 2, 5, 11], "error": [0, 2, 5], "defin": [0, 2, 10, 11, 12], "maximum": [0, 2, 3, 4], "absolut": [0, 2, 5], "differ": [0, 1, 2, 3, 11], "between": [0, 1, 2, 3, 11], "element": [0, 2], "origin": [0, 2, 10], "correspond": [0, 2, 3, 8, 9, 10, 11], "reconstruct": [0, 2], "int": [0, 1, 2, 3, 4, 5, 10, 12], "limit": [0, 2, 11, 12], "keep": [0, 2], "overrid": [0, 2], "str": [0, 2, 5], "document": [0, 2], "scipi": [0, 2, 3, 8, 9, 10, 11, 12, 13], "minim": [0, 2, 3, 11, 12], "possibl": [0, 2, 8], "valu": [0, 1, 2, 3, 5, 10, 11], "usag": [0, 2, 13], "dict": [0, 2, 3, 11, 12], "mask": [0, 2], "boolean": [0, 2], "nonzero": [0, 2, 11], "ar": [0, 1, 2, 4, 5, 8, 9, 10, 11, 13], "allow": [0, 2, 11], "onli": [0, 2, 8, 9, 11], "set": [0, 2, 8, 9, 10, 11], "upper": [0, 2, 11], "triangular": [0, 2], "modifi": [0, 2], "If": [0, 1, 2, 3, 4, 5, 13], "full": [0, 2, 8], "eigenvalu": [0, 2, 3, 9], "instead": [0, 2, 11], "can": [0, 2, 7, 8, 9, 10, 11, 13], "much": [0, 2, 7, 8], "more": [0, 2, 3, 8, 11], "expens": [0, 2], "ignor": [0, 2, 10], "properti": [0, 9], "norb": [0, 1, 4, 5, 6, 8, 9, 10, 11, 12, 13], "spatial": [0, 1, 5, 8, 10, 11, 13], "to_number_represent": [0, 6], "to_z_represent": [0, 6], "fermionact": [0, 6], "action": [0, 1, 6, 9, 13], "spin": [0, 1, 6, 7, 8, 9, 11, 13], "orb": [0, 6, 13], "namedtupl": 0, "alia": 0, "field": 0, "fermionoper": [0, 6, 14], "coeff": [0, 1], "repres": [0, 3, 8, 11, 13], "linear": [0, 1, 2, 3, 9, 13, 14], "combin": [0, 1, 9, 13], "product": [0, 10, 13], "creation": [0, 9, 13], "annihil": [0, 13], "pass": [0, 2, 9, 11, 13], "dictionari": [0, 13], "map": [0, 9, 13], "associ": [0, 3, 11, 13], "coeffici": [0, 1, 2, 9, 11, 13], "ad": 0, "subtract": [0, 13], "multipli": [0, 13], "thei": [0, 9, 11, 13], "support": [0, 2, 13], "multipl": [0, 10, 13], "divis": [0, 13], "scalar": [0, 13], "when": [0, 3, 10, 11, 13], "should": [0, 4, 5, 9, 10], "go": [0, 13], "left": [0, 8, 9, 13], "side": 0, "e": [0, 10, 11, 12, 13], "g": [0, 11, 12], "op": [0, 13], "demonstr": [0, 9, 10, 11], "how": [0, 8, 9, 10, 11, 12, 13], "exampl": [0, 8, 9, 11, 13], "note": [0, 2, 3, 11, 13], "sinc": [0, 11], "unord": 0, "order": [0, 8, 10, 11, 13], "print": [0, 5, 8, 10, 11, 12, 13], "output": [0, 3, 10, 11], "below": [0, 9, 10, 11], "mai": [0, 2, 3, 7, 9, 11], "vari": 0, "run": [0, 7, 11], "import": [0, 8, 9, 10, 11, 12, 13], "op1": [0, 13], "cre_a": [0, 6, 13], "des_a": [0, 6, 13], "3": [0, 8, 9, 10, 11, 12, 13], "5": [0, 3, 10, 11, 13], "25": [0, 13], "cre_b": [0, 6, 13], "des_b": [0, 6, 13], "4": [0, 8, 9, 10, 11, 12, 13], "1j": [0, 9, 10, 13], "2j": [0, 13], "op2": [0, 13], "125": [0, 13], "0625": [0, 13], "25j": [0, 13], "5j": [0, 13], "tupl": [0, 1, 2, 5, 10, 13], "complex": [0, 1, 2, 4], "conserves_particle_numb": [0, 6, 13], "conserv": [0, 7, 8, 13], "particl": [0, 5, 7, 8, 9, 13], "otherwis": 0, "conserves_spin_z": [0, 6, 13], "compon": [0, 7, 8, 13], "many_body_ord": [0, 6], "mani": [0, 7], "length": [0, 8, 10, 11], "longest": 0, "contain": [0, 2, 3, 11, 13], "normal_ord": [0, 6, 13], "normal": [0, 13], "equival": [0, 8], "ha": [0, 1, 2, 8, 9, 10, 11], "been": 0, "reorder": 0, "canon": 0, "In": [0, 8, 9, 10, 11, 12, 13], "compris": [0, 13], "appear": [0, 13], "right": [0, 8, 9, 13], "descend": [0, 13], "lexicograph": [0, 13], "That": [0, 3, 9, 13], "all": [0, 3, 8, 11, 13], "befor": [0, 11, 13], "within": [0, 2, 13], "beta": [0, 1, 5, 6, 8, 11, 13], "alpha": [0, 1, 5, 6, 8, 11, 13], "larger": [0, 2, 3, 13], "smaller": [0, 2, 10, 13], "hopgateansatzoper": [0, 6, 12], "interaction_pair": [0, 12], "theta": [0, 12], "final_orbital_rot": [0, 6], "hop": 0, "gate": [0, 11], "ansatz": [0, 3, 12, 14], "to_paramet": [0, 6, 11], "convert": [0, 1, 8, 9, 10, 11, 13], "vector": [0, 1, 2, 3, 4, 8, 9, 11, 12, 13], "moleculardata": [0, 6, 10, 11, 12], "atom": [0, 6, 10, 11, 12], "symmetri": [0, 6, 7, 8, 9, 10, 11, 12], "nelec": [0, 1, 5, 6, 8, 9, 10, 11, 12, 13], "active_spac": [0, 6, 10, 11, 12], "core_energi": [0, 6], "one_body_integr": 0, "two_body_integr": [0, 6], "hf_energi": [0, 6, 10], "mo_coeff": [0, 6], "mo_occ": [0, 6], "mp2_energi": [0, 6], "mp2_t2": [0, 6], "ccsd_energi": [0, 6], "ccsd_t1": [0, 6], "ccsd_t2": [0, 6], "fci_energi": [0, 6], "fci_vec": [0, 6], "dipole_integr": [0, 6], "orbital_symmetri": [0, 6], "data": [0, 4, 10, 11, 12, 13], "coordin": 0, "molecul": [0, 10, 11, 12], "sto": [0, 10, 11, 12], "6g": [0, 10, 11, 12], "hartre": [0, 8, 9, 10, 11], "fock": [0, 8, 9, 10, 11], "ao": 0, "occup": [0, 8, 9, 10], "includ": [0, 2, 7, 8, 9, 10, 11], "activ": [0, 10, 11, 12], "space": [0, 8, 10, 11, 12], "core": 0, "energi": [0, 3, 9, 10, 11, 12], "integr": 0, "compress": [0, 2], "format": 0, "mp2": [0, 11], "t2": [0, 2, 4, 11], "amplitud": [0, 2, 4, 11], "ccsd": [0, 11], "t1": [0, 11], "fci": [0, 8, 11, 12], "state": [0, 1, 3, 4, 8, 9, 10, 11, 12], "dipol": 0, "from_mol": [0, 6, 10, 12], "scf_func": 0, "rhf": [0, 11], "pyscf": [0, 8, 10, 11, 12], "mole": [0, 10, 11, 12], "iter": [0, 3, 11], "list": [0, 2, 5, 8, 11, 12], "calcul": [0, 8, 10, 11], "scf": [0, 10, 11, 12], "from_scf": [0, 6, 11], "hartree_fock": [0, 11], "two_body_tensor": [0, 2, 6, 10], "h_": [0, 2, 10], "pqr": [0, 2, 10], "r": [0, 2, 10], "": [0, 2, 8, 10, 11, 12, 13], "call": [0, 3, 8, 9, 10, 11, 13], "given": [0, 1, 2, 9, 10], "mathcal": [0, 1, 9, 10, 11], "dagger": [0, 1, 2, 9, 10, 11, 13], "realucjoper": [0, 6], "diag_coulomb_mats_alpha_alpha": [0, 6], "diag_coulomb_mats_alpha_beta": [0, 6], "cluster": [0, 14], "jastrow": [0, 3, 14], "ucj": [0, 14], "prod_": [0, 11], "k": [0, 2, 9, 10, 11, 13], "w_k": [0, 11], "_k": [0, 10, 11], "mathbf": [0, 9, 10, 11], "n_": [0, 1, 8, 9, 10, 11], "commut": [0, 10, 11], "total": [0, 10, 11, 12], "we": [0, 9, 10, 11, 12, 13], "enforc": [0, 11], "As": [0, 8, 9, 10, 11], "have": [0, 2, 9, 11, 13], "describ": [0, 1, 8, 9, 10, 11, 13], "involv": [0, 11], "same": [0, 8, 11], "To": [0, 8, 9, 10, 11], "variat": [0, 3, 11], "final": [0, 3, 10, 11], "end": [0, 9, 11], "from_paramet": [0, 6, 11], "param": 0, "n_rep": [0, 6, 11], "alpha_alpha_indic": [0, 11], "alpha_beta_indic": [0, 11], "with_final_orbital_rot": 0, "from_t_amplitud": [0, 6, 11], "t2_amplitud": [0, 2], "t1_amplitud": 0, "repetit": [0, 11], "to_t_amplitud": [0, 6], "nocc": [0, 4], "possibli": [0, 11], "singlefactorizedhamiltonian": [0, 6], "one_body_squar": [0, 6], "singl": [0, 10], "m": [0, 1, 2, 9], "hermitian": [0, 2, 4, 9], "squar": [0, 2, 11], "sum": [0, 1, 10], "depend": [0, 2, 3, 8], "threshold": [0, 2, 3], "lead": [0, 3], "furthermor": [0, 2], "specifi": [0, 2, 3, 5, 11], "bound": [0, 2], "current": [0, 2, 7, 11], "name": 0, "modul": [0, 8], "qualnam": 0, "start": 0, "boundari": 0, "flag": 0, "enumer": [0, 11], "both": [0, 2], "alpha_and_beta": [0, 6], "supportsapplyunitari": [0, 6], "arg": 0, "kwarg": 0, "protocol": 0, "appli": [0, 1, 2, 3, 8, 9, 10, 11], "supportsapproximateequ": [0, 6], "compar": [0, 5, 10], "approxim": [0, 2, 3, 10], "supportsfermionoper": [0, 6], "supportslinearoper": [0, 6], "linearoper": [0, 1, 3, 9, 10, 11, 13], "supportstrac": [0, 6], "trace": [0, 6, 10], "ucjoper": [0, 6, 11], "apply_diag_coulomb_evolut": [0, 6, 10], "vec": [0, 1, 2, 8, 9, 10, 13], "mat": [0, 1, 2, 8], "time": [0, 2, 3, 8, 10, 14], "mat_alpha_beta": [0, 1], "copi": [0, 13], "evolut": [0, 10, 14], "exp": [0, 2, 5, 9], "z_": [0, 1], "also": [0, 1, 3, 8, 9, 11, 13], "place": [0, 1, 11, 13], "interact": [0, 1, 8], "alwai": [0, 2, 9], "newli": 0, "alloc": 0, "untouch": 0, "still": [0, 11], "its": [0, 2, 9, 10, 13], "overwritten": 0, "evolv": [0, 10], "apply_fsim_g": [0, 6], "phi": [0, 2, 5], "target_orb": 0, "fsim": 0, "consist": 0, "tunnel": 0, "follow": [0, 3, 8, 9, 10, 11, 13], "neg": 0, "sign": 0, "convent": 0, "angl": [0, 12], "begin": [0, 9, 11], "align": [0, 9, 11], "nn": 0, "neighbor": 0, "qubit": [0, 11], "pmatrix": 0, "co": [0, 12], "sin": [0, 12], "phase": [0, 2, 5, 9], "choic": [0, 8], "sector": 0, "act": [0, 13], "default": [0, 2, 3, 4], "apply_givens_rot": [0, 6], "apply_hop_g": [0, 6], "apply_num_interact": [0, 6], "apply_num_num_interact": [0, 6], "apply_num_op_prod_interact": [0, 6], "s_": 0, "sequenc": 0, "pair": [0, 2, 5], "integ": 0, "give": [0, 9], "first": [0, 2, 8, 9, 10, 11, 12], "second": [0, 2, 10, 12], "apply_num_op_sum_evolut": [0, 6, 9, 10], "lambda_i": [0, 1, 9], "rais": [0, 5], "valueerror": 0, "must": [0, 2, 3, 13], "dimension": [0, 2, 8], "apply_on_site_num_num_interact": [0, 6], "site": 0, "osnn": 0, "apply_orbital_rot": [0, 6, 8, 9], "allow_row_permut": 0, "allow_col_permut": 0, "mapsto": [0, 9], "u_": 0, "ji": [0, 9], "log": 0, "permut": [0, 2], "row": [0, 8], "column": [0, 2, 8, 9], "wa": [0, 3], "well": [0, 3], "actual": [0, 5, 9, 11], "effect": [0, 11], "apply_tunneling_interact": [0, 6], "apply_unitari": [0, 6, 11], "obj": 0, "ani": [0, 3, 9, 11], "approx_eq": [0, 6], "other": [0, 8, 11], "rtol": [0, 2, 5], "05": [0, 2, 3, 11], "atol": [0, 2, 5], "equal": [0, 2, 5], "isclos": 0, "interpret": 0, "rel": [0, 2, 5], "numer": [0, 2, 13], "up": [0, 3, 5, 9], "cre": [0, 6], "creat": [0, 8, 9, 10, 11, 13], "index": [0, 8, 11, 13], "de": [0, 6], "destroi": [0, 13], "dim": [0, 4, 6, 8, 13], "get": [0, 9, 10, 11, 12], "dimens": [0, 4, 8], "dim_a": [0, 8], "dim_b": [0, 8], "expectation_one_body_pow": [0, 6], "one_rdm": 0, "power": 0, "expect": [0, 3], "w": [0, 9, 10], "slater": [0, 8, 10], "determin": [0, 2, 8, 10], "o": [0, 12], "m_": [0, 1, 2], "a_p": 0, "a_q": 0, "let": [0, 10, 13], "lvert": [0, 11], "psi": [0, 11], "rangl": [0, 11], "Then": 0, "quantiti": 0, "langl": 0, "rvert": 0, "unlik": 0, "most": [0, 13], "word": [0, 11], "rdm": [0, 6], "shape": [0, 2, 4, 8, 10, 11], "treat": 0, "foot": 0, "expand": 0, "usual": 0, "elsewher": 0, "block_diag": 0, "reduc": [0, 2], "densiti": 0, "expectation_one_body_product": [0, 6], "o_1": 0, "o_2": 0, "dot": 0, "o_k": 0, "fermion_oper": [0, 6], "hartree_fock_st": [0, 6, 8, 9, 10, 11], "statevector": [0, 8, 9], "indices_to_str": [0, 6, 8], "bitstr": [0, 8], "rang": [0, 8, 9, 10, 11, 12], "001011": 0, "010011": 0, "100011": 0, "001101": 0, "010101": 0, "100101": 0, "001110": 0, "010110": 0, "100110": 0, "init_cach": [0, 6], "cach": 0, "prepar": 0, "typic": 0, "need": [0, 11], "benchmark": 0, "avoid": [0, 13], "count": 0, "cost": 0, "lookup": 0, "tabl": [0, 13], "linear_oper": [0, 6, 10, 11, 13], "multireference_st": [0, 6, 12], "ansatz_oper": 0, "reference_occup": [0, 12], "root": 0, "multirefer": 0, "desir": [0, 5], "eigenvector": [0, 9], "lowest": [0, 9, 10], "itself": [0, 13], "number_oper": [0, 6], "n_p": 0, "one_hot": [0, 6], "dtype": [0, 4, 11, 12], "arrai": [0, 2, 5, 8, 13], "zero": 0, "except": [0, 3], "hot": 0, "spin_sum": 0, "return_lower_rank": 0, "rdm1": 0, "definit": [0, 2, 3], "higher": [0, 10], "rdm2": 0, "rdm3": 0, "rdm4": 0, "v": 0, "lower": [0, 2], "addit": [0, 10, 13], "increas": [0, 10, 11], "For": [0, 3, 8, 9, 11, 13], "simulate_qdrift_double_factor": [0, 6], "n_step": [0, 10], "probabl": 0, "norm": [0, 3, 11], "n_sampl": 0, "seed": [0, 4, 5, 8, 9], "via": [0, 10], "qdrift": 0, "trotter": [0, 14], "step": [0, 9, 10], "sampl": [0, 4, 5], "els": [0, 4], "explicit": 0, "string": [0, 8, 13], "proport": [0, 9], "spectral": 0, "uniform": [0, 4, 12], "requir": [0, 11], "whenev": 0, "complet": 0, "character": 0, "trajectori": 0, "pseudorandom": [0, 4, 5], "gener": [0, 3, 4, 5, 7, 8, 9, 10, 11], "valid": [0, 4, 5], "random": [0, 5, 6, 8, 9, 12, 13], "default_rng": [0, 4, 5, 12], "numpi": [0, 2, 5, 8, 9, 10, 11, 12], "just": [0, 10, 11], "simulate_trotter_double_factor": [0, 6, 10], "suzuki": [0, 14], "formula": [0, 14], "slater_determin": [0, 6, 8], "occupied_orbit": [0, 8, 9], "occupi": [0, 4, 5, 10], "configur": [0, 8], "slater_determinant_rdm": [0, 6], "similarli": [0, 10], "construct": [1, 3, 8, 10, 11, 12, 13], "contract_diag_coulomb": [1, 6], "contract_num_op_sum": [1, 6], "contract_one_bodi": [1, 6], "dagger_i": 1, "a_j": 1, "implement": [1, 3, 8, 9, 11, 14], "diag_coulomb_linop": [1, 6], "num_op_sum_linop": [1, 6], "one_body_linop": [1, 6, 9], "algebra": [2, 13], "util": [2, 4, 5], "apply_matrix_to_slic": [2, 6], "target": 2, "slice": 2, "out": [2, 7, 10], "ell": 2, "pk": 2, "qk": 2, "respect": [2, 3], "so": [2, 9, 10, 11, 13], "too": 2, "small": [2, 11], "exce": [2, 12], "behavior": [2, 4], "routin": [2, 8, 13], "straightforward": 2, "exact": [2, 8, 10], "nest": 2, "addition": 2, "choos": [2, 8, 11], "achiev": [2, 10], "enabl": 2, "attempt": 2, "least": 2, "quantifi": 2, "gradient": [2, 3, 11], "constrain": 2, "certain": 2, "becaus": [2, 8, 10, 11, 13], "arxiv": [2, 4], "1808": 2, "02625": 2, "2104": 2, "08957": 2, "decompos": [2, 10], "collect": [2, 11], "double_factorized_t2": [2, 6], "t_": 2, "ijab": 2, "ap": 2, "ip": 2, "bq": 2, "jq": 2, "expm_multiply_taylor": [2, 6], "12": [2, 13], "expm": 2, "taylor": 2, "seri": 2, "expans": [2, 3], "givens_decomposit": [2, 6], "is_antihermitian": [2, 6], "anti": [2, 4], "is_hermitian": [2, 6], "is_orthogon": [2, 6], "orthogon": [2, 4], "union": 2, "bool_": 2, "is_real_symmetr": [2, 6], "is_special_orthogon": [2, 6], "special": [2, 4, 7, 8], "is_unitari": [2, 6], "lup": [2, 6], "pivot": 2, "lu": 2, "rtype": 2, "unit": 2, "match_global_phas": [2, 6], "match": [2, 10], "entri": [2, 11], "anoth": [2, 5], "some": [2, 5, 11, 13], "modified_choleski": [2, 6], "v_i": 2, "posit": [2, 3, 12], "No": 2, "check": [2, 5, 7, 9, 10], "verifi": 2, "1711": 2, "02242": 2, "assembl": 2, "reduced_matrix": [2, 6], "subspac": [2, 13], "span": [2, 8], "v_j": 2, "algorithm": [3, 7, 11], "minimize_linear_method": [3, 6, 11], "params_to_vec": [3, 11], "x0": [3, 11, 12], "maxit": [3, 11], "1000": 3, "regular": [3, 11], "lindep": 3, "epsilon": 3, "gtol": 3, "optimize_hyperparamet": 3, "optimize_hyperparameters_arg": 3, "feenberg": 3, "backflow": 3, "correl": 3, "callabl": [3, 11], "wavefunct": [3, 11], "those": 3, "guess": 3, "hyperparamet": [3, 11], "control": 3, "Its": [3, 8], "greater": 3, "size": [3, 12], "strictli": 3, "solv": 3, "problem": 3, "increment": 3, "finit": 3, "converg": [3, 10, 11, 12], "project": 3, "incur": 3, "evalu": [3, 12], "speed": 3, "fewer": [3, 10], "overal": 3, "f": [3, 8, 10, 11, 12], "scipy_optimize_minimize_arg": 3, "optimizeresult": [3, 11], "after": [3, 11], "signatur": 3, "intermediate_result": [3, 11], "attribut": 3, "x": [3, 11, 12], "fun": [3, 11, 12], "present": 3, "last": 3, "jac": [3, 11, 12], "hold": 3, "select": 3, "nfev": [3, 11, 12], "nlinop": [3, 11], "random_antihermitian": [4, 6], "width": 4, "height": 4, "dype": 4, "random_hermitian": [4, 6, 9], "random_orthogon": [4, 6], "distribut": 4, "haar": 4, "measur": 4, "instanc": [4, 9, 10], "math": [4, 12], "ph": 4, "0609050": 4, "random_real_symmetric_matrix": [4, 6], "random_special_orthogon": [4, 6], "random_statevector": [4, 6, 13], "random_t2_amplitud": [4, 6], "random_two_body_tensor": [4, 6], "random_unitari": [4, 6, 8, 9], "assert_allclose_up_to_global_phas": [5, 6], "07": 5, "equal_nan": 5, "err_msg": 5, "verbos": 5, "nan": 5, "messag": [5, 11, 12], "case": 5, "failur": 5, "conflict": 5, "append": [5, 11], "assertionerror": 5, "global": 5, "precis": [5, 11], "random_nelec": [5, 6], "n_alpha": [5, 8, 9], "n_beta": [5, 8, 9], "random_occupied_orbit": [5, 6], "occ_a": 5, "occ_b": 5, "ffsim": [6, 9, 10, 11, 12, 13, 14], "contract": [6, 9], "test": [6, 8, 9, 10], "faster": [7, 11], "categori": 7, "chemistri": 7, "By": [7, 8], "exploit": 7, "experiment": 7, "disclaim": 7, "releas": 7, "break": 7, "chang": 7, "introduc": [7, 9, 11], "without": [7, 11], "warn": 7, "avail": 7, "command": 7, "pip": 7, "tutori": [7, 9, 10, 11, 12], "advantag": 8, "effici": [8, 13], "primari": 8, "wai": [8, 9, 11], "directli": [8, 10, 11], "code": [8, 10, 11, 13], "show": [8, 9, 10, 11, 12, 13], "6": [8, 9, 10, 11, 12, 13], "1234": [8, 9, 12], "slater_det": 8, "assert_allclos": [8, 9], "plain": 8, "fix": 8, "system": [8, 9], "contrast": 8, "would": [8, 11], "2n": 8, "diment": 8, "conveni": 8, "comb": 8, "On": 8, "hand": 8, "assert": 8, "300": 8, "4096": 8, "standard": [8, 11], "often": [8, 11], "simpli": [8, 9], "reshap": 8, "you": [8, 9, 11], "half": 8, "20": 8, "39": [8, 13], "000011000111": 8, "000101000111": 8, "000110000111": 8, "001001000111": 8, "001010000111": 8, "001100000111": 8, "010001000111": 8, "010010000111": 8, "010100000111": 8, "011000000111": 8, "100001000111": 8, "100010000111": 8, "100100000111": 8, "101000000111": 8, "110000000111": 8, "000011001011": 8, "000101001011": 8, "000110001011": 8, "001001001011": 8, "001010001011": 8, "fundament": 9, "mode": 9, "sum_j": 9, "th": 9, "satisfi": [9, 13], "anticommut": 9, "relat": [9, 11], "_1": 9, "_2": 9, "section": 9, "ll": [9, 10, 11], "task": 9, "consid": [9, 11], "rewritten": 9, "eigendecomposit": 9, "sum_k": [9, 10], "lambda_k": 9, "ik": 9, "jk": 9, "our": [9, 10, 11], "ground": [9, 11], "pick": 9, "spars": [9, 10, 13], "eig": [9, 13], "eigsh": 9, "la": 9, "fact": 9, "illustr": 9, "purpos": 9, "explicitli": 9, "eigh": [9, 10], "evolved_vec": 9, "conj": 9, "undo": 9, "expected_phas": 9, "mention": [9, 10], "abov": [9, 10, 13], "better": [9, 10], "evolved_vec_alt": 9, "daunt": 10, "scale": 10, "cell": [10, 11], "ethen": [10, 11], "stretch": [10, 11], "bond": [10, 11, 12], "build": [10, 11, 12], "bond_dist": [10, 11], "678": [10, 11], "5626": [10, 11], "c": [10, 11], "9289": [10, 11], "mol": [10, 11, 12], "gto": [10, 11, 12], "d2h": [10, 11], "nelectron": [10, 11], "mol_data": [10, 11, 12], "mol_hamiltonian": [10, 11, 12], "df_hamiltonian": 10, "77": [10, 11], "4456267643963": 10, "dataclass": [10, 11], "One": 10, "10": 10, "although": 10, "alreadi": 10, "built": 10, "manual": 10, "asymmetr": 10, "basic": 10, "h_k": 10, "divid": 10, "exponenti": 10, "individu": [10, 13], "do": [10, 13], "approx": 10, "prod_k": 10, "deriv": 10, "write": 10, "recal": 10, "think": 10, "compos": 10, "quadrat": [10, 14], "def": [10, 11, 12], "simulate_trotter_step_double_factor": 10, "one_body_energi": 10, "one_body_basis_chang": 10, "zip": [10, 11, 12], "finish": 10, "level": 10, "handl": 10, "split": 10, "wrote": 10, "step_tim": 10, "initial_st": 10, "\u03c8": [10, 11], "vdot": [10, 11], "44562676439627": 10, "now": 10, "later": 10, "exact_st": 10, "expm_multipli": 10, "tracea": 10, "fidel": 10, "ab": 10, "9315062301401348": 10, "7": [10, 11, 12, 13], "final_st": [10, 11], "9928527668214803": 10, "improv": 10, "8": [10, 11, 12, 13], "9999320851288157": 10, "commonli": 10, "known": 10, "fourth": 10, "reproduc": 10, "9": [10, 11, 12, 13], "9999913261309125": 10, "mcscf": [11, 12], "kernel": 11, "4456267643962": 11, "casci": [11, 12], "6290254326717": 11, "ci": [11, 12], "57322412553862": 11, "0000000": [11, 12], "phi_0": 11, "taken": 11, "express": 11, "previou": 11, "constructor": 11, "provid": 11, "truncat": 11, "cc": 11, "frozen": 11, "nao_nr": [11, 12], "reference_st": 11, "ansatz_st": [11, 12], "49387212754473": 11, "e_corr": 11, "04824536314851236": 11, "46975600021732": 11, "facilit": 11, "convers": 11, "somewhat": 11, "complic": 11, "short": 11, "non": 11, "redund": 11, "like": 11, "len": [11, 12], "72": 11, "stop": [11, 12], "NO": [11, 12], "reach": 11, "success": [11, 12], "statu": [11, 12], "50963188244859": 11, "487e": 11, "01": [11, 12], "913e": 11, "596e": 11, "03": [11, 12], "987e": 11, "00": [11, 12], "nit": [11, 12], "171e": 11, "066e": 11, "613e": 11, "04": [11, 12], "785e": 11, "584": 11, "njev": [11, 12], "hess_inv": [11, 12], "lt": [11, 12], "72x72": 11, "lbfgsinvhessproduct": [11, 12], "float64": [11, 12], "gt": [11, 12], "either": 11, "connect": 11, "swap": 11, "network": 11, "make": 11, "challeng": 11, "noisi": 11, "pre": 11, "fault": 11, "processor": 11, "idea": 11, "impos": 11, "sparsiti": 11, "constraint": 11, "them": 11, "depth": 11, "topologi": 11, "triangl": 11, "lattic": 11, "parallel": 11, "line": 11, "rung": 11, "ladder": 11, "With": 11, "setup": 11, "while": 11, "share": 11, "ldot": 11, "Of": 11, "cours": 11, "less": 11, "notic": 11, "decreas": 11, "46": 11, "45741018839536": 11, "125e": 11, "257e": 11, "02": [11, 12], "076e": 11, "934e": 11, "132e": 11, "274e": 11, "700e": 11, "423": 11, "46x46": 11, "interfac": 11, "similar": 11, "main": 11, "being": [11, 13], "save": 11, "intermedi": 11, "defaultdict": 11, "inform": [11, 13], "info": 11, "accept": 11, "hasattr": 11, "4748881190414": 11, "957e": 11, "032e": 11, "144e": 11, "367e": 11, "205e": 11, "783e": 11, "974e": 11, "661": 11, "431": 11, "45612720016143": 11, "021018115845501794": 11, "0023570677416965115": 11, "23786614273116047": 11, "45780263234413": 11, "012974987146754376": 11, "001983330328317489": 11, "2379126943508127": 11, "45784507615812": 11, "012566485917974195": 11, "0909011353406566": 11, "23541997933517844": 11, "46190183620553": 11, "025825221643435443": 11, "004156448029612187": 11, "47692707738700535": 11, "water": 12, "equilibrium": 12, "radius_1": 12, "958": 12, "radius_2": 12, "bond_angle_deg": 12, "104": 12, "478": 12, "h1_x": 12, "h2_x": 12, "180": 12, "h2_y": 12, "c2v": 12, "75": 12, "6787887956297": 12, "7288249991515": 12, "23": 12, "6332495815006": 12, "brickwork": 12, "n_layer": 12, "rng": 12, "reference_occupations_spati": 12, "initiali": 12, "74": 12, "20656273321595": 12, "maxfun": 12, "100": 12, "15": 12, "AND": 12, "68085254776946": 12, "996e": 12, "549e": 12, "650e": 12, "012e": 12, "758e": 12, "113e": 12, "192e": 12, "578e": 12, "112": 12, "15x15": 12, "Such": 13, "programmat": 13, "hash": 13, "three": 13, "piec": 13, "upon": 13, "intern": 13, "recommend": 13, "helper": 13, "shown": 13, "repr": 13, "view": 13, "displai": 13, "0j": 13, "arithmet": 13, "op3": 13, "good": 13, "awar": 13, "especi": 13, "These": 13, "4j": 13, "6j": 13, "12j": 13, "3j": 13, "preserv": 13, "far": 13, "criteria": 13, "doe": 13, "op4": 13, "linop": 13, "onto": 13, "04234102": 13, "22061687j": 13, "lm": 13, "21984743e": 13, "18j": 13, "introduct": 14, "brief": 14, "background": 14, "local": 14, "lucj": 14, "entangl": 14, "forg": 14}, "objects": {"": [[0, 0, 0, "-", "ffsim"]], "ffsim": [[0, 1, 1, "", "DoubleFactorizedHamiltonian"], [0, 1, 1, "", "FermionAction"], [0, 1, 1, "", "FermionOperator"], [0, 1, 1, "", "HopGateAnsatzOperator"], [0, 1, 1, "", "MolecularData"], [0, 1, 1, "", "MolecularHamiltonian"], [0, 1, 1, "", "RealUCJOperator"], [0, 1, 1, "", "SingleFactorizedHamiltonian"], [0, 1, 1, "", "Spin"], [0, 1, 1, "", "SupportsApplyUnitary"], [0, 1, 1, "", "SupportsApproximateEquality"], [0, 1, 1, "", "SupportsFermionOperator"], [0, 1, 1, "", "SupportsLinearOperator"], [0, 1, 1, "", "SupportsTrace"], [0, 1, 1, "", "UCJOperator"], [0, 5, 1, "", "apply_diag_coulomb_evolution"], [0, 5, 1, "", "apply_fsim_gate"], [0, 5, 1, "", "apply_givens_rotation"], [0, 5, 1, "", "apply_hop_gate"], [0, 5, 1, "", "apply_num_interaction"], [0, 5, 1, "", "apply_num_num_interaction"], [0, 5, 1, "", "apply_num_op_prod_interaction"], [0, 5, 1, "", "apply_num_op_sum_evolution"], [0, 5, 1, "", "apply_on_site_num_num_interaction"], [0, 5, 1, "", "apply_orbital_rotation"], [0, 5, 1, "", "apply_tunneling_interaction"], [0, 5, 1, "", "apply_unitary"], [0, 5, 1, "", "approx_eq"], [1, 0, 0, "-", "contract"], [0, 5, 1, "", "cre"], [0, 5, 1, "", "cre_a"], [0, 5, 1, "", "cre_b"], [0, 5, 1, "", "des"], [0, 5, 1, "", "des_a"], [0, 5, 1, "", "des_b"], [0, 5, 1, "", "dim"], [0, 5, 1, "", "dims"], [0, 5, 1, "", "expectation_one_body_power"], [0, 5, 1, "", "expectation_one_body_product"], [0, 5, 1, "", "fermion_operator"], [0, 5, 1, "", "hartree_fock_state"], [0, 5, 1, "", "indices_to_strings"], [0, 5, 1, "", "init_cache"], [2, 0, 0, "-", "linalg"], [0, 5, 1, "", "linear_operator"], [0, 5, 1, "", "multireference_state"], [0, 5, 1, "", "number_operator"], [0, 5, 1, "", "one_hot"], [3, 0, 0, "-", "optimize"], [4, 0, 0, "-", "random"], [0, 5, 1, "", "rdm"], [0, 5, 1, "", "simulate_qdrift_double_factorized"], [0, 5, 1, "", "simulate_trotter_double_factorized"], [0, 5, 1, "", "slater_determinant"], [0, 5, 1, "", "slater_determinant_rdm"], [5, 0, 0, "-", "testing"], [0, 5, 1, "", "trace"]], "ffsim.DoubleFactorizedHamiltonian": [[0, 2, 1, "", "constant"], [0, 2, 1, "", "diag_coulomb_mats"], [0, 3, 1, "", "from_molecular_hamiltonian"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_number_representation"], [0, 3, 1, "", "to_z_representation"], [0, 2, 1, "", "z_representation"]], "ffsim.FermionAction": [[0, 2, 1, "", "action"], [0, 2, 1, "", "orb"], [0, 2, 1, "", "spin"]], "ffsim.FermionOperator": [[0, 3, 1, "", "conserves_particle_number"], [0, 3, 1, "", "conserves_spin_z"], [0, 3, 1, "", "many_body_order"], [0, 3, 1, "", "normal_ordered"]], "ffsim.HopGateAnsatzOperator": [[0, 3, 1, "", "to_parameters"]], "ffsim.MolecularData": [[0, 2, 1, "", "active_space"], [0, 2, 1, "", "atom"], [0, 2, 1, "", "basis"], [0, 2, 1, "", "ccsd_energy"], [0, 2, 1, "", "ccsd_t1"], [0, 2, 1, "", "ccsd_t2"], [0, 2, 1, "", "core_energy"], [0, 2, 1, "", "dipole_integrals"], [0, 2, 1, "", "fci_energy"], [0, 2, 1, "", "fci_vec"], [0, 3, 1, "", "from_mole"], [0, 3, 1, "", "from_scf"], [0, 4, 1, "", "hamiltonian"], [0, 2, 1, "", "hf_energy"], [0, 2, 1, "", "mo_coeff"], [0, 2, 1, "", "mo_occ"], [0, 2, 1, "", "mp2_energy"], [0, 2, 1, "", "mp2_t2"], [0, 2, 1, "", "nelec"], [0, 2, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 2, 1, "", "orbital_symmetries"], [0, 2, 1, "", "spin"], [0, 2, 1, "", "symmetry"], [0, 2, 1, "", "two_body_integrals"]], "ffsim.MolecularHamiltonian": [[0, 2, 1, "", "constant"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_tensor"], [0, 3, 1, "", "rotated"], [0, 2, 1, "", "two_body_tensor"]], "ffsim.RealUCJOperator": [[0, 2, 1, "", "diag_coulomb_mats_alpha_alpha"], [0, 2, 1, "", "diag_coulomb_mats_alpha_beta"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"], [0, 3, 1, "", "to_t_amplitudes"]], "ffsim.SingleFactorizedHamiltonian": [[0, 2, 1, "", "constant"], [0, 3, 1, "", "from_molecular_hamiltonian"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "one_body_squares"], [0, 2, 1, "", "one_body_tensor"]], "ffsim.Spin": [[0, 2, 1, "", "ALPHA"], [0, 2, 1, "", "ALPHA_AND_BETA"], [0, 2, 1, "", "BETA"]], "ffsim.UCJOperator": [[0, 2, 1, "", "diag_coulomb_mats_alpha_alpha"], [0, 2, 1, "", "diag_coulomb_mats_alpha_beta"], [0, 2, 1, "", "final_orbital_rotation"], [0, 3, 1, "", "from_parameters"], [0, 3, 1, "", "from_t_amplitudes"], [0, 4, 1, "", "n_reps"], [0, 4, 1, "", "norb"], [0, 2, 1, "", "orbital_rotations"], [0, 3, 1, "", "to_parameters"], [0, 3, 1, "", "to_t_amplitudes"]], "ffsim.contract": [[1, 5, 1, "", "contract_diag_coulomb"], [1, 5, 1, "", "contract_num_op_sum"], [1, 5, 1, "", "contract_one_body"], [1, 5, 1, "", "diag_coulomb_linop"], [1, 5, 1, "", "num_op_sum_linop"], [1, 5, 1, "", "one_body_linop"]], "ffsim.linalg": [[2, 5, 1, "", "apply_matrix_to_slices"], [2, 5, 1, "", "double_factorized"], [2, 5, 1, "", "double_factorized_t2"], [2, 5, 1, "", "expm_multiply_taylor"], [2, 5, 1, "", "givens_decomposition"], [2, 5, 1, "", "is_antihermitian"], [2, 5, 1, "", "is_hermitian"], [2, 5, 1, "", "is_orthogonal"], [2, 5, 1, "", "is_real_symmetric"], [2, 5, 1, "", "is_special_orthogonal"], [2, 5, 1, "", "is_unitary"], [2, 5, 1, "", "lup"], [2, 5, 1, "", "match_global_phase"], [2, 5, 1, "", "modified_cholesky"], [2, 5, 1, "", "reduced_matrix"]], "ffsim.optimize": [[3, 5, 1, "", "minimize_linear_method"]], "ffsim.random": [[4, 5, 1, "", "random_antihermitian"], [4, 5, 1, "", "random_hermitian"], [4, 5, 1, "", "random_orthogonal"], [4, 5, 1, "", "random_real_symmetric_matrix"], [4, 5, 1, "", "random_special_orthogonal"], [4, 5, 1, "", "random_statevector"], [4, 5, 1, "", "random_t2_amplitudes"], [4, 5, 1, "", "random_two_body_tensor"], [4, 5, 1, "", "random_unitary"]], "ffsim.testing": [[5, 5, 1, "", "assert_allclose_up_to_global_phase"], [5, 5, 1, "", "random_nelec"], [5, 5, 1, "", "random_occupied_orbitals"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:property", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "function", "Python function"]}, "titleterms": {"ffsim": [0, 1, 2, 3, 4, 5, 7, 8], "contract": 1, "linalg": 2, "optim": [3, 11], "random": 4, "test": 5, "api": 6, "refer": 6, "what": 7, "i": 7, "instal": 7, "from": 7, "pypi": 7, "get": 7, "start": 7, "introduct": 8, "orbit": 9, "rotat": 9, "quadrat": 9, "hamiltonian": [9, 10], "time": 9, "evolut": 9, "diagon": 10, "coulomb": 10, "oper": 10, "doubl": 10, "factor": 10, "trotter": 10, "simul": 10, "represent": 10, "molecular": 10, "brief": 10, "background": 10, "suzuki": 10, "formula": 10, "implement": 10, "The": [11, 13], "local": 11, "unitari": 11, "cluster": 11, "jastrow": 11, "lucj": 11, "ansatz": 11, "ucj": 11, "linear": 11, "method": 11, "entangl": 12, "forg": 12, "fermionoper": 13, "class": 13, "tutori": 14}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "nbsphinx": 4, "sphinx": 60}, "alltitles": {"ffsim": [[0, "module-ffsim"], [7, "ffsim"]], "ffsim.contract": [[1, "module-ffsim.contract"]], "ffsim.linalg": [[2, "module-ffsim.linalg"]], "ffsim.optimize": [[3, "module-ffsim.optimize"]], "ffsim.random": [[4, "module-ffsim.random"]], "ffsim.testing": [[5, "module-ffsim.testing"]], "API Reference": [[6, "api-reference"]], "What is ffsim?": [[7, "what-is-ffsim"]], "Install from PyPI": [[7, "install-from-pypi"]], "Get started": [[7, "get-started"]], "Introduction to ffsim": [[8, "Introduction-to-ffsim"]], "Orbital rotations and quadratic Hamiltonians": [[9, "Orbital-rotations-and-quadratic-Hamiltonians"]], "Orbital rotations": [[9, "Orbital-rotations"]], "Time evolution by a quadratic Hamiltonian": [[9, "Time-evolution-by-a-quadratic-Hamiltonian"]], "Diagonal Coulomb operators and double-factorized Trotter simulation": [[10, "Diagonal-Coulomb-operators-and-double-factorized-Trotter-simulation"]], "Double-factorized representation of the molecular Hamiltonian": [[10, "Double-factorized-representation-of-the-molecular-Hamiltonian"]], "Trotter simulation of the double-factorized Hamiltonian": [[10, "Trotter-simulation-of-the-double-factorized-Hamiltonian"]], "Brief background on Trotter-Suzuki formulas": [[10, "Brief-background-on-Trotter-Suzuki-formulas"]], "Implementing Trotter simulation of the double-factorized Hamiltonian": [[10, "Implementing-Trotter-simulation-of-the-double-factorized-Hamiltonian"]], "The local unitary cluster Jastrow (LUCJ) ansatz": [[11, "The-local-unitary-cluster-Jastrow-(LUCJ)-ansatz"], [11, "id1"]], "The unitary cluster Jastrow (UCJ) ansatz": [[11, "The-unitary-cluster-Jastrow-(UCJ)-ansatz"]], "Optimize with the linear method": [[11, "Optimize-with-the-linear-method"]], "Entanglement forging": [[12, "Entanglement-forging"]], "The FermionOperator class": [[13, "The-FermionOperator-class"]], "Tutorials": [[14, "tutorials"]]}, "indexentries": {"alpha (ffsim.spin attribute)": [[0, "ffsim.Spin.ALPHA"]], "alpha_and_beta (ffsim.spin attribute)": [[0, "ffsim.Spin.ALPHA_AND_BETA"]], "beta (ffsim.spin attribute)": [[0, "ffsim.Spin.BETA"]], "doublefactorizedhamiltonian (class in ffsim)": [[0, "ffsim.DoubleFactorizedHamiltonian"]], "fermionaction (class in ffsim)": [[0, "ffsim.FermionAction"]], "fermionoperator (class in ffsim)": [[0, "ffsim.FermionOperator"]], "hopgateansatzoperator (class in ffsim)": [[0, "ffsim.HopGateAnsatzOperator"]], "moleculardata (class in ffsim)": [[0, "ffsim.MolecularData"]], "molecularhamiltonian (class in ffsim)": [[0, "ffsim.MolecularHamiltonian"]], "realucjoperator (class in ffsim)": [[0, "ffsim.RealUCJOperator"]], "singlefactorizedhamiltonian (class in ffsim)": [[0, "ffsim.SingleFactorizedHamiltonian"]], "spin (class in ffsim)": [[0, "ffsim.Spin"]], "supportsapplyunitary (class in ffsim)": [[0, "ffsim.SupportsApplyUnitary"]], "supportsapproximateequality (class in ffsim)": [[0, "ffsim.SupportsApproximateEquality"]], "supportsfermionoperator (class in ffsim)": [[0, "ffsim.SupportsFermionOperator"]], "supportslinearoperator (class in ffsim)": [[0, "ffsim.SupportsLinearOperator"]], "supportstrace (class in ffsim)": [[0, "ffsim.SupportsTrace"]], "ucjoperator (class in ffsim)": [[0, "ffsim.UCJOperator"]], "action (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.action"]], "active_space (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.active_space"]], "apply_diag_coulomb_evolution() (in module ffsim)": [[0, "ffsim.apply_diag_coulomb_evolution"]], "apply_fsim_gate() (in module ffsim)": [[0, "ffsim.apply_fsim_gate"]], "apply_givens_rotation() (in module ffsim)": [[0, "ffsim.apply_givens_rotation"]], "apply_hop_gate() (in module ffsim)": [[0, "ffsim.apply_hop_gate"]], "apply_num_interaction() (in module ffsim)": [[0, "ffsim.apply_num_interaction"]], "apply_num_num_interaction() (in module ffsim)": [[0, "ffsim.apply_num_num_interaction"]], "apply_num_op_prod_interaction() (in module ffsim)": [[0, "ffsim.apply_num_op_prod_interaction"]], "apply_num_op_sum_evolution() (in module ffsim)": [[0, "ffsim.apply_num_op_sum_evolution"]], "apply_on_site_num_num_interaction() (in module ffsim)": [[0, "ffsim.apply_on_site_num_num_interaction"]], "apply_orbital_rotation() (in module ffsim)": [[0, "ffsim.apply_orbital_rotation"]], "apply_tunneling_interaction() (in module ffsim)": [[0, "ffsim.apply_tunneling_interaction"]], "apply_unitary() (in module ffsim)": [[0, "ffsim.apply_unitary"]], "approx_eq() (in module ffsim)": [[0, "ffsim.approx_eq"]], "atom (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.atom"]], "basis (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.basis"]], "ccsd_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.ccsd_energy"]], "ccsd_t1 (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.ccsd_t1"]], "ccsd_t2 (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.ccsd_t2"]], "conserves_particle_number() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.conserves_particle_number"]], "conserves_spin_z() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.conserves_spin_z"]], "constant (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.constant"]], "constant (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.constant"]], "constant (ffsim.singlefactorizedhamiltonian attribute)": [[0, "ffsim.SingleFactorizedHamiltonian.constant"]], "core_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.core_energy"]], "cre() (in module ffsim)": [[0, "ffsim.cre"]], "cre_a() (in module ffsim)": [[0, "ffsim.cre_a"]], "cre_b() (in module ffsim)": [[0, "ffsim.cre_b"]], "des() (in module ffsim)": [[0, "ffsim.des"]], "des_a() (in module ffsim)": [[0, "ffsim.des_a"]], "des_b() (in module ffsim)": [[0, "ffsim.des_b"]], "diag_coulomb_mats (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.diag_coulomb_mats"]], "diag_coulomb_mats_alpha_alpha (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.diag_coulomb_mats_alpha_alpha"]], "diag_coulomb_mats_alpha_alpha (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.diag_coulomb_mats_alpha_alpha"]], "diag_coulomb_mats_alpha_beta (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.diag_coulomb_mats_alpha_beta"]], "diag_coulomb_mats_alpha_beta (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.diag_coulomb_mats_alpha_beta"]], "dim() (in module ffsim)": [[0, "ffsim.dim"]], "dims() (in module ffsim)": [[0, "ffsim.dims"]], "dipole_integrals (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.dipole_integrals"]], "expectation_one_body_power() (in module ffsim)": [[0, "ffsim.expectation_one_body_power"]], "expectation_one_body_product() (in module ffsim)": [[0, "ffsim.expectation_one_body_product"]], "fci_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.fci_energy"]], "fci_vec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.fci_vec"]], "fermion_operator() (in module ffsim)": [[0, "ffsim.fermion_operator"]], "ffsim": [[0, "module-ffsim"]], "final_orbital_rotation (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.final_orbital_rotation"]], "final_orbital_rotation (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.final_orbital_rotation"]], "from_mole() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_mole"]], "from_molecular_hamiltonian() (ffsim.doublefactorizedhamiltonian static method)": [[0, "ffsim.DoubleFactorizedHamiltonian.from_molecular_hamiltonian"]], "from_molecular_hamiltonian() (ffsim.singlefactorizedhamiltonian static method)": [[0, "ffsim.SingleFactorizedHamiltonian.from_molecular_hamiltonian"]], "from_parameters() (ffsim.realucjoperator static method)": [[0, "ffsim.RealUCJOperator.from_parameters"]], "from_parameters() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.from_parameters"]], "from_scf() (ffsim.moleculardata static method)": [[0, "ffsim.MolecularData.from_scf"]], "from_t_amplitudes() (ffsim.realucjoperator static method)": [[0, "ffsim.RealUCJOperator.from_t_amplitudes"]], "from_t_amplitudes() (ffsim.ucjoperator static method)": [[0, "ffsim.UCJOperator.from_t_amplitudes"]], "hamiltonian (ffsim.moleculardata property)": [[0, "ffsim.MolecularData.hamiltonian"]], "hartree_fock_state() (in module ffsim)": [[0, "ffsim.hartree_fock_state"]], "hf_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.hf_energy"]], "indices_to_strings() (in module ffsim)": [[0, "ffsim.indices_to_strings"]], "init_cache() (in module ffsim)": [[0, "ffsim.init_cache"]], "linear_operator() (in module ffsim)": [[0, "ffsim.linear_operator"]], "many_body_order() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.many_body_order"]], "mo_coeff (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mo_coeff"]], "mo_occ (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mo_occ"]], "module": [[0, "module-ffsim"], [1, "module-ffsim.contract"], [2, "module-ffsim.linalg"], [3, "module-ffsim.optimize"], [4, "module-ffsim.random"], [5, "module-ffsim.testing"]], "mp2_energy (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mp2_energy"]], "mp2_t2 (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.mp2_t2"]], "multireference_state() (in module ffsim)": [[0, "ffsim.multireference_state"]], "n_reps (ffsim.realucjoperator property)": [[0, "ffsim.RealUCJOperator.n_reps"]], "n_reps (ffsim.ucjoperator property)": [[0, "ffsim.UCJOperator.n_reps"]], "nelec (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.nelec"]], "norb (ffsim.doublefactorizedhamiltonian property)": [[0, "ffsim.DoubleFactorizedHamiltonian.norb"]], "norb (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.norb"]], "norb (ffsim.molecularhamiltonian property)": [[0, "ffsim.MolecularHamiltonian.norb"]], "norb (ffsim.realucjoperator property)": [[0, "ffsim.RealUCJOperator.norb"]], "norb (ffsim.singlefactorizedhamiltonian property)": [[0, "ffsim.SingleFactorizedHamiltonian.norb"]], "norb (ffsim.ucjoperator property)": [[0, "ffsim.UCJOperator.norb"]], "normal_ordered() (ffsim.fermionoperator method)": [[0, "ffsim.FermionOperator.normal_ordered"]], "number_operator() (in module ffsim)": [[0, "ffsim.number_operator"]], "one_body_squares (ffsim.singlefactorizedhamiltonian attribute)": [[0, "ffsim.SingleFactorizedHamiltonian.one_body_squares"]], "one_body_tensor (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.one_body_tensor"]], "one_body_tensor (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.one_body_tensor"]], "one_body_tensor (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.one_body_tensor"]], "one_body_tensor (ffsim.singlefactorizedhamiltonian attribute)": [[0, "ffsim.SingleFactorizedHamiltonian.one_body_tensor"]], "one_hot() (in module ffsim)": [[0, "ffsim.one_hot"]], "orb (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.orb"]], "orbital_rotations (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.orbital_rotations"]], "orbital_rotations (ffsim.realucjoperator attribute)": [[0, "ffsim.RealUCJOperator.orbital_rotations"]], "orbital_rotations (ffsim.ucjoperator attribute)": [[0, "ffsim.UCJOperator.orbital_rotations"]], "orbital_symmetries (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.orbital_symmetries"]], "rdm() (in module ffsim)": [[0, "ffsim.rdm"]], "rotated() (ffsim.molecularhamiltonian method)": [[0, "ffsim.MolecularHamiltonian.rotated"]], "simulate_qdrift_double_factorized() (in module ffsim)": [[0, "ffsim.simulate_qdrift_double_factorized"]], "simulate_trotter_double_factorized() (in module ffsim)": [[0, "ffsim.simulate_trotter_double_factorized"]], "slater_determinant() (in module ffsim)": [[0, "ffsim.slater_determinant"]], "slater_determinant_rdm() (in module ffsim)": [[0, "ffsim.slater_determinant_rdm"]], "spin (ffsim.fermionaction attribute)": [[0, "ffsim.FermionAction.spin"]], "spin (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.spin"]], "symmetry (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.symmetry"]], "to_number_representation() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_number_representation"]], "to_parameters() (ffsim.hopgateansatzoperator method)": [[0, "ffsim.HopGateAnsatzOperator.to_parameters"]], "to_parameters() (ffsim.realucjoperator method)": [[0, "ffsim.RealUCJOperator.to_parameters"]], "to_parameters() (ffsim.ucjoperator method)": [[0, "ffsim.UCJOperator.to_parameters"]], "to_t_amplitudes() (ffsim.realucjoperator method)": [[0, "ffsim.RealUCJOperator.to_t_amplitudes"]], "to_t_amplitudes() (ffsim.ucjoperator method)": [[0, "ffsim.UCJOperator.to_t_amplitudes"]], "to_z_representation() (ffsim.doublefactorizedhamiltonian method)": [[0, "ffsim.DoubleFactorizedHamiltonian.to_z_representation"]], "trace() (in module ffsim)": [[0, "ffsim.trace"]], "two_body_integrals (ffsim.moleculardata attribute)": [[0, "ffsim.MolecularData.two_body_integrals"]], "two_body_tensor (ffsim.molecularhamiltonian attribute)": [[0, "ffsim.MolecularHamiltonian.two_body_tensor"]], "z_representation (ffsim.doublefactorizedhamiltonian attribute)": [[0, "ffsim.DoubleFactorizedHamiltonian.z_representation"]], "contract_diag_coulomb() (in module ffsim.contract)": [[1, "ffsim.contract.contract_diag_coulomb"]], "contract_num_op_sum() (in module ffsim.contract)": [[1, "ffsim.contract.contract_num_op_sum"]], "contract_one_body() (in module ffsim.contract)": [[1, "ffsim.contract.contract_one_body"]], "diag_coulomb_linop() (in module ffsim.contract)": [[1, "ffsim.contract.diag_coulomb_linop"]], "ffsim.contract": [[1, "module-ffsim.contract"]], "num_op_sum_linop() (in module ffsim.contract)": [[1, "ffsim.contract.num_op_sum_linop"]], "one_body_linop() (in module ffsim.contract)": [[1, "ffsim.contract.one_body_linop"]], "apply_matrix_to_slices() (in module ffsim.linalg)": [[2, "ffsim.linalg.apply_matrix_to_slices"]], "double_factorized() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized"]], "double_factorized_t2() (in module ffsim.linalg)": [[2, "ffsim.linalg.double_factorized_t2"]], "expm_multiply_taylor() (in module ffsim.linalg)": [[2, "ffsim.linalg.expm_multiply_taylor"]], "ffsim.linalg": [[2, "module-ffsim.linalg"]], "givens_decomposition() (in module ffsim.linalg)": [[2, "ffsim.linalg.givens_decomposition"]], "is_antihermitian() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_antihermitian"]], "is_hermitian() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_hermitian"]], "is_orthogonal() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_orthogonal"]], "is_real_symmetric() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_real_symmetric"]], "is_special_orthogonal() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_special_orthogonal"]], "is_unitary() (in module ffsim.linalg)": [[2, "ffsim.linalg.is_unitary"]], "lup() (in module ffsim.linalg)": [[2, "ffsim.linalg.lup"]], "match_global_phase() (in module ffsim.linalg)": [[2, "ffsim.linalg.match_global_phase"]], "modified_cholesky() (in module ffsim.linalg)": [[2, "ffsim.linalg.modified_cholesky"]], "reduced_matrix() (in module ffsim.linalg)": [[2, "ffsim.linalg.reduced_matrix"]], "ffsim.optimize": [[3, "module-ffsim.optimize"]], "minimize_linear_method() (in module ffsim.optimize)": [[3, "ffsim.optimize.minimize_linear_method"]], "ffsim.random": [[4, "module-ffsim.random"]], "random_antihermitian() (in module ffsim.random)": [[4, "ffsim.random.random_antihermitian"]], "random_hermitian() (in module ffsim.random)": [[4, "ffsim.random.random_hermitian"]], "random_orthogonal() (in module ffsim.random)": [[4, "ffsim.random.random_orthogonal"]], "random_real_symmetric_matrix() (in module ffsim.random)": [[4, "ffsim.random.random_real_symmetric_matrix"]], "random_special_orthogonal() (in module ffsim.random)": [[4, "ffsim.random.random_special_orthogonal"]], "random_statevector() (in module ffsim.random)": [[4, "ffsim.random.random_statevector"]], "random_t2_amplitudes() (in module ffsim.random)": [[4, "ffsim.random.random_t2_amplitudes"]], "random_two_body_tensor() (in module ffsim.random)": [[4, "ffsim.random.random_two_body_tensor"]], "random_unitary() (in module ffsim.random)": [[4, "ffsim.random.random_unitary"]], "assert_allclose_up_to_global_phase() (in module ffsim.testing)": [[5, "ffsim.testing.assert_allclose_up_to_global_phase"]], "ffsim.testing": [[5, "module-ffsim.testing"]], "random_nelec() (in module ffsim.testing)": [[5, "ffsim.testing.random_nelec"]], "random_occupied_orbitals() (in module ffsim.testing)": [[5, "ffsim.testing.random_occupied_orbitals"]]}}) \ No newline at end of file diff --git a/tutorials/01-introduction.ipynb b/tutorials/01-introduction.ipynb index a1a91b00c..5d125ad08 100644 --- a/tutorials/01-introduction.ipynb +++ b/tutorials/01-introduction.ipynb @@ -16,10 +16,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:24.571055Z", - "iopub.status.busy": "2024-02-09T20:05:24.570878Z", - "iopub.status.idle": "2024-02-09T20:05:24.922607Z", - "shell.execute_reply": "2024-02-09T20:05:24.922060Z" + "iopub.execute_input": "2024-02-13T12:02:55.847701Z", + "iopub.status.busy": "2024-02-13T12:02:55.847195Z", + "iopub.status.idle": "2024-02-13T12:02:56.219559Z", + "shell.execute_reply": "2024-02-13T12:02:56.219031Z" } }, "outputs": [], @@ -70,10 +70,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:24.925709Z", - "iopub.status.busy": "2024-02-09T20:05:24.925273Z", - "iopub.status.idle": "2024-02-09T20:05:24.929740Z", - "shell.execute_reply": "2024-02-09T20:05:24.929199Z" + "iopub.execute_input": "2024-02-13T12:02:56.222755Z", + "iopub.status.busy": "2024-02-13T12:02:56.222246Z", + "iopub.status.idle": "2024-02-13T12:02:56.227136Z", + "shell.execute_reply": "2024-02-13T12:02:56.226484Z" } }, "outputs": [ @@ -112,10 +112,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:24.966076Z", - "iopub.status.busy": "2024-02-09T20:05:24.965637Z", - "iopub.status.idle": "2024-02-09T20:05:24.968621Z", - "shell.execute_reply": "2024-02-09T20:05:24.968144Z" + "iopub.execute_input": "2024-02-13T12:02:56.264468Z", + "iopub.status.busy": "2024-02-13T12:02:56.263988Z", + "iopub.status.idle": "2024-02-13T12:02:56.266925Z", + "shell.execute_reply": "2024-02-13T12:02:56.266367Z" } }, "outputs": [], @@ -135,10 +135,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:24.970844Z", - "iopub.status.busy": "2024-02-09T20:05:24.970501Z", - "iopub.status.idle": "2024-02-09T20:05:24.976667Z", - "shell.execute_reply": "2024-02-09T20:05:24.976189Z" + "iopub.execute_input": "2024-02-13T12:02:56.269255Z", + "iopub.status.busy": "2024-02-13T12:02:56.268908Z", + "iopub.status.idle": "2024-02-13T12:02:56.275273Z", + "shell.execute_reply": "2024-02-13T12:02:56.274627Z" } }, "outputs": [ diff --git a/tutorials/02-orbital-rotation.ipynb b/tutorials/02-orbital-rotation.ipynb index f1c395e6c..916c3f6c4 100644 --- a/tutorials/02-orbital-rotation.ipynb +++ b/tutorials/02-orbital-rotation.ipynb @@ -43,10 +43,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:26.385032Z", - "iopub.status.busy": "2024-02-09T20:05:26.384850Z", - "iopub.status.idle": "2024-02-09T20:05:26.735698Z", - "shell.execute_reply": "2024-02-09T20:05:26.735076Z" + "iopub.execute_input": "2024-02-13T12:02:57.693717Z", + "iopub.status.busy": "2024-02-13T12:02:57.693203Z", + "iopub.status.idle": "2024-02-13T12:02:58.069453Z", + "shell.execute_reply": "2024-02-13T12:02:58.068796Z" } }, "outputs": [], @@ -107,10 +107,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:26.738516Z", - "iopub.status.busy": "2024-02-09T20:05:26.738078Z", - "iopub.status.idle": "2024-02-09T20:05:26.765262Z", - "shell.execute_reply": "2024-02-09T20:05:26.764747Z" + "iopub.execute_input": "2024-02-13T12:02:58.072663Z", + "iopub.status.busy": "2024-02-13T12:02:58.072205Z", + "iopub.status.idle": "2024-02-13T12:02:58.098653Z", + "shell.execute_reply": "2024-02-13T12:02:58.097985Z" } }, "outputs": [], @@ -155,10 +155,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:26.768067Z", - "iopub.status.busy": "2024-02-09T20:05:26.767772Z", - "iopub.status.idle": "2024-02-09T20:05:26.775947Z", - "shell.execute_reply": "2024-02-09T20:05:26.775389Z" + "iopub.execute_input": "2024-02-13T12:02:58.102283Z", + "iopub.status.busy": "2024-02-13T12:02:58.101844Z", + "iopub.status.idle": "2024-02-13T12:02:58.111232Z", + "shell.execute_reply": "2024-02-13T12:02:58.110661Z" } }, "outputs": [], @@ -198,10 +198,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:26.778765Z", - "iopub.status.busy": "2024-02-09T20:05:26.778559Z", - "iopub.status.idle": "2024-02-09T20:05:26.785751Z", - "shell.execute_reply": "2024-02-09T20:05:26.785244Z" + "iopub.execute_input": "2024-02-13T12:02:58.114671Z", + "iopub.status.busy": "2024-02-13T12:02:58.114285Z", + "iopub.status.idle": "2024-02-13T12:02:58.120698Z", + "shell.execute_reply": "2024-02-13T12:02:58.120185Z" } }, "outputs": [], diff --git a/tutorials/03-double-factorized.html b/tutorials/03-double-factorized.html index db5a13964..c19e64659 100644 --- a/tutorials/03-double-factorized.html +++ b/tutorials/03-double-factorized.html @@ -282,7 +282,7 @@

    Double-factorized representation of the molecular Hamiltonian
    -converged SCF energy = -77.4456267643962
    +converged SCF energy = -77.4456267643963
     

  • Here, mol_hamiltonian is an instance of MolecularHamiltonian, a dataclass that stores the one- and two-body tensors, and df_hamiltonian is an instance of DoubleFactorizedHamiltonian, a dataclass that stores the updated one-body-tensor, diagonal Coulomb matrices, and orbital rotations. In the cell below, we print out the shapes of the tensors describing the original and double-factorized representations.

    @@ -465,7 +465,7 @@

    Implementing Trotter simulation of the double-factorized Hamiltonian
    -Hartree Fock energy: -77.44562676439625
    +Hartree Fock energy: -77.44562676439627
     

    Now, we set the evolution time and calculate the exact result of time evolution by directly exponentiating the Hamiltonian using SciPy. Later, we will compare the result of our approximate time evolution with this exact result.

    @@ -493,7 +493,7 @@

    Implementing Trotter simulation of the double-factorized Hamiltonian
    -Fidelity of evolved state w.r.t. initial state: 0.9315062301404611
    +Fidelity of evolved state w.r.t. initial state: 0.9315062301401348
     

    Now, let’s test our implementation.

    @@ -520,7 +520,7 @@

    Implementing Trotter simulation of the double-factorized Hamiltonian
    -Fidelity of Trotter-evolved state with exact state: 0.9928527668218099
    +Fidelity of Trotter-evolved state with exact state: 0.9928527668214803
     

    The fidelity of the final result can be improved by increasing the number of Trotter steps.

    @@ -547,7 +547,7 @@

    Implementing Trotter simulation of the double-factorized Hamiltonian
    -Fidelity of Trotter-evolved state with exact state: 0.9999320851290681
    +Fidelity of Trotter-evolved state with exact state: 0.9999320851288157
     

    As mentioned above, ffsim already includes functionality for Trotter simulation of double-factorized Hamiltonians. The implementation in ffsim includes higher-order Trotter-Suzuki formulas. The first-order asymmetric formula that we just implemented corresponds to order=0 in ffsim’s implementation. order=1 corresponds to the first-order symmetric (commonly known as the second-order) formula, order=2 corresponds to the second-order symmetric (fourth-order) formula, and so on.

    @@ -571,20 +571,12 @@

    Implementing Trotter simulation of the double-factorized Hamiltonian -
    -
    -
    -
    -
    -Fidelity of Trotter-evolved state with exact state: 0.9999320851290681
    -
    -
    -
    +Fidelity of Trotter-evolved state with exact state: 0.9999320851288157
     

    A higher order formula achieves a higher fidelity with fewer Trotter steps:

    @@ -612,7 +604,7 @@

    Implementing Trotter simulation of the double-factorized Hamiltonian
    -Fidelity of Trotter-evolved state with exact state: 0.9999913261312006
    +Fidelity of Trotter-evolved state with exact state: 0.9999913261309125
     
    diff --git a/tutorials/03-double-factorized.ipynb b/tutorials/03-double-factorized.ipynb index 42dc22fce..d299902e1 100644 --- a/tutorials/03-double-factorized.ipynb +++ b/tutorials/03-double-factorized.ipynb @@ -43,10 +43,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:28.360738Z", - "iopub.status.busy": "2024-02-09T20:05:28.360242Z", - "iopub.status.idle": "2024-02-09T20:05:28.871806Z", - "shell.execute_reply": "2024-02-09T20:05:28.871258Z" + "iopub.execute_input": "2024-02-13T12:02:59.654072Z", + "iopub.status.busy": "2024-02-13T12:02:59.653882Z", + "iopub.status.idle": "2024-02-13T12:03:00.277036Z", + "shell.execute_reply": "2024-02-13T12:03:00.276454Z" } }, "outputs": [ @@ -54,7 +54,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "converged SCF energy = -77.4456267643962\n" + "converged SCF energy = -77.4456267643963\n" ] } ], @@ -108,10 +108,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:28.875264Z", - "iopub.status.busy": "2024-02-09T20:05:28.874869Z", - "iopub.status.idle": "2024-02-09T20:05:28.880055Z", - "shell.execute_reply": "2024-02-09T20:05:28.879494Z" + "iopub.execute_input": "2024-02-13T12:03:00.281662Z", + "iopub.status.busy": "2024-02-13T12:03:00.280426Z", + "iopub.status.idle": "2024-02-13T12:03:00.286143Z", + "shell.execute_reply": "2024-02-13T12:03:00.285596Z" } }, "outputs": [ @@ -214,10 +214,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:28.882744Z", - "iopub.status.busy": "2024-02-09T20:05:28.882451Z", - "iopub.status.idle": "2024-02-09T20:05:28.886603Z", - "shell.execute_reply": "2024-02-09T20:05:28.886057Z" + "iopub.execute_input": "2024-02-13T12:03:00.288476Z", + "iopub.status.busy": "2024-02-13T12:03:00.288166Z", + "iopub.status.idle": "2024-02-13T12:03:00.292366Z", + "shell.execute_reply": "2024-02-13T12:03:00.291877Z" } }, "outputs": [], @@ -272,10 +272,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:28.889413Z", - "iopub.status.busy": "2024-02-09T20:05:28.888546Z", - "iopub.status.idle": "2024-02-09T20:05:28.892711Z", - "shell.execute_reply": "2024-02-09T20:05:28.892315Z" + "iopub.execute_input": "2024-02-13T12:03:00.294585Z", + "iopub.status.busy": "2024-02-13T12:03:00.294247Z", + "iopub.status.idle": "2024-02-13T12:03:00.297745Z", + "shell.execute_reply": "2024-02-13T12:03:00.297293Z" } }, "outputs": [], @@ -312,10 +312,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:28.895768Z", - "iopub.status.busy": "2024-02-09T20:05:28.894877Z", - "iopub.status.idle": "2024-02-09T20:05:28.900757Z", - "shell.execute_reply": "2024-02-09T20:05:28.900280Z" + "iopub.execute_input": "2024-02-13T12:03:00.300007Z", + "iopub.status.busy": "2024-02-13T12:03:00.299660Z", + "iopub.status.idle": "2024-02-13T12:03:00.305151Z", + "shell.execute_reply": "2024-02-13T12:03:00.304632Z" } }, "outputs": [ @@ -323,7 +323,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Hartree Fock energy: -77.44562676439625\n" + "Hartree Fock energy: -77.44562676439627\n" ] } ], @@ -351,10 +351,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:28.903509Z", - "iopub.status.busy": "2024-02-09T20:05:28.903259Z", - "iopub.status.idle": "2024-02-09T20:05:29.501623Z", - "shell.execute_reply": "2024-02-09T20:05:29.501124Z" + "iopub.execute_input": "2024-02-13T12:03:00.307973Z", + "iopub.status.busy": "2024-02-13T12:03:00.307605Z", + "iopub.status.idle": "2024-02-13T12:03:00.921411Z", + "shell.execute_reply": "2024-02-13T12:03:00.920875Z" } }, "outputs": [ @@ -362,7 +362,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of evolved state w.r.t. initial state: 0.9315062301404611\n" + "Fidelity of evolved state w.r.t. initial state: 0.9315062301401348\n" ] } ], @@ -393,10 +393,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:29.504413Z", - "iopub.status.busy": "2024-02-09T20:05:29.504046Z", - "iopub.status.idle": "2024-02-09T20:05:29.520287Z", - "shell.execute_reply": "2024-02-09T20:05:29.519808Z" + "iopub.execute_input": "2024-02-13T12:03:00.925377Z", + "iopub.status.busy": "2024-02-13T12:03:00.924489Z", + "iopub.status.idle": "2024-02-13T12:03:00.939136Z", + "shell.execute_reply": "2024-02-13T12:03:00.938316Z" } }, "outputs": [ @@ -404,7 +404,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9928527668218099\n" + "Fidelity of Trotter-evolved state with exact state: 0.9928527668214803\n" ] } ], @@ -434,10 +434,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:29.522853Z", - "iopub.status.busy": "2024-02-09T20:05:29.522658Z", - "iopub.status.idle": "2024-02-09T20:05:29.598233Z", - "shell.execute_reply": "2024-02-09T20:05:29.597602Z" + "iopub.execute_input": "2024-02-13T12:03:00.942780Z", + "iopub.status.busy": "2024-02-13T12:03:00.942380Z", + "iopub.status.idle": "2024-02-13T12:03:01.053588Z", + "shell.execute_reply": "2024-02-13T12:03:01.052965Z" } }, "outputs": [ @@ -445,7 +445,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999320851290681\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999320851288157\n" ] } ], @@ -477,10 +477,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:29.602360Z", - "iopub.status.busy": "2024-02-09T20:05:29.601389Z", - "iopub.status.idle": "2024-02-09T20:05:29.704351Z", - "shell.execute_reply": "2024-02-09T20:05:29.703824Z" + "iopub.execute_input": "2024-02-13T12:03:01.057210Z", + "iopub.status.busy": "2024-02-13T12:03:01.056821Z", + "iopub.status.idle": "2024-02-13T12:03:01.129679Z", + "shell.execute_reply": "2024-02-13T12:03:01.129065Z" } }, "outputs": [ @@ -488,14 +488,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999320851290681" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999320851288157\n" ] } ], @@ -526,10 +519,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:29.708992Z", - "iopub.status.busy": "2024-02-09T20:05:29.708055Z", - "iopub.status.idle": "2024-02-09T20:05:29.762615Z", - "shell.execute_reply": "2024-02-09T20:05:29.762092Z" + "iopub.execute_input": "2024-02-13T12:03:01.133066Z", + "iopub.status.busy": "2024-02-13T12:03:01.132692Z", + "iopub.status.idle": "2024-02-13T12:03:01.175645Z", + "shell.execute_reply": "2024-02-13T12:03:01.174578Z" } }, "outputs": [ @@ -537,7 +530,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Fidelity of Trotter-evolved state with exact state: 0.9999913261312006\n" + "Fidelity of Trotter-evolved state with exact state: 0.9999913261309125\n" ] } ], diff --git a/tutorials/04-lucj.html b/tutorials/04-lucj.html index 3187ba5b6..cab67253d 100644 --- a/tutorials/04-lucj.html +++ b/tutorials/04-lucj.html @@ -266,7 +266,7 @@

    The local unitary cluster Jastrow (LUCJ) ansatz
    -CASCI E = -77.6290254326717  E(CI) = -3.57322412553863  S^2 = 0.0000000
    +CASCI E = -77.6290254326717  E(CI) = -3.57322412553862  S^2 = 0.0000000
     
    @@ -321,7 +321,7 @@

    The unitary cluster Jastrow (UCJ) ansatz
    -E(CCSD) = -77.49387212754473  E_corr = -0.04824536314851438
    +E(CCSD) = -77.49387212754473  E_corr = -0.04824536314851236
     

    To facilitate variational optimization of the ansatz, UCJOperator implements methods for conversion to and from a vector of real-valued parameters. The precise relation between a parameter vector and the matrices of the UCJ operator is somewhat complicated. In short, the parameter vector stores the entries of the UCJ matrices in a non-redundant way (for the orbital rotations, the parameter vector actually stores the entries of their generators.)

    @@ -368,10 +368,10 @@

    The unitary cluster Jastrow (UCJ) ansatz\n" @@ -241,10 +241,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:05:58.436736Z", - "iopub.status.busy": "2024-02-09T20:05:58.436486Z", - "iopub.status.idle": "2024-02-09T20:06:23.292938Z", - "shell.execute_reply": "2024-02-09T20:06:23.292396Z" + "iopub.execute_input": "2024-02-13T12:03:40.974870Z", + "iopub.status.busy": "2024-02-13T12:03:40.974483Z", + "iopub.status.idle": "2024-02-13T12:04:08.059163Z", + "shell.execute_reply": "2024-02-13T12:04:08.058349Z" } }, "outputs": [ @@ -256,10 +256,10 @@ " message: STOP: TOTAL NO. of ITERATIONS REACHED LIMIT\n", " success: False\n", " status: 1\n", - " fun: -77.45740824215505\n", - " x: [-4.087e-01 8.214e-02 ... -1.975e-02 7.002e-01]\n", + " fun: -77.45741018839536\n", + " x: [-4.125e-01 8.257e-02 ... -3.076e-02 -1.934e+00]\n", " nit: 5\n", - " jac: [ 1.592e-03 -2.700e-05 ... 4.121e-05 -1.151e-04]\n", + " jac: [ 8.257e-04 -2.132e-05 ... 2.274e-05 -2.700e-04]\n", " nfev: 423\n", " njev: 9\n", " hess_inv: <46x46 LbfgsInvHessProduct with dtype=float64>\n" @@ -309,10 +309,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:23.296963Z", - "iopub.status.busy": "2024-02-09T20:06:23.296056Z", - "iopub.status.idle": "2024-02-09T20:06:40.071916Z", - "shell.execute_reply": "2024-02-09T20:06:40.071303Z" + "iopub.execute_input": "2024-02-13T12:04:08.063212Z", + "iopub.status.busy": "2024-02-13T12:04:08.062762Z", + "iopub.status.idle": "2024-02-13T12:04:20.015170Z", + "shell.execute_reply": "2024-02-13T12:04:20.014567Z" } }, "outputs": [ @@ -323,34 +323,34 @@ "Number of parameters: 46\n", " message: Stop: Total number of iterations reached limit.\n", " success: False\n", - " fun: -77.47287325124879\n", - " x: [-6.364e-01 9.794e-02 ... -2.693e-01 1.014e+00]\n", + " fun: -77.4748881190414\n", + " x: [-6.957e-01 1.032e-01 ... 1.032e-01 -2.144e+00]\n", " nit: 5\n", - " jac: [ 7.382e-03 -1.722e-03 ... 3.435e-03 -2.444e-04]\n", - " nfev: 715\n", + " jac: [ 3.367e-03 6.205e-04 ... -1.783e-04 -7.974e-04]\n", + " nfev: 661\n", " njev: 5\n", - " nlinop: 485\n", + " nlinop: 431\n", "\n", "Iteration 1\n", - " Energy: -77.45688623202776\n", - " Norm of gradient: 0.014956560271852534\n", - " Regularization hyperparameter: 0.024771921012474045\n", - " Variation hyperparameter: 0.5336148668790237\n", + " Energy: -77.45612720016143\n", + " Norm of gradient: 0.021018115845501794\n", + " Regularization hyperparameter: 0.0023570677416965115\n", + " Variation hyperparameter: 0.23786614273116047\n", "Iteration 2\n", - " Energy: -77.45792336059738\n", - " Norm of gradient: 0.009825630644914023\n", - " Regularization hyperparameter: 0.00040123345909616\n", - " Variation hyperparameter: 0.5347375805660045\n", + " Energy: -77.45780263234413\n", + " Norm of gradient: 0.012974987146754376\n", + " Regularization hyperparameter: 0.001983330328317489\n", + " Variation hyperparameter: 0.2379126943508127\n", "Iteration 3\n", - " Energy: -77.45795393349911\n", - " Norm of gradient: 0.009416415000121095\n", - " Regularization hyperparameter: 1.039371694018352\n", - " Variation hyperparameter: 0.5188832093469503\n", + " Energy: -77.45784507615812\n", + " Norm of gradient: 0.012566485917974195\n", + " Regularization hyperparameter: 1.0909011353406566\n", + " Variation hyperparameter: 0.23541997933517844\n", "Iteration 4\n", - " Energy: -77.46211088518129\n", - " Norm of gradient: 0.025411194788397522\n", - " Regularization hyperparameter: 0.0022390057755842293\n", - " Variation hyperparameter: 0.1482417502950214\n" + " Energy: -77.46190183620553\n", + " Norm of gradient: 0.025825221643435443\n", + " Regularization hyperparameter: 0.004156448029612187\n", + " Variation hyperparameter: 0.47692707738700535\n" ] } ], diff --git a/tutorials/05-entanglement-forging.html b/tutorials/05-entanglement-forging.html index e9a0fc5c2..5c5d461fd 100644 --- a/tutorials/05-entanglement-forging.html +++ b/tutorials/05-entanglement-forging.html @@ -256,7 +256,7 @@

    Entanglement forging
    -converged SCF energy = -75.6787887956298
    +converged SCF energy = -75.6787887956297
     
    @@ -332,17 +332,17 @@

    The FermionOperator class
     FermionOperator({
    +    (cre_a(3), des_a(0), cre_b(2)): -1,
    +    (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,
    +    (cre_a(0), des_a(3), cre_b(2)): 2,
         (cre_a(0), des_a(3)): 0-6j,
    +    (des_a(3), des_b(3)): 0-1.25j,
         (cre_b(1), des_b(5), cre_a(4)): 12-12j,
    +    (cre_a(3), des_a(0)): 0+3j,
         (cre_b(2)): -5,
    -    (cre_a(3), des_a(0), cre_b(2)): -1,
    -    (des_a(3), des_b(3)): 0-1.25j,
    -    (cre_a(0), des_a(3), cre_b(2)): 2,
    -    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,
         (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,
    -    (cre_a(3), des_a(0)): 0+3j,
    -    (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,
    -    (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j
    +    (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,
    +    (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j
     })
     
    @@ -363,16 +363,16 @@

    The FermionOperator class
     FermionOperator({
    -    (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,
    -    (cre_a(0), des_a(3)): 0-6j,
    -    (des_b(3), des_a(3)): 0+1.25j,
         (cre_b(2)): -5,
    -    (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,
         (cre_a(3), des_a(0)): 0+3j,
    -    (cre_b(1), cre_a(4), des_b(5)): -12+12j,
         (cre_b(2), cre_a(3), des_a(0)): -1,
    +    (cre_a(0), des_a(3)): 0-6j,
    +    (cre_b(2), cre_a(0), des_a(3)): 2,
         (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j,
    -    (cre_b(2), cre_a(0), des_a(3)): 2
    +    (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,
    +    (cre_b(1), cre_a(4), des_b(5)): -12+12j,
    +    (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,
    +    (des_b(3), des_a(3)): 0+1.25j
     })
     
    @@ -443,7 +443,7 @@

    The FermionOperator class
     array([ 0.        +0.j        ,  0.        +0.j        ,
             0.        +0.j        ,  0.        +0.j        ,
    -       -0.15416166+0.14096038j,  0.        +0.j        ,
    +       -0.04234102+0.22061687j,  0.        +0.j        ,
             0.        +0.j        ,  0.        +0.j        ,
             0.        +0.j        ])
     
    diff --git a/tutorials/06-fermion-operator.ipynb b/tutorials/06-fermion-operator.ipynb index e73f593c3..1bc2823e1 100644 --- a/tutorials/06-fermion-operator.ipynb +++ b/tutorials/06-fermion-operator.ipynb @@ -29,10 +29,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.482381Z", - "iopub.status.busy": "2024-02-09T20:06:44.482198Z", - "iopub.status.idle": "2024-02-09T20:06:44.824770Z", - "shell.execute_reply": "2024-02-09T20:06:44.824257Z" + "iopub.execute_input": "2024-02-13T12:04:24.796996Z", + "iopub.status.busy": "2024-02-13T12:04:24.796822Z", + "iopub.status.idle": "2024-02-13T12:04:25.165680Z", + "shell.execute_reply": "2024-02-13T12:04:25.165166Z" } }, "outputs": [ @@ -76,10 +76,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.827570Z", - "iopub.status.busy": "2024-02-09T20:06:44.826977Z", - "iopub.status.idle": "2024-02-09T20:06:44.831034Z", - "shell.execute_reply": "2024-02-09T20:06:44.830481Z" + "iopub.execute_input": "2024-02-13T12:04:25.168334Z", + "iopub.status.busy": "2024-02-13T12:04:25.167821Z", + "iopub.status.idle": "2024-02-13T12:04:25.171822Z", + "shell.execute_reply": "2024-02-13T12:04:25.171346Z" } }, "outputs": [ @@ -110,10 +110,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.833467Z", - "iopub.status.busy": "2024-02-09T20:06:44.833026Z", - "iopub.status.idle": "2024-02-09T20:06:44.837388Z", - "shell.execute_reply": "2024-02-09T20:06:44.836937Z" + "iopub.execute_input": "2024-02-13T12:04:25.174070Z", + "iopub.status.busy": "2024-02-13T12:04:25.173709Z", + "iopub.status.idle": "2024-02-13T12:04:25.178155Z", + "shell.execute_reply": "2024-02-13T12:04:25.177705Z" } }, "outputs": [ @@ -121,17 +121,17 @@ "data": { "text/plain": [ "FermionOperator({\n", + " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", + " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", + " (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,\n", " (cre_a(0), des_a(3)): 1,\n", + " (des_a(3), des_b(3)): 0.0625,\n", " (cre_b(1), des_b(5), cre_a(4)): 2+2j,\n", + " (cre_a(3), des_a(0)): -0.5,\n", " (cre_b(2)): 0-0.25j,\n", - " (cre_a(3), des_a(0), cre_b(2)): 0-0.25j,\n", - " (des_a(3), des_b(3)): 0.0625,\n", - " (cre_a(0), des_a(3), cre_b(2)): 0+0.5j,\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j,\n", " (cre_a(0), des_a(3), des_a(3), des_b(3)): -0.125,\n", - " (cre_a(3), des_a(0)): -0.5,\n", - " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): -1+1j,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625\n", + " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0.0625,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -0.25-0.25j\n", "})" ] }, @@ -169,10 +169,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.839684Z", - "iopub.status.busy": "2024-02-09T20:06:44.839271Z", - "iopub.status.idle": "2024-02-09T20:06:44.843235Z", - "shell.execute_reply": "2024-02-09T20:06:44.842618Z" + "iopub.execute_input": "2024-02-13T12:04:25.180541Z", + "iopub.status.busy": "2024-02-13T12:04:25.180098Z", + "iopub.status.idle": "2024-02-13T12:04:25.184276Z", + "shell.execute_reply": "2024-02-13T12:04:25.183691Z" } }, "outputs": [ @@ -180,17 +180,17 @@ "data": { "text/plain": [ "FermionOperator({\n", + " (cre_a(3), des_a(0), cre_b(2)): -1,\n", + " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", + " (cre_a(0), des_a(3), cre_b(2)): 2,\n", " (cre_a(0), des_a(3)): 0-6j,\n", + " (des_a(3), des_b(3)): 0-1.25j,\n", " (cre_b(1), des_b(5), cre_a(4)): 12-12j,\n", + " (cre_a(3), des_a(0)): 0+3j,\n", " (cre_b(2)): -5,\n", - " (cre_a(3), des_a(0), cre_b(2)): -1,\n", - " (des_a(3), des_b(3)): 0-1.25j,\n", - " (cre_a(0), des_a(3), cre_b(2)): 2,\n", - " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j,\n", " (cre_a(0), des_a(3), des_a(3), des_b(3)): 0+0.5j,\n", - " (cre_a(3), des_a(0)): 0+3j,\n", - " (cre_b(1), des_b(5), cre_a(4), cre_b(2)): 4+4j,\n", - " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j\n", + " (cre_a(3), des_a(0), des_a(3), des_b(3)): 0-0.25j,\n", + " (cre_b(1), des_b(5), cre_a(4), des_a(3), des_b(3)): -1+1j\n", "})" ] }, @@ -219,10 +219,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.845178Z", - "iopub.status.busy": "2024-02-09T20:06:44.845006Z", - "iopub.status.idle": "2024-02-09T20:06:44.848455Z", - "shell.execute_reply": "2024-02-09T20:06:44.848026Z" + "iopub.execute_input": "2024-02-13T12:04:25.186955Z", + "iopub.status.busy": "2024-02-13T12:04:25.186438Z", + "iopub.status.idle": "2024-02-13T12:04:25.190413Z", + "shell.execute_reply": "2024-02-13T12:04:25.189881Z" } }, "outputs": [ @@ -230,16 +230,16 @@ "data": { "text/plain": [ "FermionOperator({\n", - " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", - " (cre_a(0), des_a(3)): 0-6j,\n", - " (des_b(3), des_a(3)): 0+1.25j,\n", " (cre_b(2)): -5,\n", - " (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,\n", " (cre_a(3), des_a(0)): 0+3j,\n", - " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", " (cre_b(2), cre_a(3), des_a(0)): -1,\n", + " (cre_a(0), des_a(3)): 0-6j,\n", + " (cre_b(2), cre_a(0), des_a(3)): 2,\n", " (cre_b(2), cre_b(1), cre_a(4), des_b(5)): 4+4j,\n", - " (cre_b(2), cre_a(0), des_a(3)): 2\n", + " (cre_b(1), cre_a(4), des_b(5), des_b(3), des_a(3)): -1+1j,\n", + " (cre_b(1), cre_a(4), des_b(5)): -12+12j,\n", + " (cre_a(3), des_b(3), des_a(3), des_a(0)): 0+0.25j,\n", + " (des_b(3), des_a(3)): 0+1.25j\n", "})" ] }, @@ -264,10 +264,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.850554Z", - "iopub.status.busy": "2024-02-09T20:06:44.850242Z", - "iopub.status.idle": "2024-02-09T20:06:44.853454Z", - "shell.execute_reply": "2024-02-09T20:06:44.852895Z" + "iopub.execute_input": "2024-02-13T12:04:25.192731Z", + "iopub.status.busy": "2024-02-13T12:04:25.192349Z", + "iopub.status.idle": "2024-02-13T12:04:25.195709Z", + "shell.execute_reply": "2024-02-13T12:04:25.195146Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.855573Z", - "iopub.status.busy": "2024-02-09T20:06:44.855255Z", - "iopub.status.idle": "2024-02-09T20:06:44.859348Z", - "shell.execute_reply": "2024-02-09T20:06:44.858895Z" + "iopub.execute_input": "2024-02-13T12:04:25.198018Z", + "iopub.status.busy": "2024-02-13T12:04:25.197549Z", + "iopub.status.idle": "2024-02-13T12:04:25.201800Z", + "shell.execute_reply": "2024-02-13T12:04:25.201267Z" } }, "outputs": [ @@ -340,10 +340,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.861529Z", - "iopub.status.busy": "2024-02-09T20:06:44.861199Z", - "iopub.status.idle": "2024-02-09T20:06:44.866537Z", - "shell.execute_reply": "2024-02-09T20:06:44.866044Z" + "iopub.execute_input": "2024-02-13T12:04:25.204049Z", + "iopub.status.busy": "2024-02-13T12:04:25.203731Z", + "iopub.status.idle": "2024-02-13T12:04:25.209738Z", + "shell.execute_reply": "2024-02-13T12:04:25.209210Z" } }, "outputs": [ @@ -352,7 +352,7 @@ "text/plain": [ "array([ 0. +0.j , 0. +0.j ,\n", " 0. +0.j , 0. +0.j ,\n", - " -0.15416166+0.14096038j, 0. +0.j ,\n", + " -0.04234102+0.22061687j, 0. +0.j ,\n", " 0. +0.j , 0. +0.j ,\n", " 0. +0.j ])" ] @@ -379,10 +379,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-02-09T20:06:44.868473Z", - "iopub.status.busy": "2024-02-09T20:06:44.868308Z", - "iopub.status.idle": "2024-02-09T20:06:44.877740Z", - "shell.execute_reply": "2024-02-09T20:06:44.877293Z" + "iopub.execute_input": "2024-02-13T12:04:25.212020Z", + "iopub.status.busy": "2024-02-13T12:04:25.211708Z", + "iopub.status.idle": "2024-02-13T12:04:25.222247Z", + "shell.execute_reply": "2024-02-13T12:04:25.221711Z" } }, "outputs": [