Skip to content

Commit 5fcd93e

Browse files
lkdvosleburgel
andauthored
[New] Finite temperature utilities + docs example (#262)
This PR adds functionality for working with density matrices through MPS algorithms. It builds on top of conversions between MPS and MPO that already existed. Co-authored-by: Lander Burgelman <[email protected]>
1 parent 89a4feb commit 5fcd93e

File tree

26 files changed

+4416
-2143
lines changed

26 files changed

+4416
-2143
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ docs/build
22
Manifest.toml
33
.vscode
44
.DS_Store
5+
**/dev/

docs/make.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ makedocs(;
4343
format=Documenter.HTML(;
4444
prettyurls=get(ENV, "CI", nothing) == "true",
4545
mathengine,
46-
size_threshold=512000),
46+
size_threshold=1024000),
4747
pages=["Home" => "index.md",
4848
"Manual" => ["man/intro.md",
4949
"man/states.md",

docs/src/examples/classic2d/1.hard-hexagon/index.md

Lines changed: 68 additions & 42 deletions
Large diffs are not rendered by default.

docs/src/examples/quantum1d/1.ising-cft/index.md

Lines changed: 193 additions & 185 deletions
Large diffs are not rendered by default.

docs/src/examples/quantum1d/1.ising-cft/main.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,11 +232,11 @@
232232
"file_extension": ".jl",
233233
"mimetype": "application/julia",
234234
"name": "julia",
235-
"version": "1.11.2"
235+
"version": "1.11.3"
236236
},
237237
"kernelspec": {
238238
"name": "julia-1.11",
239-
"display_name": "Julia 1.11.2",
239+
"display_name": "Julia 1.11.3",
240240
"language": "julia"
241241
}
242242
},

docs/src/examples/quantum1d/2.haldane/index.md

Lines changed: 113 additions & 113 deletions
Large diffs are not rendered by default.

docs/src/examples/quantum1d/2.haldane/main.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,11 @@
187187
"file_extension": ".jl",
188188
"mimetype": "application/julia",
189189
"name": "julia",
190-
"version": "1.11.2"
190+
"version": "1.11.3"
191191
},
192192
"kernelspec": {
193193
"name": "julia-1.11",
194-
"display_name": "Julia 1.11.2",
194+
"display_name": "Julia 1.11.3",
195195
"language": "julia"
196196
}
197197
},

docs/src/examples/quantum1d/3.ising-dqpt/index.md

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,13 @@ H₀ = transverse_field_ising(FiniteChain(L); g=-0.5)
3939
````
4040

4141
````
42-
[ Info: DMRG init: obj = +1.002387808585e+01 err = 1.4432e-01
43-
[ Info: DMRG 1: obj = -2.040021714927e+01 err = 4.0939235067e-03 time = 0.07 sec
44-
[ Info: DMRG 2: obj = -2.040021715177e+01 err = 4.1045749328e-07 time = 0.02 sec
45-
[ Info: DMRG 3: obj = -2.040021782419e+01 err = 4.0893119931e-05 time = 0.11 sec
46-
[ Info: DMRG 4: obj = -2.040021786700e+01 err = 1.5231059570e-06 time = 0.12 sec
47-
[ Info: DMRG 5: obj = -2.040021786703e+01 err = 1.1927466419e-07 time = 0.04 sec
48-
[ Info: DMRG 6: obj = -2.040021786703e+01 err = 1.0958548921e-10 time = 0.02 sec
49-
[ Info: DMRG conv 7: obj = -2.040021786703e+01 err = 2.1531775493e-12 time = 0.43 sec
42+
[ Info: DMRG init: obj = +9.786965611574e+00 err = 1.5931e-01
43+
[ Info: DMRG 1: obj = -2.040021714914e+01 err = 1.8285343094e-03 time = 0.13 sec
44+
[ Info: DMRG 2: obj = -2.040021715178e+01 err = 2.4871877321e-07 time = 0.02 sec
45+
[ Info: DMRG 3: obj = -2.040021752115e+01 err = 3.2726624139e-05 time = 0.13 sec
46+
[ Info: DMRG 4: obj = -2.040021786702e+01 err = 1.5867482547e-06 time = 0.05 sec
47+
[ Info: DMRG 5: obj = -2.040021786703e+01 err = 2.4053039764e-07 time = 0.04 sec
48+
[ Info: DMRG conv 6: obj = -2.040021786703e+01 err = 8.0046454542e-11 time = 0.38 sec
5049
5150
````
5251

@@ -75,7 +74,7 @@ Putting it all together, we get
7574
````julia
7675
function finite_sim(L; dt=0.05, finaltime=5.0)
7776
ψ₀ = FiniteMPS(L, ℂ^2, ℂ^10)
78-
H₀= transverse_field_ising(FiniteChain(L); g=-0.5)
77+
H₀ = transverse_field_ising(FiniteChain(L); g=-0.5)
7978
ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG())
8079

8180
H₁ = transverse_field_ising(FiniteChain(L); g=-2.0)
@@ -112,13 +111,13 @@ H₀ = transverse_field_ising(; g=-0.5)
112111
````
113112

114113
````
115-
[ Info: VUMPS init: obj = +4.829091166942e-01 err = 3.8333e-01
116-
[ Info: VUMPS 1: obj = -1.062402142520e+00 err = 2.6498065851e-02 time = 0.02 sec
117-
[ Info: VUMPS 2: obj = -1.063544409278e+00 err = 2.4370573433e-05 time = 0.01 sec
118-
[ Info: VUMPS 3: obj = -1.063544409973e+00 err = 1.2541001144e-07 time = 0.01 sec
119-
[ Info: VUMPS 4: obj = -1.063544409973e+00 err = 2.2271390880e-09 time = 0.01 sec
120-
[ Info: VUMPS 5: obj = -1.063544409973e+00 err = 1.3003499540e-10 time = 0.01 sec
121-
[ Info: VUMPS conv 6: obj = -1.063544409973e+00 err = 1.2478380148e-11 time = 0.08 sec
114+
[ Info: VUMPS init: obj = +4.927745903181e-01 err = 3.9258e-01
115+
[ Info: VUMPS 1: obj = -1.063233756013e+00 err = 1.6648378735e-02 time = 6.29 sec
116+
[ Info: VUMPS 2: obj = -1.063544409105e+00 err = 2.7483171408e-05 time = 0.01 sec
117+
[ Info: VUMPS 3: obj = -1.063544409973e+00 err = 2.5368088047e-07 time = 0.01 sec
118+
[ Info: VUMPS 4: obj = -1.063544409973e+00 err = 1.5438863784e-08 time = 0.01 sec
119+
[ Info: VUMPS 5: obj = -1.063544409973e+00 err = 7.7407478873e-10 time = 0.01 sec
120+
[ Info: VUMPS conv 6: obj = -1.063544409973e+00 err = 8.0759533336e-11 time = 6.32 sec
122121
123122
````
124123

@@ -130,7 +129,7 @@ dot(ψ₀, ψ₀)
130129
````
131130

132131
````
133-
1.0000000000000004 + 1.6174779448250835e-16im
132+
1.0000000000000027 + 1.240079594756613e-17im
134133
````
135134

136135
so the loschmidth echo takes on the pleasant form

docs/src/examples/quantum1d/3.ising-dqpt/main.ipynb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
"source": [
106106
"function finite_sim(L; dt=0.05, finaltime=5.0)\n",
107107
" ψ₀ = FiniteMPS(L, ℂ^2, ℂ^10)\n",
108-
" H₀= transverse_field_ising(FiniteChain(L); g=-0.5)\n",
108+
" H₀ = transverse_field_ising(FiniteChain(L); g=-0.5)\n",
109109
" ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG())\n",
110110
"\n",
111111
" H₁ = transverse_field_ising(FiniteChain(L); g=-2.0)\n",
@@ -285,11 +285,11 @@
285285
"file_extension": ".jl",
286286
"mimetype": "application/julia",
287287
"name": "julia",
288-
"version": "1.11.2"
288+
"version": "1.11.3"
289289
},
290290
"kernelspec": {
291291
"name": "julia-1.11",
292-
"display_name": "Julia 1.11.2",
292+
"display_name": "Julia 1.11.3",
293293
"language": "julia"
294294
}
295295
},

0 commit comments

Comments
 (0)