From ff58ac49c5aa23185b0f9d207cbf3f3acb39bd5b Mon Sep 17 00:00:00 2001 From: lkdvos Date: Mon, 3 Aug 2026 13:13:48 -0400 Subject: [PATCH 1/2] docs(examples): regroup the gallery by computational task MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `quantum1d` and `classic2d` grouped by the physics of the model, which is not how a reader arrives: they come with a task ("I need a ground state", "I need finite temperature") and have to open every example to find out which one does it. Regroup into `groundstates`, `excitations`, `dynamics` and `statmech`, and give the gallery index a one-paragraph summary per example so it can be scanned. Drop the `N.` prefix from the example folders as well. The folder name is the published URL, so a numeric prefix means inserting one example renames — and breaks the URL of — every example after it, in order to express an ordering these examples do not really have. The reading order now lives in the gallery index summaries, which run from introductory to advanced; the sidebar is alphabetical within each group. `examples/README.md` documents this for contributors. `examples/make.jl` now discovers groups by listing its own subdirectories instead of naming them, so adding a group needs no pipeline change. The gallery sidebar in `docs/make.jl` mirrors the same grouping. Co-Authored-By: Claude Opus 5 (1M context) --- docs/make.jl | 23 +- .../classic2d/1.hard-hexagon/figure-1.png | Bin 16598 -> 0 bytes .../ising-dqpt}/finite_timeev.png | Bin .../ising-dqpt}/index.md | 48 +- .../ising-dqpt}/infinite_timeev.png | Bin .../ising-dqpt}/main.ipynb | 8 +- .../examples/dynamics/xy-finiteT/figure-1.png | Bin 0 -> 38310 bytes .../examples/dynamics/xy-finiteT/figure-2.png | Bin 0 -> 40337 bytes .../examples/dynamics/xy-finiteT/figure-3.png | Bin 0 -> 40669 bytes .../examples/dynamics/xy-finiteT/figure-4.png | Bin 0 -> 37133 bytes .../examples/dynamics/xy-finiteT/figure-5.png | Bin 0 -> 40664 bytes .../examples/dynamics/xy-finiteT/figure-6.png | Bin 0 -> 42270 bytes .../xy-finiteT}/index.md | 46 +- .../xy-finiteT}/main.ipynb | 196 +++--- .../haldane}/figure-1.png | Bin .../haldane}/figure-2.png | Bin .../haldane}/figure-3.png | Bin .../haldane}/index.md | 39 +- .../haldane}/main.ipynb | 2 +- .../groundstates/bose-hubbard/figure-1.png | Bin 0 -> 16503 bytes .../bose-hubbard}/figure-2.png | Bin .../groundstates/bose-hubbard/figure-3.png | Bin 0 -> 39306 bytes .../groundstates/bose-hubbard/figure-4.png | Bin 0 -> 36945 bytes .../groundstates/bose-hubbard/figure-5.png | Bin 0 -> 32117 bytes .../groundstates/bose-hubbard/figure-6.png | Bin 0 -> 15424 bytes .../bose-hubbard}/index.md | 28 +- .../bose-hubbard}/main.ipynb | 0 .../groundstates/haldane-spt/figure-1.png | Bin 0 -> 34236 bytes .../groundstates/haldane-spt/figure-2.png | Bin 0 -> 32088 bytes .../haldane-spt}/figure-3.png | Bin 37379 -> 37375 bytes .../haldane-spt}/index.md | 16 +- .../haldane-spt}/main.ipynb | 0 .../haldane-spt}/spt-tensors.svg | 0 .../hubbard}/figure-1.png | Bin 41850 -> 41850 bytes .../hubbard}/figure-2.png | Bin 40056 -> 40056 bytes .../hubbard}/figure-3.png | Bin .../examples/groundstates/hubbard/index.md | 361 +++++++++++ .../hubbard}/main.ipynb | 44 +- .../groundstates/ising-cft/figure-1.png | Bin 0 -> 15044 bytes .../ising-cft}/figure-2.png | Bin .../groundstates/ising-cft/figure-3.png | Bin 0 -> 22801 bytes .../ising-cft}/index.md | 84 +-- .../ising-cft}/main.ipynb | 2 +- .../ising-cft}/translation_mpo.svg | 0 .../groundstates/xxz-heisenberg/figure-1.png | Bin 0 -> 12994 bytes .../groundstates/xxz-heisenberg/figure-2.png | Bin 0 -> 21619 bytes .../groundstates/xxz-heisenberg/index.md | 208 +++++++ .../xxz-heisenberg}/main.ipynb | 197 +++--- docs/src/examples/index.md | 96 ++- .../quantum1d/1.ising-cft/figure-1.png | Bin 15484 -> 0 bytes .../quantum1d/1.ising-cft/figure-3.png | Bin 22799 -> 0 bytes .../quantum1d/4.xxz-heisenberg/figure-1.png | Bin 11462 -> 0 bytes .../quantum1d/4.xxz-heisenberg/figure-2.png | Bin 19339 -> 0 bytes .../quantum1d/4.xxz-heisenberg/index.md | 568 ------------------ .../quantum1d/5.haldane-spt/figure-1.png | Bin 32871 -> 0 bytes .../quantum1d/5.haldane-spt/figure-2.png | Bin 32025 -> 0 bytes .../src/examples/quantum1d/6.hubbard/index.md | 494 --------------- .../quantum1d/7.xy-finiteT/figure-1.png | Bin 37795 -> 0 bytes .../quantum1d/7.xy-finiteT/figure-2.png | Bin 36052 -> 0 bytes .../quantum1d/7.xy-finiteT/figure-3.png | Bin 36103 -> 0 bytes .../quantum1d/7.xy-finiteT/figure-4.png | Bin 34906 -> 0 bytes .../quantum1d/7.xy-finiteT/figure-5.png | Bin 38446 -> 0 bytes .../quantum1d/7.xy-finiteT/figure-6.png | Bin 42294 -> 0 bytes .../quantum1d/8.bose-hubbard/figure-1.png | Bin 16373 -> 0 bytes .../quantum1d/8.bose-hubbard/figure-3.png | Bin 39405 -> 0 bytes .../quantum1d/8.bose-hubbard/figure-4.png | Bin 36800 -> 0 bytes .../quantum1d/8.bose-hubbard/figure-5.png | Bin 35226 -> 0 bytes .../quantum1d/8.bose-hubbard/figure-6.png | Bin 15426 -> 0 bytes .../statmech/hard-hexagon/figure-1.png | Bin 0 -> 16674 bytes .../hard-hexagon}/hexagon.svg | 0 .../hard-hexagon}/index.md | 18 +- .../hard-hexagon}/main.ipynb | 6 +- docs/src/index.md | 4 +- examples/Cache.toml | 26 +- examples/README.md | 17 +- .../ising-dqpt}/finite_timeev.png | Bin .../ising-dqpt}/infinite_timeev.png | Bin .../ising-dqpt}/main.jl | 8 +- .../xy-finiteT}/main.jl | 10 +- .../2.haldane => excitations/haldane}/main.jl | 2 +- .../bose-hubbard}/main.jl | 0 .../haldane-spt}/main.jl | 0 .../haldane-spt}/spt-tensors.svg | 0 .../hubbard}/main.jl | 33 +- .../ising-cft}/main.jl | 2 +- .../ising-cft}/translation_mpo.svg | 0 .../xxz-heisenberg}/main.jl | 17 +- examples/make.jl | 24 +- .../hard-hexagon}/hexagon.svg | 0 .../hard-hexagon}/main.jl | 0 90 files changed, 1106 insertions(+), 1521 deletions(-) delete mode 100644 docs/src/examples/classic2d/1.hard-hexagon/figure-1.png rename docs/src/examples/{quantum1d/3.ising-dqpt => dynamics/ising-dqpt}/finite_timeev.png (100%) rename docs/src/examples/{quantum1d/3.ising-dqpt => dynamics/ising-dqpt}/index.md (75%) rename docs/src/examples/{quantum1d/3.ising-dqpt => dynamics/ising-dqpt}/infinite_timeev.png (100%) rename docs/src/examples/{quantum1d/3.ising-dqpt => dynamics/ising-dqpt}/main.ipynb (96%) create mode 100644 docs/src/examples/dynamics/xy-finiteT/figure-1.png create mode 100644 docs/src/examples/dynamics/xy-finiteT/figure-2.png create mode 100644 docs/src/examples/dynamics/xy-finiteT/figure-3.png create mode 100644 docs/src/examples/dynamics/xy-finiteT/figure-4.png create mode 100644 docs/src/examples/dynamics/xy-finiteT/figure-5.png create mode 100644 docs/src/examples/dynamics/xy-finiteT/figure-6.png rename docs/src/examples/{quantum1d/7.xy-finiteT => dynamics/xy-finiteT}/index.md (93%) rename docs/src/examples/{quantum1d/7.xy-finiteT => dynamics/xy-finiteT}/main.ipynb (94%) rename docs/src/examples/{quantum1d/2.haldane => excitations/haldane}/figure-1.png (100%) rename docs/src/examples/{quantum1d/2.haldane => excitations/haldane}/figure-2.png (100%) rename docs/src/examples/{quantum1d/2.haldane => excitations/haldane}/figure-3.png (100%) rename docs/src/examples/{quantum1d/2.haldane => excitations/haldane}/index.md (78%) rename docs/src/examples/{quantum1d/2.haldane => excitations/haldane}/main.ipynb (99%) create mode 100644 docs/src/examples/groundstates/bose-hubbard/figure-1.png rename docs/src/examples/{quantum1d/8.bose-hubbard => groundstates/bose-hubbard}/figure-2.png (100%) create mode 100644 docs/src/examples/groundstates/bose-hubbard/figure-3.png create mode 100644 docs/src/examples/groundstates/bose-hubbard/figure-4.png create mode 100644 docs/src/examples/groundstates/bose-hubbard/figure-5.png create mode 100644 docs/src/examples/groundstates/bose-hubbard/figure-6.png rename docs/src/examples/{quantum1d/8.bose-hubbard => groundstates/bose-hubbard}/index.md (96%) rename docs/src/examples/{quantum1d/8.bose-hubbard => groundstates/bose-hubbard}/main.ipynb (100%) create mode 100644 docs/src/examples/groundstates/haldane-spt/figure-1.png create mode 100644 docs/src/examples/groundstates/haldane-spt/figure-2.png rename docs/src/examples/{quantum1d/5.haldane-spt => groundstates/haldane-spt}/figure-3.png (51%) rename docs/src/examples/{quantum1d/5.haldane-spt => groundstates/haldane-spt}/index.md (93%) rename docs/src/examples/{quantum1d/5.haldane-spt => groundstates/haldane-spt}/main.ipynb (100%) rename docs/src/examples/{quantum1d/5.haldane-spt => groundstates/haldane-spt}/spt-tensors.svg (100%) rename docs/src/examples/{quantum1d/6.hubbard => groundstates/hubbard}/figure-1.png (99%) rename docs/src/examples/{quantum1d/6.hubbard => groundstates/hubbard}/figure-2.png (99%) rename docs/src/examples/{quantum1d/6.hubbard => groundstates/hubbard}/figure-3.png (100%) create mode 100644 docs/src/examples/groundstates/hubbard/index.md rename docs/src/examples/{quantum1d/6.hubbard => groundstates/hubbard}/main.ipynb (91%) create mode 100644 docs/src/examples/groundstates/ising-cft/figure-1.png rename docs/src/examples/{quantum1d/1.ising-cft => groundstates/ising-cft}/figure-2.png (100%) create mode 100644 docs/src/examples/groundstates/ising-cft/figure-3.png rename docs/src/examples/{quantum1d/1.ising-cft => groundstates/ising-cft}/index.md (63%) rename docs/src/examples/{quantum1d/1.ising-cft => groundstates/ising-cft}/main.ipynb (99%) rename docs/src/examples/{quantum1d/1.ising-cft => groundstates/ising-cft}/translation_mpo.svg (100%) create mode 100644 docs/src/examples/groundstates/xxz-heisenberg/figure-1.png create mode 100644 docs/src/examples/groundstates/xxz-heisenberg/figure-2.png create mode 100644 docs/src/examples/groundstates/xxz-heisenberg/index.md rename docs/src/examples/{quantum1d/4.xxz-heisenberg => groundstates/xxz-heisenberg}/main.ipynb (81%) delete mode 100644 docs/src/examples/quantum1d/1.ising-cft/figure-1.png delete mode 100644 docs/src/examples/quantum1d/1.ising-cft/figure-3.png delete mode 100644 docs/src/examples/quantum1d/4.xxz-heisenberg/figure-1.png delete mode 100644 docs/src/examples/quantum1d/4.xxz-heisenberg/figure-2.png delete mode 100644 docs/src/examples/quantum1d/4.xxz-heisenberg/index.md delete mode 100644 docs/src/examples/quantum1d/5.haldane-spt/figure-1.png delete mode 100644 docs/src/examples/quantum1d/5.haldane-spt/figure-2.png delete mode 100644 docs/src/examples/quantum1d/6.hubbard/index.md delete mode 100644 docs/src/examples/quantum1d/7.xy-finiteT/figure-1.png delete mode 100644 docs/src/examples/quantum1d/7.xy-finiteT/figure-2.png delete mode 100644 docs/src/examples/quantum1d/7.xy-finiteT/figure-3.png delete mode 100644 docs/src/examples/quantum1d/7.xy-finiteT/figure-4.png delete mode 100644 docs/src/examples/quantum1d/7.xy-finiteT/figure-5.png delete mode 100644 docs/src/examples/quantum1d/7.xy-finiteT/figure-6.png delete mode 100644 docs/src/examples/quantum1d/8.bose-hubbard/figure-1.png delete mode 100644 docs/src/examples/quantum1d/8.bose-hubbard/figure-3.png delete mode 100644 docs/src/examples/quantum1d/8.bose-hubbard/figure-4.png delete mode 100644 docs/src/examples/quantum1d/8.bose-hubbard/figure-5.png delete mode 100644 docs/src/examples/quantum1d/8.bose-hubbard/figure-6.png create mode 100644 docs/src/examples/statmech/hard-hexagon/figure-1.png rename docs/src/examples/{classic2d/1.hard-hexagon => statmech/hard-hexagon}/hexagon.svg (100%) rename docs/src/examples/{classic2d/1.hard-hexagon => statmech/hard-hexagon}/index.md (85%) rename docs/src/examples/{classic2d/1.hard-hexagon => statmech/hard-hexagon}/main.ipynb (94%) rename examples/{quantum1d/3.ising-dqpt => dynamics/ising-dqpt}/finite_timeev.png (100%) rename examples/{quantum1d/3.ising-dqpt => dynamics/ising-dqpt}/infinite_timeev.png (100%) rename examples/{quantum1d/3.ising-dqpt => dynamics/ising-dqpt}/main.jl (94%) rename examples/{quantum1d/7.xy-finiteT => dynamics/xy-finiteT}/main.jl (97%) rename examples/{quantum1d/2.haldane => excitations/haldane}/main.jl (99%) rename examples/{quantum1d/8.bose-hubbard => groundstates/bose-hubbard}/main.jl (100%) rename examples/{quantum1d/5.haldane-spt => groundstates/haldane-spt}/main.jl (100%) rename examples/{quantum1d/5.haldane-spt => groundstates/haldane-spt}/spt-tensors.svg (100%) rename examples/{quantum1d/6.hubbard => groundstates/hubbard}/main.jl (90%) rename examples/{quantum1d/1.ising-cft => groundstates/ising-cft}/main.jl (99%) rename examples/{quantum1d/1.ising-cft => groundstates/ising-cft}/translation_mpo.svg (100%) rename examples/{quantum1d/4.xxz-heisenberg => groundstates/xxz-heisenberg}/main.jl (91%) rename examples/{classic2d/1.hard-hexagon => statmech/hard-hexagon}/hexagon.svg (100%) rename examples/{classic2d/1.hard-hexagon => statmech/hard-hexagon}/main.jl (100%) diff --git a/docs/make.jl b/docs/make.jl index 2549e0060..29dd97a5c 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -12,13 +12,19 @@ using DocumenterVitepress using DocumenterCitations using DocumenterInterLinks -# examples +# examples — grouped by computational task; each group is a subdirectory of src/examples/ example_dir = joinpath(@__DIR__, "src", "examples") -classic_pages = map(readdir(joinpath(example_dir, "classic2d"))) do dir - return joinpath("examples", "classic2d", dir, "index.md") -end -quantum_pages = map(readdir(joinpath(example_dir, "quantum1d"))) do dir - return joinpath("examples", "quantum1d", dir, "index.md") +example_groups = [ + "Ground states" => "groundstates", + "Excitations & dispersions" => "excitations", + "Dynamics & finite temperature" => "dynamics", + "Statistical mechanics" => "statmech", +] +example_pages = map(example_groups) do (title, group) + pages = map(readdir(joinpath(example_dir, group))) do dir + return joinpath("examples", group, dir, "index.md") + end + return title => pages end # contributing guide: `CONTRIBUTING.md` in the repository root is canonical, since that is the @@ -70,7 +76,10 @@ makedocs(; "man/parallelism.md", "man/lattices.md", ], - "Examples" => "examples/index.md", + "Examples" => [ + "Overview" => "examples/index.md", + example_pages..., + ], "Library" => "lib/lib.md", "References" => "references.md", "Changelog" => "changelog.md", diff --git a/docs/src/examples/classic2d/1.hard-hexagon/figure-1.png b/docs/src/examples/classic2d/1.hard-hexagon/figure-1.png deleted file mode 100644 index 78d2bc35945cb707a41ec6367faeca6e2994d9eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16598 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 z 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 bE*>2#SWZ11cO7wn*CSG5a-z8+`o8}k%=hp4 diff --git a/docs/src/examples/quantum1d/3.ising-dqpt/finite_timeev.png b/docs/src/examples/dynamics/ising-dqpt/finite_timeev.png similarity index 100% rename from docs/src/examples/quantum1d/3.ising-dqpt/finite_timeev.png rename to docs/src/examples/dynamics/ising-dqpt/finite_timeev.png diff --git a/docs/src/examples/quantum1d/3.ising-dqpt/index.md b/docs/src/examples/dynamics/ising-dqpt/index.md similarity index 75% rename from docs/src/examples/quantum1d/3.ising-dqpt/index.md rename to docs/src/examples/dynamics/ising-dqpt/index.md index c60dc700d..6f3a8fb35 100644 --- a/docs/src/examples/quantum1d/3.ising-dqpt/index.md +++ b/docs/src/examples/dynamics/ising-dqpt/index.md @@ -1,10 +1,10 @@ ```@meta -EditURL = "../../../../../examples/quantum1d/3.ising-dqpt/main.jl" +EditURL = "../../../../../examples/dynamics/ising-dqpt/main.jl" ``` -[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/quantum1d/3.ising-dqpt/main.ipynb) -[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/quantum1d/3.ising-dqpt/main.ipynb) -[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/quantum1d/3.ising-dqpt) +[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/dynamics/ising-dqpt/main.ipynb) +[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/dynamics/ising-dqpt/main.ipynb) +[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/dynamics/ising-dqpt) # DQPT in the Ising model @@ -15,6 +15,13 @@ In this tutorial we will try to reproduce the results from using MPSKit, MPSKitModels, TensorKit ```` +```` +Precompiling packages... + 14306.2 ms ✓ MPSKitModels + 1 dependency successfully precompiled in 16 seconds. 74 already precompiled. + +```` + Dynamical quantum phase transitions (DQPT in short) are signatures of equilibrium phase transitions in a dynamical quantity - the Loschmidt echo. This quantity is given by ``L(t) = \frac{-2}{N} ln(| < \psi(t) | \psi(0) > |) `` where ``N`` is the system size. One typically starts from a ground state and then quenches the Hamiltonian to a different point. @@ -35,18 +42,7 @@ First we construct the Hamiltonian in MPO form, and obtain the pre-quenched grou L = 20 H₀ = transverse_field_ising(FiniteChain(L); g = -0.5) ψ₀ = FiniteMPS(L, ℂ^2, ℂ^10) -ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG()); -```` - -```` -[ Info: DMRG init: obj = +9.979013604153e+00 err = 1.4988e-01 -[ Info: DMRG 1: obj = -2.040021714911e+01 err = 6.6274818897e-04 time = 4.21 sec -[ Info: DMRG 2: obj = -2.040021715179e+01 err = 4.7025708686e-07 time = 0.30 sec -[ Info: DMRG 3: obj = -2.040021786572e+01 err = 3.1050733385e-05 time = 0.09 sec -[ Info: DMRG 4: obj = -2.040021786702e+01 err = 1.7208246127e-06 time = 0.04 sec -[ Info: DMRG 5: obj = -2.040021786703e+01 err = 3.5080300899e-08 time = 0.04 sec -[ Info: DMRG conv 6: obj = -2.040021786703e+01 err = 3.6868374475e-11 time = 4.71 sec - +ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG(; verbosity = 0)); ```` ## Finite MPS quenching @@ -75,7 +71,7 @@ Putting it all together, we get function finite_sim(L; dt = 0.05, finaltime = 5.0) ψ₀ = FiniteMPS(L, ℂ^2, ℂ^10) H₀ = transverse_field_ising(FiniteChain(L); g = -0.5) - ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG()) + ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG(; verbosity = 0)) H₁ = transverse_field_ising(FiniteChain(L); g = -2.0) ψₜ = deepcopy(ψ₀) @@ -107,19 +103,7 @@ Similarly we could start with an initial infinite state and find the pre-quench ````julia ψ₀ = InfiniteMPS([ℂ^2], [ℂ^10]) H₀ = transverse_field_ising(; g = -0.5) -ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS()); -```` - -```` -[ Info: VUMPS init: obj = +4.970192050239e-01 err = 3.8858e-01 -[ Info: VUMPS 1: obj = -1.049521519045e+00 err = 9.6762771022e-02 time = 1.62 sec -[ Info: VUMPS 2: obj = -1.063544398670e+00 err = 1.0462983506e-04 time = 0.02 sec -[ Info: VUMPS 3: obj = -1.063544409966e+00 err = 3.0128180222e-06 time = 0.01 sec -[ Info: VUMPS 4: obj = -1.063544409973e+00 err = 5.4785900416e-08 time = 0.01 sec -[ Info: VUMPS 5: obj = -1.063544409973e+00 err = 3.5329191510e-09 time = 0.01 sec -[ Info: VUMPS 6: obj = -1.063544409973e+00 err = 3.7796484550e-10 time = 0.01 sec -[ Info: VUMPS conv 7: obj = -1.063544409973e+00 err = 2.9001138645e-11 time = 1.69 sec - +ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS(; verbosity = 0)); ```` The dot product of two infinite matrix product states scales as ``\alpha ^N`` where ``α`` is the dominant eigenvalue of the transfer matrix. @@ -130,7 +114,7 @@ dot(ψ₀, ψ₀) ```` ```` -0.9999999999999996 + 3.8955006105253705e-16im +1.0000000000000047 + 1.040736567930811e-16im ```` so the Loschmidt echo takes on the pleasant form @@ -163,7 +147,7 @@ The final code is ````julia function infinite_sim(dt = 0.05, finaltime = 5.0) ψ₀ = InfiniteMPS([ℂ^2], [ℂ^10]) - ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS()) + ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS(; verbosity = 0)) ψₜ = deepcopy(ψ₀) envs = environments(ψₜ, H₁, ψₜ) diff --git a/docs/src/examples/quantum1d/3.ising-dqpt/infinite_timeev.png b/docs/src/examples/dynamics/ising-dqpt/infinite_timeev.png similarity index 100% rename from docs/src/examples/quantum1d/3.ising-dqpt/infinite_timeev.png rename to docs/src/examples/dynamics/ising-dqpt/infinite_timeev.png diff --git a/docs/src/examples/quantum1d/3.ising-dqpt/main.ipynb b/docs/src/examples/dynamics/ising-dqpt/main.ipynb similarity index 96% rename from docs/src/examples/quantum1d/3.ising-dqpt/main.ipynb rename to docs/src/examples/dynamics/ising-dqpt/main.ipynb index e3418901c..682c5b3a1 100644 --- a/docs/src/examples/quantum1d/3.ising-dqpt/main.ipynb +++ b/docs/src/examples/dynamics/ising-dqpt/main.ipynb @@ -49,7 +49,7 @@ "L = 20\n", "H₀ = transverse_field_ising(FiniteChain(L); g = -0.5)\n", "ψ₀ = FiniteMPS(L, ℂ^2, ℂ^10)\n", - "ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG());" + "ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG(; verbosity = 0));" ] }, { @@ -108,7 +108,7 @@ "function finite_sim(L; dt = 0.05, finaltime = 5.0)\n", " ψ₀ = FiniteMPS(L, ℂ^2, ℂ^10)\n", " H₀ = transverse_field_ising(FiniteChain(L); g = -0.5)\n", - " ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG())\n", + " ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG(; verbosity = 0))\n", "\n", " H₁ = transverse_field_ising(FiniteChain(L); g = -2.0)\n", " ψₜ = deepcopy(ψ₀)\n", @@ -151,7 +151,7 @@ "source": [ "ψ₀ = InfiniteMPS([ℂ^2], [ℂ^10])\n", "H₀ = transverse_field_ising(; g = -0.5)\n", - "ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS());" + "ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS(; verbosity = 0));" ] }, { @@ -241,7 +241,7 @@ "source": [ "function infinite_sim(dt = 0.05, finaltime = 5.0)\n", " ψ₀ = InfiniteMPS([ℂ^2], [ℂ^10])\n", - " ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS())\n", + " ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS(; verbosity = 0))\n", "\n", " ψₜ = deepcopy(ψ₀)\n", " envs = environments(ψₜ, H₁, ψₜ)\n", diff --git a/docs/src/examples/dynamics/xy-finiteT/figure-1.png b/docs/src/examples/dynamics/xy-finiteT/figure-1.png new file mode 100644 index 0000000000000000000000000000000000000000..be692709ada39eafc159edc9a94082a7d0765ad3 GIT binary patch literal 38310 zcmXtf1z45a^YsDgZV8d@loDx>P6+{#7LW!>k(83|kOt`%0SN_^6p(IF8VTtXB);Ky zzrXiBT<{*w+3)PxGi%mbJN%Kl0xlLM76O65RZ^7ILLiX!5eTF>3}pD5OTF+R_z#-7 zih?ZS`sSb9mf}PNf)=49E3NY~bL*F<5Ao_XVsFUEW3)i+v`#afykCdy5_D_;(E(ofnt7B9GdCgoTHviF==H z&D44yt(!Gw_OG7o{Q9JpA#~1!Pa}~D|Lgv|&seLkcSiz!e2M4o93359eN=&b%$)}b ziHWtg6J@wmLZ;-Cai1o&SxF!cj$=gwZ|^;ex*Bis_AJ%0O(`Kzk=IPpEw|()moKJ5 z{QdVYgNd<|Jy#Y3;e2)B7a&Y&n)1Av+mYl7*mVdi# z*G0s1(gZ^}k{XJN-v$OqBfGLhJsl^?l1B`j=00nd>cDnRY`9HT8L22MySTe=kC$qj zo6{pmNJu`v+z;g5SY2J++Nzka&42eUSjH@pj0-^vPcAM_jc{>sIbyoJxac&mk;w~- zj;?QLI6XcV{F$#+`q}HyN=u65f0PC&jXtEd?QWFI=kXGFxr`8wM@*&}bxBJbLsfN5U6} zCTl%8DG3sD8Me}1=#zG_I<=@r#qT-HK*&*PSc822{^21NuPGvD=sqU_HFf2LEv&eB z#G2cvIVm%flPnS)hkRjU`KZfOEDGcyQ!k|Lv$k`lz%*x2~UM37SL&tzr)JZWS^ z#HejOyhL77cyi$9sntM~#4!9N&h4G~HX1~;=dQZuI7INyojXyjb@&p0a|;SOos$<9 zOc5{7k4mrbRNvrH7pbOcU187HJVSrHLtzHb-Isc?-7sI`DaP>GV>|uLn>S{Qxw*Mv zVHh2JZt~$#Q3cQPYxFA~zQKEZ5aM%rJhjT;b+k?>r>U;4P9OiRcC7jT_D`J=7PUHGc(h; zVt=aBVaf(F>&0N%n@q& z`Sa(us#dU(i_wPMson=GO8J#WO)hf&8%l@!`(6ht;bs)fi5nXmUYFKbWxbvv4|E& z3ssOzr{9~A$YqJR+pZ7i!SDH;AKCc$Ty#a=-YAfx(R$_fVgKahu7uBDr?$%zsA-Z{ ze;GtXUiGJNA@;ta(-{8CIXZGHGo<&qx;RTQ=K3Gz10)#$QMrNW#N~ zuR%6rMMzRm72QRQm|n{%C}5)?bEkfKb-W3CAgiFT`=h?UyF0Xhbu-pB;vJ-f^Bt$j ziYG5${!Ql4%a-tMesye%7W8%P&=rbg*UrzT4)YpW`jN@Xr#Vo1HYduXsqVW7->K2h zjE~Rb>9*jLqmR$Z`t?1H|N7!^=-=t?n3pF+5HVc#xEzw*(!%0rlWVc-+ThO4PG~sn z^BV-O=@&#k{s;RRKE!mrou2#Eg9;3&{^7jr?0u7yWC)MlIip2(+xlkrKa;{S&!0d4 zb9*%Wy-Ay&{B32uDnq1zn=N%H@F^dm@xLHMw4VK@%1>A&UWA87GKI|v?UFcOXF$A# z9`1*kg`p5dZl-VlH4qi?9+rV6nLd{*9fY9e<{or5izYHNHO*Bn9OV&nS;0W~9E~WP zGaWIl1)^flkv>#X!bH?TJTG#hh!(#Fp(Eu&Q4E!ozs+rkKxk-a_&UU@2cMjrprWFl zo8NbuLkWP>+`@s=88I9l_tmuSx?!%xdkl45cDh)DrsFV)HthF620wWeM2X5Vx|OTO zc~R!v!N7nrvDeMjm0!${HG=ZK;~hk%q;3x;<$BdbC}t$t zi%;`iPoR?3)YOQ-I^umrwg-o~cE;Yf?v>l6#x5kfZT+i@zx!_2tm#=<)V@p(NBgDM zM!92GkmeT`7khiozGLn3`Gn%z6(P$#v12^EICgWN&;IT&r*b{*Ufy31N#!>B0WI3z z-d! z)M4jhXLs@NC`vUYw{i=k%o07CEYPwE87V3*PGk&Uz8-gOG_1Uh#LmNY9Rf%O2fA05k0){>2su;XRLUP_yR{k^4}JJ zyrO``x48Y~p0SNJC@OHC^PcKZ@-^#J;Pa*7AdZTo>EOhN%hJay;t=O))(V{C=CVRp!KA z3nG-Sro8Lk$5YiNZNC3LYTg5|q(rRjTU0=-bmorBQ%!*rs=2I@@A_uW05<7tmRvX{ zQkK3_w|qVj5bKCId!ZI4;)vKSpEoLHdU{$Fn%VAL3!Hv(Q4f1%<-W?N4e&xLOAfmv z3?#(X))sq3ddb8lPuqnSBT$J7CwSQQ=dP3_N+0pHB6{XgdvRZJTo0YQ4Fb5>S zUGof|T0}Nsr8vjW*8FD*t~f)5s;zCAEIrhe#F6(TJSMFbzsc60Vy*s(*=4sms>}VH zn@h`_n3j|zYeK%+)!nUJsO9N-dj83GcXN|Hv3Gql^{(&J4@Cxb)^r3Iqobn{5fO8b zi_T4`ef8GhT!mt@MZ8N*+C2)V4PDRJbQA4mkA!jQOWih%2aSETpU$6_^ZoF&nW~~j zBvp^6m>?sdmcdbM^t*hes`|a=Sg^8Qp6HfBr{H?} z@dn;QSyi1jfEq0>Cbs@Y^gIO0SkcqWWQF^(Il?c@jg9A^X8c*nYeki5kmp!lSh#7O z>+96J?}t zI?j%#Ot!bTVZH&hcYSpkeb;SF$Z5{!^86SYYU#u#gtlyAlR+Wo0$>QV0XO{DulUT` zgCzm5Lc@np!OB$?6{j0t&|*&v zb$&nO*diQ0Sks@0^4qaJ*cce=vkgvXYHDeGmaqtT5*omI0OSk}4XaGrS^;L@bbNH0 zcRU)tEgi*69tB_*x{ni-+(Rg9!p^x+5FH&IWn|hRmOmPtG)&xt>?Z92AHpcNIaxUi z?Q9H^7w{Q%N_^UdN90~0rRj<8;uK)`^x3nA{91sx^sY8>cq`bw|bn9IcP``dc}a5ObF5xma_GdFu|EWb~=cF^lg z=gmE`uqar3Nh}-#A@mt5QbRcZ-81vO*G!YARm#~G0u6~$=vKM21;r28aa@JS5(|qo z$Z^WmZ$b_~Iy*bbQ}U=ndskgLLXLj5@9pjNwWVPFBTQg?;4~-JQH-~^xOfy|apo5c zYZEZkE1y7?0!XviURPHKC6~$%3#S9;lQ@jto_{9Q=25B=;w`bTutISt%p2Lfz5ki` zoprs(@lAGK>cq^)|FgY4U|z$1EkjWLXaMh6o&|Lq>dn!6oY0@YejQW)weE?f;hF!& z!N}NYt&@6S{_NSj_pW$8DfOK@AMIz}@jQ&>d{#&QYvLFP03pNw9h!$Y&CSh}SF9rp z{W|2|fg_+MAt^Ai1EgK7k%JaM%AuRY^VxQS9bpXv@hZ)5nVHU*BTs62y0T_cY;5e+ z)JL&oGw?!X37{RYXT7ZGopmK6*>eT2G<1zbVM@Md@ z1Ux*vj~_pZWN`}$CJ(JqMJJ&lutEZ>o;5W#!l|z}$cm4rBMOf)kh87-0o%&V$Ot(Y z7Z(S0meM!)`*+o7`DY{v29<+-eMA^2tF!u)eZ9S!?8z{bt}0MQg@@<4xAB|8bY9OIp{%B6S)(tXua6{UZ@&dFjua~-GEyZ&$ic_QCko5D z{>SIfV(=l)o;|#us-~vKr1as!2N~eVd5t{aA4>reU6`M3Y)YXyXlA5GMd1X}Muob_ zRS-%Ou(7e>pyjteW!sBMl!<*;0@VU0)^qEl{e4VqY>w;x+!5=$l75*`ya|FcGM+j+ zJ0BN+gd*jCbk?#w`pR8=KA-AW8 z$I1Raz~5-Iy3*289JCH=Mxlp*EK#Hz8ygpdTm3H21??uc=G)pXRC82Pxqr3#{)2xh z?Nlfb)|=r3z{7=WvnRvE4&yvLn7nv^C0|-Y!+kkTC>zm@NJ6%pL9`g7!Jnbz1MvWj zH4Gx8s3`1zO1#H$S=zv5VEy(--KmYGtXw`tL!Wfl> zN(zb7>UG%t^EGW)T3(GjVF8=6lG4U(Lv=%gr>?FpEMO?}K@ggyTso%?gKS)pHK1x3 zP(FE|I_li~8HciNxf4dvXhrLADP2NF@!u6q`6cO(ebV3u#3K@S zD9unHZUsoulHYeUWOD7!7I81T=zOTVuT)8|=!QH=ml#wR_%wfQD5to1;hrIDYX9*q zM5s(wiw-r6@r(CU|eOdq01GfgC=t&Hq~B za&mG~h?7&bRL9_oUk*N1Jvj7M_7mpvzkD1x3H_^->ie2>Nf?9$y^z;mc`F(l-?sX2 zb8>P@_GD+bwOvCOgjQnLNYKHXKU2X;Ag7r^Q&2ySQMuGF@Zj4kFZq%YYuyU{5rEYG z{?~v1{#90ndX9>QR`sN|NTMCcS{b0NAQ^z-ES#VFF*`Rw!tDBP-!eQ69m{dYfqlde@t!{?Bo8d)s91sWa z+}0_k1O@71JOwE&79r@!F=?VCC^cdQGV<_d@^WP)@Gds%Q!dK+MRm4XY{hl9%H?#) ze8aYi(dk-jtTHO4NlChL8+8R*c;qpzUgU|12Vo2SK=Jwp(zn2WZUh|Or zFyqAQCN@>w0%z_UU#IVWd<_mIE zN5`3vs`u@v{tjWE%#MympG=l7(}wV!u$ZfVU*EVMJ+NiwXCWp&`*LR?P|pRuc=Gb{ z{QUfwtLHFCZr{!jML|KB+L4^u@IL%f7dVm_&m5xDr>KNUml}7#r)8l0tzYp81zTbq z7AD*Eyg#Mj;O!-3y1}XI=Rt?|Z)0|ZhtSrrd9xoW1rCp(u3>VD6{ex#)`Zg5Cl?1F zmRkH2CbJ%(#v1K>WPq!wE2|ixWOGkbSG7+$`~$s=finF3gpG~k7Fr_RhaQJ5av^#{ z+V&9hqG^g#`xtE5MyW9P63sPO*&LE8&u*#jY$u4Dr%6m%sLq6<9ViR!$o9`aYjb7S zpYhmQNf`03q}VNGZRj+$q>{)8EJK%*&Rbiw2b^T%JKznJ6o;=WmC#<8AiQKIisRXQL-IIW%?rycXsO1L_1POIpqny z1o~BjkQn+TgTj>YGB;b?ya@tIk?qoO|G6?uT>Ryk1?0Pl-ag+Ye!5Wh(<&0vjkL#N zt{ld%>&Vzf>hy)ZGc?kSsbY;~?VTcBBkb~OUJ}FUpzw&nsp0P!j5k~RhG{)OFvGuf zhl1Wa(<#&-U57z?Q-?iExm3GXz@<>VaI%zCq|mVZ(VublEQ6xta?EIh;wzSpjd8w8 zLxpuk!NL(+a)Y8Uwk0GzgwNgXA+<_E@}{Z@ z;ql~E9rutsSnmh~Xp)z{L)_9*(_{?czn2-ZY>0!da?{GyIQgL@QN)J^x(27>A z()?EM(xgi_#a=*}X2_6gmyDIAmG_vnPB~etQm2fSD*y|Fnyp=qUbz$fE`Fm>QXDQP zUhitc9i%V^cTTcii#XNL^w&tCb`)>PSdsI`Nf5k^!h>HZ?p)-2?rL`?8#G-eHx(g^ zStK9q5@bZXgVQ11Z@SL=MPIn<%SynlTeq02y6*|1GGe3SSm1=Fpd^H7lQU1f4n?5l z?S!QzU~1CK5{#8%P9KJT=Ib0?vw8SEl9gk0)zaE^wBC!N`KOzMAM<*hDhqy5BKq%z zZoHju?)z3E%}YWa?jJ6a_!<)$5eSk6x$RT4>c9vgwtQQf4I#vtcUZ8U`}7 z%gHEPKg9APNmX!}VeH8!Xttde{%W!AJZ%1!GGCv(8zo}ki?DF7g%+n_f4d?q*Eu1G z1HqD}PZvWh%-r*WDb(&>1<5l4a$V%NSUuwbq;bL_W?0lEmEx@0Q&zYbG zfmnAdG{Hl7+(~q_Yz@*WMd~g3}1)Zev?(EctCm5g3+3fsE%U4`JG`=NZBJIl9*5rWR$`Ub&H0T+$bre*`y0dXX4F~=vM5!kSohuy0KaAkw$9O zyg*H)v%J?&o=Km1OtvQzrP*!~hm5n#MniHD^7#T-UUr%A(;>D-~l>@_vf7sQi9+$x?B0L5Yl|W)#TcQK!-CiIx@ zrEyZB>3t)?a(0>F*8V>)z&&(g*Do=+bN1g;a6Rl{)96py_$ai(i~fldqP$q@3)&c)UB%*RhxcM>LAr=N}YfQAHc)CPht2vlxq|KYGm+Aw&#SW3Y%X~_p# z3LoVYOzJC7>5d5c^Emn*v&feunm~Bs*dO%p1aIHAovOOu&!3xMjAbB`!PGyHWVN=k zmb#MMii z>jBK4T3T8wE@!~-fffq0(8-vF@x4_>Pp+dma<)aMaDGsmDec=gX)16n>LGl z>9R@LlF1`V(qg%%H<@7~+}~B+u1moeEoO8eB+gS#TV5jkREaF;(V*+F@J#8J{XHJi zo|fRQxC0aeZ_RjWy@hXN;rBd6e=2ltcB4P%?v_PQdZ6!1ubS|P#*og)UERae zv$|s!$;R|4eK@I^Fs1pYno&|Kj{Li2#*(8Jh0Yf;!dyQ@+)O%L4(}=ZG0Isf*Cx7- z%@?hbwj}doy+99{R$BeeOwAjk*kjqZC5v^xradj+!}7kX#R+jB)wM~+Uz2APZj5P( z6D%_RgdSeJ`SJ{6udsO$uyA0Y!o$M$j*lOgPt45BoFl(}{rU(SG}u?XLj?r|n8eH_ zI_w|`{QPMM8<_6^;<_hjAV4zSSWrMV5xz6{>Ete;$<@`654n%Mb)}e+zM}ZM9nVc$ z&oP(0yUUhOlb}p-zb?{wfl*z`F6yk>E4kLPsm3WWart1y>G3QSt}tvOx)Jew&kii}Dj(6tii!$bM7wG_H%bl4 z)BJCRl`n+)f}%sJSQYj!ik8mQzVI6V*;xuVdEavDI9W1~ehE8)Az$k-LD>OoddKBH zT5sWBNA`O(cB||s4adj7kLtSg*I&Lj(9OY6V@~aV!bygRV{C$Hj2(N7+Lw{2H&*gW zzg42gf)D7q2YwfSJ+^-cI?ZJo19kE?EzL%U4=Am{!5!e4z$t_j(B3YipwJ_7Cac&H z#*@GEJFdq&uiUp>f!(4n?9;*X`(f?&#%A(|3ANfc?S zlTd_!=s|qpjZ!bH(~vl`0JZ?E91}cG>a0gD&JMxubTy%8f=exu#Qoi>7J>>LX&jQ_ zgMI}FFW^rwIX)zee^tYkaKRb;nsWDvpo4n))()!Winybx_ejA0&)ky$enhV96AvCf z5kWqa%>Mnj=GR};|7;cQ?9k!4u5YxP=Kh>g6#P{?)77;Kl?3t;XmeTu``M4t#@UI9 z`8@e1(@>WhoaTS8tN_&l67?k+IAvO$t*nY7Bm2V$8IDxY@b0{gi_7)T$jDG>!@$Od z;>6C$$*43sGt=ZJL8HaCnnsh!rJl z?qA`LI=@{+{H()a-dL!zU0eJy(~`qa$(5&M-5gGUaK3YTbW~wwCY153;z_ONCGgvo zz)+ghn9Ci%QI_$PtsFV6?xo;ze&hKuM23?@Zk+maM_W8=?B=7#(7fLN&&C z#lJqSS3($9F@eTBHfW*4DuHQ)hIGFbo4(t*t+0?a74$u1A>Ht+Nn2mGXO3A zr@uUbt3<@5r#C~cKkJEk+_ZH0@ARg;zkMrgJ)BFyZ#C}LrpVRn{$4V)k-u&un{QI? zP)O6`6?#zb2kNVP_e(B=8vllEUt@kh%fyg5WmsNCH<%Pak81De*r*3{5`dtn z(B7*XQ`z5T{5w66A{zKDH)0`BBhXy3Bz#50#D2bKV?(HBi=Ca$`-5@h#SLkCtLW3= zP{#f06q-BtUZ(_SRrk7HYEsFl6i0aJx;Wy`iVjXsb)q#LoBmqDeFxVSHj@xn1+T6+NBLxzH?0VXW+d*&$Owm(3{X#KY%+EEX9rUtB0 zMxQ)v1k%AQL?ianxigG#e}A7tuj-C~_3%n>Vt<36yNAb(2MkPTHx9bSi-Xnv8)`LV z1F^ZdOfR^nLPTMWO?^kxeb^=b!-vuNQ#-!IEf#L|CE=@&r`eu0&(!0zi&3{jF-Ayn zv?$6of|~;?+Jj7_)zGNwb3O!bQ)&46t1UeXlTZb z&U9j87vM1DOZ)E3D}?w9{8NL&to#%qlys;G>QmSHoRgq2;duX~GWcK-4%8m#3XvdS}o=!q*qrG>AE)f!2E>aHMJl%jGdl($}td-1WwzWclA!R+$y7q-!nxn~!@ zX4Loo_Q zjr@dUdlVb;wJ}91vLla&6Vlj)FFo>)+RgSG&#t*v_=H+MnAHkvw@5gxGAAn!P*a*y zLvKVzjLj9Qe{=;I1*Ze7IJXdB)@gpRjMm}xIb9_%`0FxYfBLzGz*G+c%_5=Ky0%#dt4$+Ky`Is-chziG2F4w}?cTk_5 z|Hv6+@lIM``gKR*4p~IilQ>EnobdNmB@?z;>I#}9N(rI($TRjQpjZNZejiTyL5BmV zzit2+jGEo(FwEhb^9SqYovSV&Ua8%Gowp5+8t5gv?A2PONy>!=mEA8s7Ze2dEa!bH z!d(EGb?WOQ0i^0xy1s}AzaL-T*F;m*>vuSppx{0qNG~*@CkkJmI|3$Dr&Oo4wG{{^*a+am&=5iy zYEHFc5;;T5m;9k!3N*ee+uII}`N}t{?)>~UG(eDz4o^?#+x*)~bI40y55#wt30Wf> zN9J>U>zl8Mn<|^#ZEsEIFKb6!6?34y;|zO?Hi5BtI0QxLa0p3?lT6b4q@toCs(;l* zI1|*1^?pW1Midm3quqIvwiOTxkFY@$!@kW8c3(zv*JsG z3R+>62|DD{kM>X0Bq+3=Y8;f}P^j)boQg~dVIAZVdmphSc#`^DbxI4(HDNYW$oMxN zR*g9;A!TiSy`Yau!U|NLSZdLaj=w}MgIiYfJ|#tuc4N5M*ky(vmB)Lv3yORe?&_#0hgiQ^<{TCXp3c&(IV96f3(M?loO}_@(R?Wf5hC%G@`*{Exc;vjaAglRh zBqa&BtbAjiqQ@`?Wdp_$C~{{vWp;gpf!HHj$0Q=D`64Bg_@|o&fy%=qQqnD>>`51? zooCe*WaNE;iqy8vsh^-J;p5<-1VGxz$;$(0P1+|;TY(QE0p#hw^FP)8S7*-=amt0T zgen)VX!*qW_?j2X@-#F#khOS}0${WIIx$h-n(y!d=Cz!Uoer8I^D=R=`}+e*e&YSv z=S6QG<*032?F7Wh7j78ufd%izEe#nD*$4J5a98;3wwwYnPk8sPgzb0<=!td$l;CsT zZSx1Lduad)hot*v(nt~D?)xy4LV5n<-P-1Jb^tGdjM@TiI2w%vHGoaK=;E~PIyx$< z!mm#3?k=?C7VlG#(VjHBl~z`6Lmf~(n^qKDVP8DeIjAKNC`vDkGZZ1zm{Dd3;+tJ$ z#inrix>o0=%Lzm1H%03dERS<&RY7`S)wY&9+hW*Lj4NrL4LRPnwpt0*bnW=`R`gB*;fHhC zw`>F1-j-}~k3Gj7m6K_JhA$MT z^JXGvJ6q;-tOH+DFwL($l&i!UBv5JzpGH~w{nJxD_GFkEj}8D&-P{C#cRtFUm2bh+ z*4BRb@ZrW3Ky}dc@=VZCP(E{DBL_rB55Od?SD{~HH^qI~4zxs_!|Y^9!Qv4KWwaG| zP9!8GK;tdjDVDRfp0YEq;Ms8q>Q1OZkUaKTnk|3#`eWC}TN1nWJJxaX{hP#epG9jX z#^H_tY%+ue6#*j7F#a2H$U+`)FF>0Glkd+K?}iZrh#(jZrKP2B0=2NduE8E zYmgInfUe(2wf|99dSQPI#`r>orAga*XpL+8FK_VI2oAZTQM|30Kj)dV{xe}7N~DeG zdHTXTQ-QP@v0_{H!jG#1Xqly1F0L7rwAho0P^1$We}yG=o7Y%@vjJKcV4`^#1gtB; z8tVtp5`qL$zOVba%rN-+z%6&fEnFt-w*DKmo-`2;q-9pmWQ|t@8-Wb?Jalz) z8`qc+fXN6P6d)ApP*`YcjzEV2GW(WAIURy**1 z7MM)`_yPXebXp9=@O;f3v6sBRe2PB9)rxf!esY|1b^GMZtSn$0?2ek^(nTmWJlxt1 zX7V8ty)+l@K_j?hFP;y`QLn|ndP9_Vufr-6Aw|&n!LlEw)x%$&^Jdec{`4acMeT~2 z%z$>ZqdD5O_DeFLaQ#;ndBJe%Xf7v2iU2C#)>iRR1OMbDI4jGAC% zWdS0*C}`PJWXW5E}DoxH9+fdZsz4Mtx;<8MyVUX&#!eFfx7j<~l~yWf3>AL9_#&Q96$ z8-D|+_vN)q;A4`JkpaUG*mwK^7(q+;+~1_5)fqbHSR!KWH~QzfONq2iB?b#&_2wvs z*6no1Xy=u0@khS~LH0U>NkY_f2L%DHkMlVvxGVs+Fu=W#Q@G&epr@yQC&F<pYEYPvK4j>NxcgaoaXru~MxjS&)EPcxxT7Oz=gq?6 zqM4oDY~Dlk=0E4)(?$n*5L)t$=?_q$gv&~pUnO*jD`-LT86t29pvuF*a0&X|h|0Qj z11xb3=8jR!pW5BTJ2Q(L)Yg`PBw*ug^R7(8o zBO#|*u3IVM^Y{It0gQXoP_ke_0+a*5|I`_5!+Zcm3k-6imVHTp*OPaHc*vmP7+-)n zoDz@Y76Lk+@9}1`rkRt|E=b|S)nFup9`X;G;fD_&Zf;CewFNNSsxY2Crn*xoT{}i< z@hg^VjCU_KG%qGdF$k)D3Folvj&fD+qx@l)qK0qPftoXL{$VJ)xk^-93pL>qD1))^ z_y3vcp%VT8uRaBiJfLBmsUHwdz)jGUkPu)F{{=t7s*$8vNp|4QkI^r7GH%00xK{=9 zEEJoK+drnKhmHQ>QmDtjgt!2>2U=1sOJu@XuG3cFPCL7r1#&P1|S$2a`z z$?i^3FzsHisl$n~?`S-LE#bvDtueamM~*TU(oMx!@hQf6$k5V1WR0 z0GC>hXYg`ysYxpu6puMT zg4{SMe^N(w8G!9L^MUKpp@_qex(%a44z}bz*v8}C`JDb$iT}F9_2L^E+bhC&|0mZG z`gcS5HSY@Cj~H%IWmN8Ds_l66OtTYb*a;EVW$x+eiFhmIK$$aiy0?dci@OazqQ%@< zxM~8H5P>br_3dr7`8vZ-9+jUyeQIm-H#Ied*%=Nd-o#xuZ_xRnE0hi9&XUM&PuFyG zb%hMAft3&PdjdFbzDs@v1fiUc&OM*$J6XuTi(|Y8b>BSjI27^(tu@3pnAdKSQ=|hE zB@hnCW-67$YuJe=*4EZT+1HX+)vX25(a~ntSO$XVzq(&s09>EI1QK1(^`&D$x{z#~ zioxQYaqnSdvF6JFC3lKB{%NoPsgXeOrNvl^0}%d8-47>1PeCyVWI!iy3QBES^6$t@rUa-H9KC z#h;pPNvCrksXPkt#BGk&ueQK+XUGuydl!ha;7_MHY;UPUg9Z8FxyC{auxQl=Loroo2N8a2j`Rk7X{yDH4dMdA$75IL;;bym53Vw z@~gqe#HbohqO3tO=l|Y{5)>#s6qG5jnIVxL#O&_M6q(zaEk_lm^4w%ETizD(z|Ur0 z!HAIYjrz1kulP_VoWMqgZ*_b|$3wJ_U73E-!b++U{b{F;${&~hXyd+? zKPP2m;&18%;2E`_cZKi4O_<+!d01MdI;})JFp-q%#TeGuk9|_Pe(h{gCEApMcPas(TKOXb&mA z*=z4Bg0m~`5xs1Bung%1xdyj`Q7ZapK9j5yPvhY?#=_WH3W8)W4$Gn^%?z(6;Y>;2 zyf&1&I{bxSV{z`FLG2?HQh)l|8Pn&jDn<=b4wMPRk4s}hd}2r?v!p3;-AL%8O-j*# z`_hmfUmeNzV~b_5YVxS9?r;#I4ldBo#acXicq&I28DJZ%xZJ>yPCkNjN;>(({XORs z(CKSwNV+RMA)Lr5@?Z(f_PSM>U_W~IZ--J|4Bl5BhF_us@~`p5!r z62s>{D~(|o4!aSDg-F3Bt$4K1y?M1f;P7Yb{{0R6kJ?mEKarJCHE!s16&Mx>dXiuq z;Jew8*nGDz0K8U#QC_<&cB)xZ_GoO&ciiM18EZto%gVp}U4j~tn@qC$G#__MZ10Om z8D1Hd;701<)1kvI^7ZWOjd3pu^ZGY>=mMN1=4=oqO0Fh6k2bohHk14459A)b=;2St zeX;l;|B9&o;G$QBwBz3JEx|@PPE=)hoO+(nt>u_E5r2wKQatX(E`RaZrmsq@Ov?gM z7Q`x`ZIlu&wrYncU8X45LMV}5u?FcAfUBchN$yM4)XM5t_p$f25VOB!728VzA~Wes zjWDf&0%~Yv1nSq=m+-ix507KO&_{+s9izDHMw_y=8Cd_JI%so2@{)=96)%;he>hY` zu!4it>Er8Dm5n-|Y$nTFEAZYln7jBWWoqAE6J!eVH*QIB=1%hYo5HoPWMJ;WiQ9!ToV|@BYM>U)JAE7gv4hzC~2z#N~pRaYkvbTQ6 z3aS{i%#jmF36F@t!mt(_ARsstAy@Hm>l6{56mr*OB=ujaJT-m(I-@Y>nv@bIIMDO9 z8yJYffwC0x*wXI^5sn#aTM+Dun|%cK>&Z&C#2|Y`w_shu=L~qG7vX#DA=uDVVq#)I z?1xJp0IIl+Kfm?kAd7?>x)X@g$F>@94MH@yY{b)w^E$9D-J~cYz(Mop*se{1)`t}D z?=6}UFTOG-F(oUPHz|imyEGY+MLzB~r9{_aBQE=8H2dnN_MhG6XKBy4@8oyT%i@1| zoSHE!%3^^D7xy5C!Imc5w(2YlESPW%c1U|D)|lIWHocO$RIe@EnUV0#4X%>aR>snZ z1Prg)E+kH~fkDFl>)XX}y)NpmxB+t_-0}ho{#PK$;3nR2%h>ogMeeV=gqzy)qB3!m z_ny;#2KBfzoES2+-2dVc9a-cm+*Ds%n=*Y(r>m^?haRB;KVef#k+z7 zfx4Xo18_IiZ>-JXEk|Bhi7f6=S~yzCLr&G8>@^f=m^N+T<{(@tj=d{R2}&)b6 zBJLh-^z`D(50$qjM@m1o)%LErY&{G<;i}Acd`?LgIk9&;H9|&Hm2F#4kYF5Dqni<9$8ke-&gl4YVNwt~3K2;l6+WHUcn7T22nofBrZfyg1m{*yY8F zam+GmUnUh@+-HB>9Yy6)UVWmRlV|N1+}xuX(bNia4zhIAgkJO>++MhVFVSRheX;T+ zN9h}kR%3`E#<-$oMX{M~B-%T22XN2KZ$CV?AWK8hNMeRbU!e2fEqne2f-xM z*<6Y-P5ETDHHhuDOUS^>7zg`5?ChP2GqWT$KbY!V;{Zp*VdXx}4|5kKQSc}+a(~aL zYmiQRNV97EMw3qdu4Dw~Vv=z9-`BI6?hFiKi-VhC}45=k#P)@C*jqv2>q=pP8L7>!K&0 zZANi;K}c$vscwnr#hd75*jfmSy#CTVc;i~_f}T>5AcHq{rTMsb{R(v8)tWV!G8 z#ho3QcJ4CAmC4E}OQ{QWUr9F(9VH7R6b{*SI0d;>z9s;WLGfaN&RfGr#I+U1yn`pWKddH^<1p3UEm7de z{0rPAJZ<$JW^ZO3G9Ui22#VHH@(Yi7@_fjguwd|JiIyI+iM!s5(jG-R=#lT35=cUJ zd8b6e8BH`B*Spi7I20Wp?C7#k*;kMdC8rk(-E{gJFsPrXg}W8YbQh0*wQ)kxO=<1J z(?RR*h4HV)CTRvA{&uIoknTV~JFdK(q`a>zO=Kugfn(nED4L*#c{V?caKPDLbD$iK z!&Umm*mrp&=3ip@S(^C>`J6QhHFtA zeW9swGijrh#QvJqD3~!s+!@f{5tM zM{c&;8q;!o-l@0KnQYu5j5}I3^}^d@FUktXqmuiWuW+V($6kNb%NR)D`WbcY&{E#f zU?c*90;HSF9MNr~O|3JZo>-?KMpbIFZ1O0Fk3)@Um%Bgt-SN;2znU9TW;OEf%2#Rmw4&`d2At&4{Q^RXDw$$pc--WDSqLIS zVUbO`;w-K99q&t(a>O6UGcPOqEs$tLnVoM73+6p>fBx+GDfn;{(moRgcaLF$DtF_- z*Fl4tBO}g{`!2#v_Yp3hW<9jTb^DR$CImefKS^V=aJZ3kTolx>@R$N}I zPq+7Uz__Pqc@zEdzUQ5rABBsVeb?uWxlElYs*Kdy2o;d(FMB1LbZg%ISu4SRxn0Ou zTuN?BNOQ~}%L$i9!kC&KL_JvMahFlR;({mbD*x9E{TTiRc6h2|(fsUvXAVl) z%Bm#Nl+Cv#B4PR>aN8pCP!El1$@7*z_+0r^gAauf|_9z4$OHoHoxomccB)(l&Rt^@gjZ%|$M# zWP(i#i7{2+CaqB6lll+ruzI`AN<7_TRVyFI)fh63tVP+&$dFGq_&>_ zAdB-fvz=}vc#KJ?@&<-7GFg@ODV}c+#chYtdCv?#y8gem-aMSjw*3M&ha_{7c^)!` zM43X!JY=ZIm`ouQnKO%2Btx0!c}PVlktk&rijYEtqLk!Y`+0xgAK!6&`;X^&-j{9P z`@XO1I?r>R>s)JBtw-3?hGQ(k)M-;TZ8ft?w4NS%6C@^7jY(ZTU;-eXkRUFyd~!Lu zAQY+WIox|K!0;qffauCI!O6ENC4~tWLyk$fT)7A^$b-0)-QxW0{Ioqt^aa#}(ZH)3N5vnYODL(?Bw5yeEqmZe3rL8zNtSn9M_Yx^D9vNUSIEh z?#hvg4CH?QyV_hm(uw@I2`;l=VXvQznnIL*YZpUg{w_ zDY@G-`L?Vb)Mh~~Ec^GPlIe|&jRnIBVk3)-<47AZNO~B3sqoq3Y%P-6x3gnpvI5N0 z{x27ueV-nYq4$Q2h{$RnEA{e-+pMQ(pRPox9H}e8)aB%SF`w)3fo1 zSxxLogRbRCA!PezJ+Aysxbb-OidfrQs+%+d0s=rGk7Cdc^V5T)rDkR2*?lmfi$7dIAl(*O(eXICyB`G=6KJi|`SZWf zH7zSE>pD)}qVFqm(yqzw8yQlsH zq;)`1u(q~_5X`&5!5_fUrKP0-e?wj;WPRS)#ib-Jt{e5fxVShzINa`*(#h(Z=H;;> zR+-0n$xJ>TPw)b-0*$VVzxJR*0M60Eo8+(x%U_a>&r?N5Jze?wn#DA&t3*Ye?cZzv zeV6-1Xz_QJ`129nR~^4`;oIB4rcnO<18O(F{`ui5{=j1Z1sGXHrAoeQ7ogqKr%&Hz zINvInw~99;;yn4ypj8b@~aMO>n% z=cNBtV|A~uS316!{UZ(|<5DbQV`IZeF#`*WR<04cU;v0^A;EL&)-5nhQt?Vl+xqhd z%Qd6JQf;M=TXn*AhUeON_HN77%jEj^T|efI$nd;O})dx z_SvL6fNS&0md|Jusqc~^vp@hy)&4&|>rXrE*^~J6=~Ema=+q8ROeo=w3JbeHdFbZN zo1ZAgBq*}OeRJHHv}5*)xBvYcgeK**IJM%vf1sc6MJ_EVpV5!}U0qaE)OC%l<%AR8 z_zv}Me~BjfW~zon!LZyi>d)2+)KPY{P$DxbOG>+3t&8vM$6 z=b?LiVWATS!_lO1xrWL7L+N^ae5FgCBn-R?RGAla9+-F(r>6ZlUs`uF@8?rmCXbJ^ z5&Hc~XV*Cj13P~Y4Gr-ek47sMTu-P#pnu8}iCKBg0}2WX=U7jfnQ2(Z&e&0#Z6t2I zOd=tw4Vq`$`2M}DvJ$kTc?;X%!qU<>y1JSgEJ?gnDa}uv!uaur?(PM^746Hoky{(r z>JoEEeJndV_5KbI`LhMcEi9Fd`f-Tz9_O|{|CgBg$eiYzDSrvATgIhBMZ=;X7@$$G zzOL+;g4N6y>FejGLs`Xl_pYw3n6N%g!Sfgm7gtwE%6$OM$9?ii`r9uLANip-85Hzn zbqyVNZu$sXtL(7qdBZ`sOV&?vh_7C*d>I%meYTb~^?@P(wy}-vlw{gK*27^G*@ua4di8eWLwGmG#qIsKv=fa>U=v^x-#Ep58VY zuA^^mZ1+lPBnfWhAHw84=mzxIVGIld;ne{w3I2+{W* z$XxBzkAa$OCn;Td$EaKw?22361fKbu3(1` zBht^y=e|UyjfbAsa*Dm`;$-Hu9II6G{Azx!Znfw)_X~uVjz3d&b&|Pc4kckxcn3e4 zInx>xfH;EjZ;v(}8JU5JiRQ6IDWV2qzP_f=+GE#T*5w)4!(}9x*#g`|GGk9$H8->d z1)HrdK1*1BFm3a|aeC+ynVEK^s%y|AnSj7RKsivyLgV?{#6w95iK@CfhAwZ;8x|%e zJ{aExLkox=x}z^}SaftmcI1Tn9{EK(YN9%;Ke2dGIKHZbJo4tl#=Bb;UoMTPOezn0 zE_yNks){u>0W)Uj_m^z4egl0LXr-Yk4Y=%nTv6N(fGRw3UB~M4! z=2xzZT<-HS!$sRs&kJ@ZYGp#y1rd)h)~=Us@9H|fUaXMR23QTJ7+_cjnRKAJLSkaNy@)-d#g87? z7$rW9T~8qYJiEap+sXDrhnx4)82ujdjg?&?gMN0p@wlC>m{7+YDo&cSwf0fDxpwFR z%E`$A)dtT9QRM65;_KJ1f&SHFWc0`pDh`2H9-pSovX+F2=qz42Y^J29qEikvmwC=4 ziglSz_L-M%N4$+TLb5X7j4-cE0pRS^_w6^}U zI4lNQ7$+6YIz=Yq+R7i}-jvfVf+KTYJ=voQl?)GKU*D@}=xUpC*l zb!z};5T*ij{JFD9XLpy(Z1|9JQz`$k!79Dr=C%bMCClOMFWI3%!NFJgMf(mEn9*PU zzUG%yImyxS=*o*Z^>QM<=y*%9mpiBb&NzOLN~S+8%M{q1@@$g&ivufplUDeU%j7c? zYimXO4gz2L7Cp_p`N+}dA^v%#4?+%ziB(wUSJxHYvvjNbGR(Y$5E#4}$hdIE$tVa9 z8$yYAXTOljW31xdVQ zWCl^@0l3(ZdnU%lk3k_o=L584X^@fX>SRpXNlfq5Q;hfp` zX@YCr`0W=mEeicQR=$>UnjUtVolgTKVV_*5T?&naG0Os(r+~GYsPgjin$2TGGfMZ8 z+F-)zQb8cw&;%AflF zeI<>MX=U-se6c+nyrn#wykfvsNb1J;lLX#Ct4|P->GV_55 z#$5(Hj$c(M3Qj9MA9>Kw08T?Q7~Ke#`&n7n_4HH&nTHs=23Pl0zRnTy;@wscAG18G z`Qhhz;(xdIF|K|4cQJ$~-WLF~>42uDrW^`j>W9WUH*e{Pga%7ZZz^XmE9!Z_^7_RFqI7%oIkyg5iNu3u5rQuY$%%B< z`uo}F>2vc3zu(KmJ{cb$mtW4lFoC4IvZ4Y4Fqq{ztrv+!cm^XX;88<#=F7Kl|Nd;a ziHlbzY3=3L4LU+U`iE`Z?{QY$`C(Fv)44w-W`FxdWjgp@T* zB8Wx=6<%H4_`169DI%s&vMnzW{zhWCoHrvI&rWlI++;RiL*d-hFnM`D2wnO3FkEUw zM5N?#bNf0XPf0~Jh6WDm7Tw1O@%4-&{~QYhbKy@q*~1>8Bt!aJ7eAeGH1}gRS{;qF;K0Cj-7=Is}8fYay>=cgztq8N4 zJb`7^)!BFMjQqUJ#->)>Cw!3QYdy(|jJtg1d!i1Wzk;H*Cr`#}cXHKtax*hAji1#? z%hD(*EEJHGw6(M>Atayp8d9>d?j8;(#4s3%Pm&G3savSKdCOfpFhb*Av*o@K#ALND)rr^45)A!m_XLEAYpSa)eb5h;<-`!h`jtKrJx>bS+?3g^l zNXZU{uOQ%&l6rc3*AYcUfDzB9rrH(~%tXyK3x{17WV5Prb4OlK9MfX3cgbwvSLfdo zs<-}F?WYUx>+Wt5Vd2&Fbxf*YG~^ME{A<@p(_ZaChl`qev0GbpANAjTwvH#|JTCM< zn-N+G@FQW&_K$ygR6Ha^ac<^jfAjF1U2vg8bQ|tI-hI z#B;*Z6AMH{sy@D>4@beHC(M2_F@eU~4tdz#%)^wqz+^zx+I{#PI;Yq~f_itQT>7{f z8E+$3_BZ9vIo+8`FI}i{?qmY3PtPOry*(bESxsF$^zXhb?Vex`b(vV*i0-kk)F5u^ z06~@o4Psz1s6N37oZdffKCf`x%ADGIFA=4mMS>TklR&Y_D@M&unM;smxhti%8GrBI z*}%X+clU~>ra$0n2^1fvirp*J_r2KiC3o3?P#1kT{r*G@g6%{}RtEGj7bNDXJu3vm3a;wUQ%&(H>H2Ycby06{Oj{fg8Us_h? zIyk|sx|pTgwckv(rBH-1;PR_E^ZkF0%PMc*q>P!OV}0!5GbI`Hx}`~6tFI2ccYo7+ z^6ZR#UKwRF{5S}5I4G1&Ik-H6!?}Df=1$d1#F+kjGVW?!PMSlft`NSfD{9=uI>hO4 zVPbFCP-&&ZEE91{?>{dherkU8)$~Sw`&oUFs_Y6G9+wUo2^MR^!}bkU8lU@qFb3(> zxUSB8yH1~+a|fxtlAJhm7^mRlA3@>#S5F^5^SZ-!>!FmA&{wUv=zHDDG%1z4dWzq@2$#KQDEP=iaCCT|-1={m>cn4K z`#Nk5w=Rvw_Uh8G+D+~DUOdvrOEy5xz%yT?@?-U=ytVu2-;dKHtM$+05$BEeS8`e` zn5SRO-fsGE>0Z@RWi>ya!V(2B-jFQVCr7Oqoset(cGWg!AVWxr#OaKvEL(1+iX`eJEk507PfIzUETAu(VG3_tPaNlqZ%8oio=7*;WuOHr?&s46ylO2%% z&bd)qzjcmOQQ*)lxE797Z{%e|kHnAo-kA4JO1aB=uhP#njw^>Y5_b9Rmb zN%SxHPJ1p6uUUrQRI~k+{mt&v2%j`bTsS=$(;HF~JYJVBl}-(H^4f2+g_p;o_GsP^ z^Kjm8YR$&=vWq-3|MH$goHC^=kM2`5YSUbgz%45!iKAhqj<(LOg4OWzo6p#|CbBE+~8zLJ$Zs$ zUutV!q5JWF_ubnyptU1C<)r4)tv#G#B~sBgg2rB!rexatwIg%P1KejmiY-~(xKZVr z+U+NoUil{NO3H!l%LYTV)rsF_A9KdhYqN_Q3XJMQCUM?655WYI^GL{u3Vo&EE#OJ(8T zU30OjT9ekVTju`xZjhpFM8evL3hht1Uq95=_vNlL>Vo%W z=AI8xs*&FDuI&?js%`M#H}N&b4oUB=>t^d;6kpGeNrgw|P0NxC4y9rXT1S55QwR^a z65(+<3h%snOTwKFbS%hd zJPc>wjTilzzle`Gy??LdM0#gEcOdid=6zOV8SW>u#@K-Vg>+dObp_KYtp_g)gd`mNRVVb4yO}pQ=y7&hm^z;17&qS4S z^}!t_2G>JhU)?`7_FC3cUPW1ErF$98g}|K(?U+2C z9CLgroU#S94U|sSTH>`Ua`D?UZN)*2+_NTjQ|T{gQg6^+Px(H&iy>+G$5_>K_enjn z91)3P`fF9j+#Wfa!p&YJ;<3-<_i6;E(5q9@3vb)!e&gP=(b}Vb_*J#o_;-HCA2q{w z7C$>iQWfYpkaFd#0?wzfj;#ASdiW91iK$-#k%qfD&FM(mVSX^^;ri$S4yP%lH{lzp zVG5gPB(!+`cNRNHsp!@bO`TE4ns=5v&-kdu!O>bjs?10Z${srGBdGz8dhMJT-By(pZ2RTbd+*1o}ZL=z7Ye)B5QG696UYkD3 zUVM(QA-kR)Q%^T-SNqCXv*oZrBdSiB`oiqTSLyoNCjEzx@37prycOiQ?rCXDm{q^r@mf%e)-0`yo0+6Z>x2E zWDO_4%?DiQd+zK`zapRTNIpJ^j=`&DU4?o}umASwX5Z3P^P4Q+*HzydlRf25=A{5uYnCU#~Xl0sYIKJQb5HCs|{HUCAAQHmSPr`TBdUr-h7 zBj<}X9Py%1ZC4vDq4_OAvDKgSxlCV;lKJo1q#sm+(p;Wd_r`otZZ)-ze^zS$8IKORSWM;6@wxewDal+yFR!MruAtJoNAorsgH7Sx0 znPkeVD*fxfi8Gi;ga-Zz_i=qUR_nL5z5jVO!u;C4+pPTa94-pX-D)a~|NU+oU$r+2 zS0%fuCgt3=?U7Ui>9uVyx7C4(%!}nRw7s+0ch8KhX zNP<>=PT6Qhe41SF`Se)V&iB0`zK6dUuh#6*i{>r0i?E4^7-apvy1_;WNG<6^C+hiX z6G<-w4+|%zKDj&^@7^ZuB)t7AYFqO{Ph7zdrRa-8W=2AX4f@>rD5IY|VJ9RvSZ7!3 zZEtxwQCPbgcK*IH{y3;!x~ZpV=fU5Ba+z!Qm#ElU-)MBkzUNlEsLto&6aU}g-=!*~ zRlV`#*5k(-_U*MbbxbLHQSRbVM*dQy7=&UnSEYOB#cdC z;VI!Pb}MF*s`b3J&%ens3h3&%GdGt!3(Uw}J@Mdu(}SC*&yN}Yko6WitlhWOM-`oS zi{$^k$l|%RcT&f6!^l%pr;>Ma-uvGdF;9x8b7hjPy85Jd!uK6hrsT^c`gL{Rh^mT$ z_y7Efv>E2vmZRE#tcJ$NrJ2s-Fj+p+>KAr1;tspIc9_Fyd-c~tdTo9{;;!dh&YPu? zW43JgFSfVn2asB`Crqv8miEP3e4$>axIk&~UVyIl*OaXYQ-kv=gQeR(Uq(d(3)3hT ztcO0i@p3xKU`7GUbH}|$3qM7sne1m`oZ2~Ms`&H!8BhIxBX(|fGe_qIgE+I*`%2Eu%^Cx@e9`P8%`d zI9)!*AQpGF``sXwucwZK|CNQX&fxiY*~q^9CwF&OU;L{WnAY@!ZA?01vZ67mxA=QE zPHx(3EOwI5KIdEAL~bO@$oB82dn>v>MXg8Gg==Mhul``Xs^#8qI^c0xh{#uqBjK7c z8R0OAQA?;vvt&w0lr4BYe>@=gpzYP1jGwAhSIB_g$zF1t~O zKHeqo?(S|tBOkU!_UzdcAJ1@B^clKW{rzh{CU?ix99Fm&-WFuYuUGKpua$bP>FXDZ zyphyaod@zmtd6*>5pgKhk&?;e=7x)fvDn=>4WXUPUP$b&j2QAzM({qn9QyU^SAfEq zSy_JrF2-mGZ%hs|eErwSnUr5|Gh$X;%aLYfRFb0mX3PAB{M*Y}d*&QeZ%oU{swdQZ zp(m?FqX9xO$sCmFP-TKa!`j%zn5&TkmGsAncg`t&aQW=F=Lmga;}5-s_y$D@w_%mc z;&<1%&MzGI4^xfyf}&x>O%8G*4vILVrphbvV`ZkFVLbC?cg1;D>5WeZ$lq@mPsF6t zqAU3=;?caWImktn z$ro9OMaa(Po5b~=Aihz9MuzBHF}CvGNEpa?)pxcNI~^{5x6~|r+Qytr^ktT84?yAd zaIqq@Kk{q`?6mj4a!x%~-gxi4ZlP&NsJDEx;L5)0L>jhhxcck7WD2xr^Hr(UcvF{;>8FEG3W z@aF@Y;R(E7#_&~KGSgDtp*sPBZxx?vcN_5>+7z%R;02tKuvn)~=$!fS`yh*$xOigMY@AJ()Il^zm6Q%V z&zRc#+2^sl{ONTwZn~k75ueBJ+uPeQtGT%7YIj^pM#cn~O@kF0N`Zljk4x#b5_R`* zCjI52W_f3%_fI6{kf|(t)rPR-XUCpS()~!qP&kx>=cQ*x#(MdRH!N`xqJV9 z2>7^o;HK<7EPun-MzIfoZCv@!Xm zrB+ZJBV{%{O&Vw9dNA?1FOzV+&nq_X_JOHYo#}d8M#Jc&_s)5)8vZUs03Vr)8Txqn zsSI)wtgc*p*DFe`-m1lPiJ4k`9-tw5*p#{G@BlNM`}B$Op@^6m+-d~w8SG$05rP6N z?Ccfz@QjQyh&RwtW7|_x6F_R0Y|>q{K<>8Dh%Pp`7f+`M5p&3#1qTNcWDx+U1FU&u zMFV2a52!ZK(rQtHm|^gbT#=L^*LQPc52vZFM#<=qlQ;VvYyLX|E5Sd%dam@=RFEaJ zGi6aY-04QWTkjJwb+c9%vF@`dC6C#uQ;lGpgXANTmYJ5;WuAIRIO2R`q z8t|QrrywV16>}1Ro-ly;{l8X(^A-U}2Bia6%C>($)NUb<5HYL%aF6Zzd?!uZ(jZlVl1TRT#9PP1 zqm!-#z2Q>>Pjx%h4Lf^3TUq`rn!k5CrqZwPfsm3ck+S;p zg;?U*m4er35AN5MIXJc#DA2Kia`XliLkPpE5K!1{ z3;&QWKQbjx+5_^ds^UCw;OpGnuw0vtkngB*Gnf#-*x-zI5EAqNx3fK=K|hTX7;^q9 z0pAP2GRkgAGFutpRyF0aKix}KwqxOPXyTD->$&4*t6DcwNjE5xIoODLjj1xSB9Nwp zCGE$k1?-&gRo~uIdg$EC##UMBT$q_TfgMo|0WgT?FAkNmJhXzSELzoQCYBc$3k89d zH3w1$I9X^hR=FG!O>F{74>5)v$jD$PU69sazw3E{9(q;)-0;8^6cwSI`+i`+r#D0H z#fumE509X$*c!a${3a`oZpP;^x}u;n*j^^%YoUy6jccb6v43;(w=?7VtA>-Knx1>v z>t6Rhja%v?av@I4k^VG?80>o;Q~bDreqePlGp9mI0Aq&w?ADkDg&0q7fQ(18u?l;^JRe2nove-M0iF_lz&M`SDDPai-&&FO5^op<->FL2KnqFFZ;=3>~ z^7E994JQlBojZ2~35@{ELB0O+LuJ|bj_f_E?`H&?){-8bF)y*Ndil+^g-7N}`j21N zHnN)kK4kfptbTLdcx7OV3&wFCH2b+v;#NSy(9SM5I{HP8-E$_UrW^&X#2hghW~DYR z?v`j;4r^Om!uWW1TY>Dbcw91fY*8pVb(A_?@5wdJBR-McjuNLED~gJoVXlCtGefYg z3&nFOmIMJ&$FAA6)t!Z;kIjAOckMUT8oQ2MRxw>gMNSBe0cgmDa2`7 z`RW>1z0d1I##8z&zlN1R)L+@YW|Ip_~N0@eCO!-NAjogIb?- zOeI3+BAfox1e?8o!$-EZh&aCAR4yLtZ{|EzuA~S0o`{?e^-w!_`LuZ^P=D+o#~UzYJJe!jlztMjYm zqLPv;_~G$r8v4mw9a0BDycirb&2poUd9I_cpL+ZDC7;C%Vn%!&Sd_qG1fdrruNGET z>38p5fx%-WT|y@$-~gPX;U>$bZ&vW2vGJ5KeXBNaq>&R}#wwALrdiprTu*OKMI!B= z?v1T)uOd{P<(BJtDAmuNZTYd~_z}r`++7xmj$cqeOHQW4`<$F$izKxJYXKMsoX&cv z0`o!}n}3HGrm=NKK`nsw09tQ6k)T|l_5P}-2Na))5C>QWLi!XUU&%bjGiZ-5U&qcu z_YfqUy9(Yj2+g?v+YrgySQy;J;|s+TEOgKvkqwL6Jb@G7!fuv>SHKRzsRSvX_Z&C1 z_azY}hH`H{uI0*_O|8WQ)n=s|rHGU5XV4xqUjDR4oG#-V=9)zuYW2_0S8 z!-p?6)xvEJ5j*Xm6>o+MPZC>yV8OTls0$jd=n}#Hz!_x#PKL@4ndfRPF@2YJH5>5>ZLCdS zOSfI7nUeRp3(e z;=_kvoNL*fB_2{zQZ8$L5!}{)Z@_cSe`WBpgHt-vKdSP(3E+yvGw`UpfKAA!b$z~- zsDLuOuU+WwS)JwB_rI>Ezx(s0Sw65L>~}=YA@JOyj!EmwakRN&2L0SQDbM!`iuVw{ zzKt;CmXKLv+CPPW85 zSy_7d{Wy-$TEovBB8{MEfL1sB8{W;p28f_I0kxfq3peI*u;ceKJVahsd;C>oqSjPX zoBr`{*2v9_w;~|Ae{xt~q$Fn-Wn)34J6ltaCYRu;2!sB?LB{&7xK4ZN^w$Oj4 zMc9#p@L17BjBUap>SoRI1||t1SGfDYc~Mc(N+-3*epa zO5YqjU-7iPE?Tmj_A~o-r(1rDze?RTl9nmRjIuH_Z@|Im`0?jZZY}zCP}z_)Ml44) zq2@5is8RT{HFbLG>Jjr*nMir@h;aw*BN<*;)q?Wa=H?Zs(ETIWo^uO0l_k&aFGVr&Cnj+>n^nX^FNdZW*HLVUQlo0j?|8Gg;MTJB!| z%L`9SfCTKxg3suaE45fgNOz!kAm6Kc^3K89hYxLG(^ovJ3EguP;XL4x=jYdh%QBrp zBMrXocMN|r9>Wd9%f(|B`V!cYSgklTpwrQZtp-n$nb1=S-1N6TdlIjG{m@hyRVa{O zS8Xw=_^EkNyKt`Gh)7%6hHqcKcHjb69|dwAl!JVcuX}s3QrKBoUVQlhWsty~f5E6$ zrsa`E;Q{D3OYal6c64@*rmK7S5dOc9{Fkj!rde9v^-|8Otz9d2W1&vuJZ7D;45AtM z0c*J5-qbSSdp4mwg2PX?eCDmS09@AW3h&H0jpaKt154A@oFgYV*FF^X4)H1p6Df1u zc-2*MRwapRofXu3V-s(XNtiv-4_~~$8m`I>N44sfmX`9bF#|jLX_<0|4xO%d)*lSU z<;jarelV+do}D(y)ASP_ArF{ADWMXt{MyC|c3qYnd|l_c*6C;QzB<{9WU9?% zM~Rsk?5bIqnKk_>Kaexn-G~?Cqdik?ZDSMicA>HE{>+3bCic>7kw%)SqvE-tZ2NpD`gIwUQ< zwz0uH;`0@Y>X=Yb%I5asR<>x*#q~Cqi~YZ@7FUb(rI7{hjxeN?)e)&e1jo&u{`&+; zLPLY>w52`LVQEG?GqaSkvc>cK>URCh&{&^#VOvY^R8ml2-M@cqe4G<1U$|M|_S?T1 zbRp$$=k%#ge&qMyZ*x=6A^$GH$Jg(M1=I~`?UO@tf|=gRGS z_qIFt*?yXvlV+uf?1Squ_-+uyx!ivmtELrhYcF1CA&5a|4M7a@!uSuwz5Xp)`cJ5E;oc1an9#Wwbhh;)aY1`cX{OPEZrVK>-B}Kf0cZf*z@}vs+^*r-D!OXul&d_1lLg zubVv%)L!h6KPJFY$48QL+Q>^o>Lsmu^fcMCnc7VbtKdBP*~Xvw@K%EsAgtNH|Ne^v z8oWmjk7dZdazNe*N=P{PaxrL~&Ioj+7(J3bMxVmI&Srs zPoENe-60=_u(Yq`5jgu`G(O-6vbUdsy(Jdmo+8b2}ACJ=wKnq<9#w4J{@W45AsvYequP-lB4YA4E-Or~1zg;iZFq9`G{Q><1U?C+zt<)Ne={-_Dyr-3kH03217r);E#yw^v#8YJROA(F-x9yYMsZt>s>>OOk}= zHDN5xhGVGuBQ zVC!t;BzHZRW}O4fKl z%?bN>BY&<;NxByBMpjf-s{Gi883{X!z*7-BmlV(QKipiXDQ?@W$ZrS~V+)&%*6kDd z?se>@Jx-ClbShXqjaZGycE3SXBO1GKKiGNb)T6`q!D)xoFjYVoHlGm9o6Y{lY@!qSY-6zJoPeD z7m3L-OmDH^^}o>mWJ{)OCfa*~=b_uZ?71hhu^Z{~jx{$=ZmkgKT+XHU4G2It%Bnu@ zS_>6_`x{ZmX`wft_J~ydy?pNdUPkA3JvHvk60+lJIyaYuRb%Gn=H%`*aq~+`svyzz zp5$a;m|0vT&>WLOJi*QaHxsseUc6Y6Qw4- z`WcB|P^vu0^6JeS1Ixb^RaHsPr{}+Z-92S)OF+>-RLsj~zctj+DXp%)j3hy#ivM5} zcxJ3zT$tt=@zn{8OvXb-J&8#&3AO^hBp`ALoT0zx(twN5P*eYTZTl~jn?58dOLXba zSi`@$rNf>V(+si-JI>wWpeN#Y_~`2=hey-_du)9@J>)cib{^rhf}Em+kWkm#x79g0 zs)*jW-$;`%qekB{htI(5oiW@<`uhW*XNtTEi2dNe0BU6rSE~yOAfEf-AU%kqdk@GT z6c(Pxd7y6#cfxjSd41zjGdmwt+ z*#N9KJOKsMLl9)!B!ICzJUoz&#;;-C;{Ilvj~h3=ziPlS@6StaF@OJ<#jHpDyFK)2 zqBM6`*mbCQsZxqOEipE+JIemW&rzUaP&D7So%U#7=~Q0 z+uQRN+|?s7W%(Y8i;K!>Yv6W`4niAgH>UpE2R12`LRbLIgKQuFe0 z%J-0;Y;T{z-3QGbLHoXfcixpYuX1ks_^;M_RuSJLGBWyY-?fh3tfXef!iImj@`HL-uU|fR`F_V ztcBqKUeVE7Flff3LR{?F$wArXK0N&L=wd#vzLvPM{tuytrH(PAVV`D(4pW1zGKb+s zUUqU<7Z-r|tf0G>l;EHAaFY>j@&KZqmp9Nb?~n1h@Ni=FmjeSbA|eYwg4t<>6cw#4 zbr@b{-xSSWg<~1djewzld z%35AI5Z36Wkf?y9Hw)k~UaPfHQJsW^ctcaO3PmhjOJqP=_S4s{eTiypAlRe-g{T0p> zkvGwD>g=_TCYvW8jIui^w>-0!a!miQPc)f?c%GHmFiaRN)`nXjG&XtbXS#P<>Lg4| zjLI&s7s&W!WwPu0@30a1QoLX^Dq%ur_2Z%L_k}7V&AgwzGqmoj7OSP(KQ+Japxn5_ zjVfBT$u5Wnv<{oPTa@`G-%S{NbPhAl>uKF!x?mH4)JaH<>~nXhQ>K zqk`>Ptsm{w{SB<+?5U<6ok}%i?rUK4-g|GFk7Bd?Ic&+B7Dy#1#qUm zD*jGx#(C|%t-Zc$M z5Z{Z8`P=NiK{ajm5zexCW}4^7i-GNR@76tt(M-f2b5m37hDOKp=lLR$Fu$ZN5P$IC z0VotOY;fE)kc2t{J(n!4e7Rt6Sb)Qaf>*5I%_Tp-xgWoA-sV|&vEPV~XM?XpoN?SN z0w6NoTcIQjWOjs6NNx`_3r`vvrVTK9!4Lu{jOSLONirq!-y`e>^^3}IrA1qoM~q(@ zBMcbr>RVtq)>&3m6wM8F%sq9a7ZOytg+)YAL-Qyl`!`&%{JAiAqFwTm2dq_q&g1;i zw~b`1Dc62Q1si#HS65ws?&ZxTMk8tl9z4gs;E$Yyf2ULYf9{GJFN77i2VIcI3n)d? zUIjir6}p2S()z|mcT%Af>KK5#kP3i&IV$}^?Vr?gg!%lFClR!8yH5Sj(xafb7{zXR zS=lWPgI5GN3-duJ+yJal?cBJ0Yn4ocazCr~eBfvvV@*-f3-~Ly?{NH2LpAa7<0E6? z4P~R*VFQOG zoofWRk8rhwzDUD`!4l*A60@?rycwi*-AN@!BDf(oIfcQb*;z)UEs~NutJBBhwr^Y> z_@A@+(w8s$=;>=QW(lm|Hiz+UDEeW@H%cfcH+LEXRs27vjL)1o>h)1If*bJVOMDUm zML<{fAV3->CLAiq{WW^&$)q8Sy1wp zM??6NvZ1E%aRvUFj0`@ASNgvH*_OZuFq6P+ zANFcQPfyRsj~|gp+~&|eja7r)fpIMW89Mv+rC}oPCLS`{Ns?zCeZ-oeqmzOg9NJQl zd#Jm%$YOGt#HQIlvD02>iRuwf2GA$)H2(WLyLW?*AaIlz(^A@4mVLv+&=|-AR<%m@ z9*#IC3{~SKl-EUQo@Y#wL*yP4-yK)RS-7|`#yJ4X3+>O#bC55^4zfWKgRIf9YoH8m z3!o)9QbFi|w@VQGCXl(@Y4~{xxE8`bx^gezjQqdZ9(2WYtdq~GHyJ!dn)(lt=(zi7 zuYK|n(y3@@h6V?3e~Jo-5;_O%hxmA1d;7eYm@dHeO5>A@o^bU>=L=5tDEJS_$sI#g zhwY-sRFLw3(8|n6S`Zc!J0vU1FMVI0Ur^8>Lzd8CK+=WFB$<|~fo90TGmkJxmC|W1 ze&$gPoHUjmWgL={^78gJK6Ofq@^MoWC^b4C&1cd322X>~bB1^?hH|htKqPueTXtG| zlnRZy4t&MHfPkAECwGJR@ee!{6mj?s%zh!1;lb22G^G6BANTh^Wo)cQ3Ga4cVPWmh zRA}FTT_6$~x5z}04CutgdfKtCj;wYgb|u*r@bA(#ZCPm=sv zd4FUwdf+&m2|+a|2;$^`n=lT0S5I)vTkbGMT`MXMMsU-qqrCw;=?kM-kuXyaQqJC- zB68=vaiUOnEL}hlXdNI0@RK5q5F9)`tN63S2;Gmvp6p|_4SFX}mM>7fJST;}3y|Yw zQu&c-s@Pct^^$@D4SPdXfQ{*lMt_P73BG=)Yv6H!`Q!aZd_E!DeTnmmy$doOc)?#> zBFG8Rf+3ThULEH!Dxll17Z??iFzt<+wF{Cdc(jOT_;TDzC7&%1-hssYwQJY1vu(l7 zKpl1a)-8Vjq_aZ3Sw{{5l;P%9efRFx)6-|j)G%r1>gJZ9=pd+{Aq%BUpM2NjP*}&* zCI6*AWJ$B=975~^9#UXf9FRKq6!mR4ZP^hhM=mW9Oe9rQ+OPm8VX+7>>bOwOx_~+$ z0knYt3j^mTtkaKXR_tAw9AYRDAf##lp<&)65KSx6ntN<%mBjD`Y9HgbaYlH+M2Xh!p=p$H=daf646mFEIZ9 z2gHJk5#f1t%o(EBidlLLVZzt}@Q33GvM`!(MkAl6N7eV^gHdZ)pFO)gGh>2c2*^Bu zC@wCpx>*ucLDccs4gkrh44>i%LWKSO=g%#UwCkX6Qhi5z3+$)4arqO?SpS>0cwZZ|`&UNa;K+S*jqwG9m~LgkZCJ-MT; zoe7_Y2*zahJ~`1rXzLPeZT2I?yRN{~*LM&@NCA`HDdth&l=wfvJf}1RZ#a+Y80n$YLpkxJAzWiCkjCHvoMG z{ct*Uobp~2Bz?EB7kvM$Ur-8_!7@#{`;wKA_*ZePo^X$B6mZx-yv0I4r^ultNsuFlSoI?K%+|i HT*Utaz^K(2 literal 0 HcmV?d00001 diff --git a/docs/src/examples/dynamics/xy-finiteT/figure-2.png b/docs/src/examples/dynamics/xy-finiteT/figure-2.png new file mode 100644 index 0000000000000000000000000000000000000000..508b940157d3eae1bcd3065d652e35d65a6638f1 GIT binary patch literal 40337 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 TZ$IgM00000NkvXXu0mjfAjg11 literal 0 HcmV?d00001 diff --git a/docs/src/examples/dynamics/xy-finiteT/figure-3.png b/docs/src/examples/dynamics/xy-finiteT/figure-3.png new file mode 100644 index 0000000000000000000000000000000000000000..9df5786028213b634b6aac1e6fc200bb2122f929 GIT binary patch literal 40669 zcmZsDcRZHw+y7r*G-Luj{u!k-t{e)!zY9g$^Xp;TtcE6QoDA!vgIXa)6zS*lKWcsxl?HrChg zJaL7ZhUS`&&(UkYiz&2@CnYBSTAP2h_V=&vwQEYgzwU=T9SY6K5fm3MQ`%fN8lqBW zpEkJD=RB^7pAAB#qb}kKKImFE%Mc?&71U`zRNS0tgKYp z?Jr$Ac0lP^;TQNgi~pvrumb1qFqBHD0xmH#~f`cFPc)Cr zkI$8k|JGN()OaO#sW-;%PzqT0)^ry$DYvK#rjpvH?r3OawEXMWI2YBx>j`&NRn-Y| zI<>C3p%>TQ-P*n+M%8^<*k52*ZqGE&VW(#v(}q@7qaifRXG+bs5O#KU;W07o&CL%= zOAkv+UvYDjl#$shzMF-Xm6cVNH|E6)|I?@YHrD>o)6<`b=FZQ~CQFxp{OHl>*qG(F z^DlfK6crhtIb(C_QYv0)Y2*a{V*kE<1o7a(gSS_Ua&vPdBemSz+_1h+oxl8AUT)?& zuz&xx^%eX{P(i`Bg^_v@FO6~yr^5qvb=lR`^0Kne%F8>uyWL0MMtuJK`7&=%Z*TA4 zzkgd=w2mGB*L5S>N1eX%&!_|)5|b@FG{(Q8Q=8KT?h-oJm3o1t?MYVG)s?OqqA? z+zAR&HZtnL*204qNfyBmT3T9`vwy6sv-~yH_3+`taRw0)5k^KvY&$F{o`tTi?ipj_ z9Y;Ki$CHn+v$N~nRcP+$!0z*McjuOM6<969TTM?-hlYlliOGnI&o?LRy>#i4v~Byi z`}2s1h=oamvuAxa|83x$*xF8JtA@Ry>gnzl6cXCMf4`2l_PZFqlXChCg;ov@4mLJP zsj1sJIL@3teaP#F8J@|OsOY#lx`qjNT+-JU*EreP`#L+z?YaaT>VyQvz=uwBwhEz0qvu5L_BOzHjm64KHY2Mp$bAL%wlLm1N&q8GS%C|N$!s+Wv zzQ)BD*Zw>*5ncKxmD;A0e%O*reOz2vm>_O(NshMM*{|kr@+!bTsxV;1=*YF-qJ+g{ zd!}s6MXnE{K?lUe!>9-%L;h-{*_*EcYth~9(mqS$*vf*c1_oOR3oJZJ&dw8xLPELE zo;^Dp(|q3`SGb|Gv-7o^!p@y!gv7;n3|jw|XFpO9r59f5=5g`x;Q74rUrQQXC@L)t znEQOFN+jH4x+fs%R*aUjsjy8vwC9-TT|nDT?h?veWEpa{&QtioyBVf zPBF8l=4LWN_Q;V7wcZA*suTs-726vZv9DKuPWIRxw93@pbLHo^_k!`^CUXr@oRa6Go z6kuUT@71MC9e0m5f4X(+R&Yp&l4&{WqtDN8@ta>5s4p(h^o|+~L)1}WXEiHTW?rOK^78F!@&7XJY_x{aHOY3^|>h4E}WMsx<`MJ0>6s4zTW$oHT)rsV{qd48NF^%uu8J3zoH*+>I;qs|;tw9~w=}?U>b7J#I z)&n-`H_9Q@xa*ZMX5PlYm65PZtw~>A`X7;$T*R`YA68aWkP)wc9-^ekMpdY;{yWoG z6cQ3rUtcdINO}zi`nDz=*tv;{TfZs8GAhf@%1XZJ6UM|R=)Sb-SDSy#``45KalN8q zk@P%zdhpLs{wau+(J1j7Dm&XKNN>C)to|&vtGBnewe`611%E2S)zwwtgj-~Pe}7yY z3yu@Ik;$z>y{yqJF4|P>f}1xR)>nV-IO_XrX`&U!u4meVDa`218Fg!VCMFvRE>RB0 z#u&abY)(zh=YgC5BH8z&S4NJlq|3N?e(xtEQlxE}+>R~%{JEG!Zt38#FRVVhXFC1x zW#2zP%uyx&F3;K@Oe-j`QCFvqXQWnfbaX`Xym#*&&I1JvQ@M#Kbx3?%T<6~o%0@Ro zY_Ek*^XKlnQG}(Wx_f%qh~b$TEnaOd+UI7aC@ScASqeT&Xe)2us&Uck=;-wI^?fWg zzlK9yUS5uM9+6da{2)ra?#xz2mz9#1rXVLD-l(g(JP@u^f2;|Wl!4**{MQ{E9G>$- zN4*V?neNgQK&dtp`_mLJgaRq!G9)S{R$5jz|D{HTuo$ZK(aTcQ!QBUJ$SX|V-ha)| zkTtB{vclwCm6OlEbsya1NPSr4lP73o_~9P)2RBqkrn+*;2(~@i-V4LZT3RhAF&4Sx zt6v!@ve7M~qu=BFjE#+znb*9Va3>?en0M@Xbm;KmH|he+%&~j*?&js?4dSiZ+nET$ zk%f|CXL9RR4-W-^BM*;Xz$cXCby)vXr%&TRWd;6AMfpukeBwE03Jio!A;@CIW#i(~ zVIlG8@#E$rw-Xc9a=Uo>_y+nveg15EE%Rurm1kO1bw+U{GA^gz33+04iSrErHm?#l<_?+dp)5Wp~*X8JFp5Xn14o zKa`xC_P`nbTjMn!-uLE;2rk&o?K!{*E*N!UK)B?TN7b>Z`FUpIUYFg1pn;i<&7P=+ z8LV+UImJ%G;?IvSiETVG&Xh#>CXa9sOXFhMtAE@C%l7S>&6-n90@*@36xEAypK7$t7U8!3vgkP{r@=e66Z#a%|qcpKe< zju9@y&R?qgOt(7^J|iPc9@{YPHdkPIlk&v*i@bZ)>7p}a#J7$ty}Z}QWNq5Gmae|W zEs1Q>x&i2T$Y-`rpeM)oj4aE#U7^P14*#AT7PNdstF(NLt#+*f{LH5*~}bo?fh9-^#CP zBjS2g6n*>>o+1U2Bzjim{5b=Icr=XcY)c~}HY`$SQ`7zG>a+~Ds%Nhq{olxZ^`jsJ z$alt!(J=E<65snPLNexn>S>4!S+|_%%$uAsO6v<0a*{`moHIB7^5#wOv-4p=fNYPl zvx73&s8u+kjz`o*af(wD#U>TO8MLuntHbr12J=HNA~sEF^hZb7^v|Ea`;_$h^X4W! z4HNG(02bo4*H{0KC_EfL2m1Se%?-$ih&*`t@@__HK>@YiODT44Zqw7JCq_qA0&MOT z6#O2GRU#*xhiWz3+eTdd{QSbp4stX84s32|xqVgcW68M_|Fk|ipE`BQ)3Yieq373h zkJ1%Y@*n|WVU6R*FU@_f9RG#3D$R8Zt4w=S#r<#EA;+f6M&+%B12p5^`6szTSO5N< znVO30F)lVCBknO&O@Dek`NY2Gt#M9iDN~04A`#TI((OytODQDk?3F zd)4@}l|3+`&HJ>|XU=f&@SN1W@X}B2IeTKqq>}f-_4hX7=GBQAjCWO=I1ZTRWoNtn z{be7oL22ZzFoX&t$IEofvgEn{;;pS$2We8f5kx^VwfW{};at7^b_D0m`#^k7sqS7(#b($eDN$d*aO3k$Ri3{Rds$&k84=SN3N$X=Z}g?2kJ6Dwt>sXlyJcp{Ja-;wN( zeSPt44P}pq-|IVmxsrGM^yxdS*Da~)H`9}>}(>t+=`f|a9uY`}qL#y-C` zgRVF~KR-E1Loos(MMeM=gxuR z0|-2cXZ**C-Xo$J&2fRFUSd&%Vj$?f4d_+hhYv5W{VC;(!ba!e;h7vC*XNH8yLq!R zC2)0VLNLDR>(?Egaf`oyJ73#SS6Bb`?Hlx*^3!KcwY9Yw7#J+R8o2vHxFg9-g%tv8pN8mac zA;4S{FXr#>fBEtpAX=RGE{G53iWDyMDEfH=JdBNwl9Q90wo=$0SeYWjou*1&4AmDN zd=;o9w*ipQAmM}}K02405+#O@gMPIIJ{dKg$e}h za8yH@{8fh<`dd#ZzVCi|sg+}qhDPl%Zo1)_+gM~&l;u^&1Lt^VH>V4;-lpr}A`8{e zJgX`>_q3`k-Ugo_7;iWGp+xP<{@BKl4Vwl)YrPXECVL+kfoY+c24_AQpk6a^`us$5 zJzI6{a~we&7GIov;Xo1 zqLtYBT5l*V^z>2d>wcOaB)k_a2#`IRnc3L`qM~*OKWE5Y0U>^Sg=xDKB~gx=%DhAI z^*|Z=j^VqdkWKX!v9ph?A;i5}Uup%UMr-hzAIgl6m-PH@l6n_<%+ZbYbug}4|20nt zEh#A}0J6WKe;qh5XJkx8(@xT=piw~p>M79a>FNq%dm%3`4>^aN_&zsx=+Gg6f*Oau zhtS0&QnhVuZE0v|7Aw)6XF;|=ZODnXbQ$KxMS4y#UO9KQ6DJBQt2Z>ifB)|JWAORa z*)x0h7FIfb1ROQd(-X&DS5*85Tne}x8mp&x2YtWR=O;+n=*&#D<3}+ZHvm+Z!Dj}$ zSmy?xvmM>`-NNx>=?h%Fg~c!+ImEhaSmMFKjLggp+%VpVb&fG`bK@!A3g?EEjST<= z9OF-9WF)95-md7ugUT-Jzi1gWDBv_SN95%E0fznm{sR8Rp5D53YqFSmOMAQXwU)h+ zfRSISukIHXZfa<_grfo7bQ>)teheKSG#NjWzUcxgfYCu`K#3pi z;3Olsxw*gk{bcm}+6t<*Ynt_$eNO>E^*`V{lrfaUE3U4?i{5xoJWK|9`Ve!Q&z1vK zmvQGxZljb5&Fg<>%TAv3_iUI40M!k)lc$YS=h-vs|q|xRsLz(BP}kU9!=!#Ruj;q?j`Y*(ZGif z9<2Tza1qg=g#_@}=DncpNgbW5o}LBktT+$CkE_ES9UM$w_#T>=IRmuVmLeG)9WBAk z>+ZTZdc5V4nHXn#waWdHlI5kPoL^c-Mn>SX-0?IqLVoKj72cMptw3Z{oX`rOWJBB# z>Gzkq>?=z1iH&HZNC_QgJ+ zousASdnaP~6Xo)TW#2H}^#~5#KgTnJ8>FMBKYjZ2z}>2f;$qP~dkXH~Z|d#!z(u0j z+`k{*ICj?5l$H56^f(jIGd%O*_a8h6dK_VDVsiiC!w-FZ?3|plv$IiO`GCpZwAzNQ$K}o6?$71<)d&Om@sC{_21s0V{w_8?`i8ygC027%2+ z%bQYCQaOX(6W_i?stIaUk`swZN$Mv~aB^}!{^Vq0x)cBw4mG0gY_zGU_Qi`A&z?=K zsE~|mXlZVq{!lW2Tg9CVe?pO2Tb@M^{q>+j7C0Ym?BvOl;D7jhTvgNBX+;pUO)kqHg-@m?Eb<7*e&EnGyk?$;9&%Sbe z`DIw`$&%Rd)=p(3S6~X1ZqD*q>8X4XKUl zlnOfbdh+Lld1R8vcjd94t2_L+x*4efkUFC}01l(@Me7ojG&=(S@X?aiZh zbBb)d;5)8RL zN2W|k{Tj;Cbjszc%CbcK?v=Xixd%7QmCu~{kaIk0o2x@@yjk zW6P_h7nG@hYDq?hkGJ)dXHWmaSU$ksQ>`XINlZ;mF>oK$7|M@J&&c52Mtf;rF|C*6 zJ2LEnl2KP#^XE(-dY{aWunTVIz5dv~e^vamoQ|BYdbofg%b6R2mc{qx>5j$e&fD)S z%_gUwetN|Xt2TaRgizadvHjhW7)`Lp=|ZE5e5N^OTkM0TNv-0y%e|cxDwOfDEjF%7 z%;zkkupgTAOt$`Th`h@r8184L(OBR*UF|S;fdV^b>G_*TS5CaCn(lg!g!o!V=QjjbL1&!zIP_!XG4|Pw-8ZKPyj3QC%8L$x7iEd%A_QY z-KsE&AT{9lW-0nBC@6&gf)Wk&(%QyGUQVvW?D_3x>o>pR;^Iywi%F)op}{k5mr_%2 z;P|t$cyX~#55gEkfMn~%RB2o2Mah6W>%DVBKpYTV@i5&yJSd5S2M>yxKACDul}4SP zqY_8|22gtQM&;tgF_)LC-&)0At@r8(W$nslm9gk*J81X*{gRm0UUojdjmfM)Lsk?m zakFOv&7)Bq2e{=u?nA&Vbe7q*YaFD%=u8Q>q!lGWG`i{ObpZG9@C4?aI|WpP3QJE% z2bwwgKK*0NOsvKa5ALeopns_!vmepj0NenWSy*0v;X3jLXc9P1t$CqwM__HhM)kvo z`($L2d1?3Rr1ieI=7l$gk7#RS!!PF!-<6wtW@N-|sxup$-)-#O3%I{SL+90Z7nWC6 z-fW19iTQ`CCduW*bu3Tu)AZZ7S-H4CM%ISwD2VIF1ZZh#<97Xhc>lhrc{ND|ICSVL ziW*=Ntc1j?_BD^nRs0TC^Cj*UOQxS4#&(b8l_M9|-p&w;H-nAF#g&qr%*n^6liLNe zos8_ZHlu287Z#G|3-!3 zZ~+t!J8SD--`=OA;wAiC2e5#ikuJl@!ND4VS_32owy|&DK3IlOA?HCN0WyGDpIO$2 zy1d%pAmTDI{KlK&vFxomrPiU#C)+dS>0j4t$@JgR~FOGtt09YQi zZi+h|#S#BgFYVwo&>mzdK53g<<5YV}_dz1@z}rks+5OMa{qsaQNIz8czZXI9GLeW% zIg_H_iYvqw^flbuxtD&=Lqp%eJ0&Ubz*+VAXl3v(j7!Zl&-dZa;mcnzH$MvZ`q^Co zXxwi{s`TXB2sY?8iR#pmq$ zdx9hs6+t+El#>NDSTXX+|H3X!Jl3DXDSjRvj^Xj+RD^}2V^LYz=I^<4#>OAvbh&(f zvgI3ih@AJrJ<-Sm&*A?WtNXpU9&JS|Z z!W9@1a8m(mw6)vd=I7V`q}>u4(q#30s;N{;HDT2I_xIFWhZ9s{_1>L_7 z<@O>9J;bG*Uqkln+7+(XmzR?>Ix#_|1gQrP?UJ>%LclsS;-2oWfjIoHr%yRu2^4w4 z*px>O)G|A}xycepK@kFHdJAW7PfxC>Fbgd*C z?~g&bB|&VG&BewY$>JB72&kUF78irEASiTX9xzwueZdw1z5_B| zIKE5i<_nY%@G>~!*aHek2&4$JM$F9a_CLvz)zRo?CcvVR@=6Gw``UBg@i_hC()t%2 zEE$)V?>&E>s$0mWSGkiTic0)Di=BPmlzn#I)z13R->q>;dRMRuI3m>WupxoL@rE6U z3Ug(${U{h7PV&Q|qWQt+2{2I3j{_W@KYt#jl$=OOORKJ_fh)#ObPf*sjlSK&!;{V- zGd?}N3MKtQwMWGI{j!`Km0G6To6F#7gXNa0nwrhUXCDs>sjJQ0E?TUmmS{Glv!zHq zWpMTCvW;N}(h_?Z86&7k25@rHzs+=~;b1%qpue|t1LxCWLqtb2b{(vMVB!-o!bc2oHHvhy#r&T2u~sIKM?0L!weFp+4}Z%-fn)}Bc( zt`U)l^TViUxf@!amY&|;LOVxCz4XJ-Zx{mdyX25k5=3$BhbbJb@5p_*BQ~v7kYqA!@ zM0t(eE-0DUBTA+;=-bv8FJ8gs6`WXE92*rsbg{w&Ct-Zs;q;^MP_@Qb1lj!<%-Y}P z6l(3g(VW*E0|UKYqTlEsZcXM@J_5QUL4s%@&X~=p_5S(cn&n4 zcW}UP;zRYGPvpOR$$x&0f)M5;nce3eSw~b={U&k1lR6o)ivTKqiaQ8bz;$GLPI|w) z!I=jzCLR9>h>BZMZQHHr=$kumC}81r#jEO6b2HF%L`rfRZCjN$MPeaSH;j4i-@i2% zlahNV`B?etii-H9IDSIHZB#8VaP!?eb>elr&cW*c4F@etiL)D_^5OwwPLK5gZ*t^A%k+H_u2t{!u6i_0TSb307DR**;^LfF?j+eNkc<~TF&9a&@9)W(#9LX+6Gnucinf>Tu?+*6bv|LS3!Qh zy`v*SS5K=>`THNe^var)CEL4~#?w0pn?Vx0wfQ3|@nCQ7u8sD(0$EjjE4 zDx;1Nz*kee&XOKUr6Z@@@m;LQJ4{81zl{443MsdFlJWk%d&f?mEJ9bU%ty)yggpNo zs~b-9r%#_y2Gv>;_Ua*RA+*X(Nlx~CqVW3oc^ai&t5D7r9Tf-P8a*?q?;SSQ)@sw# zZ)~6j9A5t)l=o#c*i0@zCL5{x6D&{RJslXPbB2YRkHZD ziyzv5rg&jt;T{7wkc@y*^9lLrXHprh1>5&8P^j=WLQ^a&EG#T4s=?0X*n1cIzN)hF z5ab{Lr_f1iDk>jeU&wG*AbP5`gAzg$bg;LFsnB-!=(#uXb$o5Dt&R|g(Z$B!zI*r1 z<{-1vUe=7Tt7F&C%Xd57QVv=Wg101bx(%+h(8wqnFZ&Lyoe_v)`gnV@NH>8LAFa(wy0gu7ON$KzR6ey`F8c8y%C0iK3(^!qCtQK0Q1yhOu-O7-K92WoHroIF17kxWZ zDexcOZMZxSJ0u~u7h!<*3^~=ar?s{5ksWvd2;Ep{fklxr93ZH3PrpXK`fiWRC&IXB z9$BY`w@ceRtFHcx+NYnAWbzNP$7gIF6R!8(%81d|$Zq5&{db8|jI zKu#`Ip_EkFAot5$I*sOF3c!JFr&{~w0bnx_4fqsP%!-wDabO9m*v1;P|Gn(}U%vPc zK669i{qf@m2mmCzwQ+xSQ#X0`weHaNq~CnJ)k03Ox8n=<5AxTc4G)G|JV%4r2 zDv+H{wXFsyZH^ZBOYmlBojIapsBipnDLrXqWw+K-29BuZuI7;HGXlj6Uxk`F5+xqL zi>okYd*!gG2Xny*_PvM*I9e-2RJ_^Cm;Y{Umu}BedIcJe&T#*}a7!+>2XpD!$JB~u z)>5h1wf{!Kb`S*C6QpH#hk@>IY*c<(*I_XEaeFEBq-NJ~QL6@+0xEg72@Ufq^5kvRp4m zvX4U`*&$`!L<*yAW2lGMX)$ZnH$m|}b$-_%)pCH)lS1*!i+WImMi#w+#30X-tbTMe z5J$xHIx^&b!Ur-wb!za%wdAF=G^Kwl7jerAz6N@F@V(qn2dRjIGBU8`YAcVXp@TzW z03tZq#*Rx0*(xH}Y&(Ec#COEg+SazFrlx+nf*_DrT9Ra!VDWryl=3^ibvUk(>RD3S z6uoniP^X1}Q{%2?^ZhI{zJ9TX4r!#MX7{`0YD@>kw?-!*S&A= z{StcA7myMC0f^TN;mj>w+wJR{PdWMMr7E<~ng+$Sf5>@Usd%?c2Vv2O*jPOsol6p2 zun3?=mA|)r8@?50DXJkLB*ODKqWSPWp6I~4Lu&uE!HXUKCpu6TfE8VTe?KcYfp{WB zfgEe;g9o)WGz1FEKYiCs*b^Z$ERgj;ml!%dQXjo-Bc>A_7rG(%PhQV749=m)w#?e3 zwMDr{1Q6-v8jvsStk*J!(WQBGZZo^YP97`0*01>fv<0 z9Xs@LyTW-g^;A9%cOH_>dhQ5yvKH7+ODhr;=a>Mhayb)#K+n+7KWG==URwjbWb&E1 zr#+BJHRhtf4WHm3SxYID4qZM2WnNl1z<{82>kZCzXfr@MFe+b8H2zVcf&wwf3^xq55T(i-3VbCMH#?k8L@DiW-59PC=Aq!-q&S$nRtiR&{^^d3z4>iL%2NEMR9%?)YK=3Ik}@6 z1ovFT78nF1&CSW#6_E*21Ac!qDd`NVyrHUt^*(sNecjtvqfX_=M$DIhqI--sPa_0`})41uR-J;H)l~xb661&<~$;y z9XjS|Adr}br`}XU8{T$QME{qFdX3btp$Oe+73#yyx1EJsx89j*;ZRnr>k)(%lBb%f z+mIyRbodm>V!Peq_}X#B`@&Ju--G~nIj&kfxiz_b9EQ}cD zPdd~p9dJ_&_1ORM-JtDG?WKSH-s$@WZ>pZl*WKixV}H?GtCzwt^dtdI(s{Y#CVM_KWQkBD=b zsh!ko~ZU*+(Djabw&; zp^WU=IZv}_)vI`)oHXX!MGGV9Q!y;c@^2!xIaTnLT&!+BW`1dfGWf{=C_vs8of4r? z>75$JA9s-_OO-#{&c~hJ$%hN1bl^N5$8_Z=J&)6|$20exrC1&g(JpP>NhLcY5+cAi zW*ymfp?Vh+%t!l^o_s?BudmJK-~y$RO+yMljv76On-(tUbLx6cYOb;PPK^_?xa3E< z(nl1;NSosF7LnIqMD=;qSW?F>4qH)IHR&=LY$3hb9a@^~oBdqdU-9uMvkcMX{iu3~wD5tsX4|!`HQhZN`w=s~|NyWvj z94^53T2J?jwZN(7t$CLiRah>>9Lc4*K`VF>dQ;PDj)B$#{G`h{aLqKF@lakxmniA) zWX3;Y7h-#w{+8I0Wf8QGHn=H+x2E~n{kuXMt^D7{*t%$85LUFADm>@T5-Y^ozzOUQ zE|#xV4*%0d@@cJSy`_GatYfW7*GKl=Xjq&j0Nqn|_UO za8v(#(c&`xlCY|bS&|Q}($IL!T2hfI8dmT2Bk{pLt(EBvyEa(`!gC@--(8#T{M9>d z&O|xgYv{PJ&BrStX#4^>rNKewpB3$ru83R=L&L_@PRS)Cc)-w*G1^9VbDT7?1d$jH zS3DaMb|{N@p?Vc--SXJIl&KTS5Y3^^@{neArP+W^|AT&XcbKgcsmq4{(@n94% z{q{~JrNG|%2H+_`7|6FFK8f-s8v~dGtVd57+|+~ued0|UnlAXw&6h6~*Lk;Y%`Pnb z*j01GL-4(zt0YBK+CvsejcLat!5YQ}Lc(^hX?XT|>1~hKcmf3gjd$pon-BtCkiwCU zNK|;w9{ZSOY1^OAsM- zDM!4VEi44IF@R@PVUpMu6cmJH0m7IF&|!>H&4$u`2i5c*3X!*$MS_K6!d9QvhK!XDrXNrrlf;x9Eq zN9fK=92XmyEZ&*V-EqI+%Yo}2UM%$zyp1BWH;i2_i-)6htSfD0y1UIHEL6n*g`KnW zo*V(<7_^7(pT~u_Auxgt`ARBPTZ@`bF-zR?8?ZmLxUDZ-U~N(}^CROv<#GJ^`d(-Y zdw!qHMr2)!c~8UQD$U&du6HUtW^Xye^G@%l&SH;`5R7S~p8ZaO7ICZo9|bE4S;4Dn=C zk8vFCjr*Wu6ts`KT1YK!^N+xeuQE4w&Kqh3LEgm30H&5I5g7#ULGrZjm^Vl(#`17C zWWFa3K(WDu}^?dM9R%1qD@N zu7wF#vWfJE21H(EE-=YgW|4bnM=jE~LVJ;_T7QH0)yD7ir%%01Oj2@lFS@!)Xn+4$ z_7w))ur2&W(92!BcA>eb9Y22d+_`!WU=2t%U{UbaV5x8_4$NWXK?n|oQ>$A%I-yF1zPZx844ggJtr41&vd+%?IgF(W7YmAU2 zUM<0}nhun@;@;3!lYHgk#U|9Gs`_IJax5wtP)JveUC-Nc$p#6~6&cW$T3anjvy1%@ zHZfCYk=r^lY(RFHRJ7w$TT}am*{a!3j5usZ`9j*Y%KElV=Lff!NI}cxdH2ojZl6fCo#h& z=RQsw+lbk@(y%ZZ;$B{!HH^D)1(Hne>4~`@S>Ip6@l&(21DJu{eusBD?Z?DuVC;7W zioGmql9?KHNqZCP^}<*iG!OYexco3 z3e=+6ssi>kr8G=Ycsq5CjWk4DLc&kD2M{Cbl^_(i-tX7=c&a~qQf63Jo$l<3t!k@% z3w7_EM15ie+ihs9Icb^sGi|Uh&TCml%1!^51%NaG2iIr`%2Ay3f_E*{20lK%l-tOlBqkmN zFkk8G@AvM?IgT?0_3`4nTd1DvU#oEE*OUeDtPhC+B+BYOedaQMT1e2|9Ldn!#Td;84HbA zLFBa(k%WCMHjmwSky{IuPWSTOfsCWqsxXMLF7H8F z-mo_vc+hz8j*g^3v;R>8L;52zYz{HV*tqkWJIa|4XEv1tOVvfzKQTMMgm4&L|I^2I zcG@T~Crb;cTLC#T@~?G8&n)%TgE}!5h~a4nSE#PU_3z)EAmwZEizTOLW-=;4sj53Z zY^<0Sh@ygIaOE@iYuDCLJU$#Q$g4RKcy*>1o|m7LnfQa(et!nCs=3Ej{e8*X~L{gHEWRbQfpN3grh4c*3W{ zTB6@RpnM&lo?lz~`n26^Wg1dbDrhrZKTY*7zw#0Fwo3iV?`#Rm3Dd0>O*aQZ;(+F!xIc zRaZ*A`fQZChxSBVhucy5tWP?t-)ik-80sOt|5;zXfU4FiknF}$g9aT1nqD1i*OWAqQl7TCM6tW3#$yy@00hLnGO#uun)Xkxh! z&Af}|IhiCH6alPo{*kpN$)5Q$KaUUx5Cqeg?P>-M!jt1U+rSa0StES}Dyer|emK~7 zn)FQ&I692X%w8TI8A^eQ$*uVPj-$Q@nvpD<^OY~Gcq%w9SQp&RSk`AWK#0tyVnd@S)`>qySm5-4B$f%l-{$4 z`oFP0KL4wC%-q~6 zf`Z5vNndtRULN-!P``6$s}G_tn2vkPc~D9!cp3mO6H&7G_^r|EJaDve3#J1eHa6e> zQ>%O^USSMi1JljCOecJg?A1ZirB46t#}xXUnOnMk|*7-s4y71 z1bl=*up2LDgxWaT$Z7UFv1;--jqPP=%;%Fvf}G8TS@5R#E`rhhSsfVn-DL~8PJ2&6 zQ~l)6v!Y2W!SISD{IMI*O(AI8N^l`pjxnG$sP^XupWxd^P|IyP?lQiDGAbk_#85x% zyDj>dfPPzW-Ld;AmqKWC!pSzZMVq4ESxHWq=LB|5dyt|v|7<_IX!>3yor(Z2_i{-a z4^QL26-YT^igIDquYXb+ad!q-4hu#P-mH@YkOzwX|zr154@Ld;V1R^x*YHHe9ihP9rsZ+pALMgUT zL2=&52n#MxNYils2m+1_X4A3h=?QOq83ZDIeld1VP8k^)44m3pT2k0*jm|siD8b6T zMDlX?o9_}bH_TGT&3ktj((w;D?#a zbu@TVG#+^(2!i0-QmLEg_ZOR1IxLMh1BqeODhkG}c7}wdim&fqXw`1Kq`95vs*K%K z8_WDZr!{RoZ_9#Ec7LL>88dg_JxcoO9pqW%jzfDKbW}Gt_g`OG9Hqw`761!>q8i4u zT0+$G93O7&B!5&sE|*z&CqL@0K%AJ$^`JE$F5fZAV2!Su%(t48JT6}KNmlhmP+k6U z;mv0+z!)h=6`6^FrcjD2vml+J_kkz1vas`ng|vL@Pd`cn%0EjII(rn0ue@lW$`p#z zJ$WPKwUblT)xw7rw1OAHzFz$LDN6CK-UFyW9;TMZpRtG8}f>i;F$#c{KgpDh)4u@eCdM+5w~s)R$p~=aw^Wv9fJ^y%NRGYqg=h;sWKR; zI$Pj0mqQ-(8fU7jt0HjoA9x%S9i5h@Cf;rN&!0_90wGrm{bU*C(1(+4I#RdLD&e`u zm8#o)BAV-g0)9~5D=U}r!7xOT78;wH($MxR&CfsN(0d>0PlT=i!h1q`mWqnXeV+v6 zOM#QCpO0U7;oApa3O~Vsj4Y%jkb3ZBdwYANRzN@S8;tRyUtpiy#n*JiHYRxa#EVhZ z*L~GYahc>kq`a~jDx^nxb;OEcd~g`2pyiPU!t+?qk{fe5AYy2dU;Y1>M=_6$IEf=# z-qO}KSm|i&@BgCOcQ1GME#azrX4=M#vR6wD*eG`&F%k&h1<>G}*78wI9y~wC#UZK1!m^v$l1Jj@d6o)#eW;usI+NB#Ustys#2f?O(YJ0P z87^Z5Gfzl8ub^ONdK#np&i&=2Q8#$^30{)%VtEg@uP5BxeKp5RCwvW=TR?WyKX5mE z&j-S{2t8uY1T6O%BVn-FIOHF8-0c@Lku^{=#w6>@uC`4-jgh^kLhaY-trcE74I*4_ zeK8qQ1Cz9~l5ub{iJ)pI6}E7>?=h{DW?1&;%j!nOKV7v`$1MKDtSZEITzT3)mm1gRqv$BfU0miNqwU`o86FMQ?`uJ;bdx_{%wFS3%IgtDVTl29SpNo0hqA}gDO z5XxQ=2~lL0nJrXCh>RjLQX*N&4n>~Vb$@@q<9Pmg{L!KN?z*ne^%?K?dA`B_>v*&JR=I@XN5Q@vnj9+><>ge28%g&I}$*QjB8BA2z{GJRL5*2(*IP}&FjEHtg zH1#7P=yJ5agP$T>C;gjnjKJ;$#qu$KrvxLzbh~-qeOI9ffw9lW*B9Cq;8-LC7&g_i zm#{++?x00PU$r*fGl`|$(hH!$17^mWQ;!ty_Pqa_K_H;tMB|yQll$x$B>`{(6*aZp z!1I)+^#FGeDuD7bHqwT!@7|#lV|0;eR6%6%jj8dIy&RAwfS5y#NQ{Rgs&*kUnFS=9D&s{;@PyO_1TXqO z?1tMh6VUy3DQ2mTdtIT3v@)~I|M7r|gn(v0MaIh&7uL}5)7}9$H#dj!9EL1er|-Kt zpWf9U@-k&6j80D@)Mf*GsmSFTW(5O_BzOcg?mfk(nV}RWo>~~*M5=i=w{SI=F7Ju7 z1?!Kgsj&O|GolpAzFA(IlfAVH6Y=tLT>Auo)F*Ah>^1__S&Pi)t}2m~ytpT_mfY3V z|45ZeCrXLdiG|^%_q4+63D@c=9s2bCUzX-7#vMxcW=h*SzEvx6?F->goH<$hX75pw*~_f*GfH_Bp&!GmrKAR$TD~|xd-?J& zo=ONQ03`R~wnlK8?Y~_L4-*nRpuOW!41x9tpe&U4f*Hy&n$(@V*y8wB4|A#m>2C0p0>=72KmWDtnkK*;Y)|`J zusdS?=aTV+f94NVC|LHv2wdbin(>I6ARQO}+V`O@u*|QWINzdNWos?amIU(pQIz0i6wpC zMYxlcWC%MDHdU=%ydOQCSmfw-uQ+#`h)^~><4mvxCEn-sib~-|x?$4?j*7poS{DC< zCW)f9g;5eOv9<|U^j6qFe$CBwTHAY7p0$}TQu4V@$&ss3p&R;41)wyP)HSF8J-fM8 zPk%o@ny+@UJo|#)Wt6C;Lgan^+@0sm$<@CFhSx~1nnlSD4iR+~ut-QtzkHhkwt5PG zk5dZfc4tT?Z>eZ-vnUn!mrK(X%#9|st^KEV;D^_gs$<^knMaQvKAf7H^F^kKT84a# zcbEU9vIHtHcle=~Dhz~)?G~W93Lc)$7Gt)m&E$s@Px&fxf9E+bz+Ik_k^&YRnU$Lo zPY^1&7nVt+lBA`jfdlU~uttLj#r7PEFNqyqyMo_v?<=|d?)l@JZo1MhbqxWXyVt$xk6O-*DFB{e3I2)IrN;Nk(M@*V>94dz+ zNj*tSSunnT{stBySZI)qc8q2p%77MfIxg8)kU_&?9>p%vHZX7k>Q@4H+&elBDe?7f zaM-cI2!kni`wvj2AR|*xl{qCTS?Qe*fh9eUlTx>1KiAAq~zEey1{S0p7RQHlKm+|(zA?RFDlC`uYu z0wL_~T^V$9=w;FHg+y_ksU4!kYJLNKB|Q$|>myZiQQk=Z(s zk-fYh&fi%u5cGDkMibSNxPZXhuU~JYghvH_)5RrcA`}jm7{eG#C#NfgNyS-NLEKat zY#JnVp=CHMY;gDQ-^aN>4Gsz@w_to87N+qx5^5JN)WRBvI=}UWy1+8NIq=M6k$2_1 zv8t>zQk+fkYWzW3**e-Bs%QS4Kz8=t6Pz zCAe}9oAB-3n+WFzgr2cJ?bcqk}SuQ`XHkwmBCki?J+tE*Rp^oQbn2e^Co}w6*1-`Gq={Yp+&* zA4=9z5IgSfr`@JvtT!O~!zPKMQvxMh9^V}hHZJvdNZ^v^kaDX+KYYpQumabIcC%Wt zyB(Gr(wjAz6GUAto{LU@Q!Mh#1_Me1e<(yZBzBoXKUBAkW}hEpy;N zknmmc8!cktcPcycX9Sre@_Zv?;cc@8whW^o7_PPD<%{`!ebmUV+#-tmo}5AZ*o3YG z3@m{l7>|}g8*ll(t<7$@at;#6);Hj4u;&x2c%tv##s-DiK9`pac3Vku!V66Xo%v$E zRQ*QE%FXzuc82SyXORboEv2%!cpU+s?}CZg7;1;s0jPi$mzG@J-H~RPBw^1IJ+Z!dE9}1;o6*BdV4tvZ~Fr0D(}3mV7#ti;g+=|f4Y{c zJC(%6L(Hz#k7o|qsr)KGp=0Bxepp+ZLt~F?_2%)qj-m&TALA`uu~YBf9XIqq^W3>_ zuGPq(^qHNS^29P@XN5`~2C}oYP{aO1bHEb>sVR~9RDiwvn+r_)+(9@YFfd(rtn~&h zh@~XI25E!gN;;3+A8|U)rm1Daz^k#K{7K=>OqGsqqN#}EO{3TJCZp#Me?7i`Uknz04U!5YB(-!`-?+Bqh-(9(dg~sEUD*85SK~4R-awQO zF-{rMBOs9|c>qF0q|W_Py}T8#x;grM_4o^)><=8OD5tRlAk-1{hCMJTbc0Jj&Ks9FMcliBKmE^3uOO5>gsB`;sR_ux7}#f!jJRI>0$>*V$} zHd;Wm41ps!Eu%^YLr2+kM27(lS?+IY$^y=B=Z}2U0B&*3lB9o+@3V8aI8%K&*D}a@ z<}}As=5VvQfsDBee9rH5_Z7l*;kU?G$5^B5MY;5n$M6pz@f<3`bI{}$# z^0Q-%K?+CP)3nI{%#0P=VP&L4Mgh$8X#G=CMnIX7?%47A)vK95rw|39cTbL0^A4v#VF-MV{c{__THtG!yjRe{^|&ey%P>0fnqic24U!|4)#3s*!Q|5Y;XJef zBIL4frUZOtOP{5ssaTMgcm%N_sv7_pd$@={b(Zg#9*{HEXzw0%V>#BTd~lh2)a4{r zFWhO6xY#?%;h?%lMz$ab=A{~glbF>1j*shKtX9eP6^OpUrMSo&i=_cF<;|D#wa762 z^9NyWz|@kt!|;F05WR{8k8lTA9gywvf&%qiU1C`=SbUYXq?#&T;bVBM{8HVY&J079r8Rn>|t!|_3y2W0&yFtSfGT2eRv6L#H#%v zDO4u7xe(lhGMl)5d^zg<_jjRn&>K`)rvM^;`UJe@#=HCc#5f+po%RW=jvk%K5;C0g zcmqDAmq`OE>0~NxNJ`bLg7$*rW#1RFO=m%sO6w19*_X+mUk|JB zMurV7g!?;pdf_;$t2f~CeyaK8AA|$=^u>)$ij4@BQe^Q-J}Nxo7*t*u7&W5eDH%E# zul{+t@Pn`R(64fDt}5A+$!4tmfQ=xmL{~Hi*?;?lh)Go!)DkT%lX#Hz&T1$!s67y> zPdRb-x}!}Z`M$@{BBoJyBtOMwJZHa8pYQ zF+mqQFxCMup$=oC3|Yw*Y)vk=-u&0!Q6niGMJ<*}@S|mbL$KvvRHQKGMfigB*n=U^pT8K&J@|K$~M%#%jR$ z;uC4}nvGHS*S&%z$nA|nya^5#|38X@A;70?oGFJ_?x;|}j9gA{_W8YeigM+~KIH0o zWZz_`To+!~%i;XjL9-1!veRG*Sa#e%3kAz%LXspr^P`VOjz2KscR zFq=?C+oleWsmTcL)io80_md1aPIq1Ip6QAu?z_v*ugWR&LeD9;Qi`e3fUe61blsizzl8xq>`m0A^{9K3*?sr?lRHCHj5X2^ zRJvTk9Lc(QDSN{3bWtW>pWfZIlT^VzNnt&LervxruTqS+4%29n60d`(x4}wW*CKg( z#p}aOYjdKfSEQ9={!pJgDAOr-;=J3b^>b4Z4CzOc*!O?nPK{Qm(;>?}xIf^`?(oK~ zu8GmfwBwFJwF+h7S0oMg@wo{^a<97a#<_@+`8sOz|Jnb5it*3T--z|1m;IYc*)J6K zoYTySCYArv$g|EDjabcU6FN2C3x}_$3|J@^o@(Rn?CfDO$R$(!Suw88QY0KJThr$1 zmMz6V<~8pidG$TX4r80M{D0JzdiRz-9QJk^nJE#m^Od);bEaN2y;+zft?Rj*B|ra7 zo$q+w4*8gy+=PAO;YUUuHBWH!{J0e2B#~4ecGXPxUSIbf9)+_L)GpH!j5++74*BPI zS)J3Y^4-j#Ba{EK>jVFw!7^+5-Zv3ljv=Q*OH-u#=XaEk%LR&`2<@S|eYPV&(S3gf zUzJC%&FIOFJ7?Xwsg}OHJvnybsAF~ZlAcoc)u1qEaZ9z=XGr)Jf;_khlpo7~9Aned zjuw+n8lb;S$1Co7gsaVEbXZMVuzNu3$F;DG_eqrh?llzLKL6y`ynxcI$%jxChf&9D zj>*yhq0lHFf#WOX-)HvNa`v~3<-aa}8vgoAnu7jynL)RX{R!2b13q+WK~!^_Thvb` z(>dzYtuB=Q>9lXWvYr0lxw9r=KGaYpIiww4t1|KF^8QIWipvx}6O&W_QWeV2Kc|uv z3f`SkKAw2E%DdNd@NQA{!9Z?WC*S?GPxF77(y66>*4<;76rH-f%9YI#x-V;Ea4Uk! zA#~ba(K_~76N9WhZH7BmZ6{`JVgHMfaL7QipuK&c-gcIgABRY^onQImO+n zps#Sxn_ zuBXJS9o5d5hs8y>$}H@4^bdI|A;lN2r*F;N{59Zds_-|HK4X^d+3v69^^fmPU5Vn? z4xdVq!XYUt%AlYsvJER3^nbrm zDuP^q^CWFX5PCGQ37`xdB5398ibMxdmQTqlUlr+MFi8Oh^5R%Av)w0wHCU$Lmg2 z%>$hh2K(I35O`{ih)24Jk-oP18h*udoNS;h^h&;mE~O3-z>(6@(itR*5X?sF{be|h zN=en&k!0(@wAx%>FGsk8P6fuO_o=6M5l#Xa0-6Z#(0>TBhN^07TO02slxCW!PSH&F zGz|y%M5xmSjEB2lc3*a7m`v2)PcQkXG|1MjZ}4k2ZRS2cDQePUe*eM#xLkQD)S0k#~0Byp!NVT2S^{9 zf@ORr`+TWBf2=A}F2Fr&)HaLW?PyUA9FA3Asj%`i?Anqk$iH`O{BI#C4%5?c?Q$E%d{7GV?}MeUK($0 z%j(JHn8T0ul{Jeg^6EukLYB|Y9sLX=Zxgj{gEDKpKG?PTa{YB^;Q@0 z*zqalFzS&BF}rbbv*zgqoDWssyxmoEY6^rIfb4gXGU-}~3k3>$x#CW4t}RMj3HsnK zb+?}gkIv0)A>wIi=f|KRGK#=&Gc!X7E<>+_6k7bKW$RQJbxtln@_7`qre z2E^wCXsu!>9ir$-h(YJX(IOCC0#F1D1bU;f7;y{`rl9F&B8Z|;1OkgdQfDY|fO&4g z916k7X&D(w#~~%ZB@nE8sG9+G9{wz4=_t(Er7vy$t6;Z@uA!f0;HU4+Q3E$?RdAOv zhaCyE^$~3j?w>64R1RPNMLx^_61Q3EKlC7ACAdzyqyY#)pL4vr7@bb?zOxX6b`J~? zAqLd-D9jQ6K_CdT2th=A^5i;%l3*~CAbYR4he*mdqDI@_+^*CRQac57-r9H8(^ZgN zcW;he4LKb$^2+tu!ZuRXIiu!h<$~|t_IvVa-OEV4;Lt~PVc!tvsgP;J7|JMnlpY#; zF!57DW8;pxUQLBG<4`+8eg1~hTQZ}AtPK^JCIcdmD^vdaI2WEo2Ehh#?-S1l_FU1{ zVJ!XPu*5`t@MV84M?}}xAp>*mTTc&1T{F?yW8Hq`iv-)oX;2NVlrB_$z84&(8?rXa z`rS$6mr51wqiR!H-RD)Vvf?Ug9K1|$-pjN+B{R+x6o1Vl`R?YGmv3X`lLL3;21V66 zX}lo2+8lnw`^aU_t*u;IvJrOWAXlev$Eu=jfI35WdF5mMAO4 z(#qI$rQun!e|rNHhrlu*1!}r4e}MkXrk0kLoXBnLK|z9ulG%6IA?w(yLxCUKM;$Kx z>9_n>J@Try)|<|eSdhrd$rUf`tj(tM)#RNe8=HxUp?&O;;^pg`8$Gcjs^TV?ybk~b zAaoYs=SLSP1_)qM~XvjAya+^qg1L)!Fey`u};?iuq2tRE+}XG+bN?`&)13hVB@FJH`R7OL-EETqa`g+2KG+|-w?kt3s^nh(O# zAher{t0?L417W%MT1x06uc+xx)B z-rD*%xO6)!%uUE=fdtP-7GCSSCcF$(5X2$hO9eT8M8w|!p^K4`=ONnxc#XUnF)WVk zby66lgR6zoh5su%D=WlZo%Qtuj3@fiM!^lPrTk~7e9pT6o#lbM*|Uc& zFCP-yy)n6F*g4W9E|w{kkSw9L2YP=Jf@(Gf08kPbkPQC#*;T|1#H+mI(Y$ zZc%(`4I%IxxXCyY6RveU(Ejw9Ai|?7xr(({*%#Sef0Ty|*`BOZ_uR^{>XJI$6O#Mb zLGtgo5^#XBbvA=hlAknFo*5b5MMigF$4G%pdrln7YK335nEG%y&1la)Y#Qi*7~0mDpCPmx+h0u^9F?y$P;f463O za|r|_=1fiw0CoaouK#)q*kh3v#&W^E1{GP6RI{XlW;}H7mY0Ud{`K64 zc!5s$FjmY?_ccj&(U2K~+JchgMdNZCSYg}YzkbHy*16X4Pf3cF31K-iOt?Cc#GzGK zO0}tMEZ{2tA|!_5_tcSBmuM0_vc@&fr*0~xGFeDDiD2_prF}oibc(n5&imt+1_DOg z82cW{MAn-Uo=QYL9(vuvSkp}tWusbGd&AS}+(eyp$Frj?RUx`90o;A(`pl*;nqP7j zFn)BeEo1oE#5>I+*LupwH=lLQy9C>m`5q=qJlB%W$n#v}3`@s8@e4&!lzk=m!2ag3 z*N&`#Kg-9jm`63yKUYotT%5di(Aq}bUD!R4iRYu4AhX$JVa{WBl^gSft9)3GkJ>ix za8Nz|K#N52WBB?pH~29VvOZ)gz0fr79DXBSk|vcPl{u0mo$*?~Y4qablIS1h?SV_* zpOpqtV*9i?-*ft7!6-w=t5D}9>!GftjnbhQepwb1DVtN*cC;%9J)=;#6r|dS#=hv4 zfX>u_6={)h?&i&x%^iJ4H(yfN3RLnlsyHxoT`)d+{=4nbjcXo8|B6!`ha+YTW_I!` zWRWm1Y_3p!{oW~_Zg@~LEWiEUzpLMmpDU`s-iz<+s_b$@=HKAGXjd z?eX`em?#z!q17Qz9gg-(=_9ebx}_$li)T*NK07h@ls;Z2O3PBw;$pgDsN-k(8Wp$j zdFeb0`IzLbHJ*Q$r3)hYU%%(J4?Oh#@R@(18xQzR=$-Q{Y*|;N{CI|xvq*1nj#2(S z=H=$C&z$#Q;%xsiMbvoBtm+YEw-4{sd8?T?XN!E#nprvJeIHc0+!jFKSNLvU5Y`Y{ zX}LZK+Y`&1wyr|q*@T>V83kiyovQW2epXcHO^4~~BYu8gYMiag{4u4&LWa_D^>-E7 zm5#u0@t21MBV;l~gesF?1QY8lYlb_9Yl~i->drz^Df0aRyvIw%rc@%?gdQ9*$%)SP zx4kNKL}3T@e%v(kGr>vMbLg_E4S$|qY|Ljle(Ct2`0R%;?rrCJp$sL8gqt5rEsA9L zpKi9!|2VGiGUTPralSEgU|J^Qh~KU7o26!VoisAr3R*8brx~_b{d%VSdQPLteb6B@ zy@#p3p*MtR|BMJXOC+pt#Bf_g3|oUW-u2=0oA0R-JT#8+X!;p>dB2?a>F!-Pg72Yi(`ULPJ@lat>-`Hqr_N=* zd)sTJjJ+vY)AW7i%?v4)8dXirwco$>4>6yNMh*lYWC2Db0o?Gx?q_4OwXj(Jy8Z7a z)NtRIKpcW`LVyUkNeC3t1{3NblpvN1RG44|S{wVU!^~W_9~s%#k>*Rcj-Bo-pMIJn zE&%x_U3=PUO)@!24X@ISS_VbW{HV0|u|nJ9a-uwp33H}aGQ2UfL%}l!HblCS$kxN$ zOprUoOpMBcL{o1URKNKcD8(XTLPfyXMAVdq$j3wl zTZ~CpuFc5zfttbtIy#LyZ6n9?qz!NCHI4dwulQ`=pZaavzU^fB!bZbgI7;==zXMbp z9k+wl%Bm~)_r@BBTqsgs!#TS7wvnY>e%$)P2suqSZA9Pgq~|*ydT22Oe(KbX}l=o zmcz=E^7sS)uUh|-%;}{v|Ed}p%N@i0-JVm-c^2s@V`Jvv+m|q?ju+Q)BC4 zbox-d8Wm4a@r;7xqfSe|bdFGwv*JPjsQDLKLf4hK5*Rh|2=cnAo4W}i)9YTkp$cc= z!~l|7VO02Uy|vlAL>$R1g7FcUJ79o;fY0=qBb#Bzz&(Rq^l$IllBWz*qY!4rIv=A! z{HD1m>xzt9>8GCpR1W|6rYz{6mKQcICN!97RrI78HE-V(;@NHdexzx%w~OqfxO5?B ztFXb5%Av>pAa;7GNgD3HTz~VsgR_67s$$30iRzK6FlV;%=mw=TdTSX} zN!2F*n#)|(M3Xw+(*1m*%NtJrsT-zb#rkzuFdc5ZSXnRKDw zLv`yd4|Wb`eQxpcQ~p|vqm$8Y8x2$F$1}0Wo5?$8(0w}UX7uih^XPdq0?( ztF6!8*zDkbs!zk4DRTQ_sl~D3FYnCXwpqLTeYz{TC-=p*Y?oV1oZ}xd&MDR{3~77K z?8<*4IpFz~f@cf7Aza-{Yili{KY`LfcOj5S&n9+2Sl9t#EmT0;$lnG9IShmXTDAQ$ zo-rLR#CUUY8!enOxLkr<{>vprjO<9&^-Pe9-*1SshK#_7`KGXknn~gzL-_Wmz-eo> zd&$d&Z3DIwq5W(d>SL=M=iG%gXtC(;QkyVSI8a-6w5K74CEjpx^uE-;^wn2K9{Mx( zm2@Q+7CI^@yaA5G6NKz02tB?pp)0Abem%>;!p`mudG+SzCYWVu>AFW(Ujg4iS674J zM93HJ-J=g}Bq3mwM`O$6){W|^jAF?jXWqOnWIaB0;_7OPW%xZo&3RFb%9{NYH)C+< z4inGPsgq*ygzK=^htPq*Lac^MByBCzFcc)3<8Re1xGF zsE*&O47dp%9OjY?k>`It1$Vn%^ zjqo+0)Nf=2``reV4dG0jamfi{;?XG+CwaKcP$&7o>Rcc-?<;TJ-!n<8n`e$G zT5vOIbI=9&+>aoP^Yv}7)~lTClG>F=UDifl*t0g{JocBv=J%0WY`GE)x%Evi2L+t1 zFP+b`rwZC!z7_9ftA8W#*bdI-2JY6x4&NZ->uf?(r`zwZD2s2u@hb~oUX@NWR3gZQ zGi*GJAYA+v;9t4$(u4Vuby&WT=2q~f1fzfJly8*-jd|T(Ozv46rS%buP+r{_KPYc< zglhY2>Yq1uzXVdayJBGdb59Ump zuRA$QdDGd|%S|1vX1Wlq|Af8ORr2Zd2fbKE)9dEP=O1aS1isCb(xb)eZyh`yKF+of z%N5z8t1u%%rRRJlacepM>Kf16?TzoP@2M2Hlyy#y3H-Z6|Ko*6xw+gJ3_{u zbKy+%c}nU=xfmlIMzhb3?wa;*Khn8%1eC5*#$UU+{O1oleM*E=s2>FgBG2YfKBuu; ze?|WeYU%4?1wQlgykU%Oh0DJ7&mnoD3|YUq31#!+`vnGjLRl1#>XGZIHB2ai<<-B@ zUuImR#X&cct~B^Ld)H{!tf$LO2X*_l3%1wgy*9pmHT)sjzpL`t%1PZ|e{T2E?>kdP z?!-3Q9$V4TL&Y0$(fHJbImd)wPCpdi_A;pjbsB{b{BF^Hozk#c4&fCl85p=CA_-Q2o|i4VY&v&qpZ`Cl2`6N-*VZPCU)jpw-&`21V`tKw;0 zEBOG1FVyieuk0kPb`BH@NgU%=9VztoH}#^;R4MM5cH34+dSt}-XYWg8`$tx{@D$`V zb_*P0l)UI=e)2oTzx=%{-&HhNnv~QY3Zw9@AxrrjT`K4OiL&>^I8I!uv*5zJ$>QD4?%d`X1b|T?68tcH?jTBw0WWN_f&<)3&UFa%T)dJI58L8 zjy-11{?Z+H>RnO*4OzTv!$c!`AQu0+sftCLKLm!XFaN?0LarmtXK-W+)Qd;~gNbZb zhnJOFV)PzVN~OswUg?`DMx%ul@I(Qy<9Q z6X#fq^9#MAu{lSzB+*N@{*B~c1byaox5y#QTZgH(DUXYlrEc$Sui@|eHbwe?>Jj<= zfNaf0_G)GjPf zbl6fU&2Q3=`D~_Q&c8<9s3KiDfwQ?uG%jBgt@_I+%Vr{81T1XjWtc3Vi##Bl zuWCy!dl63W9b(nu?X}v@VycsESzEJ;b{hKDW4V)_d@ub}g=>Xj%_Cd8PY+C^xM|09 zIFJ1$;r!W2<8byxQ@RsVUj1#Z(ZfFLZp`^n z+C3@n1;xg|&ZMbXNqQY?$+n2|JsKd+yg$G+bv)g0VMa^;#Cbar@^l>$Ur&wwzR^8z z8<$!%9ESBD1ai?1WSFQf|i*Re~b*H&skJCVYx>;L4*7-R5)*_j_^ ze+8tH^q`e+3KlfI#!8=Je)5Jyz0C=J+JIgaw_}^XL~v#oLvO}O=ES+kSA(p1*F)v| zfwOldNpOPyRNBq#&*{)${QB~crtj4*$C%EKBkITP352!)4Rr697mR2UTNpIe zl4lfR>a7;(gJZ7|o=dWeU#M#*tcae-c+Dg@x*}bbzmxB(L)`Dg&?=+Ubpy9GQl32V zpAsEzpG`XIbEa!Kb4fYs${#7wRvs9A85eHoH0WO|e1*@HYHU;NUEIF=Edz!L9s-R| zZ=9~lWFupo<8Nu;dRNeBIK%P!;qH{==X%C^5Ba^=d3+fQ2l7%%K3G1#bwc-EPB2q? zB`-JCJ8tmz6vM~HT8e+}bAQE3HDP;{pT0=2l!>;6rucE0|44>ApC3nnc&YOO@%AUmbo6||wmre2Bu%~G#w+44S{od0JH=50yxvZUcC&kK- zf1&69uH!XkVf*>Cl|Iuz<1myT&m6D0?Nk*y#AvshoG#j$Vb&sCU#2*lQnFOfVx*&? zJ<{qrCh@GLtJ!v0rA<7J$~m|@V@E`mi{gI91jT~i=Kn^ckFm)euq&A7%`*2=yDR*w zmX|NJr!rGMk%Z;AzUayFq_+&Yr2GnVF?<1`J>j=?!u=`-$+@ft-d0fuX(c5Joc9*i z^uBw(dH;u0>)m^2Dm>0UdmcvD%F@ue*i^lrx0vI%-TvWM-6EvWVw7ebT)Ol@mpo~I zV)UPsKS>&w1FqBVoBbOTf_ks;unR-#+5PH#W9{E`_x?;h+TNGt-@_zQpq15f_@l+d z;Sb07F8bnAE+&xfJ4U8W?%-P4C0Y1I7HAYQ6U%l#7BhU)d*JueYpa}Pvx>dZs&o%Vw$w7`1B1;E{{f!=gqEP|@xw$%EDk37%M?HG77B(a_Je>Dlm^Vj2RT9@8cmKZMzl}*q4In;o7_RL6xHR&a zoai9)+dTQG6XJ3|3?1hS9$8TmTo|Q&wH8vfMj@bEUn@zo-9MP{>nDrp@!Ln_bA-O; zePzjsD2)#`%zNYT*tD(EHhZ8ge)gB6i~~h`TWy0RAw3`J3qfMBZXju0UOI@T- zP+;A^-v{svJSRA2OxlQP2Pp+1^&e<3_cDP%`%hlTrtcOe0OP&bv||3gWyk|6ULPqLY0cf(e``C zc`h3CAL(YxdT&#pM4TB6A8KoBD=4!+8ykpIKQ6o3jkrxAqyoUdeB#7SC{{7R0&OW= z2JpKge0Ut86=1DS0~G89>hR3{-r2-D4x?~252#Eiva`iAvwmm3RE_7DZr@aTAXZ9vHi#R!x# zBs?o?Yh2KqMsr95pqByN22UfQ9v;X3B2z9-PCCNE+8Rti#LiY?-|y`#yM+uIsM}ub z3P0<7^@Pw{7fRub(?6_@S~kge@FXVIHMD=tX^+IS4A$HI9Er7AQ{{EDPg1TUFWG2Q zTT8FY@g15Lq;Lp&n%3K^3-b^l6KE_Lf*|_GR1h$M`3Z>7CyoTfQIZg#5f_t`B+dgv z%S+TF#K)5p4jnmC@#4h?gd2l^03roKLM1hbI5PkuYp^8}eyjhtb{MFKPVUO;VNW~5 zEYc08hx|c?3NiSD_n`>EIji{fsm!=jjqL&57fkzK#DANdA7&6c#>2wE#KXflW=`_{ zD4$Y%RT|A+y|MW0Af;CE63gV_;*P?kAC(TX3BvZb67;1^{>(;i3J{J&T}+VTgO{>TdUmfnI?lHW^vq1TzqzP_Mx2P8{%r zuK`#gN&Tr3Z%JvXH+=BOq%JCQ2AqVrFT^e*cLkaC@Y|S-!v^p=xzoDHs6y?3Fo=`c zg2c^J1hO@7pW}Tzr`^<{y^iKXvltEAQ1jqF*oZ z=4}5QL?cm*zb6;t2?_*~QDl))GD$Gx-?>ll;V;m=qeea|#ACX%ZQ{<+goJYo=7*bD z>yz?rEYh5;$X=~lW*#vUqI{Ej*g}r9En6$3JwoV#*F%MDZcC;d9l7ksG3RzBv9=uu zGErzf5TqM4eO)y5@Y~~WY3?SeJXODVJ|SvHOJAg|^$TBNz`tu6++ z1RaS(agDr(55+e!u^mbXF!vX}S0vWIgHy)Jct`w;oe$>@xJ&p8XETqTWNr;($~8FG z&%IN(ZD(#+%sHxD*0!b~T_x2Zno3S<%aBF&hcdgL=I-ekd_3~}cu$kg+p&iyPiD4A zKdM$a7lb@yIM|Y3K!`;=?YqEr$x}&KscUG!@p|S;H->{|Whv$AE^Tb)1?T%3=^>T_ zGIUJuli295uOF>H)54MYTa0zJdLelJ9|_^hvwai<8UhUo_Y?E$4e<^NhVDlmcQ!v% zze|EJbV*843}L3Y#3d?PZ$?!W0yUTmEh~+Bv*oynFU6zAt`n9nUUv#xMp=tjXxU5@ zDFz5GD{OyW-J5?aN9ZNI+LwGq_<4(mFQb=vwyt2EN%_0*eb?gZu0&l50>mfGLcZ2h zYd{IFxDxM1l@a7xy;bJOihxL}0)9eORb-U^f;`~e3uJiW^1$+PGCJGPi! zMl>J3I@oMRC=H2~$R`i_Vi*47IM1U-vl7;1>Si<1DhdUPx1;Q@@-@6oC?4%tsiJvK z(%2eswJ##qx&Ax5SXBs(FK1)d`nY${jypTJcSk0VTH%9vW2ZS*!`zODV znCVJyL*8lo&z~uHiE)H2{TS~QkJw2GKl<#fd+u9mdH^bns zh=9g`)jADO4}X*A))ixI`~)p>#(rmSMQYTW}Nm{LNlS~lc;MAz6-dAT@N?7U$6psU23f{d^4#nnSjH zN(^~1v_VYaOcUQ$o-X=?%BL62QWJ8I9peB4Bk;`Mt8;v2fJBY^FhYt8p z2-1PuXbz1?RnvsIpyv3`oH&F8nqR-@2oP+(g{)%_HTjbd#2iY< zC)oKM$hz6^Bx3^95Yo{JMBN8sK`iOB2L}gXmW;8o?s!-NYCc;BQw$j~u30}HhZ3Qb zfk&P|Kt8`Y(nK=P(i7^T2Eq6Y*cT5ly#v_$jyjTCic~V17L_>#$MaVXPbu|kYuPIQJff*{kSf|6ka#uA(|bLh)? zRaJ~2oArtpzdc`uQNXZT%uJg9Cs&49&RO$u*fex$t-4 z^YK#)=|Q~OYVQ1H1dw7g&J!WlW>9jl`|aBI26p)~Wk;AX>f7(n%Hclk-n*6VqNh$7 z#!1X%Y1e4lAcsj~$E~O=ox_hhpZ6D#@*rJA&-mv#u_T(t;tyZ9;pu9^d3ypk>6O%v zQFz{+oPJH-WaO807(@~Ybfmd-SyKC3peZ#fd@2>gE_~(HV1K^{c7I*UB@%x*GfT^$ zt5067@x`kpsasdrk@H}-IM=q=gzG87=rZjkuA5JYsgkIPh(j%((ArpHpdG3)EbJ0} z{<<$9ErQ$;cN5W!jJbmFm)i`gS9#1CVKJ(n)V>w7uS&Os@8l;zrpSy9*o2d(+8M}S-7_S z>@T8!>eD&&ar!^7|FI^r4wP%;BJ&AoN z`{`4CNAm~&F*rwz%F{&iG~ac0VzQ5Am-Ax^I;t({1SrvlRP;8Wl=7h(Z?QcUzti z_LpPWvjHr1Sz!s+_$--A19uvDD!GVT#F;S>gdS9$asDGpD*Tf3B>WDqAtjG zLHG*9x+wb~d^yo4-;GgP7*ca4vE3ap68N@Ihqu1#J#>&M{O8;pF?eEh6lbRozu{xL z^L7WzaZf=q21-btVP)q}JilQ7h_>d6iYQc_NMV)AxC!qmrZGr+uh`HuA`k5U8=ERs zu)Vs&ucsdmQXK}yx~gwMwhwMqhof7XDLe~P*nLtG6GN|JbOw6`kKS=iD+J?%*a~pp9q-?Zh>Jgf*W)DoggbS0XZrkoh+6?X zix@c(hP=-U7oJKzrZ+G!u(5VeRLf3CNa%g5$OR5}ac%8jC^s8i+?a?fo0^r#1TGxL zp5JtMcvvXD4GkEc zU%SjaYw&Z0Miso1Tu*m|E0vlx1fW?pO5xf;Ku?ZE5%2pI+&wm1)HG0O`&x$-JuSxw zA*@80MEjt@ET?YHEUb#>uWInMY!7C0k7s1G3D zg_&G=r~K3Ct4%QD&kxEr{1a@JcvLa{?jlF8H2OV61f{@aiy^CsoPwAzH#$rtuTP#p z82NFZXnuEbSwI4FUT1__I&L#cGBTg*y2Vcq#=V37A7bqrC<^eFIP+-2b?}zh;;@og za-eNTc9{1_zw`Q|it=L!>cHwBTV!EwZqqkL&O@_nmpvka&CPlH{9j@Hgj*g`Ob#S5 z&Cg@*+g@g7T?lgBO&AnBfl5FT&^ZkC0aA+s-+1PU9X}p<_wE5x3&rP}~Qhn<_%jXXor}`mAr-mFFWX1r4jq@(+zAceMV{KOCZ++yRFJ zaiT0bM50wR&%*0NN5@ax0vMVOAOnMkF>e#UJUw^q4iqjb!YqmL@gxM7{Y8>3REUB} zcp7{zU8~DQ*DsHTRg{~TH^2vrSvRWMZTtCu3dwfkC+~0#9Qu30yj0{(d1Rl>r~v1S z2NUWCJDpy!X^RG*W6im&q^2d_kQ3S6yU*F<^(H zUcyW98i5*^VVQ9#N@cla-~02K_{)dM+kaNVGjedRe`}=tu|j-m9N!<N$>Z$m zAH*EMUxjJP$1SDWZN!ZV`;klLJ^^g7IQ@f18ND2U#CaOwM`oVJ{Wgrr#OG z-`5^>{=m>1T=GTFSD?o+2MKcU&A(5|su^^cS0~yrmM)>w+FdF|U4V~c@`bM8gv-fF z*>1ZE^_K+)lhkWWL;@S+q*Ub*?~G?_btc|GxPNx_uF=|ekC&*k-cBwX8ymBUeKE&W z+N%{tb-sW5ySowpsoJsubNt}k??O#<0nuD%E(m@wH8M7Sgt5M;C#SiGv4X#cu2b5h zpsef$v_M(o%t&}b1){^8t)IU=yUEqQ3o}RR&sZ#hgl(|Km@Kw!`%G z3`y#5=R86iug0oob=$DIFA5O$78Dh|9QlQ;Yi;f8KRVccJpS^=eDEw4Ig)S0HHr!f zy2Lr|wPbeZG=75(YyY$f!6f#=v)S2MzE~=ao?Knx+HPHjaeS$6A_TM z6>G-F*;R_b2J9nO>ikmN4iV_sxVY$p6|NKwOfJ91DuA682{T!WC0x`z%Jx{fRPsIUZPHkTl|arjayb#M%*- zb|9s}3OpJ;esxdWcnMDEMpz;zu#+K#8z~q|-mkNEm+Y_9l=D{?z#zbC80u;KVz|*-=AYpc34{R&syN77>%i?3M_oA zI2hcgPM;1uiRR0}xou7yw}B(WIl24l|L@ziYgUK^178&I1^}zTcDo2Bjg}2(L6v%S zHSicO;E@Kvizt{I9qJzPFibgi=gypi3BWyVz7{fOGkt)EwK>Y)$^7BQ!D=+~4e%^C z;N`wjy+Ih-?M!aGN(zZu8AE&y!pK z^BtPcefxq*?&h0|E@tRWU%h6{k-Vw~A?wOd!27;>jwS)^2OYfMwotVJ7_t>MaljM2 zUy3l?0iH?-Jo-%VlBNYqGB0oig2^61r-K(RObF0Wnak9$8`wwzb`^ZBSf3|szopr08Fg@NdN!< literal 0 HcmV?d00001 diff --git a/docs/src/examples/dynamics/xy-finiteT/figure-4.png b/docs/src/examples/dynamics/xy-finiteT/figure-4.png new file mode 100644 index 0000000000000000000000000000000000000000..701d842e029accaacc839a8b0faee833d577b002 GIT binary patch literal 37133 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Í$YCWg}!&NI5sE88ru)1 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 bsA(eX+TArd{Iw$%pAmNLaImSc_KN!(=8yEZ literal 0 HcmV?d00001 diff --git a/docs/src/examples/dynamics/xy-finiteT/figure-6.png b/docs/src/examples/dynamics/xy-finiteT/figure-6.png new file mode 100644 index 0000000000000000000000000000000000000000..16501b948c802166a3e6e6fcad5dfdc5601f8303 GIT binary patch literal 42270 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 literal 0 HcmV?d00001 diff --git a/docs/src/examples/quantum1d/7.xy-finiteT/index.md b/docs/src/examples/dynamics/xy-finiteT/index.md similarity index 93% rename from docs/src/examples/quantum1d/7.xy-finiteT/index.md rename to docs/src/examples/dynamics/xy-finiteT/index.md index a897a94b2..86dc23584 100644 --- a/docs/src/examples/quantum1d/7.xy-finiteT/index.md +++ b/docs/src/examples/dynamics/xy-finiteT/index.md @@ -1,10 +1,10 @@ ```@meta -EditURL = "../../../../../examples/quantum1d/7.xy-finiteT/main.jl" +EditURL = "../../../../../examples/dynamics/xy-finiteT/main.jl" ``` -[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/quantum1d/7.xy-finiteT/main.ipynb) -[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/quantum1d/7.xy-finiteT/main.ipynb) -[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/quantum1d/7.xy-finiteT) +[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/dynamics/xy-finiteT/main.ipynb) +[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/dynamics/xy-finiteT/main.ipynb) +[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/dynamics/xy-finiteT) ````julia using Markdown @@ -19,6 +19,27 @@ using LinearAlgebra using BenchmarkFreeFermions ```` +```` +Precompiling packages... + 2928.0 ms ✓ SpecialFunctions + 1 dependency successfully precompiled in 3 seconds. 12 already precompiled. +Precompiling packages... + 1182.9 ms ✓ JLFzf + 1251.9 ms ✓ Xorg_libXi_jll + 1647.3 ms ✓ GLFW_jll + 4694.5 ms ✓ Latexify + 2510.2 ms ✓ GR_jll + 1296.9 ms ✓ Latexify → SparseArraysExt + 14731.3 ms ✓ HTTP + 5752.3 ms ✓ GR + 46383.1 ms ✓ Plots + 9 dependencies successfully precompiled in 71 seconds. 171 already precompiled. +Precompiling packages... + 2884.9 ms ✓ ColorVectorSpace → SpecialFunctionsExt + 1 dependency successfully precompiled in 3 seconds. 20 already precompiled. + +```` + # Finite temperature XY model This example shows how to simulate the finite temperature behavior of the XY model in 1D. @@ -66,8 +87,7 @@ The Hamiltonian can be diagonalized in terms of fermionic creation and annihilat E_0 = -\frac{1}{\pi} \text{EllipticE}\left( \sqrt{1 - \gamma^2} \right) ``` -!!! todo - Show the derivation of the ground state energy by diagonalizing the Hamiltonian in terms of fermionic operators. +The derivation, via a Jordan-Wigner transformation to free fermions followed by a Bogoliubov rotation, can be found in [Lieb, Schultz & Mattis, Ann. Phys. 16, 407 (1961)](https://doi.org/10.1016/0003-4916(61)90115-4). ````julia function groundstate_energy(J, N) @@ -116,7 +136,7 @@ D = 64 V_init = symmetry === Trivial ? ℂ^32 : U1Space(i => 10 for i in -1:(1 // 2):1) psi_init = FiniteMPS(N, physicalspace(H, 1), V_init) trunc = truncrank(D) -psi, envs, = find_groundstate(psi_init, H, DMRG2(; trunc, maxiter = 5)); +psi, envs, = find_groundstate(psi_init, H, DMRG2(; trunc, maxiter = 5, verbosity = 0)); E_0 = expectation_value(psi, H, envs) / N println("Numerical:\t", real(E_0)) @@ -125,11 +145,7 @@ println("Exact (N=Inf):\t", groundstate_energy(J, Inf)) ```` ```` -[ Info: DMRG2 1: obj = -5.004084801485e+00 err = 9.7485774328e-01 time = 1.43 min -[ Info: DMRG2 2: obj = -5.004096940647e+00 err = 1.1899230994e-06 time = 1.27 sec -[ Info: DMRG2 3: obj = -5.004096975044e+00 err = 2.2262868216e-09 time = 0.80 sec -[ Info: DMRG2 conv 4: obj = -5.004096975044e+00 err = 1.1612932838e-13 time = 1.47 min -Numerical: -0.15637803047010942 +Numerical: -0.1563780304701162 Exact (N=32): -0.15637803047254015 Exact (N=Inf): -0.15915494309189535 @@ -173,8 +189,7 @@ The resulting expression is Z(\beta) = \prod_{k=1}^{N} \left( 1 + e^{-\beta \epsilon_k} \right)^{1/N} ``` -!!! todo - Show the derivation of the partition function for the XY model. +This expression follows from the same free-fermion diagonalization as the ground-state energy above: each single-particle mode $\epsilon_k$ is independently occupied or empty, giving the usual free-fermion partition function (see again [Lieb, Schultz & Mattis (1961)](https://doi.org/10.1016/0003-4916(61)90115-4)). ````julia function partition_function(β::Number, J::Number, N::Number) @@ -308,9 +323,6 @@ Z(\beta) = In other words, we can compute the partition function at $\beta$ by computing the overlap of two states evolved for $\beta / 2$, as long as the Hamiltonian is Hermitian. Otherwise, we could still use the same trick, but we would have to compute the evolved states twice, once for $H$ and once for $H^\dagger$. -!!! todo - Add a figure to illustrate this trick. - ````julia double_logpartition(ρ₁, ρ₂ = ρ₁) = log(real(dot(ρ₁, ρ₂))) / length(ρ₁) diff --git a/docs/src/examples/quantum1d/7.xy-finiteT/main.ipynb b/docs/src/examples/dynamics/xy-finiteT/main.ipynb similarity index 94% rename from docs/src/examples/quantum1d/7.xy-finiteT/main.ipynb rename to docs/src/examples/dynamics/xy-finiteT/main.ipynb index 26798bd0e..1af3f9bf8 100644 --- a/docs/src/examples/quantum1d/7.xy-finiteT/main.ipynb +++ b/docs/src/examples/dynamics/xy-finiteT/main.ipynb @@ -1,8 +1,10 @@ { "cells": [ { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "using Markdown\n", "using TensorKit\n", @@ -14,12 +16,11 @@ "using Plots\n", "using LinearAlgebra\n", "using BenchmarkFreeFermions" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "# Finite temperature XY model\n", "\n", @@ -33,19 +34,20 @@ "$$\n", "\n", "Here we will consider the anti-ferromagnetic ($J > 0$) chain, and restrict ourselves to $J = 1/2$." - ], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Parameters" - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "J = 1 / 2\n", "T = ComplexF64\n", @@ -63,12 +65,11 @@ " end\n", " end\n", "end" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "## Diagonalization of the Hamiltonian\n", "\n", @@ -79,15 +80,14 @@ " E_0 = -\\frac{1}{\\pi} \\text{EllipticE}\\left( \\sqrt{1 - \\gamma^2} \\right)\n", "$$\n", "\n", - "> **Todo**\n", - ">\n", - "> Show the derivation of the ground state energy by diagonalizing the Hamiltonian in terms of fermionic operators." - ], - "metadata": {} + "The derivation, via a Jordan-Wigner transformation to free fermions followed by a Bogoliubov rotation, can be found in [Lieb, Schultz & Mattis, Ann. Phys. 16, 407 (1961)](https://doi.org/10.1016/0003-4916(61)90115-4)." + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "function groundstate_energy(J, N)\n", " isfinite(N) || return -J / π\n", @@ -95,22 +95,22 @@ " ϵ = SingleParticleSpectrum(T)\n", " return Energy(ϵ, Inf, 0) / N\n", "end" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "### Exact diagonalization\n", "\n", "We can check our results by comparing them to the exact diagonalization of the Hamiltonian." - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "N_exact = 6\n", "H = open_boundary_conditions(XY_hamiltonian(T, symmetry; J, N = Inf), N_exact)\n", @@ -121,22 +121,22 @@ "println(\"Numerical:\\t\", minimum(real(vals)))\n", "println(\"Exact (N=$(N_exact)):\\t\", groundstate_energy(J, N_exact))\n", "println(\"Exact (N=Inf):\\t\", groundstate_energy(J, Inf))" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "### Finite MPS\n", "\n", "If we wish to increase the system size, we can use the finite MPS representation." - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "N = 32\n", "H = XY_hamiltonian(T, symmetry; J, N)\n", @@ -144,18 +144,17 @@ "V_init = symmetry === Trivial ? ℂ^32 : U1Space(i => 10 for i in -1:(1 // 2):1)\n", "psi_init = FiniteMPS(N, physicalspace(H, 1), V_init)\n", "trunc = truncrank(D)\n", - "psi, envs, = find_groundstate(psi_init, H, DMRG2(; trunc, maxiter = 5));\n", + "psi, envs, = find_groundstate(psi_init, H, DMRG2(; trunc, maxiter = 5, verbosity = 0));\n", "E_0 = expectation_value(psi, H, envs) / N\n", "\n", "println(\"Numerical:\\t\", real(E_0))\n", "println(\"Exact (N=$N):\\t\", groundstate_energy(J, N))\n", "println(\"Exact (N=Inf):\\t\", groundstate_energy(J, Inf))" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "## Finite temperature properties\n", "\n", @@ -195,15 +194,14 @@ " Z(\\beta) = \\prod_{k=1}^{N} \\left( 1 + e^{-\\beta \\epsilon_k} \\right)^{1/N}\n", "$$\n", "\n", - "> **Todo**\n", - ">\n", - "> Show the derivation of the partition function for the XY model." - ], - "metadata": {} + "This expression follows from the same free-fermion diagonalization as the ground-state energy above: each single-particle mode $\\epsilon_k$ is independently occupied or empty, giving the usual free-fermion partition function (see again [Lieb, Schultz & Mattis (1961)](https://doi.org/10.1016/0003-4916(61)90115-4))." + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "function partition_function(β::Number, J::Number, N::Number)\n", " T = diagm(1 => J / 2 * ones(N - 1), -1 => J / 2 * ones(N - 1))\n", @@ -220,12 +218,11 @@ "\n", "Z_analytic = partition_function.(βs, J, N);\n", "F_analytic = free_energy.(βs, J, N);" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "### MPO approach\n", "\n", @@ -235,12 +232,13 @@ "In order to build the time-evolution operator, we can repurpose the `make_time_mpo` function, which constructs the time-evolution operator for the ground state.\n", "However, since we are interested in $e^{-\\beta H}$, instead of $e^{-iH dt}$, we work with $dt = -i \\beta$.\n", "In particular, we can approximate the exponential using a Taylor series through the `TaylorCluster` algorithm." - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "expansion_orders = 1:3\n", "\n", @@ -274,22 +272,21 @@ " plot!(p2, βs, F_taylor; label = labels)\n", " plot(p1, p2)\n", "end" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Some observations:\n", "- The first order approximation fails to capture the behavior of the partition function.\n", "- The higher order approximations are in good agreement with the analytical result, as long as $\\beta$ is not too large.\n", "- The computational cost of the approximations does not depend on $\\beta$, but on the order of the approximation." - ], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "To address the first point, we can have a look at the particular form of the time-evolution operator.\n", "Here we see that for this particular Hamiltonian, all the terms with factors $d\\tau$ are either zero or have trace zero.\n", @@ -312,12 +309,13 @@ "\n", "Therefore, we will exclude the first order approximation from now on.\n", "Zooming in on the differences with the analytical result, we find:" - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "expansion_orders = 2:3\n", "Z_taylor = Z_taylor[:, 2:end]\n", @@ -340,12 +338,11 @@ " )\n", " plot(p1, p2)\n", "end" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "We can now clearly see that, somewhat unsurprisingly, the error increases the larger $\\beta$ becomes.\n", "Given that we are computing Taylor expansions around $\\beta = 0$, this is to be expected.\n", @@ -360,17 +357,14 @@ "$$\n", "\n", "In other words, we can compute the partition function at $\\beta$ by computing the overlap of two states evolved for $\\beta / 2$, as long as the Hamiltonian is Hermitian.\n", - "Otherwise, we could still use the same trick, but we would have to compute the evolved states twice, once for $H$ and once for $H^\\dagger$.\n", - "\n", - "> **Todo**\n", - ">\n", - "> Add a figure to illustrate this trick." - ], - "metadata": {} + "Otherwise, we could still use the same trick, but we would have to compute the evolved states twice, once for $H$ and once for $H^\\dagger$." + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "double_logpartition(ρ₁, ρ₂ = ρ₁) = log(real(dot(ρ₁, ρ₂))) / length(ρ₁)\n", "\n", @@ -403,12 +397,11 @@ " )\n", " plot(p1, p2)\n", "end" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "### MPO multiplication approach (linear)\n", "\n", @@ -436,12 +429,13 @@ "> In particular, the truncation of the MPO is now happening in the Frobenius norm, rather than the operator norm.\n", "> While for small truncations this might still work, this is not guaranteed to be the case for larger truncations.\n", "> As a result, the truncated object might not be positive semidefinite, spoiling its interpretation as a density matrix." - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "Z_mpo_mul = zeros(length(βs))\n", "D_max = 64\n", @@ -489,12 +483,11 @@ " )\n", " plot(p1, p2)\n", "end" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "This approach clearly improves the accuracy of the results, indicating that we can indeed compute partition functions at larger $\\beta$ values.\n", "However, the computational cost of this approach (at fixed maximal bond dimension) is now linear in $\\beta$, since we need to compute the partition function at each $\\beta$ value.\n", @@ -509,11 +502,11 @@ "The accuracy of the initial density matrix can be improved by increasing the order of the Taylor expansion, but this will result in a larger MPO bond dimension.\n", "On the other hand, if we improve the accuracy of the initial density matrix, we could also increase the step size, which would reduce the number of iterations required to reach a certain $\\beta$ value.\n", "Keeping these parameters in balance is necessary to obtain accurate results, and this might require some trial and error." - ], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "### MPO multiplication approach (exponential)\n", "\n", @@ -529,12 +522,13 @@ "$$\n", "\n", "In other words, we can scan a range of exponentially increasing $\\beta$ values by squaring the density matrix at each step." - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "βs_exp = 2.0 .^ (-3:3)\n", "Z_analytic_exp = partition_function.(βs_exp, J, N)\n", @@ -582,12 +576,11 @@ " plot!(p2, βs_exp, abs.(F_mpo_mul_exp .- F_analytic_exp); label = \"MPO multiplication exp\")\n", " plot(p1, p2)\n", "end" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Clearly, the exponential approach allows us to reach larger $\\beta$ values much quicker, but there is again a trade-off.\n", "Since the size of the steps are increasing, we need to be more careful with the accuracy of our approximations.\n", @@ -596,11 +589,11 @@ ">\n", "> Again, using MPS techniques to approximate the multiplication of density matrices might lead to unphysical truncated density matrices.\n", "> Increasing the stepsize could make this happen sooner, so we need to be careful with the maximal bond dimension." - ], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "### Time evolution approach\n", "\n", @@ -615,12 +608,13 @@ "\n", "The starting point for this approach could be either achieved through one of the techniques we have already discussed, but we can also start from the infinite temperature state directly.\n", "In particular, this state is given by the identity MPO, and we can evolve this state to compute the partition function at any $\\beta$ value." - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "Z_tdvp = zeros(length(βs))\n", "\n", @@ -666,43 +660,41 @@ "\n", " plot(p1, p2)\n", "end" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "> **Note**\n", ">\n", "> We could further improve the accuracy of the TDVP approach by evolving with $(H \\otimes \\mathbb{1} + \\mathbb{1} \\otimes H^\\dagger)$, rather than $H \\otimes \\mathbb{1}$ which is the current implementation.\n", "> This is known to improve the stability of the positive semidefinite property of the density matrix, and could lead to more accurate results." - ], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "---\n", "\n", "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*" - ], - "metadata": {} + ] } ], - "nbformat_minor": 3, "metadata": { + "kernelspec": { + "display_name": "Julia 1.12.6", + "language": "julia", + "name": "julia-1.12" + }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.12.4" - }, - "kernelspec": { - "name": "julia-1.12", - "display_name": "Julia 1.12.4", - "language": "julia" + "version": "1.12.6" } }, - "nbformat": 4 + "nbformat": 4, + "nbformat_minor": 3 } \ No newline at end of file diff --git a/docs/src/examples/quantum1d/2.haldane/figure-1.png b/docs/src/examples/excitations/haldane/figure-1.png similarity index 100% rename from docs/src/examples/quantum1d/2.haldane/figure-1.png rename to docs/src/examples/excitations/haldane/figure-1.png diff --git a/docs/src/examples/quantum1d/2.haldane/figure-2.png b/docs/src/examples/excitations/haldane/figure-2.png similarity index 100% rename from docs/src/examples/quantum1d/2.haldane/figure-2.png rename to docs/src/examples/excitations/haldane/figure-2.png diff --git a/docs/src/examples/quantum1d/2.haldane/figure-3.png b/docs/src/examples/excitations/haldane/figure-3.png similarity index 100% rename from docs/src/examples/quantum1d/2.haldane/figure-3.png rename to docs/src/examples/excitations/haldane/figure-3.png diff --git a/docs/src/examples/quantum1d/2.haldane/index.md b/docs/src/examples/excitations/haldane/index.md similarity index 78% rename from docs/src/examples/quantum1d/2.haldane/index.md rename to docs/src/examples/excitations/haldane/index.md index 71bcad85e..f26c31407 100644 --- a/docs/src/examples/quantum1d/2.haldane/index.md +++ b/docs/src/examples/excitations/haldane/index.md @@ -1,10 +1,10 @@ ```@meta -EditURL = "../../../../../examples/quantum1d/2.haldane/main.jl" +EditURL = "../../../../../examples/excitations/haldane/main.jl" ``` -[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/quantum1d/2.haldane/main.ipynb) -[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/quantum1d/2.haldane/main.ipynb) -[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/quantum1d/2.haldane) +[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/excitations/haldane/main.ipynb) +[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/excitations/haldane/main.ipynb) +[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/excitations/haldane) # The Haldane gap @@ -15,6 +15,13 @@ To follow the tutorial you need the following packages: using MPSKit, MPSKitModels, TensorKit, Plots, Polynomials ```` +```` +Precompiling packages... + 1343.7 ms ✓ Polynomials → PolynomialsRecipesBaseExt + 1 dependency successfully precompiled in 2 seconds. 18 already precompiled. + +```` + The Heisenberg model is defined by the following Hamiltonian: ```math @@ -61,7 +68,7 @@ En_2, st_2 = excitations(H, QuasiparticleAnsatz(), ψ, envs; sector = SU2Irrep(2 ```` ```` -0.7989253589480472 +0.7989253589480387 ```` We can go even further and doublecheck the claim that ``S = 1`` is an edge excitation, by plotting the energy density. @@ -100,7 +107,7 @@ f = fit(Ls .^ (-2), ΔEs, 1) ```` ```` -0.4517340158583749 +0.4517340158585316 ```` ````julia @@ -129,30 +136,14 @@ virtual_space_inf = Rep[SU₂](1 // 2 => 16, 3 // 2 => 16, 5 // 2 => 8, 7 // 2 = ψ_inf, envs_inf, delta_inf = find_groundstate(ψ₀_inf, H; verbosity = 0) kspace = range(0, π, 16) -Es, _ = excitations(H, QuasiparticleAnsatz(), kspace, ψ_inf, envs_inf; sector = SU2Irrep(1)) +Es, _ = excitations(H, QuasiparticleAnsatz(), kspace, ψ_inf, envs_inf; sector = SU2Irrep(1), verbosity = 0) ΔE, idx = findmin(real.(Es)) println("minimum @k = $(kspace[idx]):\t ΔE = $(ΔE)") ```` ```` -[ Info: Found excitations for momentum = 0.0 -[ Info: Found excitations for momentum = 0.20943951023931953 -[ Info: Found excitations for momentum = 0.41887902047863906 -[ Info: Found excitations for momentum = 0.6283185307179586 -[ Info: Found excitations for momentum = 1.4660765716752369 -[ Info: Found excitations for momentum = 1.2566370614359172 -[ Info: Found excitations for momentum = 0.8377580409572781 -[ Info: Found excitations for momentum = 1.0471975511965976 -[ Info: Found excitations for momentum = 1.6755160819145563 -[ Info: Found excitations for momentum = 1.8849555921538759 -[ Info: Found excitations for momentum = 2.0943951023931953 -[ Info: Found excitations for momentum = 2.303834612632515 -[ Info: Found excitations for momentum = 2.5132741228718345 -[ Info: Found excitations for momentum = 2.9321531433504737 -[ Info: Found excitations for momentum = 2.722713633111154 -[ Info: Found excitations for momentum = 3.141592653589793 -minimum @k = 3.141592653589793: ΔE = 0.41047924848831047 +minimum @k = 3.141592653589793: ΔE = 0.41047924870059116 ```` diff --git a/docs/src/examples/quantum1d/2.haldane/main.ipynb b/docs/src/examples/excitations/haldane/main.ipynb similarity index 99% rename from docs/src/examples/quantum1d/2.haldane/main.ipynb rename to docs/src/examples/excitations/haldane/main.ipynb index 2084d50d9..a2c095d53 100644 --- a/docs/src/examples/quantum1d/2.haldane/main.ipynb +++ b/docs/src/examples/excitations/haldane/main.ipynb @@ -164,7 +164,7 @@ "ψ_inf, envs_inf, delta_inf = find_groundstate(ψ₀_inf, H; verbosity = 0)\n", "\n", "kspace = range(0, π, 16)\n", - "Es, _ = excitations(H, QuasiparticleAnsatz(), kspace, ψ_inf, envs_inf; sector = SU2Irrep(1))\n", + "Es, _ = excitations(H, QuasiparticleAnsatz(), kspace, ψ_inf, envs_inf; sector = SU2Irrep(1), verbosity = 0)\n", "\n", "ΔE, idx = findmin(real.(Es))\n", "println(\"minimum @k = $(kspace[idx]):\\t ΔE = $(ΔE)\")\n", diff --git a/docs/src/examples/groundstates/bose-hubbard/figure-1.png b/docs/src/examples/groundstates/bose-hubbard/figure-1.png new file mode 100644 index 0000000000000000000000000000000000000000..d57ee39ea4b6e74af4b2fb57d72757ef0583db09 GIT binary patch literal 16503 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

oi2rIjf;lGok@|9EwohreZM?m!4iv&{VKz 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 literal 0 HcmV?d00001 diff --git a/docs/src/examples/groundstates/bose-hubbard/figure-4.png b/docs/src/examples/groundstates/bose-hubbard/figure-4.png new file mode 100644 index 0000000000000000000000000000000000000000..5befe8bb36c6a19a24a6a99d308d71aae047d2d7 GIT binary patch literal 36945 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 literal 0 HcmV?d00001 diff --git a/docs/src/examples/groundstates/bose-hubbard/figure-5.png b/docs/src/examples/groundstates/bose-hubbard/figure-5.png new file mode 100644 index 0000000000000000000000000000000000000000..03e3e7ee30f21c2104ec7ded3249a7a1d26f20a0 GIT binary patch literal 32117 zcmd43XHZmKw>8=l+Xe)bBsqy>5D^d&ut87+CFdv^Bu52_O^yl(5+n(d6a)k%M-jxg+L%k?%$JD zMIdmr5r}iKNF4ahiB?z-{6p~gfxIl@4EtY3?YlSxf*EmN_Kvz|>gq2K=}U`egd11A zN<>3fb26x$hQo0!8N>=cdz^58s;Gz_>T@`GZcC~6zQS$rf>wksCE;gEUK9Jug2Xa#Z@({DFAWfguYdmhs=gS8 zS>=w5P{^tBIT0VxASAYx5%u%4lc}aA)rba7;>^s9Mxo{l1N=;W zgQ}e#sk2yvyKx(b$87S^tK(nFK7ZD}os^zlZ`t#v{_Iqbmnu#>#VIQeZsf4PHQy0P zNE$B7N<(;-eLFG`=*cWt(4A zG+yuPYi9PgxL5#vk0b8Nl`CPgSx&QGmnKWN97br~zI`hzFMqZ(@F+h&-^9dZWMt&k zt5@}>M=Onig!`)_*FFA>H;0h6wY6Q+c`41TUE{e~_xx|@_)>KvqL=U1ty@>Gh8� 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 U=w?KR>KI>#59+FAQBPj|A5Fnj!2kdN literal 0 HcmV?d00001 diff --git a/docs/src/examples/groundstates/bose-hubbard/figure-6.png b/docs/src/examples/groundstates/bose-hubbard/figure-6.png new file mode 100644 index 0000000000000000000000000000000000000000..a770a1995a90e10982bd41499c7eea691237f08a GIT binary patch literal 15424 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 abs2(expectation_value(state, (0,) => a_o ```` 7-element Vector{Float64}: - 0.31098779070601257 - 0.2881478589434881 - 0.2702000230423913 - 0.25712728516508654 - 0.24685385948652017 - 0.23539753899204166 - 0.22799654088348645 + 0.30974277430265373 + 0.28814775946586596 + 0.27020005963868154 + 0.25712729075508733 + 0.24685385782407282 + 0.23539787855732608 + 0.22799752254820496 ```` We may now also visualize the momentum distribution function, which is obtained as the diff --git a/docs/src/examples/quantum1d/8.bose-hubbard/main.ipynb b/docs/src/examples/groundstates/bose-hubbard/main.ipynb similarity index 100% rename from docs/src/examples/quantum1d/8.bose-hubbard/main.ipynb rename to docs/src/examples/groundstates/bose-hubbard/main.ipynb diff --git a/docs/src/examples/groundstates/haldane-spt/figure-1.png b/docs/src/examples/groundstates/haldane-spt/figure-1.png new file mode 100644 index 0000000000000000000000000000000000000000..31124b5a5ddb9cf04911c80c753d4fb676e55a9c GIT binary patch literal 34236 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 Ou6$lYK11%3_x}P>LODAC literal 0 HcmV?d00001 diff --git a/docs/src/examples/groundstates/haldane-spt/figure-2.png b/docs/src/examples/groundstates/haldane-spt/figure-2.png new file mode 100644 index 0000000000000000000000000000000000000000..f9d22360f133fc8811c5f63b8b04d9e047fbd663 GIT binary patch literal 32088 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

    >VQ!vZRplr!=+>tq{O&grFJkD$aFRYT2}vIX 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 JN!;Mw{{l5GIj8^t literal 0 HcmV?d00001 diff --git a/docs/src/examples/quantum1d/5.haldane-spt/figure-3.png b/docs/src/examples/groundstates/haldane-spt/figure-3.png similarity index 51% rename from docs/src/examples/quantum1d/5.haldane-spt/figure-3.png rename to docs/src/examples/groundstates/haldane-spt/figure-3.png index 8dfdfe224bb3a71a076634c0bde607650368d833..42c179c9fff8da1c4c5bb084364de02f84b0a6ec 100644 GIT binary patch delta 18080 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 B7DfO7 delta 18122 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 z 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 diff --git a/docs/src/examples/quantum1d/5.haldane-spt/index.md b/docs/src/examples/groundstates/haldane-spt/index.md similarity index 93% rename from docs/src/examples/quantum1d/5.haldane-spt/index.md rename to docs/src/examples/groundstates/haldane-spt/index.md index 8fb8dee4d..51c9d03f7 100644 --- a/docs/src/examples/quantum1d/5.haldane-spt/index.md +++ b/docs/src/examples/groundstates/haldane-spt/index.md @@ -1,10 +1,10 @@ ```@meta -EditURL = "../../../../../examples/quantum1d/5.haldane-spt/main.jl" +EditURL = "../../../../../examples/groundstates/haldane-spt/main.jl" ``` -[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/quantum1d/5.haldane-spt/main.ipynb) -[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/quantum1d/5.haldane-spt/main.ipynb) -[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/quantum1d/5.haldane-spt) +[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/groundstates/haldane-spt/main.ipynb) +[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/groundstates/haldane-spt/main.ipynb) +[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/groundstates/haldane-spt) # Spin 1 Heisenberg model @@ -128,7 +128,7 @@ E_plus = expectation_value(ψ_plus, H) ```` ```` --1.4014193313393009 - 3.851708855717825e-17im +-1.4014193313393004 - 2.2233521403023605e-17im ```` ````julia @@ -139,7 +139,7 @@ E_minus = expectation_value(ψ_minus, H) ```` ```` --1.4014839739630844 - 5.800167584873572e-17im +-1.4014839739630827 + 6.744598315147384e-17im ```` ````julia @@ -188,8 +188,8 @@ println("S_plus = $S_plus") ```` ```` -S_minus + log(2) = 1.548622723541372 -S_plus = 1.5450323530299226 +S_minus + log(2) = 1.5486227235423025 +S_plus = 1.545032353055433 ```` diff --git a/docs/src/examples/quantum1d/5.haldane-spt/main.ipynb b/docs/src/examples/groundstates/haldane-spt/main.ipynb similarity index 100% rename from docs/src/examples/quantum1d/5.haldane-spt/main.ipynb rename to docs/src/examples/groundstates/haldane-spt/main.ipynb diff --git a/docs/src/examples/quantum1d/5.haldane-spt/spt-tensors.svg b/docs/src/examples/groundstates/haldane-spt/spt-tensors.svg similarity index 100% rename from docs/src/examples/quantum1d/5.haldane-spt/spt-tensors.svg rename to docs/src/examples/groundstates/haldane-spt/spt-tensors.svg diff --git a/docs/src/examples/quantum1d/6.hubbard/figure-1.png b/docs/src/examples/groundstates/hubbard/figure-1.png similarity index 99% rename from docs/src/examples/quantum1d/6.hubbard/figure-1.png rename to docs/src/examples/groundstates/hubbard/figure-1.png index 87a4f10f89ffef8d0c689873e70c1b07dcb1d57b..73f21dcec67104f4325a647b53f56b5e2eb3b5c7 100644 GIT binary patch delta 63 zcmex$jOo`grVaj6SklhkZ=D=GMU{DF$g0WJQ(71=ZwBS3j3^P6 dim(left_virtualspace(psi, x)), 1:length(psi)) + D′ = max(5, round(Int, D * expansionfactor)) + trunc = trunctol(; atol = svalue / 10) & truncrank(D′) + psi′, = changebonds(psi, H, OptimalExpand(; trunc = trunc)) + all( + left_virtualspace.(Ref(psi), 1:length(psi)) .== + left_virtualspace.(Ref(psi′), 1:length(psi)) + ) && break + psi, = find_groundstate(psi′, H, VUMPS(; tol = svalue / 5, maxiter = 10, verbosity)) + end + + # convergence steps + psi, = changebonds(psi, H, SvdCut(; trunc = trunctol(; atol = svalue))) + psi, = find_groundstate( + psi, H, + VUMPS(; tol = svalue / 100, verbosity, maxiter = 100) & + GradientGrassmann(; tol = svalue / 1000, verbosity) + ) + + return psi +end + +H = hubbard_model(InfiniteChain(2); U, t, mu = U / 2) +Vspaces = fill(Vect[fℤ₂](0 => 10, 1 => 10), 2) +psi = InfiniteMPS(physicalspace(H), Vspaces) +psi = compute_groundstate(psi, H) +E = real(expectation_value(psi, H)) / 2 +@info """ +Groundstate energy: + * numerical: $E + * analytic: $(hubbard_energy(U / 4) - U / 4) +""" +```` + +```` +┌ Info: Groundstate energy: +│ * numerical: -2.189996060974577 +└ * analytic: -2.190038374277775 + +```` + +## Symmetries + +The Hubbard model has a rich symmetry structure, which can be exploited to speed up simulations. +Apart from the fermionic parity, the model also has a ``U(1)`` particle number symmetry, along with a ``SU(2)`` spin symmetry. +Explicitly imposing these symmetries on the tensors can greatly reduce the computational cost of the simulation. + +Naively imposing these symmetries however, is not compatible with our desire to work at half-filling. +By construction, imposing symmetries restricts the optimization procedure to a single symmetry sector, which is the trivial sector. +In order to work at half-filling, we need to effectively inject one particle per site. +In MPSKit, this is achieved by the `add_physical_charge` function, which shifts the physical spaces of the tensors to the desired charge sector. + +````julia +H_u1_su2 = hubbard_model(ComplexF64, U1Irrep, SU2Irrep, InfiniteChain(2); U, t, mu = U / 2); +charges = fill(FermionParity(1) ⊠ U1Irrep(1) ⊠ SU2Irrep(0), 2); +H_u1_su2 = MPSKit.add_physical_charge(H_u1_su2, charges); + +pspaces = physicalspace.(Ref(H_u1_su2), 1:2) +vspaces = [oneunit(eltype(pspaces)), first(pspaces)] +psi = InfiniteMPS(pspaces, vspaces) +psi = compute_groundstate(psi, H_u1_su2; expansionfactor = 1 / 3) +E = real(expectation_value(psi, H_u1_su2)) / 2 +@info """ +Groundstate energy: + * numerical: $E + * analytic: $(hubbard_energy(U / 4) - U / 4) +""" +```` + +```` +┌ Info: Groundstate energy: +│ * numerical: -2.190015347514472 +└ * analytic: -2.190038374277775 + +```` + +## Excitations + +Because of the integrability, it is known that the Hubbard model has a rich excitation spectrum. +The elementary excitations are known as spinons and holons, which are domain walls in the spin and charge sectors, respectively. +The fact that the spin and charge sectors are separate is a phenomenon known as spin-charge separation. + +The domain walls can be constructed by noticing that there are two equivalent groundstates, which differ by a translation over a single site. +In other words, the groundstates are ``\psi_{AB}`` and ``\psi_{BA}``, where ``A`` and ``B`` are the two sites. +These excitations can be constructed as follows: + +````julia +alg = QuasiparticleAnsatz(; tol = 1.0e-3) +momenta = range(-π, π; length = 33) +psi_AB = psi +envs_AB = environments(psi_AB, H_u1_su2, psi_AB); +psi_BA = circshift(psi, 1) +envs_BA = environments(psi_BA, H_u1_su2, psi_BA); + +spinon_charge = FermionParity(0) ⊠ U1Irrep(0) ⊠ SU2Irrep(1 // 2) +E_spinon, ϕ_spinon = excitations( + H_u1_su2, alg, momenta, psi_AB, envs_AB, psi_BA, envs_BA; + sector = spinon_charge, num = 1, verbosity = 0 +); + +holon_charge = FermionParity(1) ⊠ U1Irrep(-1) ⊠ SU2Irrep(0) +E_holon, ϕ_holon = excitations( + H_u1_su2, alg, momenta, psi_AB, envs_AB, psi_BA, envs_BA; + sector = holon_charge, num = 1, verbosity = 0 +); +```` + +Again, we can compare the numerical results to the analytic solution. +Here, the formulae for the excitation energies are expressed in terms of dressed momenta: + +````julia +function spinon_momentum(Λ, u; rtol = 1.0e-12) + integrandum(ω) = besselj0(ω) * sin(ω * Λ) / ω / cosh(ω * u) + return π / 2 - quadgk(integrandum, 0, Inf; rtol = rtol)[1] +end +function spinon_energy(Λ, u; rtol = 1.0e-12) + integrandum(ω) = besselj1(ω) * cos(ω * Λ) / ω / cosh(ω * u) + return 2 * quadgk(integrandum, 0, Inf; rtol = rtol)[1] +end + +function holon_momentum(k, u; rtol = 1.0e-12) + integrandum(ω) = besselj0(ω) * sin(ω * sin(k)) / ω / (1 + exp(2u * abs(ω))) + return π / 2 - k - 2 * quadgk(integrandum, 0, Inf; rtol = rtol)[1] +end +function holon_energy(k, u; rtol = 1.0e-12) + integrandum(ω) = besselj1(ω) * cos(ω * sin(k)) * exp(-ω * u) / ω / cosh(ω * u) + return 2 * cos(k) + 2u + 2 * quadgk(integrandum, 0, Inf; rtol = rtol)[1] +end + +Λs = range(-10, 10; length = 51) +P_spinon_analytic = rem2pi.(spinon_momentum.(Λs, U / 4), RoundNearest) +E_spinon_analytic = spinon_energy.(Λs, U / 4) +I_spinon = sortperm(P_spinon_analytic) +P_spinon_analytic = P_spinon_analytic[I_spinon] +E_spinon_analytic = E_spinon_analytic[I_spinon] +P_spinon_analytic = [reverse(-P_spinon_analytic); P_spinon_analytic] +E_spinon_analytic = [reverse(E_spinon_analytic); E_spinon_analytic]; + +ks = range(0, 2π; length = 51) +P_holon_analytic = rem2pi.(holon_momentum.(ks, U / 4), RoundNearest) +E_holon_analytic = holon_energy.(ks, U / 4) +I_holon = sortperm(P_holon_analytic) +P_holon_analytic = P_holon_analytic[I_holon] +E_holon_analytic = E_holon_analytic[I_holon]; + +p = let p_excitations = plot(; xaxis = "momentum", yaxis = "energy") + scatter!(p_excitations, momenta, real(E_spinon); label = "spinon") + plot!(p_excitations, P_spinon_analytic, E_spinon_analytic; label = "spinon (analytic)") + + scatter!(p_excitations, momenta, real(E_holon); label = "holon") + plot!(p_excitations, P_holon_analytic, E_holon_analytic; label = "holon (analytic)") + + p_excitations +end +```` + +![](figure-1.png) + +The plot shows some discrepancies between the numerical and analytic results. +First and foremost, we must realize that in the thermodynamic limit, the momentum of a domain wall is actually not well-defined. +Concretely, only the difference in momentum between the two groundstates is well-defined, as we can always shift the momentum by multiplying one of the groundstates by a phase. +Here, we can fix this shift by realizing that our choice of shifting the groundstates by a single site, differs from the formula by a factor ``π/2``. + +````julia +momenta_shifted = rem2pi.(momenta .- π / 2, RoundNearest) +p = let p_excitations = plot(; xaxis = "momentum", yaxis = "energy", xlims = (-π, π)) + scatter!(p_excitations, momenta_shifted, real(E_spinon); label = "spinon") + plot!(p_excitations, P_spinon_analytic, E_spinon_analytic; label = "spinon (analytic)") + + scatter!(p_excitations, momenta_shifted, real(E_holon); label = "holon") + plot!(p_excitations, P_holon_analytic, E_holon_analytic; label = "holon (analytic)") + + p_excitations +end +```` + +![](figure-2.png) + +The second discrepancy is that while the spinon dispersion is well-reproduced, the holon dispersion is not. +This is due to the fact that the excitation ansatz captures the lowest-energy excitation, and not the elementary single-particle excitation. +To make this explicit, we can consider the scattering states comprising of a holon and two spinons. +If these are truly scattering states, the energy of the scattering state should be the sum of the energies of the individual excitations, and the momentum is the sum of the momenta. +Thus, we can find the lowest-energy scattering states by minimizing the energy over the combination of momenta for the constituent elementary excitations. + +````julia +holon_dispersion_itp = linear_interpolation( + P_holon_analytic, E_holon_analytic; + extrapolation_bc = Line() +) +spinon_dispersion_itp = linear_interpolation( + P_spinon_analytic, E_spinon_analytic; + extrapolation_bc = Line() +) +function scattering_energy(p1, p2, p3) + p1, p2, p3 = rem2pi.((p1, p2, p3), RoundNearest) + return holon_dispersion_itp(p1) + spinon_dispersion_itp(p2) + spinon_dispersion_itp(p3) +end; + +E_scattering_min = map(momenta_shifted) do p + e = Inf + for i in 1:10 # repeat for stability + res = optimize((rand(2) .* (2π) .- π)) do (p₁, p₂) + p₃ = p - p₁ - p₂ + return scattering_energy(p₁, p₂, p₃) + end + + e = min(Optim.minimum(res), e) + end + return e +end +E_scattering_max = map(momenta_shifted) do p + e = -Inf + for i in 1:10 # repeat for stability + res = optimize((rand(Float64, 2) .* (2π) .- π)) do (p₁, p₂) + p₃ = p - p₁ - p₂ + return -scattering_energy(p₁, p₂, p₃) + end + + e = max(-Optim.minimum(res), e) + end + return e +end; + +p = let p_excitations = plot(; + xaxis = "momentum", yaxis = "energy", xlims = (-π, π), ylims = (-0.1, 5) + ) + scatter!(p_excitations, momenta_shifted, real(E_spinon); label = "spinon") + plot!(p_excitations, P_spinon_analytic, E_spinon_analytic; label = "spinon (analytic)") + + scatter!(p_excitations, momenta_shifted, real(E_holon); label = "holon") + plot!(p_excitations, P_holon_analytic, E_holon_analytic; label = "holon (analytic)") + + I = sortperm(momenta_shifted) + plot!( + p_excitations, momenta_shifted[I], E_scattering_min[I]; label = "scattering states", + fillrange = E_scattering_max[I], fillalpha = 0.3, fillstyle = :x + ) + + p_excitations +end +```` + +![](figure-3.png) + +--- + +*This page was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).* + diff --git a/docs/src/examples/quantum1d/6.hubbard/main.ipynb b/docs/src/examples/groundstates/hubbard/main.ipynb similarity index 91% rename from docs/src/examples/quantum1d/6.hubbard/main.ipynb rename to docs/src/examples/groundstates/hubbard/main.ipynb index 9b64a7960..f8fc1f68d 100644 --- a/docs/src/examples/quantum1d/6.hubbard/main.ipynb +++ b/docs/src/examples/groundstates/hubbard/main.ipynb @@ -21,7 +21,7 @@ "Often, a third term is included which serves as a chemical potential to control the number of electrons in the system.\n", "\n", "$$\n", - "H = -t \\sum_{\\langle i, j \\rangle, \\sigma} c^{\\dagger}_{i,\\sigma} c_{j,\\sigma} + U \\sum_i n_{i,\\uparrow} n_{i,\\downarrow} - \\mu \\sum_{i,\\sigma} n_{i,\\sigma}\n", + "H = -t ∑_{⟨i, j⟩, σ} c^{†}_{i,σ} c_{j,σ} + U ∑_i n_{i,↑} n_{i,↓} - μ ∑_{i,σ} n_{i,σ}\n", "$$\n", "\n", "At half-filling, the system exhibits particle-hole symmetry, which can be made explicit by rewriting the Hamiltonian slightly.\n", @@ -29,13 +29,13 @@ "This results in the following Hamiltonian:\n", "\n", "$$\n", - "H = - \\sum_{\\langle i, j \\rangle, \\sigma} c^{\\dagger}_{i,\\sigma} c_{j,\\sigma} + U / 4 \\sum_i (1 - 2 n_{i,\\uparrow}) (1 - 2 n_{i,\\downarrow}) - \\mu \\sum_{i,\\sigma} n_{i,\\sigma}\n", + "H = - ∑_{⟨i, j⟩, σ} c^{†}_{i,σ} c_{j,σ} + U / 4 ∑_i (1 - 2 n_{i,↑}) (1 - 2 n_{i,↓}) - μ ∑_{i,σ} n_{i,σ}\n", "$$\n", "\n", "Finally, setting `\\mu = 0` and defining `u = U / 4` we obtain the Hubbard model at half-filling.\n", "\n", "$$\n", - "H = - \\sum_{\\langle i, j \\rangle, \\sigma} c^{\\dagger}_{i,\\sigma} c_{j,\\sigma} + u \\sum_i (1 - 2 n_{i,\\uparrow}) (1 - 2 n_{i,\\downarrow})\n", + "H = - ∑_{⟨i, j⟩, σ} c^{†}_{i,σ} c_{j,σ} + u ∑_i (1 - 2 n_{i,↑}) (1 - 2 n_{i,↓})\n", "$$" ] }, @@ -52,8 +52,24 @@ "using QuadGK: quadgk\n", "using Plots\n", "using Interpolations\n", - "using Optim\n", - "\n", + "using Optim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For reproducibility of this page, we fix the seed of the random number generator:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "using Random\n", + "Random.seed!(123);\n", "\n", "const t = 1.0\n", "const mu = 0.0\n", @@ -65,10 +81,10 @@ "metadata": {}, "source": [ "For this case, the ground state energy has an analytic solution, which can be used to benchmark the numerical results.\n", - "It follows from Eq. (6.82) in []().\n", + "It follows from Eq. (6.82) in [Essler, Frahm, Göhmann, Klümper & Korepin, The One-Dimensional Hubbard Model](https://doi.org/10.1017/CBO9780511534843).\n", "\n", "$$\n", - "e(u) = - u - 4 \\int_0^{\\infty} \\frac{d\\omega}{\\omega} \\frac{J_0(\\omega) J_1(\\omega)}{1 + \\exp(2u \\omega)}\n", + "e(u) = - u - 4 ∫₀^{∞} \\frac{dω}{ω} \\frac{J₀(ω) J₁(ω)}{1 + \\exp(2u ω)}\n", "$$\n", "\n", "We can easily verify this by comparing the numerical results to the analytic solution." @@ -82,7 +98,7 @@ "source": [ "function hubbard_energy(u; rtol = 1.0e-12)\n", " integrandum(ω) = besselj0(ω) * besselj1(ω) / (1 + exp(2u * ω)) / ω\n", - " int, err = quadgk(integrandum, 0, Inf; rtol = rtol)\n", + " int, err = quadgk(integrandum, 0, Inf; rtol)\n", " return -u - 4 * int\n", "end\n", "\n", @@ -92,7 +108,7 @@ " expansionfactor = (1 / 10),\n", " expansioniter = 20\n", " )\n", - " verbosity = 2\n", + " verbosity = 0\n", " psi, = find_groundstate(psi, H; tol = svalue * 10, verbosity)\n", " for _ in 1:expansioniter\n", " D = maximum(x -> dim(left_virtualspace(psi, x)), 1:length(psi))\n", @@ -111,7 +127,7 @@ " psi, = find_groundstate(\n", " psi, H,\n", " VUMPS(; tol = svalue / 100, verbosity, maxiter = 100) &\n", - " GradientGrassmann(; tol = svalue / 1000)\n", + " GradientGrassmann(; tol = svalue / 1000, verbosity)\n", " )\n", "\n", " return psi\n", @@ -178,7 +194,7 @@ "The fact that the spin and charge sectors are separate is a phenomenon known as spin-charge separation.\n", "\n", "The domain walls can be constructed by noticing that there are two equivalent groundstates, which differ by a translation over a single site.\n", - "In other words, the groundstates are $\\psi_{AB}` and $\\psi_{BA}$, where $A$ and $B$ are the two sites.\n", + "In other words, the groundstates are $\\psi_{AB}$ and $\\psi_{BA}$, where $A$ and $B$ are the two sites.\n", "These excitations can be constructed as follows:" ] }, @@ -198,13 +214,13 @@ "spinon_charge = FermionParity(0) ⊠ U1Irrep(0) ⊠ SU2Irrep(1 // 2)\n", "E_spinon, ϕ_spinon = excitations(\n", " H_u1_su2, alg, momenta, psi_AB, envs_AB, psi_BA, envs_BA;\n", - " sector = spinon_charge, num = 1\n", + " sector = spinon_charge, num = 1, verbosity = 0\n", ");\n", "\n", "holon_charge = FermionParity(1) ⊠ U1Irrep(-1) ⊠ SU2Irrep(0)\n", "E_holon, ϕ_holon = excitations(\n", " H_u1_su2, alg, momenta, psi_AB, envs_AB, psi_BA, envs_BA;\n", - " sector = holon_charge, num = 1\n", + " sector = holon_charge, num = 1, verbosity = 0\n", ");" ] }, @@ -274,7 +290,7 @@ "The plot shows some discrepancies between the numerical and analytic results.\n", "First and foremost, we must realize that in the thermodynamic limit, the momentum of a domain wall is actually not well-defined.\n", "Concretely, only the difference in momentum between the two groundstates is well-defined, as we can always shift the momentum by multiplying one of the groundstates by a phase.\n", - "Here, we can fix this shift by realizing that our choice of shifting the groundstates by a single site, differs from the formula by a factor $\\pi/2$." + "Here, we can fix this shift by realizing that our choice of shifting the groundstates by a single site, differs from the formula by a factor $π/2$." ] }, { diff --git a/docs/src/examples/groundstates/ising-cft/figure-1.png b/docs/src/examples/groundstates/ising-cft/figure-1.png new file mode 100644 index 0000000000000000000000000000000000000000..dc4c4239a270672cd30f0a4367c5c19564646a9d GIT binary patch literal 15044 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 OgqVo5Z~^kQ=YIo`O)ud9 literal 0 HcmV?d00001 diff --git a/docs/src/examples/quantum1d/1.ising-cft/figure-2.png b/docs/src/examples/groundstates/ising-cft/figure-2.png similarity index 100% rename from docs/src/examples/quantum1d/1.ising-cft/figure-2.png rename to docs/src/examples/groundstates/ising-cft/figure-2.png diff --git a/docs/src/examples/groundstates/ising-cft/figure-3.png b/docs/src/examples/groundstates/ising-cft/figure-3.png new file mode 100644 index 0000000000000000000000000000000000000000..8b55ec3c9cff7942fa1f7d882c8e02fbda11652a GIT binary patch literal 22801 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 literal 0 HcmV?d00001 diff --git a/docs/src/examples/quantum1d/1.ising-cft/index.md b/docs/src/examples/groundstates/ising-cft/index.md similarity index 63% rename from docs/src/examples/quantum1d/1.ising-cft/index.md rename to docs/src/examples/groundstates/ising-cft/index.md index f634da5ff..77113f9cc 100644 --- a/docs/src/examples/quantum1d/1.ising-cft/index.md +++ b/docs/src/examples/groundstates/ising-cft/index.md @@ -1,10 +1,10 @@ ```@meta -EditURL = "../../../../../examples/quantum1d/1.ising-cft/main.jl" +EditURL = "../../../../../examples/groundstates/ising-cft/main.jl" ``` -[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/quantum1d/1.ising-cft/main.ipynb) -[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/quantum1d/1.ising-cft/main.ipynb) -[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/quantum1d/1.ising-cft) +[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/groundstates/ising-cft/main.ipynb) +[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/groundstates/ising-cft/main.ipynb) +[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/groundstates/ising-cft) # The Ising CFT spectrum @@ -126,24 +126,24 @@ append!(momenta, fix_degeneracies(states[17:18])) ```` 18-element Vector{Float64}: - 1.0963150642957372e-17 - -2.4157081442786943e-17 - 9.150251499481629e-18 - -0.523598775598299 - 0.5235987755982987 - -1.0471975511965979 + -6.835457747908734e-17 + -1.5823223400041525e-17 + -2.117254204162227e-17 + -0.5235987755982994 + 0.5235987755982988 + -1.047197551196598 1.0471975511965976 - 0.5235987755982989 - -0.5235987755982993 - 1.047197551196598 + 0.5235987755982993 + -0.5235987755982985 -1.0471975511965976 - 1.4597368636872088e-17 + 1.0471975511965976 + -1.3705449793358471e-17 + 1.570796326794897 -1.5707963267948966 - 1.5707963267948963 + -1.0471975511965979 1.0471975511965976 - -1.0471975511965976 - -1.570796326794897 - 1.5707963267948963 + 1.5707963267948968 + -1.5707963267948966 ```` We can compute the scaling dimensions $\Delta_n$ of the operators in the CFT from the @@ -177,53 +177,7 @@ can reach higher system sizes. L_mps = 20 H_mps = periodic_boundary_conditions(transverse_field_ising(), L_mps) D = 64 -ψ, envs, δ = find_groundstate(FiniteMPS(L_mps, ℂ^2, ℂ^D), H_mps, DMRG()); -```` - -```` -[ Info: DMRG init: obj = -1.946908612087e+01 err = 7.7434e-02 -[ Info: DMRG 1: obj = -2.549098951719e+01 err = 8.0439536934e-03 time = 2.57 sec -[ Info: DMRG 2: obj = -2.549098968635e+01 err = 1.0703227324e-06 time = 0.80 sec -[ Info: DMRG 3: obj = -2.549098968636e+01 err = 1.4373447563e-07 time = 0.98 sec -[ Info: DMRG 4: obj = -2.549098968636e+01 err = 1.4665972881e-08 time = 0.42 sec -[ Info: DMRG 5: obj = -2.549098968636e+01 err = 6.8081026722e-09 time = 0.44 sec -[ Info: DMRG 6: obj = -2.549098968636e+01 err = 3.7573810815e-09 time = 0.43 sec -[ Info: DMRG 7: obj = -2.549098968636e+01 err = 2.5698292651e-09 time = 0.43 sec -[ Info: DMRG 8: obj = -2.549098968636e+01 err = 2.0113551709e-09 time = 0.43 sec -[ Info: DMRG 9: obj = -2.549098968636e+01 err = 1.6427286008e-09 time = 0.89 sec -[ Info: DMRG 10: obj = -2.549098968636e+01 err = 1.3479784013e-09 time = 0.55 sec -[ Info: DMRG 11: obj = -2.549098968636e+01 err = 1.2769471445e-09 time = 0.44 sec -[ Info: DMRG 12: obj = -2.549098968636e+01 err = 1.4168057275e-09 time = 0.48 sec -[ Info: DMRG 13: obj = -2.549098968636e+01 err = 1.5595217750e-09 time = 0.42 sec -[ Info: DMRG 14: obj = -2.549098968636e+01 err = 1.6950091915e-09 time = 0.41 sec -[ Info: DMRG 15: obj = -2.549098968636e+01 err = 1.8105744613e-09 time = 0.40 sec -[ Info: DMRG 16: obj = -2.549098968636e+01 err = 1.8924908787e-09 time = 0.96 sec -[ Info: DMRG 17: obj = -2.549098968636e+01 err = 1.9288336151e-09 time = 0.49 sec -[ Info: DMRG 18: obj = -2.549098968636e+01 err = 1.9133807885e-09 time = 0.31 sec -[ Info: DMRG 19: obj = -2.549098968636e+01 err = 1.8713994972e-09 time = 0.38 sec -[ Info: DMRG 20: obj = -2.549098968636e+01 err = 1.7813737815e-09 time = 0.41 sec -[ Info: DMRG 21: obj = -2.549098968636e+01 err = 1.6542099689e-09 time = 0.40 sec -[ Info: DMRG 22: obj = -2.549098968636e+01 err = 1.5039369007e-09 time = 0.40 sec -[ Info: DMRG 23: obj = -2.549098968636e+01 err = 1.3441838671e-09 time = 0.90 sec -[ Info: DMRG 24: obj = -2.549098968636e+01 err = 1.1858446625e-09 time = 0.28 sec -[ Info: DMRG 25: obj = -2.549098968636e+01 err = 1.0362811206e-09 time = 0.34 sec -[ Info: DMRG 26: obj = -2.549098968636e+01 err = 8.9963099646e-10 time = 0.35 sec -[ Info: DMRG 27: obj = -2.549098968636e+01 err = 7.7760121034e-10 time = 0.41 sec -[ Info: DMRG 28: obj = -2.549098968636e+01 err = 6.7030150822e-10 time = 0.40 sec -[ Info: DMRG 29: obj = -2.549098968636e+01 err = 5.7691780289e-10 time = 0.41 sec -[ Info: DMRG 30: obj = -2.549098968636e+01 err = 4.9618146296e-10 time = 0.91 sec -[ Info: DMRG 31: obj = -2.549098968636e+01 err = 4.2666435281e-10 time = 0.36 sec -[ Info: DMRG 32: obj = -2.549098968636e+01 err = 3.6694816435e-10 time = 0.40 sec -[ Info: DMRG 33: obj = -2.549098968636e+01 err = 3.1571200436e-10 time = 0.36 sec -[ Info: DMRG 34: obj = -2.549098968636e+01 err = 2.7176974363e-10 time = 0.38 sec -[ Info: DMRG 35: obj = -2.549098968636e+01 err = 2.3407977700e-10 time = 0.40 sec -[ Info: DMRG 36: obj = -2.549098968636e+01 err = 2.0173966270e-10 time = 0.40 sec -[ Info: DMRG 37: obj = -2.549098968636e+01 err = 1.7397391951e-10 time = 0.40 sec -[ Info: DMRG 38: obj = -2.549098968636e+01 err = 1.5011934910e-10 time = 0.87 sec -[ Info: DMRG 39: obj = -2.549098968636e+01 err = 1.2961022917e-10 time = 0.35 sec -[ Info: DMRG 40: obj = -2.549098968636e+01 err = 1.1196457020e-10 time = 0.38 sec -[ Info: DMRG conv 41: obj = -2.549098968636e+01 err = 9.6771723038e-11 time = 22.14 sec - +ψ, envs, δ = find_groundstate(FiniteMPS(L_mps, ℂ^2, ℂ^D), H_mps, DMRG(; verbosity = 0)); ```` Excitations on top of the ground state can be found through the use of the quasiparticle diff --git a/docs/src/examples/quantum1d/1.ising-cft/main.ipynb b/docs/src/examples/groundstates/ising-cft/main.ipynb similarity index 99% rename from docs/src/examples/quantum1d/1.ising-cft/main.ipynb rename to docs/src/examples/groundstates/ising-cft/main.ipynb index 54e1b0ed7..e21dc19cc 100644 --- a/docs/src/examples/quantum1d/1.ising-cft/main.ipynb +++ b/docs/src/examples/groundstates/ising-cft/main.ipynb @@ -197,7 +197,7 @@ "L_mps = 20\n", "H_mps = periodic_boundary_conditions(transverse_field_ising(), L_mps)\n", "D = 64\n", - "ψ, envs, δ = find_groundstate(FiniteMPS(L_mps, ℂ^2, ℂ^D), H_mps, DMRG());" + "ψ, envs, δ = find_groundstate(FiniteMPS(L_mps, ℂ^2, ℂ^D), H_mps, DMRG(; verbosity = 0));" ] }, { diff --git a/docs/src/examples/quantum1d/1.ising-cft/translation_mpo.svg b/docs/src/examples/groundstates/ising-cft/translation_mpo.svg similarity index 100% rename from docs/src/examples/quantum1d/1.ising-cft/translation_mpo.svg rename to docs/src/examples/groundstates/ising-cft/translation_mpo.svg diff --git a/docs/src/examples/groundstates/xxz-heisenberg/figure-1.png b/docs/src/examples/groundstates/xxz-heisenberg/figure-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5cb23a3c0ea4d3a4b0e992006d0aaf8c39a2866f GIT binary patch literal 12994 zcmd6O2UL^mn`aaR6p^45rHZI12w0F_BvM2aq<2t2dXX+&B?zK`UPKTG2uL#&DWMmo z3P|r=Kw9V}K&bQN`k$ShGqbxhyK~MC_ngQT^5y;B?|q(MdwlgkS%Kyl^DzVhL8Ev_ zRt|vlm*sot% zx-$PJ_voEZ=Xj!1(xWc(e|)cRsOm7KW^QGTZ)G3Iwk*{$AC9q_%kn+BECzO~vUF#6Q%b?tbOiM_5CRR___r)O(OyQk7cP{bqX{H+c5HxSn z(@<0kk9t>!tRX)AHTQB`zwzs%>X$Su7twwBR-HAkPR)@UIXdRV$B)7dX6K=&4rLtkQ34OSoIcAZ%=Cahy1F-E6SH?#PiNgx+h2B27AUr9hH~uE&7& zPUL$FzHB<&w6|ZKeQ(SA$Vi9&+(}r4hlfW+MMZ6GZFhHfbBwSCDCX%~(6 zSD83TiwScRvhK1RE^$p&iEn9XsaR_fpZ@t#-6F?pWB%2vS2>dF>+80I1q&nPUJIH+ zh$8+IA^R0cM;i4nSIQZt>t5^0l5m^v>*(kp z%=Na$2xo8PQTTK6^3IJO>~Ge-W)d(cdi(C3>hz?jsOa7{0V~NZD7Y?W!ExvoJNeiW z3tc)J9Z|n!?``JKAq!FZrL=<*?7m3dk9S-aEwLXlm~z&&=@0p?b3I2-U6j}y zayBe=Bdo59d9GVxB1=n4W16Q1obO!>Pfbl7eocvpyp1e*DIdaITVLs)Gc|y}^Y2RJ0 zFbOqHO$H7Qg8Lm{0>+7(wQV55*!*@AbHb%sA$l>^gd>>H+vNJPruN9VRACLU&R~=$=&&eca{;C)h+#H_rJaABvSV3>w*###We0+g8%eTn&J^(si z*z1zg((o6EhqwQorZwfMEj{v?OCdDFptz%7b11l@vlC-@7$Nf9K&G$IVbq~=Pb=^_(=R9nhw5Fz}7)H5@CFIbrI>*reOq>3X zw)21aJ#NZJa&iIvwplkit#KdTzZXenM?AA-Wk9z|tlcZLA3l8ea8I_eUpGZ^aj_ebcN*)#xls&uERLgY=MLqVhN3WT23{No1_ zWoBm9XTH6)B`YhNwwB#!l4I6ma{VJd!3lAT%ygP7Q#h@tNQY`{VIfm$oj}l>e*gY` zpZPJ);}rg42X`YPBA5h>G&b2Z!!O>Cmh#!gjpUS-4e>{me)#f*2ctYaH8nMl!pCS} zcZ#dGeIoNwLDq8Ws+lhPi>usK9){M7CvwGb`JV8J`Fea4Wskg8(xhe+wWw6NWQ%qC z>WDG!J?qCRMnpE(*LR0=#$wMNKX$CcQt-ls3;X-~sG#xjarj&+&S*iazrw>!ZL|yw zSXo)UyDvQT@VIF=u)aRqDZHOT;XgL@#Z40K+=(LLt(B`^$L4BH@v+Ht!zovPiT$-V z^*4>$+lop{o6ew7DUSP(mYPm^M2zQfV1;OMrbXOa5>(yYH=&_$b8};9!^6YHU1rXr zEk`TL?aY0Becjv&7Vca|AVPnooxP{5tbFfYMp~MP+q{m6Nunp(xjFh~0kur(y^q(S z1?K1H-;WW>G$?i&uX%+E`tDDut*s4hb_vc_tJF@0r(b|S4>{tN$YR^f>SU9;nwnmr zeYpjotJg-^=7<-39Nb2M`m-D6KQHm~@6Q<@SYJI2$cY8eqvjkM8WOS}+8T0h_1Py* zOM0&B(#bgmH#aw1TU#xy9-0CHUf%HO zhb1BTOie$EO9C?3A~#IVh-w!;xm8chQbj!LqC)*wzx0g`arFcF$D5o-gGFDXz?MKc%*1j(fvx$brhHwszsu|hDjwvXZrKg zrtS#$WE5#HEpeK2>wA*hP|8`x>a#o)ki6~7GJRX9*SlYVWB$SvYtG1-v-=&fH|}Qz z-=svmWtO3Wmq7VPegf`2#G<2|HPw8$=W(n|a@Ff7Zj7hlPh+l|z6NI}8mUly#_?@U zW4$Bs^s@flbJ7#LZqjwdHWO`^5Vx$!IsZStc-HfYUAXXgZK@fLZjwTn(COpaLL#pC zE&#MEj7`g9)m-P!b$tYy!%t#*F@jc3t&*D}Stta86{k=HbisFTJL1C!z}p-s0{{tE z=J~#yiN(^TmWGCg#>U`RuZVeqjW!HiV8RcZ)bA}*aq(I^^f-!7Z-*51tLwae{>PUbX&W+ zaT4zTEi{T6%sQ-bZ=5}L6GG<*o*3m#aXb5x&sewv6qTH6SD+S_&?q+5f+5|+`npSa zgUeXek#eK#3Va}k?*kTq1DBb$v7CDLxvun1%~2G#dwXYRaB6F7%M#Z+^u5~}*XvP` z(6JwwN1g8Aw4wK7z_G5_cK<^~^oQ(1q=e>)a0DE={S3v|( z(y|Z1qY9JW-%1E%KZ)v+DtZT?_3>kWiK~r*1{LC2qpEgD3$)joAi9qqKc=UrdzSld zEsvpse*XLkDut1Ofk-6!9PDj2MGDZ;(vIesDooUcoH}_DjSQsa@Lg@-_FA7wxYX!A z>LUz?l;5yKBn=KP8p%BPQKD2yMP;auSXs>(z(PjIsqTU+ypS zSR<}Y1Aml!^6M7id}6lqUY0S&bwf`Cgd;vSsHTo4Q zp~1saY)(9(;R}!X6X(FItb;x0AOj&Y{zCgS?Z9 z985#R4nj^38{QXG=A-!$_&x<@rV_e$(kEnH?JpZzIZ^jGUBxq za^?n5S&6M*{!r1l_|?tL%7#MnhYAig22uh~vrrz^k&lNzVGmTv`0Zpin0VCog~~KYzZ<bc!eYa(c(%t>kZnG7vxqkJpzFr?e<@8 zSK!E;7DEi3=O~{VdGI<9i(qY15?G|pTYIj!$VJXf5ctz2)AS^$B`}L)O$a*-nEJ-R69+I6mk{6SeAXa+QF%u_(|qk zPtdi&0~?K02HsYVhp|aA*YstZRsu5m+w_eM0`Ci_)i&e2p zwVP@Z2~^s4Pa!;ceh&ThQsOrk4~>}SZH2@Lei=8GZZ+~Tcoxk=86zVD>nA7GB7&$( z%Q%L9U^2-JGy@U$-=@k_sXnHAH62lO)eaq|renm$_L)zJmx%}9G~~?m6WxWqn}^t$ zIc0I0wvAd{s&;~UF`k3Y8ciqBkK?rbWlsI#3}xhTEX*-{)-?Akd-j(A8p&|8YN;rw z^!_RL7|{N858GII>30OKx3nYkH+%CpnNU>Wa)NG5_%wdrJm#_mB7dlu!c%DfoVQ=1 z0|Q6Bmdd%6V~cWS?Clr(a!mE}E$L33%Jbdx9NeuAq}^N`7MGClhPJ}QZ}8-S2Lh1> zTEnzH6iB$;-Mfv?4v~#dOk`@=U?@Nk37$TF`SN9I#w$#w zj{WPeldP-~kE+Obv?dcy$;53Kp8sX0$BAdX=+qm0(Wr%o@(HkfbU)$Aj33_+oix@3 zh^GB;3G|YN!9ji1_sh%6Ami(6Yx|iEN?g(v!!H5=egFO)6$Ir`XxqOUB0RFSzq1tY zw@(b`RyoFbjGFrP?c1H5oq*B4llo>B7WH*?=8qo_KU4&3hr<6mJI49K-{P&Mxw*MN zpi3AC<6GRs#c)Mz_w|;^N1LJIW?{>b#=cgA1(}6~g-9^fT<~49@Hgqhw}xf9tOY7d zL1nV+g3|`;RJEWWCkHw5IXPK05n8FniDI3UPoF-y8SD^=lhf0^_DELNA)HNbudyEq zv0=03dNSvL6oizurR3(W?h@BP9TbS>nKws^I#1#5eo0Gfv;17@c56Tq^=EM%i*${} zCAA#$Mc^_R9f&JVzdgIYxhWtZP$+qYkB^3mDy`FevM~an*cK!;fHjB5?{|RgUj%+O zH<#~IYZ@6D0h5<>n~&Ol045=kXqb9lPSxAT=fJ?-Akrv1@&?tU!7!>Pw6wUm;SAa- z%YN)xsQB+TOAQS``P850dD~ZS-o$BQwOj{e<>j-C%Eh?3Et)>?fhD27Nd+QKO*p#Olr3jijm%#&nx%ZRE`!@q@v^C@Pji8&JJ&I?!)gd0IWdD*3mH>MtpMWS~z74 z28*__&*Q77_csbFGj(!MlGg9Qv~gcD!hHu1>V>~Qm~e@5uM2GZPck#}pqE!xh`p8j zAhq(rp~*C^+;0-7boq0@op#V6wI=PeE`EvMmnz;4a@(W-jjV_mZmE)^h0 zeB<9bbMe1gU;GzduWxkR#l|G`9QvtuWO5yzBto{P-n({+%2BQSwpWU%?eG3|aRy_E zVE$x~wA{msvh?NCqPJio6S-rQ+-6D7Dafrv&r3EOk)uFj_Fm|(w6D*FGG0Ojoy-$a z`}F&CK!ZuSM)EH7(9%kID!Lg?z0-m%{HKa8Yss-*21rUaf9I{ZvWC>E^~|}O@gv{u zcpDYxVF}su6GPpgH)zAFmdQlzHQO~?s3yqA@+$BgPO`UW z-uu>4-Jz#~^z0?0bwu&{n+YQ(_udyQZAXWY5k_q98#2aR`scmw`xv+<*&{!fz<>%8 z*q&MU?m>~=EQrvOoIkK~z@)a2_6gQo`5?RLl-*vDHG)R#hhLqCiz!L7Oo;to$(0kk zS?yI-RbU-cQc%DlSI3s$9sdv+xinbVYIeQ0rUs2hr`=GA6;ajHOjc$&{u11gKQe;> z4MdLp>cd;{Qa;KUF$Q+_3bzG4%wlCloFpF~9BN-MDDAq^+LOYhN-WzGfoC4&WcQrm z#CGH7=6KOF1Gu@W0O~&`i=)g|BX9O@>%nd-NP0kW@VUX@tD|Ip`pL~7c&G?Jzx`}S zGAf7`jBt*Ftw3fpDoE}%V{KiXSlU$t!rJ+VC^+o-@E&N$)SP8yWq=LfMH{AuWM^l~ zI};0)1ers=Km01`y1hONlsXdpt3;u{-^o4}K+SZ8Q3(v|?W^a`je`fC)j8E~5%06R zQXhDN4ZMQuH*PTT>3wc-cXvMk=aWHB@&0{`u)~PDill3I;a9y(`J|PD{iOq2XA@IX z@a{HjBFu7hK&ss*G#*JetiT@~c=->hQEQ?~AK=IzCf(%-*fls?!Wc-N&~M9#nju6o zEly3DgO8Li>bnajSv{cR%=C2RUw`F-Gw!x9aFo+`dzKseEoTjA5z6DIpMbB0v+l+> zk`#~7$9urs^P5*TH^YL1OOzG0d)j_|ymt|!Y=P6m7~b*u6TsO2v5gGa{n92t5fxk| zt>6*Zp8?27e#2ulG*AoE(^zL~FXCjR#m}gf^-dLPPB91em9Q(!mP z6$nzpG~1}WYc@KXc@WK)Oz_-`h@S#Z@8sl^b?*UWDL+7Rkc?ZvCqO0<-`%J3@^!!( z0+1j-3P*jtR8`+Wi~-wr0B!hku*ucaU`#Ln;0l`|Yy)d3C-msUIoGD2#DZ)a!0|?g z9Y(M=s>+CXuFpJs_6(f$Bjn`sgN50uN%E+mw{PFVMfD}OM6EhLgW>|OQA1O+e7TAm z$Ob(sAC5Gn8r&*zU9&FWfBsBUO*$`e=ma87g;`ED*04GrAb^d9B_<-m)qkO>vC(=o zf%6sEd!nr*3-&%+KKi-GJkw;cmvta3Y!LbIOurOZx zT3ZMQx#lz($N$7^%(9hZVVu(YpV zm;Gs_z%z*V+0eymWrDZC#L7A!bnXxWd18P|0-~B2Av?Gt8VPpfwQJYFig6tn@;lfY z_1&@a@F0G?VNu{P>I<@&n)3vQl=tSayNw_)@~2OqT3XIPKVVY@RlyTDPX{`P2nGW? z1qB6&{vIpXpV*?JqHo{6;qiFxc<^tjjOyXl zE~~X~WVFXwMV3LJgWJEdvXWi7zYV?H$H&LUSl79m=?k=AxK*j0`5S|=uoFAm+eTR6 zdRc3>x08G4CXfGvQ~vRn;gdx^O`H%F9LUhkgPYOG)FM1GH#Y|d%tjb2+YyLFfB?FR zVJa&RAe73r>byt@0PDe;C9gj=JiHU$W>fweGN@iX5V)-EOo&_6Q*Y10ih!z40}DeV z;XySwHZn^*{fZoiE`i6K3}F#Iar`*Mr>RJk>U+Q|oNd1viSNb#Mfy62)+w;n1x}r+ zjA8w=^Q_F>vo6$3{G`xt#B(n5&6_uXPCCOO_wU}-1BWK+nyDajGjP2)@70DdscksB zKdP%u!Ocbm0U386@kj+^gs`-+u~9F_Bp_Dd8|2CINtc5C8SMm_Z(P3)q1hwxR*M`R zYinx=xVi!_hR;Hh4a9j2&oQNfK%BH8%>s;#=`A?yq=2QbtE&rM&BpqA*}t(oY%un= z-#(Y?$p7&>{y`+k#1`L5q9UM6v$+qcdW9;dcFwvK1hTWUgTba<@f9%C)d)Nu|7F9Z z|7FbmpZI|y9UAy}sr!jij^MY?kjP{)|xoFF%TBK9UoWKLAE|d4!s=W z8q#mRjf&Fwdl&#e7@*eK=UTjBm_je}bbY41*m;`tex0(XE73P?Vs&m==Op=V5Vzw1 z9KkjepUlL}EWgU1yc`*87;wrPT**FM8!O(=2(JP1iFB2Nhq%DfdxeHMqS~{X!oTfIL^; z(K)^t?mfGz5T7Q`EWH_HC?Z2uRFLYIJKvy=M%GSd@{sY@W>k20%_?&_aR3GTif{%L9j0sRaC-W zy>fKXEQ|(C>FMby1kFooH2-JzW2=YxVm=9S2Awxv;qwzj@>IWP6Vz|3si{E>M~X$K z7wqYdm=C`SdhW9-BvSfz`$JqDU_I!*wQY~mHNGWnK`~BQj|oObjQ&KGi>t5B6k~{5 z_Vi)kfSu4N1O&3Tz135BuiJzcZYjmD340Q%p&_OyV?6hSvY63YSXW5o=;-K#JBm_L zrhv!^_Z4v#yUhMoTIvOHZ!EA4aTu3?`n}0qyb%cO3Nju^zr|t(dPYXPOG#Y_i#ROn z;({SC?z?Sga1(5puhd!0M-X>H&XWJnFZVa`*le-Vmob06dzS-* zXm@w_$B!Qa+A7JZsoK!dnErxqSVHRH^1WSMu_BJ7N(bn6F=}voC=?UME*VYA;XBfy z{`@Ivzx38Kht%B;JRv75Yi4dvG9eE3_n^fk3t%9ThK?}|&Lz|y+y`!8RH}}FiRl3J zHeeG2ik^WXIVI)g%a{AxbJ>H14l2sZ1$voy^{hDv(4e(L^Nov(!%cHYJZ*b;HBC5} zRpiMh;1*D5@=4cV5&&%8D_4Fh5(d=e$zc&)vtEnE+;I5z znvNbjb`k}h*rLmZ1H1xfcX!%j$Bxm`X0LTMM(`?xFefW#>*SdHjJg(_D660#z20^k zl5km2;~X&05*;1AozpXfFuIw@_x2hIbi8@oLAP@ zuU|pcL)O6#5DsVu3&v>R*vKg;wuwZboP%$*0Dq29QbtBb@&=m-GDGO0rmDIEP9Frj zl;q^=i^GGkm;C?}KpvTly&uIuhzqH+x+@~8c?$R(v~>6+evlGX=%bE~jxsVbK(L<} zH3&Zj@jo^;=6C=M(!mRlfj+&_Z_zyq9y9m(^YrxeUF_59Dfb-Jx`pQeQYic%eS3Du zS^?4+t)2dX!8MpMxOm|L+}w`>$x5QT`@&gL+5+r_LGCgyFEtI#aGph&SmmcrXTjGm zDbd56pr*#Ar^C;hnw#${DPh^rF#Qv7aDO;ss1f!Uz6$JzJs%^bR)27Tg|3}i4^g#A zZSX)VSnD31p6pWIP@C;9p^}*tzu*x9E}Fu29M&N4k$zfvG{uCZ>Tg0;d=1n_dnw2tGc(Jvclzl#dh@ z6)~aOnws6FwEJany4L4@^*PG3V&jm^!8Km7I#?g6V} z*Z1{N+b0?P3Yv6F%z}4PJBi!dFVW~O-5;+7Do!ttUQ~%QXk{ZNb%|xi8mp^^M@5N1 zcEBm?>PjFf5UUuVLLu@KOG|$EuJmWT?>~I#QK#I$GH95imnn4qe2uLTmX?~DS|v`R zKS_a>Qx;~|z>!)64muzJ(o#xF3aTAKii}R1$fCVny+X2V-8}P|wglId+bEPZ2TB80 zmaSZ0xx1tJ+LAsps~q7LBp((IsyDmagW~b#_HM{q$5w~ z`>rMT_>90b6vSNkKK@IWpy$nyW|Xwggvi5m40LPWdXI9Sg_iiKi3wA2)`8E8r$F`X zkd4Aag~=JuB3-{_Qk;>09D(1A-h z026Fn8uZD)dPlw2LJ}{*6Q2XJ=kwm4R(p}oXxh{Xg{msw9ARN(Oxe&-eGj6y0Q5HA z#l>YEwCP;3_0FBUci|2I2HtEx0kj}Z$%ySihNT=U(%$0)H3(BoDo>wo0Xys#U4m=P zv?q02LB|_RZP7QzNTOcXIt|(tPEJh?q}XuW#^x!cT?z(#fzg4)OW9?sjW{xM_rGWxFai`yRlG@W+Y=??g8p635 zvP?))<@~8V;%52yLUwSFX6I zJ>Pg27q<`QgCC@41+>Mzvs>t+r{X-OKEeb^*?Nc4#qfrslVU$1%{#}%)lFLqqUUvR zu-fKx<~ML<2MAj~TEwN_kiKxCc68LZe0~n*%kT|Ogml1B2vwksn?iN52o>Sov!vkB zP@Z7bfwlmL9I`|I^0W~$UsqgKWc(t?c z-MP~T0i~JQXR*|c4Q~L)69aLj%dJ=C=|{TRMksywK8`;g30vzHiU z3y7p{U@%`Y`W*xI025Q>+qYL8$7Kh9*3{InOM0gHu|RfN?nx+FUHS|yG%>NtRoqt- zXrC_Brky8DE(&jie zV`TuOWJX+F7UmFMB-@!QrK4 z4uBpIvB%Hd-auKo1%44soZ#SK=)gmu(;|&LXZ5Nlp)F;XZ|FhM0$jsG|1~>HjI7*E zZaEBNmGB&U;o#}-?(9rVOf;K2-@O~`DWeXLvM!X(D>F13qF?X>G2-r7>FGou6C`_z zq${Y`*Vgo5l%Z2a+GkQ|^1~{u93$;lQC8*+DF5jX$1I_lq8)P2vyRZ_p~9m?#(ui2RJCO)8}@Xdf9Dc3^7v>Jg8T%R0Dlr9xVU~ zA`GM$5P%1RHTCrh3JStj9lzn&80MIe#!&HBNU919Qz>}ZP?vL=Onz0+niG?f$jHdx zEQ6`w^6T3n#|4SB8!hlKzZl)riV}IqVB#ytu+? zhYDiKw(Y_K5eO5@O>2$m)89DYEN;*cz+fP$32SRS=)4sOr@VkSh&*`+3>W60kSMUa zmY}0UtJ7xT4R%@?mm?UJ01bnz3k=<(oG=I=?uw^JB0m`gMa9Sa`Aa*`T)~GLLW76s z4P4`BFhGIYL7#&5k!JA*=IV%5)B@y`l+>Ic{UOzHc6PS0wgymJhe!0K(g6+2tF z`dV6A-n;h(90*U{kifutK6W%*y1BI#Mi^%Q_}?&v*p&ku_%I3f)-~&ibJ>+yq0V4I zz$OifNW-r1Nwx4XDgiSB8^YG_7aX!XN=h(@^2yGNG;;xUoW20t6k^*-$^j?2e_@Me zslDy_zzYWdnxlIbA}-s}isAIhu5fUNfZHlygkqX;4qt8hpem(cw#F5n`!e`$&i0ao zshy=t6&00Ar;_hbWQNw(U&PA6*&lSNzPKPF4U}omwv{MJnrJiF`l5^|@Ia(XX3=}3==cWJq22flfQp!XlV3JK|*UK z7%je7RQ*cx5I_1Xxq-g7x3{Y+u7oLV8|uV!WBv@-hBaRhOjQZ0-*B$89gktoMn!th z1$GD;zBGIe%+LcI{k;$NX_N*=ii!=u1}YBrz2sD(_F&wiT!F)s#OV?Gx}yUJ46?1OtIUU`fAtu7p6`(m)`PzM$QL z|G88T=z|}qhB8vm5!W~WQtNUe5r{_!>F1&gUhCKC+@m5p@yAzYjwwnV)_^xO%0u z&qPjMW3~UTKAt2cN$8=4YyJvkUO|PQ$mpVII}-l)$m01N*AjT%B2S^|tE#C9d0$=3 z{`TM9-Ob9%^0m2>I!uX{Rvi@;^}ONrQg__-;V`q#kAKU{>e|{9B!yS%$J;Z)4lA$Z zs%*}k=b3@HZ(2SvqjUtix;H=ocD`W4jF4?o_``qtFc zq}KXuAGc9>8yOqBy13|6+kNb~I7vwR`BUK8GYy{*q;hU#${lGHm8jg@-0Esq35k}T z1fIdc!QtWIsi~>x=;%BoRaI46TU&VR_hq>+rK`OiN9_6Y=ZuVuxk&I=VHCph3JQH) zU4#Ao->a%dhldxZkrR5njyB@He*GF3r|If?3a8{?XXoVPoP<+GMG0Bc^YNX*{8(|< zN`;X-IXThL(9qME6WCKq%&SRM42%&@(R9>;Zcb@lYT z+}PNFA;2dh($>&8SRV}|QBzlUK0n&zc{}~&=~Fj1H?PX7KY#u-HZ}$a-^InnB_&PJ zt8=rxwuHx9A1x-p$3HkYu(PwXnW@)(^(wWvczbJ$nUYd8g#O8s7cXC?PgmvUKKb^- z@o+2&0}G4BuRDo9mLCP363!|9>F(*qw6Tc^Dl#(M04XUc_5;>`gW|XRzRb;Woc_wRLTE)iw}r zS|LSf(Y4rVx=#e~p*-{Qdp$#9D)i?f*3*v9YoBvI+{;Ei4#W1gE6THgTz$&e%pz(tUUtFJ&TAScBYX3sU@AOV8J1>vkbnqc0ho#e^>YAFRK@6x*sjz(@;|v>DC?{I-`!WAX9Rx4}O5W zBCn`u3yDWmRCIQB)_$p*(l7VhH#Jq&lCcelgq!iNw_E*_<@4Wh2b=trf_|-2VO7;} zOAt|tus1mok@HeFF^ryA``O_-Z$hf?D>#>^sKH2qCj5X!n9OBKcsNm3Qxne-F(%SmT-@h-BH&QYqE+N5QFXim8 zu&|JchNi-Gf9dn*&)QWs@c(#Xge-cK)%MGfWM=Bzc^*GD94|Nb!?Cxw-{P@YA1U<1 z(bb*GkP55!INgK45fTzosY)Em@%=6n%dDiN)Np-uKHnDh!Pgg-K04)X)VryzMkXfH zKV2i&sQ+CX8XDFgV8si0@=-!sTYwYjp9(37=BA}lQc{+9o*xYj4H2>Ey&@waB~_kz z*;^HiV`ygPa&fY&Uaa@=<43u#tnYFDz>@p)3DrVYS2wAwjDxayWaMaXu?tp8cz8G@ z@}r}pL<;oVw?Fh6D=g*Y zu$(W2;Sm?Ygs=Vu!y~1JGEIz++x>~}F;Twb|90}nZWe8t?(apse)jwK@9TN`?$>^L z(-A>4iGAnp0}-^-dV+wbPoF|*fRzQ;opdA#X)RNUHf4YuZ)Ik-b9A&M#GCW&8=u$3 zN%7m=Umr1HVqlV%cy*u4@#U=&NyRejN`^k{a5XbAk+im%{q=G3cVc2947Khv_aiH) zrRC;>E^6e82|sM-QJn|c+s#(`(-QsRZtmT?XT{CW#I(82zo!W`6sq6;QV-NONaNM- zW`Cti1O*2NyB)3_?k&nBH?gy`t6bQhoSoelW7hlmLQueQO$CZnfo7RYug~63bvlJ) zYQKxK^&t+-tVId^?L(UsYp@mD#3u$%jTl?Na4KhwOrlz6s zv>%2v@w5-aWzECD#%7C0Kc&U+^!%KH--!|GB^_N(QBml=0xX0{)2X51Vb|W-T`L+k zws0In3yaRO0Gp{A&pQ8=6*IARD0@&6dUbPX^;TC`CnX@?CFkVl=He3)?hUD`sQhrx z;NHD?9JyECN;}kvB_(WqwDDJ7UNOGDzj~ASoj3mCLivGWijVIAYofjV1zdh*Wd(j` zFG=#?!A{~uM)n>I)g=Gk#u!I389g)e(sVc=20XD`-kIamCFjj`KIg6O$fhCZ=JxiL z!8zxKlKxgowD;b*!)}wg!Zn(VBRnbmP%i4+kH6*RVUY`H$jAhpF?pOFtipNhLqBud zG5{L!`=U^+e6eI~0kFaEOMm~X-f-!yX=5B(8_s`QzlR};wke{d^rznQ9D?C76;-vVJA80v z*Fxo=v8n0)P+4hd{nc{|8d#|Oc@>m}@5h_rZ(BpjCSE3-C>$If!Y^t)PVIV89z-cD zOP-#dG7<*W{Ca=kEp>5uS&cpI^%6=fz&?KdS`-%f)QEz#wD&nztMAw;}+bRz-V0 z+k?A&Nxl0fSL#FI;>lg45P`qrE)?M4nC|Z{ad92GnZ5l+Mn><5jyJ~kJ(sNn1O#9_VNu^?L3-3Xcc4@puPZ#{ zvH;uyDK)nmvj+1W9%v2C6&4`t+2gf6cx z-IEO+9S?Ws+t4W|iH32-I=i}#Hz(SrCMvBbU;!VB;?c_D;Np%oczfH~?d9+*DJqJ3 z3fj&+7i)*)lb63Fyj~`JUq3BBUnXPVCJ^kaq98ZyB{rk{YfMu#BW6%9x;Suve6Q;g z6W|pY64DdRpq?$C^m6J_Q%TA0mmj*Cni>E^STcGQ76ga+M;E92P!Wd*22Mi>A|OZ9 zI&YKnJ8k$N-S+VCxQm5_2Wf*sXtKfk8cKMvfTD!N;x-h&)tr=v4RH{F0Kj) zmA`*AyuGhcFbQA9&T;w2#Eig0ne-)3L4v1|iTOJ|4izFhC#S8s`Q-e(SgRuNWoUL; zWo5n7=J;n^Dji*2h<)elG?QeXs)3@o!Umt8}^w8qAZ z<>lqDx}mb$jFo<@`D(E7x1=qMqQUdLGAU^a%4<(gPf$=0V3V!wZ3<#y>AENw#l^1J z9QmZP`7mKSFY5ZzE=b`;MMbbI05)s>c$b!&Yxer}Ke)c5qhrYio{)l1tc^&Uh_2L$ z=E%rMqJbX{85vpf^4a-0o|xD9CXakpdb;7{58K4rtan?C_VcY+y{B|ypMU%~xw<^h z)Bl`^*~sf0GdtD^%>+6nz>#^#z%Jo6N(ngWSy_iL16wlkI$q7 z!^0I{yg=jfu{R}7=FWBeCO~AYte!-{=kU4K1!}&++kF#5L$N8G&>lzl3%OT37(ZP1 zX>(v)=T=tQU$f>CopvS}bK6X|m#N(R*9oM}Ue?|u|y8m)ZxL&0lHby!omUzlQJ|O+e3MHhg^;yxfJ}OVq=#V7Zs0v zXI*UoX&M{Td}vzvlZB}Y8TcMHc3*q@D?p#Nwu-M_wRd$fu&|5{4J};6$Vy8?HlMYM zQc_ckNlCfRD*QfX1@l4@QfW0-%A{Qh;b(86TU}kfJ=1V=xju~Zv$M1I_I5u%znU68 z=#r_ZsJ8TLA@2b8h2aq(hUB2Btt~_LV;&!Z0}iMxE?arfo)O{VhDSxI=<64!r5RXR zb$d=p$jQmUm7y)^TkC<=6`H>M{QUjy-u3l$dpkP|OUtax%pY%UkMkfDM~n4MO-)Bf zM!x0d9&C(7?q4axL=Qlkp%niFn4gA+hv(U|lgsmCXe6M13mCMTb3J~1(_b+X$^b+i z8j3pCA_|37^8NewU%$k7d3oQwneWqk)wE9~D!2iU=XgI{%G%oc)vH&MlAnJ5{F#uD z;Oi@9V`C#B@v*X!J9-8%0T&lMP?TxXy~EN(1N^l+s(_gk6?Yl7$;*||#1LX=&{qIR z@9OM)DJQqsq4=+r%+GfVCDr(K$z8MzK-JJG={9%?LJvbpISaTtG&B@CMBo9$Fm9od zGR7boJkJ>Dg=D-oL@)nQK1U&r{bNlIHv)~|AqfhlD&WYK0jf2|RLBu^b(c9Zum34S z;Q;=Fos~6pBpKm=fZIUeSUi(LLm* z1J9C@qJTCqG}PVOo4p3~3S_#TnI{N@NRXKtPBOo9Z)2l~me%<1-ydqdt}a}~#eZkX z#6luHgpTp{oqKoh-i1%fL#HGwyD^-vzV8N{k{Mf%7UN){b`^(dub;nvijZf#azSAs zK%gzCNKk6=$;pM@{cBXrklci3xHF1gmUbVy6;d1^fTQ+ss`JD3<3siQf`abO&OgAIsCZqSE^C&Vc$#}iNT7sBTFPG| z5d9?qK|$X3N5gxOWx!+T>gvirUtL>++Q73I0Lu;9cWC{F#7RQ3A=gFcZ;x43mX|y1 zlfpw7jO>YOXliyO=|QamWGuJ&sbgqx&~i8CgdXY#GqXGZU|0sSva0U_ZA7j?C%F|7hdDS`d5E3$;CI|oD#`VbLZOcZ|5 zDt`_OV|n^iNkyfgsK^V7$kFD6wg-cC|39{A1=(zF7q|OjooJNCr+CX)o*r^-Fem+m zNQg!vuJyfug98U);fDVH{=~$G@CG_zvCmL4a&ne4r6aed>-dd3@wFkP$aE2|Rc-E1uC9Ks!V%f`3 z#UB_L_;|7U=Wv7-mobfK`E3M3?j!b+HE~Q#%>8Y>FLR7r>0*DkR`Db;zR^JFU`#G# z8M8hJ=D6b=_Eq5L_fZ8$U90wUoh&JLDSnN+D`Bb`2!u6>@AsC2)v0sG<~q+iVSa57 zht$-QemZ-GkqaVELGXLr_We%N(b2)A%cY=)HY7GxEn*BCYLL$_^RPOz1U2tx%$hCx;Y9oT;iRW)FL+u_2Ugs&21;2-1gEm5AWAU)U%ltkf_4n`KSFf|(!vuHdyTv$oe&L_L>XeD;3@)vh8ZL}g z{_{om`9va)lK6|{!Ghsh)Z>!M^3u}#Mr{ZL87^GtCi`IpW#?UOKE7X?@LWHYLD4%_6@5L|-nUI@n5`1o;^6#7X5KmjFloYS_a^k=%|ry~RipPk0w z?>!~ozkgwoqlqh_kU6Y)*`&R6B8#J=3?C*m@w2`cB3Wy@l-u@I`ZT`oWkrERm;GXf z!e!+L-2NH+S1XeqYf0s{+Bp@*7zTqcK$nX9H`)w z4|{PTg}f4nD))c>_066s2Rb@BK(E8YL!iqp#vVhxQr=+q<{72cc>GkrpbimW(oX$oSvCW|o!{V`C_&sCIz_1O!01 zByd~vIcd zNKoA$?+lth;{wxq^=A+|jAFgI@nU^pNb5lEnN-|``?HI8GXqZVU~sO&a#S*e1PC>B z$~UdSyL)@%&^wtzwLLp{Ym*M0x1eAWFjY@2M+$Zi4=?|m1O{SkHNmh5G`F6b5^R{zjIzZEe5Ur{_bw#J0f`%}8eQE3(6=Yz(G=X@CGun!;%*nOjtp40ysbDK?glfgy-q%hJ-!?3vw0bI%ulM(&BJ zyuKl6yawL&I|!d*vytHbrl$90pE+4s`v(R}XtaD;o-#96ez(_r$Fyo_n$pEL=7Ogap(MQf@1V=KjIK z47Fx6b8|u0z2^WF;f%m!Lz1lgcL$raK=Pfs#*`q1q!57$6g)B!`1FT6*jHA%aDC7p zm`1TZu!1D%QgqmUrE`o~aTifTjuZN^>g4{IhW6#Rm!#1aPpKbp0u5(a;TIUQQh8x}%IUB1F!8qK`K_6qJ7k&BR(y%xV;mCiJfaN442|(sn2DZcd(J zmdMtXHdzV>53Z?kZq8+s-4nuV>+I-2FE<8Ecu(|iFJqkW`Ep()Xgn>3CEYzd%0xEF z4Fm_%hE^H2vIFBqHo%WNIXe@{LiOE5z86v{3`$NN5O{+**vm&Ks>58*ReVh~ZYzV{ z@(IW8YA&mYJCr1QB&o-0iAftke(!cD5@MVc*+A;wWY^1$9?#_T=XSZ#(ZhjUq}iK4 zzp!4(_NKSJUG_g+bS`xwe}O^`ARO7CjdjYj)UBId>*8AYX=$4L-jW-UjJUb^>IYNi zSlMSUGNaKc{UnP^_B;9=g(C}WoBhjOx3L=+lo1AQ*bp< z3|+0wPbjbbm?_FpNEsoi#?i{ywu_EiKK$qJ_XT*q1TS)uDJ#yJF^$^00A23CI!7RU z{aV<`{Iau`dhFXsNk~AP0z8=aIHBk2;FgD&nbj|^gOlAaDTD-}Qwl>N=#)+~MaoB(Kx50Oy8VWovPam;%=k! zY{2`dRR4602_d2l_umfm&rg5s2!5^)Dls@>XbDXBZN>Ok*A$d#jh6}T6Vyp&L_6AH z$RPirL--(O`_1kgFK=5iDkN!^IlgdpEJRCM8kjM*Y`2E)RZOT#`v<_-pB`=e zGvgd@wiT9tcub|BTWp^**{zXoeN}S6ET0oes1NwS?Djh|l^3U%6^e&LDq3^5*C?6j zWe*pkF1@Yst<({S3xDFYFYFu~K|k!xd-rCNXEY?yR&7jb)<;kPX^S4CAR6DIiOptZ zWY}LGD2h5G!8knQ1l02X(^dV?d#?Z0-~OlNGGSm~Ogqncs5!}F+eaGjdqE>X=pcna z6rzZt{cKf8@Z?X+Z8x~L`fc~w8l~} zO2ZtFH#x-hmv@ew35bY@tlq+Tke1QXaIg1AU%H)hK9%kqC4MIH{5e`K6~bo(L=MTo zm(zIC63K>zeq!e4c_L>>2s3LmF|+3JpA1w~fjLjYPrI9&{c!HvZF?182|KWtty;|g zkQkt~`@g*ayM1K9EcmYAB2sBUi4W%;^o$aBj`+!wh`}-EmlyFlEp2vb^V)^!lH-q~ z_L8p@dStPUhtl-Ka7J31sL#|b1SdsEj|patKQ^pf9UUDdW#xot^#uj8l9Jh~+V|xL z`clFYxT{{sW{Jv2CSP@TjBos#@dlwKL+^6Wlj8na8;aVWQMGMiYc|`9XGl(%h<;fO zE{vZAj7;;7DPWl`E-W}~*64|fzQ56JrfQ0cCh1?G(N{h2+U*rZrbLumqKTc{g;onV ziv0YpyrI$2vImAg=f9>ymGS!m@=1f!W}W>tE~U{InVFAerhx&T><1vm zt0}tnEf0h0=#%6|+^SHdDWg{Sh__tDzD|0&jEY0P&Qi{yHrJqY)@x|`%pSv355M=W zyd2S&+J8$o?5#6gc}TA0!X&U$1Ki6(nOWs3Vk_LLOmtSkr5I|dS;D(eocO?|*N{L> zJ1%&k#6$0s$d_;xm-3h}si|!QfvBf2@!LtU%>f+yQr1s}kcUK3k(%K>Y2+=)+#rBy zl^NAf#*JlW&;6c{w>#x18)4Rd)Srz&#AEnNrd9uJ3o9(jyR;6%lqn;n^t;*`-tHm_ zA?0{^6P%prTa34vGV1GvfDn+(Ab#+GHSXj#CSn}x;+JnslM#C!sr_w4ISa&^E{opJ zXI@)&l1|AX)w>FjbueMbQ@98bDh`EodH@mGm{#a7G#_01NxVg+AlPPa>TqHbMWRbff{MK@B3mNQ-fyy zt^2b>b5ProdHZa-`;?1JC)RWF>^(IZ3AwVtM#9Rv(;R>|FfiaTg@;(_KdI56 zg@+Ros((9Ee=+$4EwHF)t3y{iyO&f6!d^>DmwjJT-SzC$z73R|wjcZy{QS$8U*w*P z#e5%24{zhonvB~ZD|NeE!aUuJ7M{t}ORKp~=TKK)wVJATi`)LlFbcY;vhh%{(o5Zu z?V5XqCu@1X0SEa`Ng-AcS|`2iH+m>CkkR7!^xpcwcyRXCLw z)$Egx@-JU(*3lC6{uHG)%3~MYeLwaaiw*n3X@eA^zloCz4Y*7FIydmRK--g5T-=uj zO=c3W{Spw9fXbc@AD&MRlIeNnYN!T)^&BLSSMBWJS7jh zb=7(Kw(4j2)||LO)&+(Nn)2`EbD{Kuec8Tb3;Pp6cq=~kGFZO$D7fAfrJGB zh#1&=5|X3U!DZm+fh|c9s;a3O2PSQJ_z(~wXijA%B`{m&d1OAJeof!#tO#fIUjF_@ zM7c3azuN4?-uI7WxCj(i=oR!Lvm5eo^8RcvUtN7NQac!!nn+A~csj-n*-#Ga7hD;L z&YB-T-Vp)8O;1H-zdI)Z88R=g8U*t`RLY>1cmY>-N^~o}Plo;i^yuq@_D( zozTb{vA1qtP>>gtq_pOJp1F1&V(q&~zpoS_p>kM#Cn%;~Rgrj(+i-)yU)73=PV5CQ zWhSTlL9jvJtzv-u%gf6w`c=FKipWXw&bHqtez?W?`rb-8MnjC(XQQSS6l~xbRht6W#Zs_gPQq z%A8g`oOyUeH<%ISe9%a}^&*!qQwyngKMsx5hQMYdWB{dAIY)lx_(t0Shm@SK6fmt| z>u7kZ-Onv8BjZ0+?FR0f#yeqviW^NC71hwsZjzE(wy|T9p?$^7NBj=d;@7a1w;nUs_ymoqp#G^CZz;M2#-&aPEqwfnxI>P$9{5nNkn zC1quJ3ioJ?T`BIAXa-^*p9CMK4+!r|ktawtkmIWj_mn9{_ZINjg#wx9mstC5pm{`k zusp}+c)ForLIa}Wn>#YXTC~i!zo%!jHH361L>L@ABhb2fxFL2TzkdC@>s^(9e%W}J z|HYr=h?V@#Yq#!;rZn)Nltvha+={?a`kMBQy3eo#E$O%|SuUeYqdziiamP%?hWF!IZ_;e41Z;Qsj7*&}fFKsy6p5EdC9 zAPi>^+CjOq=}|)x%18;apUg9Wkl+5#SYU*{B7r$_am>gw17UZ_Ev#j zhOj^f@8F-JU_$%npsPxwX}^*;%=+~Ly9+^q?-@u1dAaNsYUib#E?2j>n2Y4o+Rbnb zxSq7=Rx09E+wHO17~Jk>dxVCBMoA4SL)$;wQ~M7;f|RO8t~r|ji8hx-a!pyB%PtMk z+^Xu~D4O}{M9@%+?4#zRkbCEmAC9&4CS@o$`!Z2Pyqy@DL7BwwOMYWyg$F!GYOmi} zZ%a>p$WL5Ou6ZZH8gffSW`4bm6{+0Vi@!>Xf^V;FW{aTWF#YZsw$0@gT8(thpr)*C zvc10_y;he6gTE3YH4bQ9ivHDuIN{Uoiw^&sUb9@90#q?m55{4&Kn`ML1RpYpKPR6` z^u%dyU0I`d%3tj=ZH z>ZXxlx(y~-EI=-%_crA~`os=<9mu-L{ScG~0taP8zaiX!oT1gt!3e}}>f-D}N(2Ip z3t;d6##fKKcp_y#U3TX-7T3+U?KTT)4fh%TlcVpU-Vu{OK=cO!iQm8N+ z5&%bMloNUPuoMQTM47CAcRKl^pVF3;l=xa=Ag(x&DI1+TdsrUr#S66XX@&rLd4F&l zF>?ooC#i;HCBoTOKq5Tx8MtlN)}hY;V;7*zojNYW2{r)bfBdIc0*8AqQpD=?o+~AP z>(`(D6K&ByI?BStl*H$}`@xhYAcnZ`nX-8K*1>ySDE0(azY#l{XktFwMxZTt53<?5c5SO~GOBx73MhIypme&kc8tE4lm>5`u{x4qijEF2oM;&4+nB zKIfbxMnQQ6Vc%xzQ^MD;IAUO(i?GaGE0pqlm}9N?dfonCdr1rC5=MbK;^Y=GrAQg5 zTF-cSZPn-I=esK0_U`7dTjAl_M}>JJi6|SC+!eu$3=hXGWS%Wl!>4cWz!6Ip^0e4w ze=(Jr^GRC4U-b9<{5(qkW5hdAoLl9rckbNTJ(b(Z?^4KbA^Lx_n-&~9)S@Y#Vp8bzC zSVdOkxL_?WQ@wi7FxEASR;r6g^9P}W>FwMPHmAA*o~^(8b4%0ANqjw8!nKh8z_X+% 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 U#)jALuttf^b~|hzP~A`e0}0flVgLXD literal 0 HcmV?d00001 diff --git a/docs/src/examples/groundstates/xxz-heisenberg/index.md b/docs/src/examples/groundstates/xxz-heisenberg/index.md new file mode 100644 index 000000000..687bc0cb8 --- /dev/null +++ b/docs/src/examples/groundstates/xxz-heisenberg/index.md @@ -0,0 +1,208 @@ +```@meta +EditURL = "../../../../../examples/groundstates/xxz-heisenberg/main.jl" +``` + +[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/groundstates/xxz-heisenberg/main.ipynb) +[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/groundstates/xxz-heisenberg/main.ipynb) +[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/groundstates/xxz-heisenberg) + +# The XXZ model + +In this file we will give step by step instructions on how to analyze the spin 1/2 XXZ model. +The necessary packages to follow this tutorial are: + +````julia +using MPSKit, MPSKitModels, TensorKit, Plots +```` + +For reproducibility of this page, we fix the seed of the random number generator: + +````julia +using Random +Random.seed!(123); +```` + +## Failure + +First we should define the Hamiltonian we want to work with. +Then we specify an initial guess, which we then further optimize. +Working directly in the thermodynamic limit, this is achieved as follows: + +````julia +H = heisenberg_XXX(; spin = 1 // 2) +```` + +```` +1-site InfiniteMPOHamiltonian(ComplexF64, TensorKit.ComplexSpace) with maximal dimension 5: +| ⋮ +| (ℂ^1 ⊞ ℂ^3 ⊞ ℂ^1) +┼─[1]─ ℂ^2 +│ (ℂ^1 ⊞ ℂ^3 ⊞ ℂ^1) +| ⋮ + +```` + +We then need an initial state, which we shall later optimize. In this example we work directly in the thermodynamic limit. + +````julia +state = InfiniteMPS(2, 20) +```` + +```` +1-site InfiniteMPS(ComplexF64, TensorKit.ComplexSpace) with maximal dimension 20: +| ⋮ +| ℂ^20 +├─[1]─ ℂ^2 +│ ℂ^20 +| ⋮ + +```` + +The ground state can then be found by calling `find_groundstate`. + +````julia +groundstate, cache, delta = find_groundstate(state, H, VUMPS(; verbosity = 1)); +```` + +```` +┌ Warning: VUMPS cancel 200: obj = -1.878034423426e-01 err = 3.7915687051e-01 time = 6.59 sec +└ @ MPSKit src/algorithms/groundstate/vumps.jl:87 + +```` + +As you can see, VUMPS struggles to converge. +On its own, that is already quite curious. +Maybe we can do better using another algorithm, such as gradient descent. + +````julia +groundstate, cache, delta = find_groundstate(state, H, GradientGrassmann(; maxiter = 20, verbosity = 1)); +```` + +```` +┌ Warning: resorting to η +└ @ OptimKit src/cg.jl:225 +┌ Warning: CG: not converged to requested tol after 20 iterations and time 5.39 s: f = -4.427115230754e-01, ‖∇f‖ = 5.6573e-03 +└ @ OptimKit src/cg.jl:188 + +```` + +Convergence is quite slow and even fails after sufficiently many iterations. +To understand why, we can look at the transfer matrix spectrum. + +````julia +transferplot(groundstate, groundstate) +```` + +![](figure-1.png) + +We can clearly see multiple eigenvalues close to the unit circle. +Our state is close to being non-injective, and represents the sum of multiple injective states. +This is numerically very problematic, but also indicates that we used an incorrect ansatz to approximate the groundstate. +We should retry with a larger unit cell. + +## Success + +Let's initialize a different initial state, this time with a 2-site unit cell: + +````julia +state = InfiniteMPS(fill(2, 2), fill(20, 2)) +```` + +```` +2-site InfiniteMPS(ComplexF64, TensorKit.ComplexSpace) with maximal dimension 20: +| ⋮ +| ℂ^20 +├─[2]─ ℂ^2 +│ ℂ^20 +├─[1]─ ℂ^2 +│ ℂ^20 +| ⋮ + +```` + +In MPSKit, we require that the periodicity of the Hamiltonian equals that of the state it is applied to. +This is not a big obstacle, you can simply repeat the original Hamiltonian. +Alternatively, the Hamiltonian can be constructed directly on a two-site unit cell by making use of MPSKitModels.jl's `@mpoham`. + +````julia +# H2 = repeat(H, 2); -- copies the one-site version +H2 = heisenberg_XXX(ComplexF64, Trivial, InfiniteChain(2); spin = 1 // 2) +groundstate, envs, delta = find_groundstate( + state, H2, VUMPS(; maxiter = 100, tol = 1.0e-12, verbosity = 1) +); +```` + +```` +┌ Warning: VUMPS cancel 100: obj = -8.862417624752e-01 err = 4.2010390727e-06 time = 3.79 sec +└ @ MPSKit src/algorithms/groundstate/vumps.jl:87 + +```` + +We get convergence, but it takes an enormous amount of iterations. +The reason behind this becomes more obvious at higher bond dimensions: + +````julia +groundstate, envs, delta = find_groundstate( + state, H2, IDMRG2(; trunc = truncrank(50), maxiter = 20, tol = 1.0e-12, verbosity = 1) +); +entanglementplot(groundstate) +```` + +![](figure-2.png) + +We see that some eigenvalues clearly belong to a group, and are almost degenerate. +This implies 2 things: +- there is superfluous information, if those eigenvalues are the same anyway +- poor convergence if we cut off within such a subspace + +It are precisely those problems that we can solve by using symmetries. + +## Symmetries + +The XXZ Heisenberg Hamiltonian is SU(2) symmetric and we can exploit this to greatly speed up the simulation. + +It is cumbersome to construct symmetric Hamiltonians, but luckily SU(2) symmetric XXZ is already implemented: + +````julia +H2 = heisenberg_XXX(ComplexF64, SU2Irrep, InfiniteChain(2); spin = 1 // 2); +```` + +Our initial state should also be SU(2) symmetric. +It now becomes apparent why we have to use a two-site periodic state. +The physical space carries a half-integer charge and the first tensor maps the first `virtual_space ⊗ the physical_space` to the second `virtual_space`. +Half-integer virtual charges will therefore map only to integer charges, and vice versa. +The staggering thus happens on the virtual level. + +An alternative constructor for the initial state is + +````julia +P = Rep[SU₂](1 // 2 => 1) +V1 = Rep[SU₂](1 // 2 => 10, 3 // 2 => 5, 5 // 2 => 2) +V2 = Rep[SU₂](0 => 15, 1 => 10, 2 => 5) +state = InfiniteMPS([P, P], [V1, V2]); +```` + +```` +┌ Warning: Constructing an MPS from tensors that are not full rank +└ @ MPSKit src/states/infinitemps.jl:188 + +```` + +Even though the bond dimension is higher than in the example without symmetry, convergence is reached much faster: + +````julia +println(dim(V1)) +println(dim(V2)) +groundstate, cache, delta = find_groundstate(state, H2, VUMPS(; maxiter = 400, tol = 1.0e-12, verbosity = 1)); +```` + +```` +52 +70 + +```` + +--- + +*This page was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).* + diff --git a/docs/src/examples/quantum1d/4.xxz-heisenberg/main.ipynb b/docs/src/examples/groundstates/xxz-heisenberg/main.ipynb similarity index 81% rename from docs/src/examples/quantum1d/4.xxz-heisenberg/main.ipynb rename to docs/src/examples/groundstates/xxz-heisenberg/main.ipynb index ce74387d6..8f1685258 100644 --- a/docs/src/examples/quantum1d/4.xxz-heisenberg/main.ipynb +++ b/docs/src/examples/groundstates/xxz-heisenberg/main.ipynb @@ -2,182 +2,200 @@ "cells": [ { "cell_type": "markdown", + "metadata": {}, "source": [ "# The XXZ model\n", "\n", "In this file we will give step by step instructions on how to analyze the spin 1/2 XXZ model.\n", "The necessary packages to follow this tutorial are:" - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "using MPSKit, MPSKitModels, TensorKit, Plots" - ], + ] + }, + { + "cell_type": "markdown", "metadata": {}, - "execution_count": null + "source": [ + "For reproducibility of this page, we fix the seed of the random number generator:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "using Random\n", + "Random.seed!(123);" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "## Failure\n", "\n", "First we should define the Hamiltonian we want to work with.\n", "Then we specify an initial guess, which we then further optimize.\n", "Working directly in the thermodynamic limit, this is achieved as follows:" - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "H = heisenberg_XXX(; spin = 1 // 2)" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "We then need an initial state, which we shall later optimize. In this example we work directly in the thermodynamic limit." - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "state = InfiniteMPS(2, 20)" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "The ground state can then be found by calling `find_groundstate`." - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", - "source": [ - "groundstate, cache, delta = find_groundstate(state, H, VUMPS());" - ], + "execution_count": null, "metadata": {}, - "execution_count": null + "outputs": [], + "source": [ + "groundstate, cache, delta = find_groundstate(state, H, VUMPS(; verbosity = 1));" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "As you can see, VUMPS struggles to converge.\n", "On its own, that is already quite curious.\n", "Maybe we can do better using another algorithm, such as gradient descent." - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", - "source": [ - "groundstate, cache, delta = find_groundstate(state, H, GradientGrassmann(; maxiter = 20));" - ], + "execution_count": null, "metadata": {}, - "execution_count": null + "outputs": [], + "source": [ + "groundstate, cache, delta = find_groundstate(state, H, GradientGrassmann(; maxiter = 20, verbosity = 1));" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Convergence is quite slow and even fails after sufficiently many iterations.\n", "To understand why, we can look at the transfer matrix spectrum." - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "transferplot(groundstate, groundstate)" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "We can clearly see multiple eigenvalues close to the unit circle.\n", "Our state is close to being non-injective, and represents the sum of multiple injective states.\n", "This is numerically very problematic, but also indicates that we used an incorrect ansatz to approximate the groundstate.\n", "We should retry with a larger unit cell." - ], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "## Success\n", "\n", "Let's initialize a different initial state, this time with a 2-site unit cell:" - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "state = InfiniteMPS(fill(2, 2), fill(20, 2))" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "In MPSKit, we require that the periodicity of the Hamiltonian equals that of the state it is applied to.\n", "This is not a big obstacle, you can simply repeat the original Hamiltonian.\n", "Alternatively, the Hamiltonian can be constructed directly on a two-site unit cell by making use of MPSKitModels.jl's `@mpoham`." - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# H2 = repeat(H, 2); -- copies the one-site version\n", "H2 = heisenberg_XXX(ComplexF64, Trivial, InfiniteChain(2); spin = 1 // 2)\n", "groundstate, envs, delta = find_groundstate(\n", - " state, H2, VUMPS(; maxiter = 100, tol = 1.0e-12)\n", + " state, H2, VUMPS(; maxiter = 100, tol = 1.0e-12, verbosity = 1)\n", ");" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "We get convergence, but it takes an enormous amount of iterations.\n", "The reason behind this becomes more obvious at higher bond dimensions:" - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "groundstate, envs, delta = find_groundstate(\n", - " state, H2, IDMRG2(; trunc = truncrank(50), maxiter = 20, tol = 1.0e-12)\n", + " state, H2, IDMRG2(; trunc = truncrank(50), maxiter = 20, tol = 1.0e-12, verbosity = 1)\n", ");\n", "entanglementplot(groundstate)" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "We see that some eigenvalues clearly belong to a group, and are almost degenerate.\n", "This implies 2 things:\n", @@ -185,31 +203,31 @@ "- poor convergence if we cut off within such a subspace\n", "\n", "It are precisely those problems that we can solve by using symmetries." - ], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "## Symmetries\n", "\n", "The XXZ Heisenberg Hamiltonian is SU(2) symmetric and we can exploit this to greatly speed up the simulation.\n", "\n", "It is cumbersome to construct symmetric Hamiltonians, but luckily SU(2) symmetric XXZ is already implemented:" - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "H2 = heisenberg_XXX(ComplexF64, SU2Irrep, InfiniteChain(2); spin = 1 // 2);" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Our initial state should also be SU(2) symmetric.\n", "It now becomes apparent why we have to use a two-site periodic state.\n", @@ -218,62 +236,61 @@ "The staggering thus happens on the virtual level.\n", "\n", "An alternative constructor for the initial state is" - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "P = Rep[SU₂](1 // 2 => 1)\n", "V1 = Rep[SU₂](1 // 2 => 10, 3 // 2 => 5, 5 // 2 => 2)\n", "V2 = Rep[SU₂](0 => 15, 1 => 10, 2 => 5)\n", "state = InfiniteMPS([P, P], [V1, V2]);" - ], - "metadata": {}, - "execution_count": null + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Even though the bond dimension is higher than in the example without symmetry, convergence is reached much faster:" - ], - "metadata": {} + ] }, { - "outputs": [], "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "println(dim(V1))\n", "println(dim(V2))\n", - "groundstate, cache, delta = find_groundstate(state, H2, VUMPS(; maxiter = 400, tol = 1.0e-12));" - ], - "metadata": {}, - "execution_count": null + "groundstate, cache, delta = find_groundstate(state, H2, VUMPS(; maxiter = 400, tol = 1.0e-12, verbosity = 1));" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "---\n", "\n", "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*" - ], - "metadata": {} + ] } ], - "nbformat_minor": 3, "metadata": { + "kernelspec": { + "display_name": "Julia 1.12.6", + "language": "julia", + "name": "julia-1.12" + }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.12.4" - }, - "kernelspec": { - "name": "julia-1.12", - "display_name": "Julia 1.12.4", - "language": "julia" + "version": "1.12.6" } }, - "nbformat": 4 + "nbformat": 4, + "nbformat_minor": 3 } \ No newline at end of file diff --git a/docs/src/examples/index.md b/docs/src/examples/index.md index d56cc7397..a26eb27aa 100644 --- a/docs/src/examples/index.md +++ b/docs/src/examples/index.md @@ -1,15 +1,89 @@ -# Examples +# [Examples](@id examples_index) -## Quantum (1+1)d +This gallery collects the full worked examples that ship with MPSKit.jl. +Each one is a complete, runnable script (also available as a Jupyter notebook, linked from the example page itself) that goes well beyond the short snippets in the how-to guides. -```@contents -Pages = map(file -> joinpath("quantum1d", file, "index.md"), readdir("quantum1d")) -Depth = 1 -``` +The examples are grouped by the kind of computation they demonstrate rather than by the physical system. +Within each group, the summaries below are ordered roughly by increasing difficulty: start at the top if you are new to MPSKit, and work down as you get comfortable with symmetries, infinite systems, and the less common algorithms. +(The sidebar lists the same pages alphabetically.) -## Classical (2+0)d +## Ground states -```@contents -Pages = map(file -> joinpath("classic2d", file, "index.md"), readdir("classic2d")) -Depth = 1 -``` \ No newline at end of file +### [The XXZ model](groundstates/xxz-heisenberg/index.md) + +![](groundstates/xxz-heisenberg/figure-2.png) + +Walks through a ground-state search that first goes wrong: single-site `VUMPS` and `GradientGrassmann` stall on the spin-1/2 Heisenberg antiferromagnet, and `transferplot`/`entanglementplot` reveal a near-non-injective state with several almost-degenerate transfer-matrix eigenvalues. +The fix is a two-site unit cell together with the `SU2Irrep`-symmetric Hamiltonian, after which `IDMRG2` and `VUMPS` converge cleanly. +A useful, diagnostic-driven example for recognizing and debugging convergence failures. +**Level: intermediate.** + +### [Hubbard chain at half filling](groundstates/hubbard/index.md) + +![](groundstates/hubbard/figure-2.png) + +Studies the 1D Hubbard model at half filling with fermionic `InfiniteMPS`, first benchmarking a plain `VUMPS`/`GradientGrassmann` ground-state search against the exact Bethe-ansatz integral for the energy, then imposing the full particle-number and spin symmetry (`U1Irrep`, `SU2Irrep`, with `MPSKit.add_physical_charge` to pin the filling) and constructing the spinon/holon excitation spectrum with the `QuasiparticleAnsatz`. +Combines fermionic symmetry sectors with a more elaborate ground-state recipe (staged bond-dimension growth via `changebonds`/`OptimalExpand`, `SvdCut`, and mixed `VUMPS`/`GradientGrassmann` refinement). +**Level: advanced.** + +### [1D Bose-Hubbard model](groundstates/bose-hubbard/index.md) + +![](groundstates/bose-hubbard/figure-6.png) + +The most comprehensive ground-state example in the gallery: works directly in the thermodynamic limit with a truncated bosonic local Hilbert space, extracts correlation functions and the correlation length as a function of bond dimension, computes the momentum distribution, and maps out the Mott-insulator/superfluid structure of the phase diagram from the ground-state response to an applied phase twist. +Touches most of the ground-state toolbox (`InfiniteMPS`, `find_groundstate`, bond-dimension control, `expectation_value`-based observables) in a single, longer study. +**Level: advanced.** + +### [Spin 1 Heisenberg model](groundstates/haldane-spt/index.md) + +![](groundstates/haldane-spt/figure-3.png) + +Distinguishes the two symmetry-protected topological phases of the SU(2)-symmetric spin-1 Heisenberg chain by restricting the virtual `SU2Space` to integer or half-integer charges, then compares the two resulting ground states through their energy, transfer-matrix spectrum (`transferplot`), entanglement spectrum (`entanglementplot`), and entanglement entropy (`entropy`). +Builds directly on the symmetry machinery introduced in the Haldane gap example. +**Level: intermediate/advanced.** + +### [The Ising CFT spectrum](groundstates/ising-cft/index.md) + +![](groundstates/ising-cft/figure-2.png) + +Extracts the finite-size conformal spectrum of the critical transverse-field Ising chain, first by brute-force `exact_diagonalization` on a small periodic chain, then by extending to larger sizes with finite `DMRG` and the `QuasiparticleAnsatz`, using a translation MPO to assign a momentum label to each state. +No symmetries are used, which makes this a good entry point into the finite-MPS workflow. +**Level: introductory.** + +## Excitations & dispersions + +### [The Haldane gap](excitations/haldane/index.md) + +![](excitations/haldane/figure-3.png) + +Computes the Haldane gap of the spin-1 Heisenberg antiferromagnet in two complementary ways: finite-size `DMRG` with the `QuasiparticleAnsatz`, extrapolated over system size, and a direct infinite-chain `VUMPS` calculation with a momentum-resolved excitation scan. +Introduces `SU2Irrep`/`SU2Space` symmetric tensors for both `FiniteMPS` and `InfiniteMPS`. +**Level: intermediate.** + +## Dynamics & finite temperature + +### [DQPT in the Ising model](dynamics/ising-dqpt/index.md) + +![](dynamics/ising-dqpt/infinite_timeev.png) + +Quenches the transverse-field Ising chain across its critical point and tracks the Loschmidt echo in search of non-analyticities (dynamical quantum phase transitions), on both a finite chain (`TDVP2`/`TDVP`) and directly in the thermodynamic limit (`changebonds` with `OptimalExpand`, then `TDVP`). +A compact introduction to real-time evolution and environment reuse, still without symmetries. +**Level: introductory/intermediate.** + +### [Finite temperature XY model](dynamics/xy-finiteT/index.md) + +![](dynamics/xy-finiteT/figure-1.png) + +Simulates the finite-temperature XY chain by purifying the infinite-temperature density matrix and evolving it in imaginary time, then compares the resulting partition function and free energy against exact diagonalization and, via BenchmarkFreeFermions.jl, the exact free-fermion solution. +A technical, comparison-heavy example built around `MPSKit.infinite_temperature_density_matrix` and imaginary-time evolution rather than ground-state search. +**Level: advanced.** + +## Statistical mechanics + +### [The Hard Hexagon model](statmech/hard-hexagon/index.md) + +![](statmech/hard-hexagon/figure-1.png) + +Extracts the central charge of the hard hexagon lattice gas by finding the leading boundary MPS of its transfer matrix with `VUMPS` (using Fibonacci-anyon virtual spaces), then fitting the CFT-predicted scaling relation between entanglement entropy and correlation length as the bond dimension is increased. +The only classical statistical-mechanics example in the gallery, and the only one demonstrating non-abelian anyonic symmetries (`FibonacciAnyon`) in MPSKit. +**Level: advanced.** diff --git a/docs/src/examples/quantum1d/1.ising-cft/figure-1.png b/docs/src/examples/quantum1d/1.ising-cft/figure-1.png deleted file mode 100644 index ec004e5a0b06d3d4b2e0ba997d9410a9b1332789..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15484 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 Z#}kjwqDiCzL4HCA^Gm$V<$Le;-vB(=O@ROa diff --git a/docs/src/examples/quantum1d/1.ising-cft/figure-3.png b/docs/src/examples/quantum1d/1.ising-cft/figure-3.png deleted file mode 100644 index 8f76b9208301d347170614d6ceda14e34139883e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22799 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

    3r%rG+ABF52ibdLb!<-*(}f@);VM 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 I&}W7J2ZMydKL7v# diff --git a/docs/src/examples/quantum1d/4.xxz-heisenberg/figure-1.png b/docs/src/examples/quantum1d/4.xxz-heisenberg/figure-1.png deleted file mode 100644 index f5e4a5ec20b392c7829aaf4cc658779666f717bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11462 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 Q7)(Z}C~DlwLp=!m4;1MVCjbBd diff --git a/docs/src/examples/quantum1d/4.xxz-heisenberg/figure-2.png b/docs/src/examples/quantum1d/4.xxz-heisenberg/figure-2.png deleted file mode 100644 index bd8dee7003b6750963e3ab40a66ea3455ec5d36f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19339 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�}cQ4>?i4EU>ho9yQS)|3! z1RpZVP#*+wv;(h4ZC_kJBa@-Sz35n*7$0|bcFqD_l(VCibBea|D#Dc$XcxNwSY`8-V z+tjaSUkXF|z*-_G5Epr){qp4WN7kjUD5E32Pu#if<|0S@L`~aU3&fw90Xl?pu)kYV zpYgR%A*|TqlYSJB6Q3SAyY7`Nr7HQb#>*?RD)qMi`J+)`vsAxCExL=k9VdaL@P0%| zaJMciZ?N1<6V(cuiK@jIPQun`pc%wv!fLixtH+BPst4Vh7Uy`Lzn=+7Kk z+Pft{WWTEMOXB+FIN!S=58bji-GDdCpFGYqczrwkfIQoH%0x=*49!eZTmP!Ir8LlEqbw8Oe zrE(i%&_s<74eiTTD)^$1;pa+;Lf*%~+t^%b46HoZ{Ftrzxf&xw3@wope5>4UXJFL> zz~6+iK700u^^y6pkz3^H*%brqF;2@@B0cYCrltn}x>vDn5(~Kh1=rJ(llw|n2oi$t zUoffm=v59piT8e^rS;v5-tjV_aj>^#x031QhSt%T9~8kSyDMiW9JZ2YQY80fpg z7}z8&p?zIaT1@H~1^qMS-Eq zfR-QJmiwjX?Ni*{%p1k-4>fSk#i-+qXdQFEKQW~cjYGvnHUxYe`ESV={l zkjA^CyF`vojvHguK~4G-ZV#I+7O7vnG9F%#*kjKI8T#7QM6iIaQcobOTWNjVGh+5A z`VnNisEPX5=H{}<`#sBe!#4Df$^` zG5Wpd(cW)g>XHoEhdh#d@5RKLPu4GagItpea@ZSd)TSnNR2qm{v2tNL_A#Q`1A~J> zNQc%G95_*~B_n1tZv4VjQRU1?+t}8J!PBFfx4d|)WX;{>j|SXc@VwEm1R5(~re~2A z0yWEdr(^GS)Unyk`y^KSy$p6+@jhB9a~WOoV+;ciuA+Sj46suBG1!5u<~gj^gaGRt zy$x{4Y8U7hXJUQD`m^<$}N8P87m zSF7i~DcT**^mDEMl@W>(B$19pgZINxw7vNZMNtiXk@oZhXx5E8&Db8`>Y`F`P`>FO zBg@)P;^KVvHqA^-B!vnD(TVS06XeUt$yw_g7o#vHxZjQ0A=6t`XW90TKC0k!v6N6J z-sACIRoC6073Nb(sVa##Ko&{7;IVl$PpkyiD!MO29 zRngPo&*+H5Nci6EaH#ME&oeSJ?Tv>c!GT^``5bCUaPss9;so6*XSfu@<=CWu@rrU^ zA^?rAVMkUT>nbm_-ht8%PBmQd1Pii%{TUTHjm$eV(!8JX?S`K)H~#wNnN0fW+VjUZ z5XWgCi&&qZ_1x~CJc`)aC+hE?jfq+P4(#OTYxxPn)_dRwn2+)HZu-SD3_B7I2oFPH z3br9A9o1pKA+Vvv1`p_WnE>-c)US>=Nf{N4|7mOAoc^o7QQ8KkWAKAV)J_@ zNZ4}-=Y*`ems#2xf=9JGE!5~5OX+#qyitAW(=9W;$pHqx5r{iWx&u9iOx=m{Ljmi{Njj*|i>ZRV~snh3z=Lu5XMgDb^mV;`p@ z+pUr##Nu7_=H^`&8}2}9I(3Ch?lC`?cAf4LZ+8!Q>1k5`nw?lDkmhMVf2FAj zJu{Bj^0=eTK3WzvDed(F(UQ}{bzz%!LFCmkn@HN*+t<4)DPTk@$#;H?tGWF9jz3{) zGG(dx;f{InWy=e_B2T%%F-P;s;)w8lj0abv=b(J?qDrLZld^(w58cItkJS<@m2o-U z%Cp!fBT%fRCvcr@ZMRo|Lz2!Iw;mt|k@*NRy5uogYL2=eX2+L;Nlcc~wSCbzF~;(B z@Ilg)988=3_suEVHMR_G_o?POmlV~rWP2hdQa*2^UqeM*{6JCYZ5=zK#C3Eg!>a;_ z$}G!GHs<*(8&3~64MsSxc9_Y{u(n#;lftIx`wU#Fp_z=ii4!M0-< zD;W5kwc%)Sv;#dpGw4Qk*FBoMzFoHc2+GLqJS!Y8OY8iqtqE;bgGxr5yZ`^n4Ne<^ zCH4PvzmCu$+|M%Y$@I+4^JPwDA1RsREL`f|pT}R@SbgAdijt7D`(B}BgO+%<@(E)XI4;6boTT-;o`D8jtTsPg?i^@ZM$A*vds&LHF{G%&+{q? zt;Xx{Rk!f(O)cg=$=^GO(A-($WPf&b#h3-jrJ-Ul-t3EX#r&t`{eB{>qGzT+{WSg7btTIfYso#l#Vo!f?d zmQ8+KuwJMvQzBs%HO}oODMm7^dX>8~1)A?|5aPvYN^LUh2>?;(k_}zE;4DBwMUrEDK};*Aly$p#ZuyUY~fx4TYryp$aIY^hN?$8WYCfq44;ML zv173N#{4$(J|-(0RK87d8ceKPyK66-Ad_0aN561JQoQ-ybeQ&VqqXfM4QQPENxBm4 zp={iEnm>^$3+Wm=|KXvqh)ggx3Zt(~HgK%ewhhknL>7#FXXp7=7>=Y65h| zkp<4jiW+Bpo`rl?8J9w4Z`gJR$(a}#;bsjZaO($y5lm=MP6lD-sO=ZCPtF)_$*Fnf zb&*=!^Pa4KEI?+~3WdMont1>}p95Igz-AJez0>KqMtCBdo3XI(QlObJF{xg=txxs%mG}*GbRisO z+_G{%m8&9=0(RG|L$ z_SSB<>-%v405DZULxUtqg=@au-`{^`YiN6W`{U!I)%w%F68u6cm69Z>s;cV49RUD% zqrSer>FMdhHQyc{9*P-DJv}{RV`JUj-9_sN06+m{3}*m;V(0|Nt!qL|$a z0D$*0JqR5RM^O^zx@Gd3>q19?#UtfQHxw5h{H8s`S+k1U|ZC+mh0N&2rbA*kJjj>p)qod>X z&B4LJmzNiPSOfszYZ*Tg9v&WEU0vy)!{PAg=x8pNdtI=)y1Ku=uW6d$tpNadFXMwy zQ52WUrDtI<7_?X{!^6X`=T4i=77B&7wzdp!4FJG<86Sj^NW|y!b#`{Dsw#@&_V)JC z(UH&R%VaY7nm{0spBe!G_(Ep=MmRGw6OYFgMX9T+yScdu27_m3XY=#({r&yr<>i7P zJU>5+qG(2I007?3tX-qgXfzNAxLht(RV7K<+uMu9V!OM$vMlfH>_7&1TEW%JiWS0Dv!N*hHAgWV*V#&d<-QtE)X8PdpwM z1R)xY`g}f*$CFN{^)idaLJ9%^ejnoO?CgiXoXh3%PdLNjaBFMp;^N}n-CZ)7+}zx( zsi|=~ogR;;si{epWn 1) -V1 = Rep[SU₂](1 // 2 => 10, 3 // 2 => 5, 5 // 2 => 2) -V2 = Rep[SU₂](0 => 15, 1 => 10, 2 => 5) -state = InfiniteMPS([P, P], [V1, V2]); -```` - -```` -┌ Warning: Constructing an MPS from tensors that are not full rank -└ @ MPSKit /home/ldevos/LocalProjects/MPSKit.jl/src/states/infinitemps.jl:160 - -```` - -Even though the bond dimension is higher than in the example without symmetry, convergence is reached much faster: - -````julia -println(dim(V1)) -println(dim(V2)) -groundstate, cache, delta = find_groundstate(state, H2, VUMPS(; maxiter = 400, tol = 1.0e-12)); -```` - -```` -52 -70 -[ Info: VUMPS init: obj = +8.454690130663e-02 err = 3.6812e-01 -[ Info: VUMPS 1: obj = -8.807747096663e-01 err = 7.4524923622e-02 time = 3.77 sec -[ Info: VUMPS 2: obj = -8.858788324414e-01 err = 6.9171953600e-03 time = 0.05 sec -[ Info: VUMPS 3: obj = -8.861621536444e-01 err = 2.6767683452e-03 time = 0.04 sec -[ Info: VUMPS 4: obj = -8.862392626495e-01 err = 1.6032192901e-03 time = 0.04 sec -[ Info: VUMPS 5: obj = -8.862672547653e-01 err = 9.5323528320e-04 time = 0.05 sec -[ Info: VUMPS 6: obj = -8.862784830480e-01 err = 7.0061763044e-04 time = 0.05 sec -[ Info: VUMPS 7: obj = -8.862834114803e-01 err = 5.7030493713e-04 time = 0.06 sec -[ Info: VUMPS 8: obj = -8.862857129161e-01 err = 4.5154675114e-04 time = 0.15 sec -[ Info: VUMPS 9: obj = -8.862868209497e-01 err = 3.5140725914e-04 time = 0.05 sec -[ Info: VUMPS 10: obj = -8.862873648329e-01 err = 2.6806862728e-04 time = 0.13 sec -[ Info: VUMPS 11: obj = -8.862876338388e-01 err = 2.0070574932e-04 time = 0.11 sec -[ Info: VUMPS 12: obj = -8.862877672196e-01 err = 1.4816530119e-04 time = 0.07 sec -[ Info: VUMPS 13: obj = -8.862878333408e-01 err = 1.0821757653e-04 time = 0.15 sec -[ Info: VUMPS 14: obj = -8.862878660733e-01 err = 7.8417469213e-05 time = 0.06 sec -[ Info: VUMPS 15: obj = -8.862878822601e-01 err = 5.6494124158e-05 time = 0.07 sec -[ Info: VUMPS 16: obj = -8.862878902612e-01 err = 4.0537829957e-05 time = 0.06 sec -[ Info: VUMPS 17: obj = -8.862878942156e-01 err = 2.9004225089e-05 time = 0.07 sec -[ Info: VUMPS 18: obj = -8.862878961706e-01 err = 2.0708366147e-05 time = 0.07 sec -[ Info: VUMPS 19: obj = -8.862878971378e-01 err = 1.4762413368e-05 time = 0.13 sec -[ Info: VUMPS 20: obj = -8.862878976166e-01 err = 1.0511055800e-05 time = 0.03 sec -[ Info: VUMPS 21: obj = -8.862878978539e-01 err = 7.4778223881e-06 time = 0.03 sec -[ Info: VUMPS 22: obj = -8.862878979715e-01 err = 5.3158051331e-06 time = 0.07 sec -[ Info: VUMPS 23: obj = -8.862878980299e-01 err = 3.7764425487e-06 time = 0.07 sec -[ Info: VUMPS 24: obj = -8.862878980589e-01 err = 2.6814072095e-06 time = 0.14 sec -[ Info: VUMPS 25: obj = -8.862878980733e-01 err = 1.9030014616e-06 time = 0.06 sec -[ Info: VUMPS 26: obj = -8.862878980805e-01 err = 1.3500577199e-06 time = 0.06 sec -[ Info: VUMPS 27: obj = -8.862878980841e-01 err = 9.5735794398e-07 time = 0.06 sec -[ Info: VUMPS 28: obj = -8.862878980859e-01 err = 6.7863772480e-07 time = 0.06 sec -[ Info: VUMPS 29: obj = -8.862878980867e-01 err = 4.8090393886e-07 time = 0.14 sec -[ Info: VUMPS 30: obj = -8.862878980872e-01 err = 3.4067956729e-07 time = 0.06 sec -[ Info: VUMPS 31: obj = -8.862878980874e-01 err = 2.4127441738e-07 time = 0.05 sec -[ Info: VUMPS 32: obj = -8.862878980875e-01 err = 1.7082422697e-07 time = 0.05 sec -[ Info: VUMPS 33: obj = -8.862878980876e-01 err = 1.2091935762e-07 time = 0.06 sec -[ Info: VUMPS 34: obj = -8.862878980876e-01 err = 8.5574898934e-08 time = 0.05 sec -[ Info: VUMPS 35: obj = -8.862878980876e-01 err = 6.0549094354e-08 time = 0.13 sec -[ Info: VUMPS 36: obj = -8.862878980877e-01 err = 4.2833729305e-08 time = 0.05 sec -[ Info: VUMPS 37: obj = -8.862878980877e-01 err = 3.0296142094e-08 time = 0.06 sec -[ Info: VUMPS 38: obj = -8.862878980877e-01 err = 2.1424846144e-08 time = 0.06 sec -[ Info: VUMPS 39: obj = -8.862878980877e-01 err = 1.5148957750e-08 time = 0.06 sec -[ Info: VUMPS 40: obj = -8.862878980877e-01 err = 1.0709953737e-08 time = 0.12 sec -[ Info: VUMPS 41: obj = -8.862878980877e-01 err = 7.5707891268e-09 time = 0.03 sec -[ Info: VUMPS 42: obj = -8.862878980877e-01 err = 5.3510570418e-09 time = 0.04 sec -[ Info: VUMPS 43: obj = -8.862878980877e-01 err = 3.7817943502e-09 time = 0.07 sec -[ Info: VUMPS 44: obj = -8.862878980877e-01 err = 2.6724193960e-09 time = 0.06 sec -[ Info: VUMPS 45: obj = -8.862878980877e-01 err = 1.8882939261e-09 time = 0.07 sec -[ Info: VUMPS 46: obj = -8.862878980877e-01 err = 1.3341314150e-09 time = 0.11 sec -[ Info: VUMPS 47: obj = -8.862878980877e-01 err = 9.4252990942e-10 time = 0.06 sec -[ Info: VUMPS 48: obj = -8.862878980877e-01 err = 6.6582278922e-10 time = 0.06 sec -[ Info: VUMPS 49: obj = -8.862878980877e-01 err = 4.7032251942e-10 time = 0.06 sec -[ Info: VUMPS 50: obj = -8.862878980877e-01 err = 3.3220639408e-10 time = 0.06 sec -[ Info: VUMPS 51: obj = -8.862878980878e-01 err = 2.3463502230e-10 time = 0.12 sec -[ Info: VUMPS 52: obj = -8.862878980878e-01 err = 1.6571486183e-10 time = 0.05 sec -[ Info: VUMPS 53: obj = -8.862878980878e-01 err = 1.1703442495e-10 time = 0.05 sec -[ Info: VUMPS 54: obj = -8.862878980878e-01 err = 8.2650109655e-11 time = 0.06 sec -[ Info: VUMPS 55: obj = -8.862878980878e-01 err = 5.8367474734e-11 time = 0.05 sec -[ Info: VUMPS 56: obj = -8.862878980878e-01 err = 4.1213417017e-11 time = 0.12 sec -[ Info: VUMPS 57: obj = -8.862878980878e-01 err = 2.9101697547e-11 time = 0.04 sec -[ Info: VUMPS 58: obj = -8.862878980878e-01 err = 2.0551179926e-11 time = 0.06 sec -[ Info: VUMPS 59: obj = -8.862878980878e-01 err = 1.4510549999e-11 time = 0.06 sec -[ Info: VUMPS 60: obj = -8.862878980878e-01 err = 1.0245548104e-11 time = 0.05 sec -[ Info: VUMPS 61: obj = -8.862878980878e-01 err = 7.2325909689e-12 time = 0.06 sec -[ Info: VUMPS 62: obj = -8.862878980878e-01 err = 5.1092588216e-12 time = 0.12 sec -[ Info: VUMPS 63: obj = -8.862878980878e-01 err = 3.6043616497e-12 time = 0.02 sec -[ Info: VUMPS 64: obj = -8.862878980878e-01 err = 2.5462748087e-12 time = 0.04 sec -[ Info: VUMPS 65: obj = -8.862878980878e-01 err = 1.7984804673e-12 time = 0.03 sec -[ Info: VUMPS 66: obj = -8.862878980878e-01 err = 1.2696913652e-12 time = 0.02 sec -[ Info: VUMPS conv 67: obj = -8.862878980879e-01 err = 8.9456922075e-13 time = 8.25 sec - -```` - ---- - -*This page was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).* - diff --git a/docs/src/examples/quantum1d/5.haldane-spt/figure-1.png b/docs/src/examples/quantum1d/5.haldane-spt/figure-1.png deleted file mode 100644 index 5d8edbbce382990db34b736598b756254f3ed724..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32871 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 diff --git a/docs/src/examples/quantum1d/5.haldane-spt/figure-2.png b/docs/src/examples/quantum1d/5.haldane-spt/figure-2.png deleted file mode 100644 index 1df134303b1bc1c9099bfcfd8322f961099235e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32025 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 dim(left_virtualspace(psi, x)), 1:length(psi)) - D′ = max(5, round(Int, D * expansionfactor)) - trunc = trunctol(; atol = svalue / 10) & truncrank(D′) - psi′, = changebonds(psi, H, OptimalExpand(; trunc = trunc)) - all( - left_virtualspace.(Ref(psi), 1:length(psi)) .== - left_virtualspace.(Ref(psi′), 1:length(psi)) - ) && break - psi, = find_groundstate(psi′, H, VUMPS(; tol = svalue / 5, maxiter = 10, verbosity)) - end - - # convergence steps - psi, = changebonds(psi, H, SvdCut(; trunc = trunctol(; atol = svalue))) - psi, = find_groundstate( - psi, H, - VUMPS(; tol = svalue / 100, verbosity, maxiter = 100) & - GradientGrassmann(; tol = svalue / 1000) - ) - - return psi -end - -H = hubbard_model(InfiniteChain(2); U, t, mu = U / 2) -Vspaces = fill(Vect[fℤ₂](0 => 10, 1 => 10), 2) -psi = InfiniteMPS(physicalspace(H), Vspaces) -psi = compute_groundstate(psi, H) -E = real(expectation_value(psi, H)) / 2 -@info """ -Groundstate energy: - * numerical: $E - * analytic: $(hubbard_energy(U / 4) - U / 4) -""" -```` - -```` -[ Info: VUMPS init: obj = -1.450454615857e+00 err = 5.5193e-01 -[ Info: VUMPS conv 7: obj = -4.377048688339e+00 err = 8.8092806195e-03 time = 4.49 sec -[ Info: VUMPS init: obj = -4.377048688339e+00 err = 1.6440e-02 -[ Info: VUMPS conv 6: obj = -4.378747269347e+00 err = 1.3129004135e-04 time = 0.25 sec -[ Info: VUMPS init: obj = -4.378747269347e+00 err = 7.9951e-03 -[ Info: VUMPS conv 6: obj = -4.379161081627e+00 err = 1.5539751336e-04 time = 0.37 sec -[ Info: VUMPS init: obj = -4.379161081627e+00 err = 6.1111e-03 -[ Info: VUMPS conv 5: obj = -4.379452169384e+00 err = 1.6927654674e-04 time = 0.27 sec -[ Info: VUMPS init: obj = -4.379452169384e+00 err = 5.6959e-03 -[ Info: VUMPS conv 4: obj = -4.379651733231e+00 err = 1.8162083040e-04 time = 0.26 sec -[ Info: VUMPS init: obj = -4.379651733231e+00 err = 4.1039e-03 -[ Info: VUMPS conv 4: obj = -4.379735601762e+00 err = 1.3801495045e-04 time = 0.42 sec -[ Info: VUMPS init: obj = -4.379735601762e+00 err = 3.5769e-03 -[ Info: VUMPS conv 3: obj = -4.379797886653e+00 err = 1.3472741143e-04 time = 0.39 sec -[ Info: VUMPS init: obj = -4.379797886653e+00 err = 2.7707e-03 -[ Info: VUMPS conv 2: obj = -4.379838526805e+00 err = 1.7752552389e-04 time = 0.33 sec -[ Info: VUMPS init: obj = -4.379838526805e+00 err = 2.7291e-03 -[ Info: VUMPS conv 3: obj = -4.379878849406e+00 err = 1.9781894590e-04 time = 0.74 sec -[ Info: VUMPS init: obj = -4.379878849406e+00 err = 2.6911e-03 -[ Info: VUMPS conv 3: obj = -4.379929229387e+00 err = 1.7761427615e-04 time = 0.82 sec -[ Info: VUMPS init: obj = -4.379929229387e+00 err = 2.5553e-03 -[ Info: VUMPS conv 3: obj = -4.379968040382e+00 err = 1.8461546636e-04 time = 2.21 sec -[ Info: VUMPS init: obj = -4.379968040382e+00 err = 1.7682e-03 -[ Info: VUMPS conv 2: obj = -4.379986877757e+00 err = 1.9131369028e-04 time = 0.98 sec -[ Info: VUMPS init: obj = -4.379986877757e+00 err = 1.5838e-03 -[ Info: VUMPS conv 2: obj = -4.380001005486e+00 err = 1.9231335759e-04 time = 1.05 sec -[ Info: VUMPS init: obj = -4.380001005486e+00 err = 1.5109e-03 -[ Info: VUMPS conv 2: obj = -4.380013169634e+00 err = 1.5225084116e-04 time = 1.32 sec -[ Info: VUMPS init: obj = -4.380013169634e+00 err = 1.4234e-03 -[ Info: VUMPS conv 2: obj = -4.380024401012e+00 err = 1.7737882775e-04 time = 1.59 sec -[ Info: VUMPS init: obj = -4.380024401012e+00 err = 1.3330e-03 -[ Info: VUMPS conv 2: obj = -4.380038158990e+00 err = 1.5757417636e-04 time = 2.60 sec -[ Info: VUMPS init: obj = -4.380038158990e+00 err = 1.0032e-03 -[ Info: VUMPS conv 1: obj = -4.380043682260e+00 err = 1.6736593859e-04 time = 0.89 sec -[ Info: VUMPS init: obj = -4.380043682260e+00 err = 9.0999e-04 -[ Info: VUMPS conv 1: obj = -4.380048641018e+00 err = 1.8573996574e-04 time = 1.19 sec -[ Info: VUMPS init: obj = -4.380048641018e+00 err = 8.3081e-04 -[ Info: VUMPS conv 1: obj = -4.380053199895e+00 err = 1.8060836975e-04 time = 2.30 sec -[ Info: VUMPS init: obj = -4.380053199895e+00 err = 6.8144e-04 -[ Info: VUMPS conv 1: obj = -4.380057143242e+00 err = 1.8854132138e-04 time = 1.71 sec -[ Info: VUMPS init: obj = -4.380057143242e+00 err = 6.0293e-04 -[ Info: VUMPS conv 1: obj = -4.380060551312e+00 err = 1.8083344266e-04 time = 2.45 sec -[ Info: VUMPS init: obj = -4.379609468445e+00 err = 4.0958e-03 -[ Info: VUMPS conv 19: obj = -4.379763157256e+00 err = 9.9415625365e-06 time = 8.41 sec -[ Info: CG: initializing with f = -4.379763156901e+00, ‖∇f‖ = 3.1520e-05 -[ Info: CG: converged after 158 iterations and time 1.36 m: f = -4.379763361376e+00, ‖∇f‖ = 9.9957e-07 -┌ Info: Groundstate energy: -│ * numerical: -2.1899960609769664 -└ * analytic: -2.190038374277775 - -```` - -## Symmetries - -The Hubbard model has a rich symmetry structure, which can be exploited to speed up simulations. -Apart from the fermionic parity, the model also has a $U(1)$ particle number symmetry, along with a $SU(2)$ spin symmetry. -Explicitly imposing these symmetries on the tensors can greatly reduce the computational cost of the simulation. - -Naively imposing these symmetries however, is not compatible with our desire to work at half-filling. -By construction, imposing symmetries restricts the optimization procedure to a single symmetry sector, which is the trivial sector. -In order to work at half-filling, we need to effectively inject one particle per site. -In MPSKit, this is achieved by the `add_physical_charge` function, which shifts the physical spaces of the tensors to the desired charge sector. - -````julia -H_u1_su2 = hubbard_model(ComplexF64, U1Irrep, SU2Irrep, InfiniteChain(2); U, t, mu = U / 2); -charges = fill(FermionParity(1) ⊠ U1Irrep(1) ⊠ SU2Irrep(0), 2); -H_u1_su2 = MPSKit.add_physical_charge(H_u1_su2, charges); - -pspaces = physicalspace.(Ref(H_u1_su2), 1:2) -vspaces = [oneunit(eltype(pspaces)), first(pspaces)] -psi = InfiniteMPS(pspaces, vspaces) -psi = compute_groundstate(psi, H_u1_su2; expansionfactor = 1 / 3) -E = real(expectation_value(psi, H_u1_su2)) / 2 -@info """ -Groundstate energy: - * numerical: $E - * analytic: $(hubbard_energy(U / 4) - U / 4) -""" -```` - -```` -[ Info: VUMPS init: obj = +2.092499297284e-01 err = 8.6283e-01 -[ Info: VUMPS conv 1: obj = -4.000000000000e+00 err = 1.4030299342e-15 time = 2.40 sec -[ Info: VUMPS init: obj = -4.000000000000e+00 err = 3.3634e-01 -[ Info: VUMPS conv 4: obj = -4.289650419749e+00 err = 1.8514003381e-04 time = 0.09 sec -[ Info: VUMPS init: obj = -4.289650419749e+00 err = 1.1203e-01 -[ Info: VUMPS conv 6: obj = -4.359865567620e+00 err = 1.0046942911e-04 time = 0.29 sec -[ Info: VUMPS init: obj = -4.359865567619e+00 err = 4.3643e-02 -[ Info: VUMPS conv 6: obj = -4.372880928482e+00 err = 1.3025843115e-04 time = 2.61 sec -[ Info: VUMPS init: obj = -4.372880928482e+00 err = 3.2693e-02 -[ Info: VUMPS conv 4: obj = -4.375236954488e+00 err = 1.1814239608e-04 time = 0.20 sec -[ Info: VUMPS init: obj = -4.375236954488e+00 err = 2.9487e-02 -[ Info: VUMPS conv 7: obj = -4.378159084364e+00 err = 1.1896740056e-04 time = 0.60 sec -[ Info: VUMPS init: obj = -4.378159084364e+00 err = 1.9312e-02 -[ Info: VUMPS conv 5: obj = -4.379272966040e+00 err = 1.5785413165e-04 time = 0.50 sec -[ Info: VUMPS init: obj = -4.379272966040e+00 err = 9.9128e-03 -[ Info: VUMPS conv 4: obj = -4.379592229143e+00 err = 1.5550378745e-04 time = 0.51 sec -[ Info: VUMPS init: obj = -4.379592229143e+00 err = 6.4841e-03 -[ Info: VUMPS conv 4: obj = -4.379819377264e+00 err = 1.7492038571e-04 time = 0.56 sec -[ Info: VUMPS init: obj = -4.379819377264e+00 err = 3.8754e-03 -┌ Warning: VUMPS cancel 10: obj = -4.379964033305e+00 err = 2.1228930049e-04 time = 1.76 sec -└ @ MPSKit ~/Projects/MPSKit.jl/docs/src/algorithms/groundstate/vumps.jl:83 -[ Info: VUMPS init: obj = -4.379964033305e+00 err = 2.8978e-03 -[ Info: VUMPS conv 3: obj = -4.380010384710e+00 err = 1.4775284542e-04 time = 0.88 sec -[ Info: VUMPS init: obj = -4.380010384710e+00 err = 2.0609e-03 -[ Info: VUMPS conv 3: obj = -4.380041751503e+00 err = 1.6327798118e-04 time = 1.81 sec -[ Info: VUMPS init: obj = -4.380041751502e+00 err = 1.2364e-03 -[ Info: VUMPS conv 2: obj = -4.380055778759e+00 err = 1.8366845284e-04 time = 0.83 sec -[ Info: VUMPS init: obj = -4.380055778759e+00 err = 8.5857e-04 -[ Info: VUMPS conv 2: obj = -4.380064749427e+00 err = 1.3905442267e-04 time = 1.14 sec -[ Info: VUMPS init: obj = -4.380064749427e+00 err = 5.2502e-04 -[ Info: VUMPS conv 1: obj = -4.380067974777e+00 err = 1.5646700070e-04 time = 0.79 sec -[ Info: VUMPS init: obj = -4.380067974777e+00 err = 3.3275e-04 -[ Info: VUMPS conv 1: obj = -4.380070351418e+00 err = 1.3123916502e-04 time = 1.05 sec -[ Info: VUMPS init: obj = -4.380070351418e+00 err = 2.0348e-04 -[ Info: VUMPS conv 1: obj = -4.380072125256e+00 err = 1.1119707628e-04 time = 2.15 sec -[ Info: VUMPS init: obj = -4.380072125256e+00 err = 1.3635e-04 -[ Info: VUMPS conv 1: obj = -4.380073467831e+00 err = 8.5045032311e-05 time = 2.22 sec -[ Info: VUMPS init: obj = -4.380073467830e+00 err = 9.7226e-05 -[ Info: VUMPS conv 1: obj = -4.380074455763e+00 err = 6.4430026631e-05 time = 3.60 sec -[ Info: VUMPS init: obj = -4.380074455763e+00 err = 7.3787e-05 -[ Info: VUMPS conv 1: obj = -4.380075159887e+00 err = 6.2144398833e-05 time = 8.05 sec -[ Info: VUMPS init: obj = -4.380075159887e+00 err = 5.9899e-05 -[ Info: VUMPS conv 1: obj = -4.380075661721e+00 err = 4.2515939994e-05 time = 12.11 sec -[ Info: VUMPS init: obj = -4.379308795201e+00 err = 7.9930e-03 -┌ Warning: VUMPS cancel 100: obj = -4.379692711472e+00 err = 1.5979764572e-05 time = 27.91 sec -└ @ MPSKit ~/Projects/MPSKit.jl/docs/src/algorithms/groundstate/vumps.jl:83 -[ Info: CG: initializing with f = -4.379692711472e+00, ‖∇f‖ = 5.7923e-05 -[ Info: CG: converged after 13 iterations and time 7.22 s: f = -4.379692712393e+00, ‖∇f‖ = 6.2087e-07 -┌ Info: Groundstate energy: -│ * numerical: -2.1900153475144695 -└ * analytic: -2.190038374277775 - -```` - -## Excitations - -Because of the integrability, it is known that the Hubbard model has a rich excitation spectrum. -The elementary excitations are known as spinons and holons, which are domain walls in the spin and charge sectors, respectively. -The fact that the spin and charge sectors are separate is a phenomenon known as spin-charge separation. - -The domain walls can be constructed by noticing that there are two equivalent groundstates, which differ by a translation over a single site. -In other words, the groundstates are ``\psi_{AB}` and ``\psi_{BA}``, where ``A`` and ``B`` are the two sites. -These excitations can be constructed as follows: - -````julia -alg = QuasiparticleAnsatz(; tol = 1.0e-3) -momenta = range(-π, π; length = 33) -psi_AB = psi -envs_AB = environments(psi_AB, H_u1_su2, psi_AB); -psi_BA = circshift(psi, 1) -envs_BA = environments(psi_BA, H_u1_su2, psi_BA); - -spinon_charge = FermionParity(0) ⊠ U1Irrep(0) ⊠ SU2Irrep(1 // 2) -E_spinon, ϕ_spinon = excitations( - H_u1_su2, alg, momenta, psi_AB, envs_AB, psi_BA, envs_BA; - sector = spinon_charge, num = 1 -); - -holon_charge = FermionParity(1) ⊠ U1Irrep(-1) ⊠ SU2Irrep(0) -E_holon, ϕ_holon = excitations( - H_u1_su2, alg, momenta, psi_AB, envs_AB, psi_BA, envs_BA; - sector = holon_charge, num = 1 -); -```` - -```` -[ Info: Found excitations for momentum = -3.141592653589793 -[ Info: Found excitations for momentum = -2.945243112740431 -[ Info: Found excitations for momentum = -2.748893571891069 -[ Info: Found excitations for momentum = -2.552544031041707 -[ Info: Found excitations for momentum = -2.356194490192345 -[ Info: Found excitations for momentum = -2.1598449493429825 -[ Info: Found excitations for momentum = -1.7671458676442586 -[ Info: Found excitations for momentum = -1.9634954084936207 -[ Info: Found excitations for momentum = -1.5707963267948966 -[ Info: Found excitations for momentum = -1.3744467859455345 -[ Info: Found excitations for momentum = -0.9817477042468103 -[ Info: Found excitations for momentum = -1.1780972450961724 -[ Info: Found excitations for momentum = -0.7853981633974483 -[ Info: Found excitations for momentum = -0.5890486225480862 -[ Info: Found excitations for momentum = -0.19634954084936207 -[ Info: Found excitations for momentum = -0.39269908169872414 -[ Info: Found excitations for momentum = 0.0 -[ Info: Found excitations for momentum = 0.19634954084936207 -[ Info: Found excitations for momentum = 0.39269908169872414 -[ Info: Found excitations for momentum = 0.5890486225480862 -[ Info: Found excitations for momentum = 0.7853981633974483 -[ Info: Found excitations for momentum = 0.9817477042468103 -[ Info: Found excitations for momentum = 1.3744467859455345 -[ Info: Found excitations for momentum = 1.1780972450961724 -[ Info: Found excitations for momentum = 1.5707963267948966 -[ Info: Found excitations for momentum = 1.7671458676442586 -[ Info: Found excitations for momentum = 2.356194490192345 -[ Info: Found excitations for momentum = 1.9634954084936207 -[ Info: Found excitations for momentum = 2.1598449493429825 -[ Info: Found excitations for momentum = 2.552544031041707 -[ Info: Found excitations for momentum = 2.748893571891069 -[ Info: Found excitations for momentum = 2.945243112740431 -[ Info: Found excitations for momentum = 3.141592653589793 -[ Info: Found excitations for momentum = -3.141592653589793 -[ Info: Found excitations for momentum = -2.748893571891069 -[ Info: Found excitations for momentum = -2.552544031041707 -[ Info: Found excitations for momentum = -2.945243112740431 -[ Info: Found excitations for momentum = -2.356194490192345 -[ Info: Found excitations for momentum = -2.1598449493429825 -[ Info: Found excitations for momentum = -1.9634954084936207 -[ Info: Found excitations for momentum = -1.7671458676442586 -[ Info: Found excitations for momentum = -1.5707963267948966 -[ Info: Found excitations for momentum = -1.3744467859455345 -[ Info: Found excitations for momentum = -1.1780972450961724 -[ Info: Found excitations for momentum = -0.9817477042468103 -[ Info: Found excitations for momentum = -0.7853981633974483 -[ Info: Found excitations for momentum = -0.5890486225480862 -[ Info: Found excitations for momentum = -0.39269908169872414 -[ Info: Found excitations for momentum = -0.19634954084936207 -[ Info: Found excitations for momentum = 0.0 -[ Info: Found excitations for momentum = 0.19634954084936207 -[ Info: Found excitations for momentum = 0.39269908169872414 -[ Info: Found excitations for momentum = 0.5890486225480862 -[ Info: Found excitations for momentum = 0.7853981633974483 -[ Info: Found excitations for momentum = 0.9817477042468103 -[ Info: Found excitations for momentum = 1.1780972450961724 -[ Info: Found excitations for momentum = 1.3744467859455345 -[ Info: Found excitations for momentum = 1.5707963267948966 -[ Info: Found excitations for momentum = 1.7671458676442586 -[ Info: Found excitations for momentum = 1.9634954084936207 -[ Info: Found excitations for momentum = 2.1598449493429825 -[ Info: Found excitations for momentum = 2.356194490192345 -[ Info: Found excitations for momentum = 2.552544031041707 -[ Info: Found excitations for momentum = 2.748893571891069 -[ Info: Found excitations for momentum = 3.141592653589793 -[ Info: Found excitations for momentum = 2.945243112740431 - -```` - -Again, we can compare the numerical results to the analytic solution. -Here, the formulae for the excitation energies are expressed in terms of dressed momenta: - -````julia -function spinon_momentum(Λ, u; rtol = 1.0e-12) - integrandum(ω) = besselj0(ω) * sin(ω * Λ) / ω / cosh(ω * u) - return π / 2 - quadgk(integrandum, 0, Inf; rtol = rtol)[1] -end -function spinon_energy(Λ, u; rtol = 1.0e-12) - integrandum(ω) = besselj1(ω) * cos(ω * Λ) / ω / cosh(ω * u) - return 2 * quadgk(integrandum, 0, Inf; rtol = rtol)[1] -end - -function holon_momentum(k, u; rtol = 1.0e-12) - integrandum(ω) = besselj0(ω) * sin(ω * sin(k)) / ω / (1 + exp(2u * abs(ω))) - return π / 2 - k - 2 * quadgk(integrandum, 0, Inf; rtol = rtol)[1] -end -function holon_energy(k, u; rtol = 1.0e-12) - integrandum(ω) = besselj1(ω) * cos(ω * sin(k)) * exp(-ω * u) / ω / cosh(ω * u) - return 2 * cos(k) + 2u + 2 * quadgk(integrandum, 0, Inf; rtol = rtol)[1] -end - -Λs = range(-10, 10; length = 51) -P_spinon_analytic = rem2pi.(spinon_momentum.(Λs, U / 4), RoundNearest) -E_spinon_analytic = spinon_energy.(Λs, U / 4) -I_spinon = sortperm(P_spinon_analytic) -P_spinon_analytic = P_spinon_analytic[I_spinon] -E_spinon_analytic = E_spinon_analytic[I_spinon] -P_spinon_analytic = [reverse(-P_spinon_analytic); P_spinon_analytic] -E_spinon_analytic = [reverse(E_spinon_analytic); E_spinon_analytic]; - -ks = range(0, 2π; length = 51) -P_holon_analytic = rem2pi.(holon_momentum.(ks, U / 4), RoundNearest) -E_holon_analytic = holon_energy.(ks, U / 4) -I_holon = sortperm(P_holon_analytic) -P_holon_analytic = P_holon_analytic[I_holon] -E_holon_analytic = E_holon_analytic[I_holon]; - -p = let p_excitations = plot(; xaxis = "momentum", yaxis = "energy") - scatter!(p_excitations, momenta, real(E_spinon); label = "spinon") - plot!(p_excitations, P_spinon_analytic, E_spinon_analytic; label = "spinon (analytic)") - - scatter!(p_excitations, momenta, real(E_holon); label = "holon") - plot!(p_excitations, P_holon_analytic, E_holon_analytic; label = "holon (analytic)") - - p_excitations -end -```` - -![](figure-1.png) - -The plot shows some discrepancies between the numerical and analytic results. -First and foremost, we must realize that in the thermodynamic limit, the momentum of a domain wall is actually not well-defined. -Concretely, only the difference in momentum between the two groundstates is well-defined, as we can always shift the momentum by multiplying one of the groundstates by a phase. -Here, we can fix this shift by realizing that our choice of shifting the groundstates by a single site, differs from the formula by a factor ``\pi/2``. - -````julia -momenta_shifted = rem2pi.(momenta .- π / 2, RoundNearest) -p = let p_excitations = plot(; xaxis = "momentum", yaxis = "energy", xlims = (-π, π)) - scatter!(p_excitations, momenta_shifted, real(E_spinon); label = "spinon") - plot!(p_excitations, P_spinon_analytic, E_spinon_analytic; label = "spinon (analytic)") - - scatter!(p_excitations, momenta_shifted, real(E_holon); label = "holon") - plot!(p_excitations, P_holon_analytic, E_holon_analytic; label = "holon (analytic)") - - p_excitations -end -```` - -![](figure-2.png) - -The second discrepancy is that while the spinon dispersion is well-reproduced, the holon dispersion is not. -This is due to the fact that the excitation ansatz captures the lowest-energy excitation, and not the elementary single-particle excitation. -To make this explicit, we can consider the scattering states comprising of a holon and two spinons. -If these are truly scattering states, the energy of the scattering state should be the sum of the energies of the individual excitations, and the momentum is the sum of the momenta. -Thus, we can find the lowest-energy scattering states by minimizing the energy over the combination of momenta for the constituent elementary excitations. - -````julia -holon_dispersion_itp = linear_interpolation( - P_holon_analytic, E_holon_analytic; - extrapolation_bc = Line() -) -spinon_dispersion_itp = linear_interpolation( - P_spinon_analytic, E_spinon_analytic; - extrapolation_bc = Line() -) -function scattering_energy(p1, p2, p3) - p1, p2, p3 = rem2pi.((p1, p2, p3), RoundNearest) - return holon_dispersion_itp(p1) + spinon_dispersion_itp(p2) + spinon_dispersion_itp(p3) -end; - -E_scattering_min = map(momenta_shifted) do p - e = Inf - for i in 1:10 # repeat for stability - res = optimize((rand(2) .* (2π) .- π)) do (p₁, p₂) - p₃ = p - p₁ - p₂ - return scattering_energy(p₁, p₂, p₃) - end - - e = min(Optim.minimum(res), e) - end - return e -end -E_scattering_max = map(momenta_shifted) do p - e = -Inf - for i in 1:10 # repeat for stability - res = optimize((rand(Float64, 2) .* (2π) .- π)) do (p₁, p₂) - p₃ = p - p₁ - p₂ - return -scattering_energy(p₁, p₂, p₃) - end - - e = max(-Optim.minimum(res), e) - end - return e -end; - -p = let p_excitations = plot(; - xaxis = "momentum", yaxis = "energy", xlims = (-π, π), ylims = (-0.1, 5) - ) - scatter!(p_excitations, momenta_shifted, real(E_spinon); label = "spinon") - plot!(p_excitations, P_spinon_analytic, E_spinon_analytic; label = "spinon (analytic)") - - scatter!(p_excitations, momenta_shifted, real(E_holon); label = "holon") - plot!(p_excitations, P_holon_analytic, E_holon_analytic; label = "holon (analytic)") - - I = sortperm(momenta_shifted) - plot!( - p_excitations, momenta_shifted[I], E_scattering_min[I]; label = "scattering states", - fillrange = E_scattering_max[I], fillalpha = 0.3, fillstyle = :x - ) - - p_excitations -end -```` - -![](figure-3.png) - ---- - -*This page was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).* - diff --git a/docs/src/examples/quantum1d/7.xy-finiteT/figure-1.png b/docs/src/examples/quantum1d/7.xy-finiteT/figure-1.png deleted file mode 100644 index da451a216034047e9d29582904616a531e934c13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37795 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 diff --git a/docs/src/examples/quantum1d/7.xy-finiteT/figure-5.png b/docs/src/examples/quantum1d/7.xy-finiteT/figure-5.png deleted file mode 100644 index 733496a0c3a48294a87cece46ecaea09b2207085..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38446 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 diff --git a/docs/src/examples/quantum1d/8.bose-hubbard/figure-1.png b/docs/src/examples/quantum1d/8.bose-hubbard/figure-1.png deleted file mode 100644 index 2ab23add4762bc48733092ba0aa888d34f863735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16373 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

    FnHG1xs{s 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 ieNr5xrV4E!B?BV8{nc5{D)36kh)Gv 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%0ALqp;THMSqm@q)|v*gNa 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 diff --git a/docs/src/examples/quantum1d/8.bose-hubbard/figure-5.png b/docs/src/examples/quantum1d/8.bose-hubbard/figure-5.png deleted file mode 100644 index a33028f2eb2ec4a897a1834e864b55c9c3cf237e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35226 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 TMSnMbg`};auU@KZf93xG({`+} diff --git a/docs/src/examples/quantum1d/8.bose-hubbard/figure-6.png b/docs/src/examples/quantum1d/8.bose-hubbard/figure-6.png deleted file mode 100644 index 805386dc73278b942b87c8a0974aa70b11ac28be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15426 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 literal 0 HcmV?d00001 diff --git a/docs/src/examples/classic2d/1.hard-hexagon/hexagon.svg b/docs/src/examples/statmech/hard-hexagon/hexagon.svg similarity index 100% rename from docs/src/examples/classic2d/1.hard-hexagon/hexagon.svg rename to docs/src/examples/statmech/hard-hexagon/hexagon.svg diff --git a/docs/src/examples/classic2d/1.hard-hexagon/index.md b/docs/src/examples/statmech/hard-hexagon/index.md similarity index 85% rename from docs/src/examples/classic2d/1.hard-hexagon/index.md rename to docs/src/examples/statmech/hard-hexagon/index.md index 6f103a911..a1f7bdde0 100644 --- a/docs/src/examples/classic2d/1.hard-hexagon/index.md +++ b/docs/src/examples/statmech/hard-hexagon/index.md @@ -1,10 +1,10 @@ ```@meta -EditURL = "../../../../../examples/classic2d/1.hard-hexagon/main.jl" +EditURL = "../../../../../examples/statmech/hard-hexagon/main.jl" ``` -[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/classic2d/1.hard-hexagon/main.ipynb) -[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/classic2d/1.hard-hexagon/main.ipynb) -[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/classic2d/1.hard-hexagon) +[![](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev/examples/statmech/hard-hexagon/main.ipynb) +[![](https://img.shields.io/badge/show-nbviewer-579ACA.svg)](https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev/examples/statmech/hard-hexagon/main.ipynb) +[![](https://img.shields.io/badge/download-project-orange)](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/QuantumKitHub/MPSKit.jl/examples/tree/gh-pages/dev/examples/statmech/hard-hexagon) # The Hard Hexagon model @@ -24,7 +24,7 @@ The [hard hexagon model](https://en.wikipedia.org/wiki/Hard_hexagon_model) is a This can be encoded in a transfer matrix with a local MPO tensor using anyonic symmetries, and the resulting MPO has been implemented in MPSKitModels. In order to use these anyonic symmetries, we need to generalise the notion of the bond dimension and define how it interacts with the symmetry. -Thus, we implement away of converting integers to symmetric spaces of the given dimension, which provides a crude guess for how the final MPS would distribute its Schmidt spectrum. +Thus, we implement a way of converting integers to symmetric spaces of the given dimension, which provides a crude guess for how the final MPS would distribute its Schmidt spectrum. ````julia mpo = hard_hexagon() @@ -59,7 +59,7 @@ println("F = $F\tS = $S\tξ = $ξ") ```` ```` -F = 0.8839037051703852 S = 1.2807829621826905 ξ = 13.849682581482702 +F = 0.8839037051703854 S = 1.2807829621910287 ξ = 13.849682581985 ```` @@ -69,7 +69,7 @@ The dominant eigenvector is of course only an approximation. The finite bond dimension enforces a finite correlation length, which effectively introduces a length scale in the system. This can be exploited to formulate a scaling hypothesis [pollmann2009](@cite), which in turn allows to extract the central charge. -First we need to know the entropy and correlation length at a bunch of different bond dimensions. +First we need to know the entropy and correlation length at several different bond dimensions. Our approach will be to re-use the previous approximated dominant eigenvector, and then expanding its bond dimension and re-running VUMPS. According to the scaling hypothesis we should have ``S ∝ \frac{c}{6} log(ξ)``. Therefore we should find ``c`` using @@ -81,7 +81,7 @@ function scaling_simulations( entropies = similar(Ds, Float64) correlations = similar(Ds, Float64) alg = VUMPS(; verbosity, tol, alg_eigsolve) - sector = unit(sectortype(mpo)) # dominant correlation functions are in the trivial sector + sector = unit(sectortype(mpo)) # in this example the dominant correlation functions are in the trivial sector ψ, envs, = leading_boundary(ψ₀, mpo, alg) entropies[1] = real(entropy(ψ)[1]) @@ -105,7 +105,7 @@ c = f.coeffs[2] ```` ```` -0.802524639544328 +0.8025361167011884 ```` ````julia diff --git a/docs/src/examples/classic2d/1.hard-hexagon/main.ipynb b/docs/src/examples/statmech/hard-hexagon/main.ipynb similarity index 94% rename from docs/src/examples/classic2d/1.hard-hexagon/main.ipynb rename to docs/src/examples/statmech/hard-hexagon/main.ipynb index 129e5589a..29b854be8 100644 --- a/docs/src/examples/classic2d/1.hard-hexagon/main.ipynb +++ b/docs/src/examples/statmech/hard-hexagon/main.ipynb @@ -32,7 +32,7 @@ "This can be encoded in a transfer matrix with a local MPO tensor using anyonic symmetries, and the resulting MPO has been implemented in MPSKitModels.\n", "\n", "In order to use these anyonic symmetries, we need to generalise the notion of the bond dimension and define how it interacts with the symmetry.\n", - "Thus, we implement away of converting integers to symmetric spaces of the given dimension, which provides a crude guess for how the final MPS would distribute its Schmidt spectrum." + "Thus, we implement a way of converting integers to symmetric spaces of the given dimension, which provides a crude guess for how the final MPS would distribute its Schmidt spectrum." ] }, { @@ -92,7 +92,7 @@ "The finite bond dimension enforces a finite correlation length, which effectively introduces a length scale in the system.\n", "This can be exploited to formulate a scaling hypothesis [pollmann2009](@cite), which in turn allows to extract the central charge.\n", "\n", - "First we need to know the entropy and correlation length at a bunch of different bond dimensions.\n", + "First we need to know the entropy and correlation length at several different bond dimensions.\n", "Our approach will be to re-use the previous approximated dominant eigenvector, and then expanding its bond dimension and re-running VUMPS.\n", "According to the scaling hypothesis we should have $S ∝ \\frac{c}{6} log(ξ)$. Therefore we should find $c$ using" ] @@ -110,7 +110,7 @@ " entropies = similar(Ds, Float64)\n", " correlations = similar(Ds, Float64)\n", " alg = VUMPS(; verbosity, tol, alg_eigsolve)\n", - " sector = unit(sectortype(mpo)) # dominant correlation functions are in the trivial sector\n", + " sector = unit(sectortype(mpo)) # in this example the dominant correlation functions are in the trivial sector\n", "\n", " ψ, envs, = leading_boundary(ψ₀, mpo, alg)\n", " entropies[1] = real(entropy(ψ)[1])\n", diff --git a/docs/src/index.md b/docs/src/index.md index 2b9265209..267699dcb 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -46,7 +46,7 @@ features: - [Algorithms](@ref um_algorithms) - [Parallelism in julia](@ref) - [Lattices](@ref lattices) -- [Examples](@ref) +- [Examples](@ref examples_index) - [Library](@ref "Library documentation") - [References](@ref) — how to cite MPSKit, and publications that have used it - [Changelog](@ref) @@ -229,7 +229,7 @@ println(" = $(sum(real(E0)) / length(mps))") ### Additional Resources For more detailed information on the functionality and capabilities of MPSKit, refer to the -Manual section, or have a look at the [Examples](@ref) page. +Manual section, or have a look at the [Examples](@ref examples_index) page. Keep in mind that the documentation is still a work in progress, and that some features may not be fully documented yet. If you encounter any issues or have questions, please check the diff --git a/examples/Cache.toml b/examples/Cache.toml index 1b15ac166..367b32a61 100644 --- a/examples/Cache.toml +++ b/examples/Cache.toml @@ -1,12 +1,16 @@ -[classic2d] -"1.hard-hexagon" = "059f9a5162d75323c7104a8fb178458f965db7bda1481021ae51d4fb8ec9cde9" +[excitations] +"haldane" = "c09df36c3be5cd452bec564d22f6e2815474a9dab71dd5528013a3fb46b2f7c0" -[quantum1d] -"2.haldane" = "c5a0eb70f0930d38053535c659ab39a87121b6ebda040ceadd9deb5f30921315" -"6.hubbard" = "cef140a6224350345735aac889ee7e33724fc0af9ce94f68be47a7e40107c09c" -"7.xy-finiteT" = "0f330a157bea739a43a82a937791c680b2fa6e5e479171ee5ef318d1fdae7bcf" -"8.bose-hubbard" = "cf0d9a543e784dc6053e413780d19e1b59bf956dd4598752fdf664804dd68ce6" -"3.ising-dqpt" = "a2900eed23de7655f600943fae72d1dc35f87f33d11947f707d302ce245399fe" -"5.haldane-spt" = "c8fd3a8d406b9ff3ea9a34b596c5910d81e4eb710b665d7fa04e30f795a46086" -"4.xxz-heisenberg" = "9033fb104c3f658ccb1b8e335b986b7abda59e0b5359be086d3b62e1cc32ebd6" -"1.ising-cft" = "3d34757eee7b95120b746c5e30e713203a876a87353ecd9937798f29183c9916" +[dynamics] +"ising-dqpt" = "f90e6a301a8bc6634f80d23957843ed0e721ac0fd6bf8c4fd07a152dbe264563" +"xy-finiteT" = "315b668d2e9ab114cbba396f4dbeb28cb2f7e97db280a0844f36dc17df26d3bc" + +[statmech] +"hard-hexagon" = "bd5e82948c6b7511e6c9c05565053113ce40df31102d70b544d82b6595306238" + +[groundstates] +"haldane-spt" = "c8fd3a8d406b9ff3ea9a34b596c5910d81e4eb710b665d7fa04e30f795a46086" +"hubbard" = "29e2469ac9307f1242bdfb76b97c6a2e04dc087f5d4b6c45c8b7a15df12ad36c" +"bose-hubbard" = "cf0d9a543e784dc6053e413780d19e1b59bf956dd4598752fdf664804dd68ce6" +"xxz-heisenberg" = "dae5f29dcad5fcfaffd12a7847916adb92c955276ce24166fd3f9c9534c50784" +"ising-cft" = "ebcae1e501347cb00a46d0889df1355707be77cf962f9ee0d16416393492529b" diff --git a/examples/README.md b/examples/README.md index 0aea9a7d9..74daf002d 100644 --- a/examples/README.md +++ b/examples/README.md @@ -8,14 +8,23 @@ In order to Trigger the file generation, run: ``julia examples/make.jl` By default, this will only generate files when the input file has not changed. This is -achieved by keeping a checksum of the `main.jl` file in each example in a `cache.toml`. +achieved by keeping a checksum of the `main.jl` file in each example in `Cache.toml`. Total recompilation can be achieved by deleting this file, or alternatively you can just delete the entries for which you wish to generate new files. ## Contributing Contributions are welcome! Please open an issue or a pull request if you have any questions -or suggestions. The code should be placed in a folder in either of the `classic2d` or -`quantum1d` folders, and the `main.jl` file should be the entry point. Any other files will +or suggestions. The code should be placed in a folder in one of the topic groups (`groundstates`, +`excitations`, `dynamics`, `statmech`), and the `main.jl` file should be the entry point. +A new topic group is picked up automatically: any subdirectory of `examples/` is built, so +only the sidebar grouping in `docs/make.jl` needs updating. Any other files will be copied over to the `docs/src/examples` folder, so you can use this to include images or -other files. \ No newline at end of file +other files. + +The folder name is the published URL of the page, so name it after the model or method and do +not prefix it with a number. Numeric prefixes force every later example to be renamed — and +therefore every URL to change — as soon as one is inserted in the middle. Examples are listed +alphabetically in the sidebar; the reading order for newcomers lives in the summaries on the +gallery index page (`docs/src/examples/index.md`), which is also where a new example should be +described. \ No newline at end of file diff --git a/examples/quantum1d/3.ising-dqpt/finite_timeev.png b/examples/dynamics/ising-dqpt/finite_timeev.png similarity index 100% rename from examples/quantum1d/3.ising-dqpt/finite_timeev.png rename to examples/dynamics/ising-dqpt/finite_timeev.png diff --git a/examples/quantum1d/3.ising-dqpt/infinite_timeev.png b/examples/dynamics/ising-dqpt/infinite_timeev.png similarity index 100% rename from examples/quantum1d/3.ising-dqpt/infinite_timeev.png rename to examples/dynamics/ising-dqpt/infinite_timeev.png diff --git a/examples/quantum1d/3.ising-dqpt/main.jl b/examples/dynamics/ising-dqpt/main.jl similarity index 94% rename from examples/quantum1d/3.ising-dqpt/main.jl rename to examples/dynamics/ising-dqpt/main.jl index 50f7a3a23..78c09abcb 100644 --- a/examples/quantum1d/3.ising-dqpt/main.jl +++ b/examples/dynamics/ising-dqpt/main.jl @@ -28,7 +28,7 @@ First we construct the Hamiltonian in MPO form, and obtain the pre-quenched grou L = 20 H₀ = transverse_field_ising(FiniteChain(L); g = -0.5) ψ₀ = FiniteMPS(L, ℂ^2, ℂ^10) -ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG()); +ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG(; verbosity = 0)); md""" ## Finite MPS quenching @@ -57,7 +57,7 @@ Putting it all together, we get function finite_sim(L; dt = 0.05, finaltime = 5.0) ψ₀ = FiniteMPS(L, ℂ^2, ℂ^10) H₀ = transverse_field_ising(FiniteChain(L); g = -0.5) - ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG()) + ψ₀, _ = find_groundstate(ψ₀, H₀, DMRG(; verbosity = 0)) H₁ = transverse_field_ising(FiniteChain(L); g = -2.0) ψₜ = deepcopy(ψ₀) @@ -85,7 +85,7 @@ Similarly we could start with an initial infinite state and find the pre-quench ψ₀ = InfiniteMPS([ℂ^2], [ℂ^10]) H₀ = transverse_field_ising(; g = -0.5) -ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS()); +ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS(; verbosity = 0)); md""" The dot product of two infinite matrix product states scales as ``\alpha ^N`` where ``α`` is the dominant eigenvalue of the transfer matrix. @@ -123,7 +123,7 @@ The final code is function infinite_sim(dt = 0.05, finaltime = 5.0) ψ₀ = InfiniteMPS([ℂ^2], [ℂ^10]) - ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS()) + ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS(; verbosity = 0)) ψₜ = deepcopy(ψ₀) envs = environments(ψₜ, H₁, ψₜ) diff --git a/examples/quantum1d/7.xy-finiteT/main.jl b/examples/dynamics/xy-finiteT/main.jl similarity index 97% rename from examples/quantum1d/7.xy-finiteT/main.jl rename to examples/dynamics/xy-finiteT/main.jl index 473006179..31a50d035 100644 --- a/examples/quantum1d/7.xy-finiteT/main.jl +++ b/examples/dynamics/xy-finiteT/main.jl @@ -56,8 +56,7 @@ The Hamiltonian can be diagonalized in terms of fermionic creation and annihilat E_0 = -\frac{1}{\pi} \text{EllipticE}\left( \sqrt{1 - \gamma^2} \right) ``` -!!! todo - Show the derivation of the ground state energy by diagonalizing the Hamiltonian in terms of fermionic operators. +The derivation, via a Jordan-Wigner transformation to free fermions followed by a Bogoliubov rotation, can be found in [Lieb, Schultz & Mattis, Ann. Phys. 16, 407 (1961)](https://doi.org/10.1016/0003-4916(61)90115-4). """ function groundstate_energy(J, N) @@ -95,7 +94,7 @@ D = 64 V_init = symmetry === Trivial ? ℂ^32 : U1Space(i => 10 for i in -1:(1 // 2):1) psi_init = FiniteMPS(N, physicalspace(H, 1), V_init) trunc = truncrank(D) -psi, envs, = find_groundstate(psi_init, H, DMRG2(; trunc, maxiter = 5)); +psi, envs, = find_groundstate(psi_init, H, DMRG2(; trunc, maxiter = 5, verbosity = 0)); E_0 = expectation_value(psi, H, envs) / N println("Numerical:\t", real(E_0)) @@ -141,8 +140,7 @@ The resulting expression is Z(\beta) = \prod_{k=1}^{N} \left( 1 + e^{-\beta \epsilon_k} \right)^{1/N} ``` -!!! todo - Show the derivation of the partition function for the XY model. +This expression follows from the same free-fermion diagonalization as the ground-state energy above: each single-particle mode $\epsilon_k$ is independently occupied or empty, giving the usual free-fermion partition function (see again [Lieb, Schultz & Mattis (1961)](https://doi.org/10.1016/0003-4916(61)90115-4)). """ function partition_function(β::Number, J::Number, N::Number) @@ -274,8 +272,6 @@ Z(\beta) = In other words, we can compute the partition function at $\beta$ by computing the overlap of two states evolved for $\beta / 2$, as long as the Hamiltonian is Hermitian. Otherwise, we could still use the same trick, but we would have to compute the evolved states twice, once for $H$ and once for $H^\dagger$. -!!! todo - Add a figure to illustrate this trick. """ double_logpartition(ρ₁, ρ₂ = ρ₁) = log(real(dot(ρ₁, ρ₂))) / length(ρ₁) diff --git a/examples/quantum1d/2.haldane/main.jl b/examples/excitations/haldane/main.jl similarity index 99% rename from examples/quantum1d/2.haldane/main.jl rename to examples/excitations/haldane/main.jl index 98ac72a0e..8ce58e3cf 100644 --- a/examples/quantum1d/2.haldane/main.jl +++ b/examples/excitations/haldane/main.jl @@ -106,7 +106,7 @@ virtual_space_inf = Rep[SU₂](1 // 2 => 16, 3 // 2 => 16, 5 // 2 => 8, 7 // 2 = ψ_inf, envs_inf, delta_inf = find_groundstate(ψ₀_inf, H; verbosity = 0) kspace = range(0, π, 16) -Es, _ = excitations(H, QuasiparticleAnsatz(), kspace, ψ_inf, envs_inf; sector = SU2Irrep(1)) +Es, _ = excitations(H, QuasiparticleAnsatz(), kspace, ψ_inf, envs_inf; sector = SU2Irrep(1), verbosity = 0) ΔE, idx = findmin(real.(Es)) println("minimum @k = $(kspace[idx]):\t ΔE = $(ΔE)") diff --git a/examples/quantum1d/8.bose-hubbard/main.jl b/examples/groundstates/bose-hubbard/main.jl similarity index 100% rename from examples/quantum1d/8.bose-hubbard/main.jl rename to examples/groundstates/bose-hubbard/main.jl diff --git a/examples/quantum1d/5.haldane-spt/main.jl b/examples/groundstates/haldane-spt/main.jl similarity index 100% rename from examples/quantum1d/5.haldane-spt/main.jl rename to examples/groundstates/haldane-spt/main.jl diff --git a/examples/quantum1d/5.haldane-spt/spt-tensors.svg b/examples/groundstates/haldane-spt/spt-tensors.svg similarity index 100% rename from examples/quantum1d/5.haldane-spt/spt-tensors.svg rename to examples/groundstates/haldane-spt/spt-tensors.svg diff --git a/examples/quantum1d/6.hubbard/main.jl b/examples/groundstates/hubbard/main.jl similarity index 90% rename from examples/quantum1d/6.hubbard/main.jl rename to examples/groundstates/hubbard/main.jl index 0c4057484..b3400dc13 100644 --- a/examples/quantum1d/6.hubbard/main.jl +++ b/examples/groundstates/hubbard/main.jl @@ -9,7 +9,7 @@ a kinetic term that allows electrons to hop between neighboring sites, and a pot Often, a third term is included which serves as a chemical potential to control the number of electrons in the system. ```math -H = -t \sum_{\langle i, j \rangle, \sigma} c^{\dagger}_{i,\sigma} c_{j,\sigma} + U \sum_i n_{i,\uparrow} n_{i,\downarrow} - \mu \sum_{i,\sigma} n_{i,\sigma} +H = -t ∑_{⟨i, j⟩, σ} c^{†}_{i,σ} c_{j,σ} + U ∑_i n_{i,↑} n_{i,↓} - μ ∑_{i,σ} n_{i,σ} ``` At half-filling, the system exhibits particle-hole symmetry, which can be made explicit by rewriting the Hamiltonian slightly. @@ -17,13 +17,13 @@ First, we fix the overall energy scale by setting `t = 1`, and then shift the to This results in the following Hamiltonian: ```math -H = - \sum_{\langle i, j \rangle, \sigma} c^{\dagger}_{i,\sigma} c_{j,\sigma} + U / 4 \sum_i (1 - 2 n_{i,\uparrow}) (1 - 2 n_{i,\downarrow}) - \mu \sum_{i,\sigma} n_{i,\sigma} +H = - ∑_{⟨i, j⟩, σ} c^{†}_{i,σ} c_{j,σ} + U / 4 ∑_i (1 - 2 n_{i,↑}) (1 - 2 n_{i,↓}) - μ ∑_{i,σ} n_{i,σ} ``` Finally, setting `\mu = 0` and defining `u = U / 4` we obtain the Hubbard model at half-filling. ```math -H = - \sum_{\langle i, j \rangle, \sigma} c^{\dagger}_{i,\sigma} c_{j,\sigma} + u \sum_i (1 - 2 n_{i,\uparrow}) (1 - 2 n_{i,\downarrow}) +H = - ∑_{⟨i, j⟩, σ} c^{†}_{i,σ} c_{j,σ} + u ∑_i (1 - 2 n_{i,↑}) (1 - 2 n_{i,↓}) ``` """ @@ -36,9 +36,10 @@ using Plots using Interpolations using Optim -#src # for reproducibility: -#src using Random -#src Random.seed!(123) +# For reproducibility of this page, we fix the seed of the random number generator: + +using Random +Random.seed!(123); const t = 1.0 const mu = 0.0 @@ -46,10 +47,10 @@ const U = 3.0 md""" For this case, the ground state energy has an analytic solution, which can be used to benchmark the numerical results. -It follows from Eq. (6.82) in [](). +It follows from Eq. (6.82) in [Essler, Frahm, Göhmann, Klümper & Korepin, The One-Dimensional Hubbard Model](https://doi.org/10.1017/CBO9780511534843). ```math -e(u) = - u - 4 \int_0^{\infty} \frac{d\omega}{\omega} \frac{J_0(\omega) J_1(\omega)}{1 + \exp(2u \omega)} +e(u) = - u - 4 ∫₀^{∞} \frac{dω}{ω} \frac{J₀(ω) J₁(ω)}{1 + \exp(2u ω)} ``` We can easily verify this by comparing the numerical results to the analytic solution. @@ -57,7 +58,7 @@ We can easily verify this by comparing the numerical results to the analytic sol function hubbard_energy(u; rtol = 1.0e-12) integrandum(ω) = besselj0(ω) * besselj1(ω) / (1 + exp(2u * ω)) / ω - int, err = quadgk(integrandum, 0, Inf; rtol = rtol) + int, err = quadgk(integrandum, 0, Inf; rtol) return -u - 4 * int end @@ -67,7 +68,7 @@ function compute_groundstate( expansionfactor = (1 / 10), expansioniter = 20 ) - verbosity = 2 + verbosity = 0 psi, = find_groundstate(psi, H; tol = svalue * 10, verbosity) for _ in 1:expansioniter D = maximum(x -> dim(left_virtualspace(psi, x)), 1:length(psi)) @@ -86,7 +87,7 @@ function compute_groundstate( psi, = find_groundstate( psi, H, VUMPS(; tol = svalue / 100, verbosity, maxiter = 100) & - GradientGrassmann(; tol = svalue / 1000) + GradientGrassmann(; tol = svalue / 1000, verbosity) ) return psi @@ -107,7 +108,7 @@ md""" ## Symmetries The Hubbard model has a rich symmetry structure, which can be exploited to speed up simulations. -Apart from the fermionic parity, the model also has a $U(1)$ particle number symmetry, along with a $SU(2)$ spin symmetry. +Apart from the fermionic parity, the model also has a ``U(1)`` particle number symmetry, along with a ``SU(2)`` spin symmetry. Explicitly imposing these symmetries on the tensors can greatly reduce the computational cost of the simulation. Naively imposing these symmetries however, is not compatible with our desire to work at half-filling. @@ -139,7 +140,7 @@ The elementary excitations are known as spinons and holons, which are domain wal The fact that the spin and charge sectors are separate is a phenomenon known as spin-charge separation. The domain walls can be constructed by noticing that there are two equivalent groundstates, which differ by a translation over a single site. -In other words, the groundstates are ``\psi_{AB}` and ``\psi_{BA}``, where ``A`` and ``B`` are the two sites. +In other words, the groundstates are ``\psi_{AB}`` and ``\psi_{BA}``, where ``A`` and ``B`` are the two sites. These excitations can be constructed as follows: """ @@ -153,13 +154,13 @@ envs_BA = environments(psi_BA, H_u1_su2, psi_BA); spinon_charge = FermionParity(0) ⊠ U1Irrep(0) ⊠ SU2Irrep(1 // 2) E_spinon, ϕ_spinon = excitations( H_u1_su2, alg, momenta, psi_AB, envs_AB, psi_BA, envs_BA; - sector = spinon_charge, num = 1 + sector = spinon_charge, num = 1, verbosity = 0 ); holon_charge = FermionParity(1) ⊠ U1Irrep(-1) ⊠ SU2Irrep(0) E_holon, ϕ_holon = excitations( H_u1_su2, alg, momenta, psi_AB, envs_AB, psi_BA, envs_BA; - sector = holon_charge, num = 1 + sector = holon_charge, num = 1, verbosity = 0 ); md""" @@ -215,7 +216,7 @@ md""" The plot shows some discrepancies between the numerical and analytic results. First and foremost, we must realize that in the thermodynamic limit, the momentum of a domain wall is actually not well-defined. Concretely, only the difference in momentum between the two groundstates is well-defined, as we can always shift the momentum by multiplying one of the groundstates by a phase. -Here, we can fix this shift by realizing that our choice of shifting the groundstates by a single site, differs from the formula by a factor ``\pi/2``. +Here, we can fix this shift by realizing that our choice of shifting the groundstates by a single site, differs from the formula by a factor ``π/2``. """ momenta_shifted = rem2pi.(momenta .- π / 2, RoundNearest) diff --git a/examples/quantum1d/1.ising-cft/main.jl b/examples/groundstates/ising-cft/main.jl similarity index 99% rename from examples/quantum1d/1.ising-cft/main.jl rename to examples/groundstates/ising-cft/main.jl index a3f45887e..571e6ec74 100644 --- a/examples/quantum1d/1.ising-cft/main.jl +++ b/examples/groundstates/ising-cft/main.jl @@ -122,7 +122,7 @@ can reach higher system sizes. L_mps = 20 H_mps = periodic_boundary_conditions(transverse_field_ising(), L_mps) D = 64 -ψ, envs, δ = find_groundstate(FiniteMPS(L_mps, ℂ^2, ℂ^D), H_mps, DMRG()); +ψ, envs, δ = find_groundstate(FiniteMPS(L_mps, ℂ^2, ℂ^D), H_mps, DMRG(; verbosity = 0)); md""" Excitations on top of the ground state can be found through the use of the quasiparticle diff --git a/examples/quantum1d/1.ising-cft/translation_mpo.svg b/examples/groundstates/ising-cft/translation_mpo.svg similarity index 100% rename from examples/quantum1d/1.ising-cft/translation_mpo.svg rename to examples/groundstates/ising-cft/translation_mpo.svg diff --git a/examples/quantum1d/4.xxz-heisenberg/main.jl b/examples/groundstates/xxz-heisenberg/main.jl similarity index 91% rename from examples/quantum1d/4.xxz-heisenberg/main.jl rename to examples/groundstates/xxz-heisenberg/main.jl index 36ce04d77..010cb2445 100644 --- a/examples/quantum1d/4.xxz-heisenberg/main.jl +++ b/examples/groundstates/xxz-heisenberg/main.jl @@ -7,9 +7,10 @@ The necessary packages to follow this tutorial are: using MPSKit, MPSKitModels, TensorKit, Plots -#src # for reproducibility: -#src using Random -#src Random.seed!(123) +# For reproducibility of this page, we fix the seed of the random number generator: + +using Random +Random.seed!(123); md""" ## Failure @@ -31,7 +32,7 @@ md""" The ground state can then be found by calling `find_groundstate`. """ -groundstate, cache, delta = find_groundstate(state, H, VUMPS()); +groundstate, cache, delta = find_groundstate(state, H, VUMPS(; verbosity = 1)); md""" As you can see, VUMPS struggles to converge. @@ -39,7 +40,7 @@ On its own, that is already quite curious. Maybe we can do better using another algorithm, such as gradient descent. """ -groundstate, cache, delta = find_groundstate(state, H, GradientGrassmann(; maxiter = 20)); +groundstate, cache, delta = find_groundstate(state, H, GradientGrassmann(; maxiter = 20, verbosity = 1)); md""" Convergence is quite slow and even fails after sufficiently many iterations. @@ -72,7 +73,7 @@ Alternatively, the Hamiltonian can be constructed directly on a two-site unit ce ## H2 = repeat(H, 2); -- copies the one-site version H2 = heisenberg_XXX(ComplexF64, Trivial, InfiniteChain(2); spin = 1 // 2) groundstate, envs, delta = find_groundstate( - state, H2, VUMPS(; maxiter = 100, tol = 1.0e-12) + state, H2, VUMPS(; maxiter = 100, tol = 1.0e-12, verbosity = 1) ); md""" @@ -81,7 +82,7 @@ The reason behind this becomes more obvious at higher bond dimensions: """ groundstate, envs, delta = find_groundstate( - state, H2, IDMRG2(; trunc = truncrank(50), maxiter = 20, tol = 1.0e-12) + state, H2, IDMRG2(; trunc = truncrank(50), maxiter = 20, tol = 1.0e-12, verbosity = 1) ); entanglementplot(groundstate) @@ -125,4 +126,4 @@ Even though the bond dimension is higher than in the example without symmetry, c println(dim(V1)) println(dim(V2)) -groundstate, cache, delta = find_groundstate(state, H2, VUMPS(; maxiter = 400, tol = 1.0e-12)); +groundstate, cache, delta = find_groundstate(state, H2, VUMPS(; maxiter = 400, tol = 1.0e-12, verbosity = 1)); diff --git a/examples/make.jl b/examples/make.jl index c6c9cfd72..13a9fb049 100644 --- a/examples/make.jl +++ b/examples/make.jl @@ -65,6 +65,18 @@ function attach_notebook_badge(root, name, str) return join(map(markdown_only, (mybinder, nbviewer, download)), "\n") * "\n\n" * str end +# Log messages captured from an executed example carry the absolute source location of +# whatever emitted them, e.g. +# +# └ @ MPSKit /home/someone/checkout/src/algorithms/groundstate/vumps.jl:87 +# └ @ OptimKit /home/someone/.julia/packages/OptimKit/K7Ujj/src/cg.jl:188 +# +# Both depend on who ran the pipeline — the checkout path for a dev'ed package, and the +# depot slug for an installed one — so committing them makes the rendered pages differ +# per machine. The module name is already printed, so keep only the in-package path. +normalize_log_locations(content::AbstractString) = + replace(content, r"(@ [A-Za-z_][A-Za-z0-9_]* )\S*?/(src/\S*\.jl:\d+)" => s"\1\2") + function build_example(root, name) source_dir = joinpath(@__DIR__, "..", "examples", root, name) source_file = joinpath(source_dir, "main.jl") @@ -74,7 +86,9 @@ function build_example(root, name) Literate.markdown( source_file, target_dir; execute = true, name = "index", preprocess = attach_notebook_badge(root, name), - postprocess = content -> externalize_figures(content, target_dir), + postprocess = content -> normalize_log_locations( + externalize_figures(content, target_dir) + ), mdstrings = true, nbviewer_root_url = "https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev", binder_root_url = "https://mybinder.org/v2/gh/QuantumKitHub/MPSKit.jl/gh-pages?filepath=dev", @@ -103,5 +117,9 @@ end # Scripts # ---------------------------------------------------------------------------------------- # -build("classic2d") -build("quantum1d") +# build every topic group: each subdirectory of examples/ is one group +for group in readdir(@__DIR__) + startswith(group, '.') && continue + isdir(joinpath(@__DIR__, group)) || continue + build(group) +end diff --git a/examples/classic2d/1.hard-hexagon/hexagon.svg b/examples/statmech/hard-hexagon/hexagon.svg similarity index 100% rename from examples/classic2d/1.hard-hexagon/hexagon.svg rename to examples/statmech/hard-hexagon/hexagon.svg diff --git a/examples/classic2d/1.hard-hexagon/main.jl b/examples/statmech/hard-hexagon/main.jl similarity index 100% rename from examples/classic2d/1.hard-hexagon/main.jl rename to examples/statmech/hard-hexagon/main.jl From c4a3ede08f60adedb4b50567f096e0048b1fd07c Mon Sep 17 00:00:00 2001 From: lkdvos Date: Wed, 5 Aug 2026 14:58:31 -0400 Subject: [PATCH 2/2] docs(examples): address review of the regrouped gallery MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hide precompilation output. A `using` block reports precompilation progress whenever the pipeline runs against a cold depot, which says nothing about the example and whose timings differ per machine. `examples/make.jl` now drops any captured-output block that contains nothing else, and the twelve blocks that had been committed across four pages are gone. Use unicode in the markdown, not just in the code. Symbol macros become characters (`\beta` -> β, `\langle`/`\rangle` -> ⟨⟩, `\dagger` -> †, `\ket{ψ}` -> |ψ⟩, `\hat{a}` -> â), while structural LaTeX stays: `\frac`, `\sum` with limits, `\sqrt`, `\vec`, environments, and `\hat{n}`, which has no precomposed character. `\left`/`\right` keep their macro delimiters, since they need a LaTeX delimiter to size. Format the example markdown one sentence per line, leaving lists, tables, display math, admonitions and fenced blocks alone. Rework the gallery index. "Level"/difficulty becomes the more neutral "Complexity"; the ground states now open with the introductory Ising CFT example instead of the XXZ one; the XXZ summary describes choosing a unit cell and symmetry to suit the state, with the transfer and entanglement spectra as diagnostics, rather than a search that goes wrong; and the summaries no longer name functions or symmetry types, which belong on the pages themselves. The prose edits were applied to both `main.jl` and its rendered page so that a prose-only change stays a prose-only diff instead of re-running every example for new digits. Rendering all nine sources through Literate with `execute = false` reproduces the committed pages' prose exactly, the notebooks were regenerated, and `Cache.toml` is back in sync. Along the way: `xy-finiteT` had two overlapping sentences where one had lost its terminating period, the Hubbard prose said `\mu = 0` where its equations already used μ, and four misspellings sat in lines this pass rewrites anyway. Co-Authored-By: Claude Opus 5 (1M context) --- .../src/examples/dynamics/ising-dqpt/index.md | 35 ++- .../examples/dynamics/ising-dqpt/main.ipynb | 28 +- .../src/examples/dynamics/xy-finiteT/index.md | 120 ++++---- .../examples/dynamics/xy-finiteT/main.ipynb | 99 ++++--- .../src/examples/excitations/haldane/index.md | 7 - .../groundstates/bose-hubbard/index.md | 258 +++++++----------- .../groundstates/bose-hubbard/main.ipynb | 258 +++++++----------- .../groundstates/haldane-spt/index.md | 88 +++--- .../groundstates/haldane-spt/main.ipynb | 88 +++--- .../examples/groundstates/hubbard/index.md | 32 +-- .../examples/groundstates/hubbard/main.ipynb | 7 +- .../examples/groundstates/ising-cft/index.md | 46 ++-- .../groundstates/ising-cft/main.ipynb | 46 ++-- .../groundstates/xxz-heisenberg/index.md | 3 +- .../groundstates/xxz-heisenberg/main.ipynb | 3 +- docs/src/examples/index.md | 79 +++--- .../examples/statmech/hard-hexagon/index.md | 3 +- .../examples/statmech/hard-hexagon/main.ipynb | 3 +- examples/Cache.toml | 16 +- examples/dynamics/ising-dqpt/main.jl | 28 +- examples/dynamics/xy-finiteT/main.jl | 99 ++++--- examples/groundstates/bose-hubbard/main.jl | 258 +++++++----------- examples/groundstates/haldane-spt/main.jl | 88 +++--- examples/groundstates/hubbard/main.jl | 7 +- examples/groundstates/ising-cft/main.jl | 46 ++-- examples/groundstates/xxz-heisenberg/main.jl | 3 +- examples/make.jl | 56 +++- examples/statmech/hard-hexagon/main.jl | 3 +- 28 files changed, 760 insertions(+), 1047 deletions(-) diff --git a/docs/src/examples/dynamics/ising-dqpt/index.md b/docs/src/examples/dynamics/ising-dqpt/index.md index 6f3a8fb35..e0c8d74c6 100644 --- a/docs/src/examples/dynamics/ising-dqpt/index.md +++ b/docs/src/examples/dynamics/ising-dqpt/index.md @@ -8,32 +8,26 @@ EditURL = "../../../../../examples/dynamics/ising-dqpt/main.jl" # DQPT in the Ising model -In this tutorial we will try to reproduce the results from -[this paper](https://arxiv.org/pdf/1206.2505.pdf). The needed packages are +In this tutorial we will try to reproduce the results from [this paper](https://arxiv.org/pdf/1206.2505.pdf). +The needed packages are ````julia using MPSKit, MPSKitModels, TensorKit ```` -```` -Precompiling packages... - 14306.2 ms ✓ MPSKitModels - 1 dependency successfully precompiled in 16 seconds. 74 already precompiled. - -```` - Dynamical quantum phase transitions (DQPT in short) are signatures of equilibrium phase transitions in a dynamical quantity - the Loschmidt echo. -This quantity is given by ``L(t) = \frac{-2}{N} ln(| < \psi(t) | \psi(0) > |) `` where ``N`` is the system size. +This quantity is given by ``L(t) = \frac{-2}{N} \ln |⟨ψ(t)|ψ(0)⟩|`` where ``N`` is the system size. One typically starts from a ground state and then quenches the Hamiltonian to a different point. -Non analycities in the Loschmidt echo are called 'dynamical quantum phase transitions'. +Non-analyticities in the Loschmidt echo are called 'dynamical quantum phase transitions'. In the mentioned paper they work with -``H(g) = - \sum^{N-1}_{i=1} \sigma^z_i \sigma^z_{i+1} + g \sum_{i=1}^N \sigma^x_i`` +``H(g) = - \sum^{N-1}_{i=1} σ^z_i σ^z_{i+1} + g \sum_{i=1}^N σ^x_i`` -and show that divergences occur when quenching across the critical point (g₀ → g₁) for ``t^*_n = t^*(n+\frac{1}{2})`` with ``t^* = \pi/e(g_1,k^*)``, ``cos(k^*) = (1+g_0 g_1) / (g_0 + g_1)``, `` e(g,k) = \sqrt{(g-cos k)^2 + sin^2 k}``. +and show that divergences occur when quenching across the critical point (g₀ → g₁) for ``t^*_n = t^*(n+\frac{1}{2})`` with ``t^* = π/e(g_1,k^*)``, ``cos(k^*) = (1+g_0 g_1) / (g_0 + g_1)``, `` e(g,k) = \sqrt{(g-cos k)^2 + sin^2 k}``. -The outline of the tutorial is as follows. We will pick ``g₀ = 0.5``, ``g₁ = 2.0``, and perform the time evolution at different system sizes and compare with the thermodynamic limit. +The outline of the tutorial is as follows. +We will pick ``g₀ = 0.5``, ``g₁ = 2.0``, and perform the time evolution at different system sizes and compare with the thermodynamic limit. For those ``g`` we expect non-analyticities to occur at ``t_n ≈ 2.35 (n + 1/2)``. First we construct the Hamiltonian in MPO form, and obtain the pre-quenched ground state: @@ -47,14 +41,15 @@ H₀ = transverse_field_ising(FiniteChain(L); g = -0.5) ## Finite MPS quenching -We can define a helper function that measures the loschmith echo +We can define a helper function that measures the Loschmidt echo ````julia echo(ψ₀::FiniteMPS, ψₜ::FiniteMPS) = -2 * log(abs(dot(ψ₀, ψₜ))) / length(ψ₀) @assert isapprox(echo(ψ₀, ψ₀), 0, atol = 1.0e-10) ```` -We will initially use a two-site TDVP scheme to dynamically increase the bond dimension while time evolving, and later on switch to a faster one-site scheme. A single timestep can be done using +We will initially use a two-site TDVP scheme to dynamically increase the bond dimension while time evolving, and later on switch to a faster one-site scheme. +A single timestep can be done using ````julia H₁ = transverse_field_ising(FiniteChain(L); g = -2.0) @@ -63,7 +58,8 @@ dt = 0.01 ψₜ, envs = timestep(ψₜ, H₁, 0, dt, TDVP2(; trunc = truncrank(20))); ```` -"envs" is a kind of cache object that keeps track of all environments in `ψ`. It is often advantageous to re-use the environment, so that MPSKit doesn't need to recalculate everything. +"envs" is a kind of cache object that keeps track of all environments in `ψ`. +It is often advantageous to re-use the environment, so that MPSKit doesn't need to recalculate everything. Putting it all together, we get @@ -106,7 +102,7 @@ H₀ = transverse_field_ising(; g = -0.5) ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS(; verbosity = 0)); ```` -The dot product of two infinite matrix product states scales as ``\alpha ^N`` where ``α`` is the dominant eigenvalue of the transfer matrix. +The dot product of two infinite matrix product states scales as ``α ^N`` where ``α`` is the dominant eigenvalue of the transfer matrix. It is this ``α`` that is returned when calling ````julia @@ -124,7 +120,8 @@ echo(ψ₀::InfiniteMPS, ψₜ::InfiniteMPS) = -2 * log(abs(dot(ψ₀, ψₜ))) @assert isapprox(echo(ψ₀, ψ₀), 0, atol = 1.0e-10) ```` -We make use of the `changebonds` machinery to grow the bond dimension. This can also be achieved through a two-site scheme. +We make use of the `changebonds` machinery to grow the bond dimension. +This can also be achieved through a two-site scheme. Multiple algorithms are available, but we will only focus on `OptimalExpand()`. Growing the bond dimension by ``5`` can be done by calling: diff --git a/docs/src/examples/dynamics/ising-dqpt/main.ipynb b/docs/src/examples/dynamics/ising-dqpt/main.ipynb index 682c5b3a1..2d8f90416 100644 --- a/docs/src/examples/dynamics/ising-dqpt/main.ipynb +++ b/docs/src/examples/dynamics/ising-dqpt/main.ipynb @@ -6,8 +6,8 @@ "source": [ "# DQPT in the Ising model\n", "\n", - "In this tutorial we will try to reproduce the results from\n", - "[this paper](https://arxiv.org/pdf/1206.2505.pdf). The needed packages are" + "In this tutorial we will try to reproduce the results from [this paper](https://arxiv.org/pdf/1206.2505.pdf).\n", + "The needed packages are" ] }, { @@ -24,17 +24,18 @@ "metadata": {}, "source": [ "Dynamical quantum phase transitions (DQPT in short) are signatures of equilibrium phase transitions in a dynamical quantity - the Loschmidt echo.\n", - "This quantity is given by $L(t) = \\frac{-2}{N} ln(| < \\psi(t) | \\psi(0) > |) $ where $N$ is the system size.\n", + "This quantity is given by $L(t) = \\frac{-2}{N} \\ln |⟨ψ(t)|ψ(0)⟩|$ where $N$ is the system size.\n", "One typically starts from a ground state and then quenches the Hamiltonian to a different point.\n", - "Non analycities in the Loschmidt echo are called 'dynamical quantum phase transitions'.\n", + "Non-analyticities in the Loschmidt echo are called 'dynamical quantum phase transitions'.\n", "\n", "In the mentioned paper they work with\n", "\n", - "$H(g) = - \\sum^{N-1}_{i=1} \\sigma^z_i \\sigma^z_{i+1} + g \\sum_{i=1}^N \\sigma^x_i$\n", + "$H(g) = - \\sum^{N-1}_{i=1} σ^z_i σ^z_{i+1} + g \\sum_{i=1}^N σ^x_i$\n", "\n", - "and show that divergences occur when quenching across the critical point (g₀ → g₁) for $t^*_n = t^*(n+\\frac{1}{2})$ with $t^* = \\pi/e(g_1,k^*)$, $cos(k^*) = (1+g_0 g_1) / (g_0 + g_1)$, $ e(g,k) = \\sqrt{(g-cos k)^2 + sin^2 k}$.\n", + "and show that divergences occur when quenching across the critical point (g₀ → g₁) for $t^*_n = t^*(n+\\frac{1}{2})$ with $t^* = π/e(g_1,k^*)$, $cos(k^*) = (1+g_0 g_1) / (g_0 + g_1)$, $ e(g,k) = \\sqrt{(g-cos k)^2 + sin^2 k}$.\n", "\n", - "The outline of the tutorial is as follows. We will pick $g₀ = 0.5$, $g₁ = 2.0$, and perform the time evolution at different system sizes and compare with the thermodynamic limit.\n", + "The outline of the tutorial is as follows.\n", + "We will pick $g₀ = 0.5$, $g₁ = 2.0$, and perform the time evolution at different system sizes and compare with the thermodynamic limit.\n", "For those $g$ we expect non-analyticities to occur at $t_n ≈ 2.35 (n + 1/2)$.\n", "\n", "First we construct the Hamiltonian in MPO form, and obtain the pre-quenched ground state:" @@ -58,7 +59,7 @@ "source": [ "## Finite MPS quenching\n", "\n", - "We can define a helper function that measures the loschmith echo" + "We can define a helper function that measures the Loschmidt echo" ] }, { @@ -75,7 +76,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We will initially use a two-site TDVP scheme to dynamically increase the bond dimension while time evolving, and later on switch to a faster one-site scheme. A single timestep can be done using" + "We will initially use a two-site TDVP scheme to dynamically increase the bond dimension while time evolving, and later on switch to a faster one-site scheme.\n", + "A single timestep can be done using" ] }, { @@ -94,7 +96,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\"envs\" is a kind of cache object that keeps track of all environments in `ψ`. It is often advantageous to re-use the environment, so that MPSKit doesn't need to recalculate everything.\n", + "\"envs\" is a kind of cache object that keeps track of all environments in `ψ`.\n", + "It is often advantageous to re-use the environment, so that MPSKit doesn't need to recalculate everything.\n", "\n", "Putting it all together, we get" ] @@ -158,7 +161,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The dot product of two infinite matrix product states scales as $\\alpha ^N$ where $α$ is the dominant eigenvalue of the transfer matrix.\n", + "The dot product of two infinite matrix product states scales as $α ^N$ where $α$ is the dominant eigenvalue of the transfer matrix.\n", "It is this $α$ that is returned when calling" ] }, @@ -192,7 +195,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We make use of the `changebonds` machinery to grow the bond dimension. This can also be achieved through a two-site scheme.\n", + "We make use of the `changebonds` machinery to grow the bond dimension.\n", + "This can also be achieved through a two-site scheme.\n", "Multiple algorithms are available, but we will only focus on `OptimalExpand()`.\n", "Growing the bond dimension by $5$ can be done by calling:" ] diff --git a/docs/src/examples/dynamics/xy-finiteT/index.md b/docs/src/examples/dynamics/xy-finiteT/index.md index 86dc23584..17baaf505 100644 --- a/docs/src/examples/dynamics/xy-finiteT/index.md +++ b/docs/src/examples/dynamics/xy-finiteT/index.md @@ -19,27 +19,6 @@ using LinearAlgebra using BenchmarkFreeFermions ```` -```` -Precompiling packages... - 2928.0 ms ✓ SpecialFunctions - 1 dependency successfully precompiled in 3 seconds. 12 already precompiled. -Precompiling packages... - 1182.9 ms ✓ JLFzf - 1251.9 ms ✓ Xorg_libXi_jll - 1647.3 ms ✓ GLFW_jll - 4694.5 ms ✓ Latexify - 2510.2 ms ✓ GR_jll - 1296.9 ms ✓ Latexify → SparseArraysExt - 14731.3 ms ✓ HTTP - 5752.3 ms ✓ GR - 46383.1 ms ✓ Plots - 9 dependencies successfully precompiled in 71 seconds. 171 already precompiled. -Precompiling packages... - 2884.9 ms ✓ ColorVectorSpace → SpecialFunctionsExt - 1 dependency successfully precompiled in 3 seconds. 20 already precompiled. - -```` - # Finite temperature XY model This example shows how to simulate the finite temperature behavior of the XY model in 1D. @@ -48,7 +27,7 @@ As a result, many properties have analytical expressions that can be used to ver Here, we use [BenchmarkFreeFermions.jl](https://github.com/Qiaoyi-Li/BenchmarkFreeFermions.jl/) to compare our results. ```math - H = J \sum_{i=1}^{N} \left( \sigma^x_i \sigma^x_{i+1} + \sigma^y_i \sigma^y_{i+1} \right) + H = J \sum_{i=1}^{N} \left( σ^x_i σ^x_{i+1} + σ^y_i σ^y_{i+1} \right) ``` Here we will consider the anti-ferromagnetic ($J > 0$) chain, and restrict ourselves to $J = 1/2$. @@ -80,11 +59,10 @@ XY_hamiltonian (generic function with 3 methods) ## Diagonalization of the Hamiltonian -The Hamiltonian can be diagonalized through a Bogoliubov transformation, leading to the following expression for the ground state energy -The Hamiltonian can be diagonalized in terms of fermionic creation and annihilation operators, leading to the following expression in terms of [an incomplete elliptic integral of the second kind](https://en.wikipedia.org/wiki/Elliptic_integral). +The Hamiltonian can be diagonalized in terms of fermionic creation and annihilation operators, which yields an expression for the ground state energy in terms of [an incomplete elliptic integral of the second kind](https://en.wikipedia.org/wiki/Elliptic_integral). ```math - E_0 = -\frac{1}{\pi} \text{EllipticE}\left( \sqrt{1 - \gamma^2} \right) + E_0 = -\frac{1}{π} \text{EllipticE}\left( \sqrt{1 - γ^2} \right) ``` The derivation, via a Jordan-Wigner transformation to free fermions followed by a Bogoliubov rotation, can be found in [Lieb, Schultz & Mattis, Ann. Phys. 16, 407 (1961)](https://doi.org/10.1016/0003-4916(61)90115-4). @@ -157,39 +135,39 @@ To go beyond the ground state, we can extract several properties at finite tempe This is given by ```math - Z(\beta) = \text{Tr} \left( e^{-\beta H} \right) + Z(β) = \text{Tr} \left( e^{-β H} \right) ``` -where $\beta = 1 / T$ is the inverse temperature. +where $β = 1 / T$ is the inverse temperature. Given the partition function, we can compute the free energy as ```math - F(\beta) = -\frac{1}{\beta} \log Z(\beta) + F(β) = -\frac{1}{β} \log Z(β) ``` We can also compute observables using ```math - \langle O \rangle = \frac{1}{Z} \text{Tr} \left( O e^{-\beta H} \right) + ⟨O⟩ = \frac{1}{Z} \text{Tr} \left( O e^{-β H} \right) ``` In particular, we can compute the energy as ```math - U = \langle H \rangle = \frac{1}{Z} \text{Tr} \left( H e^{-\beta H} \right) + U = ⟨H⟩ = \frac{1}{Z} \text{Tr} \left( H e^{-β H} \right) ``` Finally, the specific heat can be computed as ```math - \chi = \frac{\partial U}{\partial T} = -\beta^2 \frac{\partial U}{\partial \beta} + χ = \frac{∂ U}{∂ T} = -β^2 \frac{∂ U}{∂ β} ``` Luckily, the partition function can be computed analytically for the XY model. The resulting expression is ```math - Z(\beta) = \prod_{k=1}^{N} \left( 1 + e^{-\beta \epsilon_k} \right)^{1/N} + Z(β) = \prod_{k=1}^{N} \left( 1 + e^{-β ε_k} \right)^{1/N} ``` -This expression follows from the same free-fermion diagonalization as the ground-state energy above: each single-particle mode $\epsilon_k$ is independently occupied or empty, giving the usual free-fermion partition function (see again [Lieb, Schultz & Mattis (1961)](https://doi.org/10.1016/0003-4916(61)90115-4)). +This expression follows from the same free-fermion diagonalization as the ground-state energy above: each single-particle mode $ε_k$ is independently occupied or empty, giving the usual free-fermion partition function (see again [Lieb, Schultz & Mattis (1961)](https://doi.org/10.1016/0003-4916(61)90115-4)). ````julia function partition_function(β::Number, J::Number, N::Number) @@ -212,10 +190,10 @@ F_analytic = free_energy.(βs, J, N); ### MPO approach We can numerically compute the partition function by explicitly computing the trace of the time-evolution operator. -To that end, we first need to build the time-evolution operator $e^{-\beta H}$, and then compute its trace. +To that end, we first need to build the time-evolution operator $e^{-β H}$, and then compute its trace. In order to build the time-evolution operator, we can repurpose the `make_time_mpo` function, which constructs the time-evolution operator for the ground state. -However, since we are interested in $e^{-\beta H}$, instead of $e^{-iH dt}$, we work with $dt = -i \beta$. +However, since we are interested in $e^{-β H}$, instead of $e^{-iH dt}$, we work with $dt = -i β$. In particular, we can approximate the exponential using a Taylor series through the `TaylorCluster` algorithm. ````julia @@ -257,11 +235,11 @@ end Some observations: - The first order approximation fails to capture the behavior of the partition function. -- The higher order approximations are in good agreement with the analytical result, as long as $\beta$ is not too large. -- The computational cost of the approximations does not depend on $\beta$, but on the order of the approximation. +- The higher order approximations are in good agreement with the analytical result, as long as $β$ is not too large. +- The computational cost of the approximations does not depend on $β$, but on the order of the approximation. To address the first point, we can have a look at the particular form of the time-evolution operator. -Here we see that for this particular Hamiltonian, all the terms with factors $d\tau$ are either zero or have trace zero. +Here we see that for this particular Hamiltonian, all the terms with factors $dτ$ are either zero or have trace zero. As a result, the trace of the time-evolution operator is equal to the trace of the identity, hence the result is always $2$. ```math @@ -272,9 +250,9 @@ H &= \begin{pmatrix} 0 & 0 & 1 \end{pmatrix} \\ -e^{\tau H} &= \begin{pmatrix} - 1 + \tau D + \frac{\tau^2}{2} D^2 & C + \frac{\tau}{2} (CD + DC) \\ - \tau (B + \frac{\tau}{2} (BD + DB)) & A + \frac{\tau^2}{2} (AD + DA + CB + BC) +e^{τ H} &= \begin{pmatrix} + 1 + τ D + \frac{τ^2}{2} D^2 & C + \frac{τ}{2} (CD + DC) \\ + τ (B + \frac{τ}{2} (BD + DB)) & A + \frac{τ^2}{2} (AD + DA + CB + BC) \end{pmatrix} \end{align} ``` @@ -308,20 +286,20 @@ end ![](figure-2.png) -We can now clearly see that, somewhat unsurprisingly, the error increases the larger $\beta$ becomes. -Given that we are computing Taylor expansions around $\beta = 0$, this is to be expected. +We can now clearly see that, somewhat unsurprisingly, the error increases the larger $β$ becomes. +Given that we are computing Taylor expansions around $β = 0$, this is to be expected. However, there is a trick we can use to improve our results slightly. To that end, we first rewrite the partition function as ```math -Z(\beta) = - \text{Tr} \left( e^{-\beta H} \right) = - \text{Tr} \left( e^{-\beta H / 2} e^{-\beta H / 2} \right) = - \left\langle e^{-\beta H^\dagger / 2}, e^{-\beta H / 2} \right\rangle +Z(β) = + \text{Tr} \left( e^{-β H} \right) = + \text{Tr} \left( e^{-β H / 2} e^{-β H / 2} \right) = + \left\langle e^{-β H^† / 2}, e^{-β H / 2} \right\rangle ``` -In other words, we can compute the partition function at $\beta$ by computing the overlap of two states evolved for $\beta / 2$, as long as the Hamiltonian is Hermitian. -Otherwise, we could still use the same trick, but we would have to compute the evolved states twice, once for $H$ and once for $H^\dagger$. +In other words, we can compute the partition function at $β$ by computing the overlap of two states evolved for $β / 2$, as long as the Hamiltonian is Hermitian. +Otherwise, we could still use the same trick, but we would have to compute the evolved states twice, once for $H$ and once for $H^†$. ````julia double_logpartition(ρ₁, ρ₂ = ρ₁) = log(real(dot(ρ₁, ρ₂))) / length(ρ₁) @@ -361,15 +339,15 @@ end ### MPO multiplication approach (linear) -While the Taylor series approach is useful, we can only push that so far, since we are always expanding around $\beta = 0$. -However, inspired by the trick we used to improve the results, we can use MPO multiplication techniques to compute partition functions at larger $\beta$. -In particular, we can implement the following algorithm to scan over a linear range of $\beta$ values. +While the Taylor series approach is useful, we can only push that so far, since we are always expanding around $β = 0$. +However, inspired by the trick we used to improve the results, we can use MPO multiplication techniques to compute partition functions at larger $β$. +In particular, we can implement the following algorithm to scan over a linear range of $β$ values. ```math \begin{align} -Z(2\beta) &= Z(\beta) \cdot Z(\beta) \\ -Z(3\beta) &= Z(\beta) \cdot Z(\beta) \cdot Z(\beta) = Z(\beta) \cdot Z(2\beta) \\ -\vdots &= \vdots +Z(2β) &= Z(β) · Z(β) \\ +Z(3β) &= Z(β) · Z(β) · Z(β) = Z(β) · Z(2β) \\ +⋮ &= ⋮ \end{align} ``` @@ -436,10 +414,10 @@ end ![](figure-4.png) -This approach clearly improves the accuracy of the results, indicating that we can indeed compute partition functions at larger $\beta$ values. -However, the computational cost of this approach (at fixed maximal bond dimension) is now linear in $\beta$, since we need to compute the partition function at each $\beta$ value. -Often, this is fine, since we are typically interested in a range of $\beta$ values, rather than a single one. -However, to really push this to larger $\beta$ values, this can still turn out to be a bottleneck. +This approach clearly improves the accuracy of the results, indicating that we can indeed compute partition functions at larger $β$ values. +However, the computational cost of this approach (at fixed maximal bond dimension) is now linear in $β$, since we need to compute the partition function at each $β$ value. +Often, this is fine, since we are typically interested in a range of $β$ values, rather than a single one. +However, to really push this to larger $β$ values, this can still turn out to be a bottleneck. We also have to be careful with the accuracy of our results. In particular, the error in the partition function will accumulate over the iterations, which might turn the results into garbage. @@ -447,23 +425,23 @@ Typically, the entanglement entropy of the density matrix is a good measure of t Apart from the bond dimension, we have two other parameters to tune: the accuracy of the initial density matrix, and the size of the step. The accuracy of the initial density matrix can be improved by increasing the order of the Taylor expansion, but this will result in a larger MPO bond dimension. -On the other hand, if we improve the accuracy of the initial density matrix, we could also increase the step size, which would reduce the number of iterations required to reach a certain $\beta$ value. +On the other hand, if we improve the accuracy of the initial density matrix, we could also increase the step size, which would reduce the number of iterations required to reach a certain $β$ value. Keeping these parameters in balance is necessary to obtain accurate results, and this might require some trial and error. ### MPO multiplication approach (exponential) -If we wish to push the results to even larger $\beta$ values, we can note that taking linear steps in $\beta$ is not the only option. -To that end, we can use another trick to scan over an exponential range of $\beta$ values: [exponentiating by squaring](https://en.wikipedia.org/wiki/Exponentiation_by_squaring). -In particular, we note that computing $x^n$ for integer (large) $n$ can typically be done more efficiently than computing $x \cdot x \cdot \dots \cdot x$. +If we wish to push the results to even larger $β$ values, we can note that taking linear steps in $β$ is not the only option. +To that end, we can use another trick to scan over an exponential range of $β$ values: [exponentiating by squaring](https://en.wikipedia.org/wiki/Exponentiation_by_squaring). +In particular, we note that computing $x^n$ for integer (large) $n$ can typically be done more efficiently than computing $x · x · … · x$. To do so, we note that multiplication is associative, and regroup the factors in such a way that we can compute the result in a logarithmic number of steps. Here, we assume $n = 2^m$ for some integer $m$, and note that this could be generalized to any $n$ by decomposing $n$ into a sum of powers of $2$. Then, we can write ```math -x^n = x^{2^m} = x^{2^{m-1}} \cdot x^{2^{m-1}} = (x^{2^{m-2}} \cdot x^{2^{m-2}}) \cdot (x^{2^{m-2}} \cdot x^{2^{m-2}}) = \dots +x^n = x^{2^m} = x^{2^{m-1}} · x^{2^{m-1}} = (x^{2^{m-2}} · x^{2^{m-2}}) · (x^{2^{m-2}} · x^{2^{m-2}}) = … ``` -In other words, we can scan a range of exponentially increasing $\beta$ values by squaring the density matrix at each step. +In other words, we can scan a range of exponentially increasing $β$ values by squaring the density matrix at each step. ````julia βs_exp = 2.0 .^ (-3:3) @@ -516,7 +494,7 @@ end ![](figure-5.png) -Clearly, the exponential approach allows us to reach larger $\beta$ values much quicker, but there is again a trade-off. +Clearly, the exponential approach allows us to reach larger $β$ values much quicker, but there is again a trade-off. Since the size of the steps are increasing, we need to be more careful with the accuracy of our approximations. !!! warning @@ -528,14 +506,14 @@ Since the size of the steps are increasing, we need to be more careful with the Finally, we can also note that the partition function is characterized by the following differential equation: ```math -\frac{dZ}{d\beta} = -H \cdot Z -\implies Z(\beta) = e^{-\beta H} \cdot Z(0) +\frac{dZ}{dβ} = -H · Z +⟹ Z(β) = e^{-β H} · Z(0) ``` -In other words, we can compute the partition function at $\beta$ by evolving the partition function at $0$ for a time $d\tau = -i \beta$. +In other words, we can compute the partition function at $β$ by evolving the partition function at $0$ for a time $dτ = -i β$. The starting point for this approach could be either achieved through one of the techniques we have already discussed, but we can also start from the infinite temperature state directly. -In particular, this state is given by the identity MPO, and we can evolve this state to compute the partition function at any $\beta$ value. +In particular, this state is given by the identity MPO, and we can evolve this state to compute the partition function at any $β$ value. ````julia Z_tdvp = zeros(length(βs)) @@ -587,7 +565,7 @@ end ![](figure-6.png) !!! note - We could further improve the accuracy of the TDVP approach by evolving with $(H \otimes \mathbb{1} + \mathbb{1} \otimes H^\dagger)$, rather than $H \otimes \mathbb{1}$ which is the current implementation. + We could further improve the accuracy of the TDVP approach by evolving with $(H ⊗ \mathbb{1} + \mathbb{1} ⊗ H^†)$, rather than $H ⊗ \mathbb{1}$ which is the current implementation. This is known to improve the stability of the positive semidefinite property of the density matrix, and could lead to more accurate results. --- diff --git a/docs/src/examples/dynamics/xy-finiteT/main.ipynb b/docs/src/examples/dynamics/xy-finiteT/main.ipynb index 1af3f9bf8..306e6edd8 100644 --- a/docs/src/examples/dynamics/xy-finiteT/main.ipynb +++ b/docs/src/examples/dynamics/xy-finiteT/main.ipynb @@ -30,7 +30,7 @@ "Here, we use [BenchmarkFreeFermions.jl](https://github.com/Qiaoyi-Li/BenchmarkFreeFermions.jl/) to compare our results.\n", "\n", "$$\n", - " H = J \\sum_{i=1}^{N} \\left( \\sigma^x_i \\sigma^x_{i+1} + \\sigma^y_i \\sigma^y_{i+1} \\right)\n", + " H = J \\sum_{i=1}^{N} \\left( σ^x_i σ^x_{i+1} + σ^y_i σ^y_{i+1} \\right)\n", "$$\n", "\n", "Here we will consider the anti-ferromagnetic ($J > 0$) chain, and restrict ourselves to $J = 1/2$." @@ -73,11 +73,10 @@ "source": [ "## Diagonalization of the Hamiltonian\n", "\n", - "The Hamiltonian can be diagonalized through a Bogoliubov transformation, leading to the following expression for the ground state energy\n", - "The Hamiltonian can be diagonalized in terms of fermionic creation and annihilation operators, leading to the following expression in terms of [an incomplete elliptic integral of the second kind](https://en.wikipedia.org/wiki/Elliptic_integral).\n", + "The Hamiltonian can be diagonalized in terms of fermionic creation and annihilation operators, which yields an expression for the ground state energy in terms of [an incomplete elliptic integral of the second kind](https://en.wikipedia.org/wiki/Elliptic_integral).\n", "\n", "$$\n", - " E_0 = -\\frac{1}{\\pi} \\text{EllipticE}\\left( \\sqrt{1 - \\gamma^2} \\right)\n", + " E_0 = -\\frac{1}{π} \\text{EllipticE}\\left( \\sqrt{1 - γ^2} \\right)\n", "$$\n", "\n", "The derivation, via a Jordan-Wigner transformation to free fermions followed by a Bogoliubov rotation, can be found in [Lieb, Schultz & Mattis, Ann. Phys. 16, 407 (1961)](https://doi.org/10.1016/0003-4916(61)90115-4)." @@ -162,39 +161,39 @@ "This is given by\n", "\n", "$$\n", - " Z(\\beta) = \\text{Tr} \\left( e^{-\\beta H} \\right)\n", + " Z(β) = \\text{Tr} \\left( e^{-β H} \\right)\n", "$$\n", "\n", - "where $\\beta = 1 / T$ is the inverse temperature.\n", + "where $β = 1 / T$ is the inverse temperature.\n", "\n", "Given the partition function, we can compute the free energy as\n", "$$\n", - " F(\\beta) = -\\frac{1}{\\beta} \\log Z(\\beta)\n", + " F(β) = -\\frac{1}{β} \\log Z(β)\n", "$$\n", "\n", "We can also compute observables using\n", "$$\n", - " \\langle O \\rangle = \\frac{1}{Z} \\text{Tr} \\left( O e^{-\\beta H} \\right)\n", + " ⟨O⟩ = \\frac{1}{Z} \\text{Tr} \\left( O e^{-β H} \\right)\n", "$$\n", "\n", "In particular, we can compute the energy as\n", "$$\n", - " U = \\langle H \\rangle = \\frac{1}{Z} \\text{Tr} \\left( H e^{-\\beta H} \\right)\n", + " U = ⟨H⟩ = \\frac{1}{Z} \\text{Tr} \\left( H e^{-β H} \\right)\n", "$$\n", "\n", "Finally, the specific heat can be computed as\n", "$$\n", - " \\chi = \\frac{\\partial U}{\\partial T} = -\\beta^2 \\frac{\\partial U}{\\partial \\beta}\n", + " χ = \\frac{∂ U}{∂ T} = -β^2 \\frac{∂ U}{∂ β}\n", "$$\n", "\n", "Luckily, the partition function can be computed analytically for the XY model.\n", "The resulting expression is\n", "\n", "$$\n", - " Z(\\beta) = \\prod_{k=1}^{N} \\left( 1 + e^{-\\beta \\epsilon_k} \\right)^{1/N}\n", + " Z(β) = \\prod_{k=1}^{N} \\left( 1 + e^{-β ε_k} \\right)^{1/N}\n", "$$\n", "\n", - "This expression follows from the same free-fermion diagonalization as the ground-state energy above: each single-particle mode $\\epsilon_k$ is independently occupied or empty, giving the usual free-fermion partition function (see again [Lieb, Schultz & Mattis (1961)](https://doi.org/10.1016/0003-4916(61)90115-4))." + "This expression follows from the same free-fermion diagonalization as the ground-state energy above: each single-particle mode $ε_k$ is independently occupied or empty, giving the usual free-fermion partition function (see again [Lieb, Schultz & Mattis (1961)](https://doi.org/10.1016/0003-4916(61)90115-4))." ] }, { @@ -227,10 +226,10 @@ "### MPO approach\n", "\n", "We can numerically compute the partition function by explicitly computing the trace of the time-evolution operator.\n", - "To that end, we first need to build the time-evolution operator $e^{-\\beta H}$, and then compute its trace.\n", + "To that end, we first need to build the time-evolution operator $e^{-β H}$, and then compute its trace.\n", "\n", "In order to build the time-evolution operator, we can repurpose the `make_time_mpo` function, which constructs the time-evolution operator for the ground state.\n", - "However, since we are interested in $e^{-\\beta H}$, instead of $e^{-iH dt}$, we work with $dt = -i \\beta$.\n", + "However, since we are interested in $e^{-β H}$, instead of $e^{-iH dt}$, we work with $dt = -i β$.\n", "In particular, we can approximate the exponential using a Taylor series through the `TaylorCluster` algorithm." ] }, @@ -280,8 +279,8 @@ "source": [ "Some observations:\n", "- The first order approximation fails to capture the behavior of the partition function.\n", - "- The higher order approximations are in good agreement with the analytical result, as long as $\\beta$ is not too large.\n", - "- The computational cost of the approximations does not depend on $\\beta$, but on the order of the approximation." + "- The higher order approximations are in good agreement with the analytical result, as long as $β$ is not too large.\n", + "- The computational cost of the approximations does not depend on $β$, but on the order of the approximation." ] }, { @@ -289,7 +288,7 @@ "metadata": {}, "source": [ "To address the first point, we can have a look at the particular form of the time-evolution operator.\n", - "Here we see that for this particular Hamiltonian, all the terms with factors $d\\tau$ are either zero or have trace zero.\n", + "Here we see that for this particular Hamiltonian, all the terms with factors $dτ$ are either zero or have trace zero.\n", "As a result, the trace of the time-evolution operator is equal to the trace of the identity, hence the result is always $2$.\n", "\n", "$$\n", @@ -300,9 +299,9 @@ " 0 & 0 & 1\n", "\\end{pmatrix} \\\\\n", "\n", - "e^{\\tau H} &= \\begin{pmatrix}\n", - " 1 + \\tau D + \\frac{\\tau^2}{2} D^2 & C + \\frac{\\tau}{2} (CD + DC) \\\\\n", - " \\tau (B + \\frac{\\tau}{2} (BD + DB)) & A + \\frac{\\tau^2}{2} (AD + DA + CB + BC)\n", + "e^{τ H} &= \\begin{pmatrix}\n", + " 1 + τ D + \\frac{τ^2}{2} D^2 & C + \\frac{τ}{2} (CD + DC) \\\\\n", + " τ (B + \\frac{τ}{2} (BD + DB)) & A + \\frac{τ^2}{2} (AD + DA + CB + BC)\n", "\\end{pmatrix}\n", "\\end{align}\n", "$$\n", @@ -344,20 +343,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can now clearly see that, somewhat unsurprisingly, the error increases the larger $\\beta$ becomes.\n", - "Given that we are computing Taylor expansions around $\\beta = 0$, this is to be expected.\n", + "We can now clearly see that, somewhat unsurprisingly, the error increases the larger $β$ becomes.\n", + "Given that we are computing Taylor expansions around $β = 0$, this is to be expected.\n", "\n", "However, there is a trick we can use to improve our results slightly.\n", "To that end, we first rewrite the partition function as\n", "$$\n", - "Z(\\beta) =\n", - " \\text{Tr} \\left( e^{-\\beta H} \\right) =\n", - " \\text{Tr} \\left( e^{-\\beta H / 2} e^{-\\beta H / 2} \\right) =\n", - " \\left\\langle e^{-\\beta H^\\dagger / 2}, e^{-\\beta H / 2} \\right\\rangle\n", + "Z(β) =\n", + " \\text{Tr} \\left( e^{-β H} \\right) =\n", + " \\text{Tr} \\left( e^{-β H / 2} e^{-β H / 2} \\right) =\n", + " \\left\\langle e^{-β H^† / 2}, e^{-β H / 2} \\right\\rangle\n", "$$\n", "\n", - "In other words, we can compute the partition function at $\\beta$ by computing the overlap of two states evolved for $\\beta / 2$, as long as the Hamiltonian is Hermitian.\n", - "Otherwise, we could still use the same trick, but we would have to compute the evolved states twice, once for $H$ and once for $H^\\dagger$." + "In other words, we can compute the partition function at $β$ by computing the overlap of two states evolved for $β / 2$, as long as the Hamiltonian is Hermitian.\n", + "Otherwise, we could still use the same trick, but we would have to compute the evolved states twice, once for $H$ and once for $H^†$." ] }, { @@ -405,15 +404,15 @@ "source": [ "### MPO multiplication approach (linear)\n", "\n", - "While the Taylor series approach is useful, we can only push that so far, since we are always expanding around $\\beta = 0$.\n", - "However, inspired by the trick we used to improve the results, we can use MPO multiplication techniques to compute partition functions at larger $\\beta$.\n", - "In particular, we can implement the following algorithm to scan over a linear range of $\\beta$ values.\n", + "While the Taylor series approach is useful, we can only push that so far, since we are always expanding around $β = 0$.\n", + "However, inspired by the trick we used to improve the results, we can use MPO multiplication techniques to compute partition functions at larger $β$.\n", + "In particular, we can implement the following algorithm to scan over a linear range of $β$ values.\n", "\n", "$$\n", "\\begin{align}\n", - "Z(2\\beta) &= Z(\\beta) \\cdot Z(\\beta) \\\\\n", - "Z(3\\beta) &= Z(\\beta) \\cdot Z(\\beta) \\cdot Z(\\beta) = Z(\\beta) \\cdot Z(2\\beta) \\\\\n", - "\\vdots &= \\vdots\n", + "Z(2β) &= Z(β) · Z(β) \\\\\n", + "Z(3β) &= Z(β) · Z(β) · Z(β) = Z(β) · Z(2β) \\\\\n", + "⋮ &= ⋮\n", "\\end{align}\n", "$$\n", "\n", @@ -489,10 +488,10 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This approach clearly improves the accuracy of the results, indicating that we can indeed compute partition functions at larger $\\beta$ values.\n", - "However, the computational cost of this approach (at fixed maximal bond dimension) is now linear in $\\beta$, since we need to compute the partition function at each $\\beta$ value.\n", - "Often, this is fine, since we are typically interested in a range of $\\beta$ values, rather than a single one.\n", - "However, to really push this to larger $\\beta$ values, this can still turn out to be a bottleneck.\n", + "This approach clearly improves the accuracy of the results, indicating that we can indeed compute partition functions at larger $β$ values.\n", + "However, the computational cost of this approach (at fixed maximal bond dimension) is now linear in $β$, since we need to compute the partition function at each $β$ value.\n", + "Often, this is fine, since we are typically interested in a range of $β$ values, rather than a single one.\n", + "However, to really push this to larger $β$ values, this can still turn out to be a bottleneck.\n", "\n", "We also have to be careful with the accuracy of our results.\n", "In particular, the error in the partition function will accumulate over the iterations, which might turn the results into garbage.\n", @@ -500,7 +499,7 @@ "\n", "Apart from the bond dimension, we have two other parameters to tune: the accuracy of the initial density matrix, and the size of the step.\n", "The accuracy of the initial density matrix can be improved by increasing the order of the Taylor expansion, but this will result in a larger MPO bond dimension.\n", - "On the other hand, if we improve the accuracy of the initial density matrix, we could also increase the step size, which would reduce the number of iterations required to reach a certain $\\beta$ value.\n", + "On the other hand, if we improve the accuracy of the initial density matrix, we could also increase the step size, which would reduce the number of iterations required to reach a certain $β$ value.\n", "Keeping these parameters in balance is necessary to obtain accurate results, and this might require some trial and error." ] }, @@ -510,18 +509,18 @@ "source": [ "### MPO multiplication approach (exponential)\n", "\n", - "If we wish to push the results to even larger $\\beta$ values, we can note that taking linear steps in $\\beta$ is not the only option.\n", - "To that end, we can use another trick to scan over an exponential range of $\\beta$ values: [exponentiating by squaring](https://en.wikipedia.org/wiki/Exponentiation_by_squaring).\n", - "In particular, we note that computing $x^n$ for integer (large) $n$ can typically be done more efficiently than computing $x \\cdot x \\cdot \\dots \\cdot x$.\n", + "If we wish to push the results to even larger $β$ values, we can note that taking linear steps in $β$ is not the only option.\n", + "To that end, we can use another trick to scan over an exponential range of $β$ values: [exponentiating by squaring](https://en.wikipedia.org/wiki/Exponentiation_by_squaring).\n", + "In particular, we note that computing $x^n$ for integer (large) $n$ can typically be done more efficiently than computing $x · x · … · x$.\n", "To do so, we note that multiplication is associative, and regroup the factors in such a way that we can compute the result in a logarithmic number of steps.\n", "Here, we assume $n = 2^m$ for some integer $m$, and note that this could be generalized to any $n$ by decomposing $n$ into a sum of powers of $2$.\n", "Then, we can write\n", "\n", "$$\n", - "x^n = x^{2^m} = x^{2^{m-1}} \\cdot x^{2^{m-1}} = (x^{2^{m-2}} \\cdot x^{2^{m-2}}) \\cdot (x^{2^{m-2}} \\cdot x^{2^{m-2}}) = \\dots\n", + "x^n = x^{2^m} = x^{2^{m-1}} · x^{2^{m-1}} = (x^{2^{m-2}} · x^{2^{m-2}}) · (x^{2^{m-2}} · x^{2^{m-2}}) = …\n", "$$\n", "\n", - "In other words, we can scan a range of exponentially increasing $\\beta$ values by squaring the density matrix at each step." + "In other words, we can scan a range of exponentially increasing $β$ values by squaring the density matrix at each step." ] }, { @@ -582,7 +581,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Clearly, the exponential approach allows us to reach larger $\\beta$ values much quicker, but there is again a trade-off.\n", + "Clearly, the exponential approach allows us to reach larger $β$ values much quicker, but there is again a trade-off.\n", "Since the size of the steps are increasing, we need to be more careful with the accuracy of our approximations.\n", "\n", "> **Warning**\n", @@ -600,14 +599,14 @@ "Finally, we can also note that the partition function is characterized by the following differential equation:\n", "\n", "$$\n", - "\\frac{dZ}{d\\beta} = -H \\cdot Z\n", - "\\implies Z(\\beta) = e^{-\\beta H} \\cdot Z(0)\n", + "\\frac{dZ}{dβ} = -H · Z\n", + "⟹ Z(β) = e^{-β H} · Z(0)\n", "$$\n", "\n", - "In other words, we can compute the partition function at $\\beta$ by evolving the partition function at $0$ for a time $d\\tau = -i \\beta$.\n", + "In other words, we can compute the partition function at $β$ by evolving the partition function at $0$ for a time $dτ = -i β$.\n", "\n", "The starting point for this approach could be either achieved through one of the techniques we have already discussed, but we can also start from the infinite temperature state directly.\n", - "In particular, this state is given by the identity MPO, and we can evolve this state to compute the partition function at any $\\beta$ value." + "In particular, this state is given by the identity MPO, and we can evolve this state to compute the partition function at any $β$ value." ] }, { @@ -668,7 +667,7 @@ "source": [ "> **Note**\n", ">\n", - "> We could further improve the accuracy of the TDVP approach by evolving with $(H \\otimes \\mathbb{1} + \\mathbb{1} \\otimes H^\\dagger)$, rather than $H \\otimes \\mathbb{1}$ which is the current implementation.\n", + "> We could further improve the accuracy of the TDVP approach by evolving with $(H ⊗ \\mathbb{1} + \\mathbb{1} ⊗ H^†)$, rather than $H ⊗ \\mathbb{1}$ which is the current implementation.\n", "> This is known to improve the stability of the positive semidefinite property of the density matrix, and could lead to more accurate results." ] }, diff --git a/docs/src/examples/excitations/haldane/index.md b/docs/src/examples/excitations/haldane/index.md index f26c31407..af8cd0401 100644 --- a/docs/src/examples/excitations/haldane/index.md +++ b/docs/src/examples/excitations/haldane/index.md @@ -15,13 +15,6 @@ To follow the tutorial you need the following packages: using MPSKit, MPSKitModels, TensorKit, Plots, Polynomials ```` -```` -Precompiling packages... - 1343.7 ms ✓ Polynomials → PolynomialsRecipesBaseExt - 1 dependency successfully precompiled in 2 seconds. 18 already precompiled. - -```` - The Heisenberg model is defined by the following Hamiltonian: ```math diff --git a/docs/src/examples/groundstates/bose-hubbard/index.md b/docs/src/examples/groundstates/bose-hubbard/index.md index b751dd089..9570db4e5 100644 --- a/docs/src/examples/groundstates/bose-hubbard/index.md +++ b/docs/src/examples/groundstates/bose-hubbard/index.md @@ -18,82 +18,65 @@ default(fontfamily = "Computer Modern", label = nothing, dpi = 100, framestyle = # 1D Bose-Hubbard model -In this tutorial, we will explore the physics of the one-dimensional Bose–Hubbard model -using matrix product states. For the most part, we replicate the results presented in -[**Phys. Rev. B 105, -134502**](https://journals.aps.org/prb/abstract/10.1103/PhysRevB.105.134502), which can be -consulted for any statements in this tutorial that are not otherwise cited. The Hamiltonian -under study is defined as follows: +In this tutorial, we will explore the physics of the one-dimensional Bose–Hubbard model using matrix product states. +For the most part, we replicate the results presented in [**Phys. Rev. B 105, 134502**](https://journals.aps.org/prb/abstract/10.1103/PhysRevB.105.134502), which can be consulted for any statements in this tutorial that are not otherwise cited. +The Hamiltonian under study is defined as follows: -$$H = -t \sum_{i} (\hat{a}_i^{\dagger} \hat{a}_{i+1} + \hat{a}_{i+1}^{\dagger} \hat{a}_i) + \frac{U}{2} \sum_i \hat{n}_i(\hat{n}_i - 1) - \mu \sum_i \hat{n}_i$$ +$$H = -t \sum_{i} (â_i^{†} â_{i+1} + â_{i+1}^{†} â_i) + \frac{U}{2} \sum_i \hat{n}_i(\hat{n}_i - 1) - μ \sum_i \hat{n}_i$$ -where the bosonic creation and annihilation operators satisfy the canonical commutation -relations (CCR): +where the bosonic creation and annihilation operators satisfy the canonical commutation relations (CCR): -$$[\hat{a}_i, \hat{a}_j^{\dagger}] = \delta_{ij}.$$ +$$[â_i, â_j^{†}] = δ_{ij}.$$ -Each lattice site hosts a local Hilbert space corresponding to bosonic occupation states -$|n\rangle$, where $(n = 0, 1, 2, \ldots)$. Since this space is formally -infinite-dimensional, numerical simulations typically impose a truncation at some maximum -occupation number $(n_{\text{max}})$. Such a treatment is justified since it can be observed -that the simulation results quickly converge with the cutoff if the filling fraction is kept -sufficiently low. +Each lattice site hosts a local Hilbert space corresponding to bosonic occupation states $|n⟩$, where $(n = 0, 1, 2, …)$. +Since this space is formally infinite-dimensional, numerical simulations typically impose a truncation at some maximum occupation number $(n_{\text{max}})$. +Such a treatment is justified since it can be observed that the simulation results quickly converge with the cutoff if the filling fraction is kept sufficiently low. -Within this truncated space, the local creation and annihilation operators are represented -by finite-dimensional matrices. For example, with cutoff $n_{\text{max}}$, the annihilation -operator takes the form +Within this truncated space, the local creation and annihilation operators are represented by finite-dimensional matrices. +For example, with cutoff $n_{\text{max}}$, the annihilation operator takes the form ```math -\hat{a} = +â = \begin{bmatrix} -0 & \sqrt{1} & 0 & 0 & \cdots & 0 \\ -0 & 0 & \sqrt{2} & 0 & \cdots & 0 \\ -0 & 0 & 0 & \sqrt{3} & \cdots & 0 \\ -\vdots & & & \ddots & \ddots & \vdots \\ -0 & 0 & 0 & \cdots & 0 & \sqrt{n_{\text{max}}} \\ -0 & 0 & 0 & \cdots & 0 & 0 +0 & \sqrt{1} & 0 & 0 & ⋯ & 0 \\ +0 & 0 & \sqrt{2} & 0 & ⋯ & 0 \\ +0 & 0 & 0 & \sqrt{3} & ⋯ & 0 \\ +⋮ & & & ⋱ & ⋱ & ⋮ \\ +0 & 0 & 0 & ⋯ & 0 & \sqrt{n_{\text{max}}} \\ +0 & 0 & 0 & ⋯ & 0 & 0 \end{bmatrix} ``` and the creation operator is simply its Hermitian conjugate, ```math -\hat{a}^\dagger = +â^† = \begin{bmatrix} -0 & 0 & 0 & \cdots & 0 & 0 \\ -\sqrt{1} & 0 & 0 & \cdots & 0 & 0 \\ -0 & \sqrt{2} & 0 & \cdots & 0 & 0 \\ -\vdots & & \ddots & \ddots & & \vdots \\ -0 & 0 & 0 & \cdots & 0 & 0 \\ -0 & 0 & 0 & \cdots & \sqrt{n_{\text{max}}} & 0 +0 & 0 & 0 & ⋯ & 0 & 0 \\ +\sqrt{1} & 0 & 0 & ⋯ & 0 & 0 \\ +0 & \sqrt{2} & 0 & ⋯ & 0 & 0 \\ +⋮ & & ⋱ & ⋱ & & ⋮ \\ +0 & 0 & 0 & ⋯ & 0 & 0 \\ +0 & 0 & 0 & ⋯ & \sqrt{n_{\text{max}}} & 0 \end{bmatrix} ``` The number operator is then given by -$$\hat{n} = \hat{a}^\dagger \hat{a} = \mathrm{diag}(0, 1, 2, \ldots, n_{\text{max}}).$$ +$$\hat{n} = â^† â = \mathrm{diag}(0, 1, 2, …, n_{\text{max}}).$$ Before moving on, notice that the Hamiltonian is uniform and translationally invariant. -Typically, such models are studied on a finite chain of $N$ sites with periodic boundary -conditions, but this introduces finite-size effects that are rather annoying to deal with. -In contrast, the MPS framework allows us to work directly in the thermodynamic limit, -avoiding such artifacts. We will follow this line of exploration in this tutorial and leave -finite systems for another example. - -In order to work in the thermodynamic limit, we will have to create an -[`InfiniteMPS`](@ref). A complete specification of the MPS requires us to define the -physical space and the virtual space of the constituent tensors. At this point is it useful -to note that `MPSKit.jl` is powered by -[`TensorKit.jl`](https://github.com/QuantumKitHub/TensorKit.jl) under the hood and has some -very generic interfaces in order to allow imposing symmetries of all kinds. As a result, it -is sometimes necessary to be a bit more explicit about what we want to do in terms of the -vector spaces involved. In this case, we will not consider any symmetries and simply take -the most naive approach of working within the [`Trivial`](@extref TensorKitSectors.Trivial) -sector. The physical space is then `ℂ^(nmax+1)`, and the virtual space is `ℂ^D` where $D$ is -some integer chosen to be the bond dimension of the MPS, and `ℂ` is an alias for -[`ComplexSpace`](@extref TensorKit.ComplexSpace) (typeset as `\bbC`). As $D$ is increased, -one increases the amount of entanglement, i.e, quantum correlations that can be captured by -the state. +Typically, such models are studied on a finite chain of $N$ sites with periodic boundary conditions, but this introduces finite-size effects that are rather annoying to deal with. +In contrast, the MPS framework allows us to work directly in the thermodynamic limit, avoiding such artifacts. +We will follow this line of exploration in this tutorial and leave finite systems for another example. + +In order to work in the thermodynamic limit, we will have to create an [`InfiniteMPS`](@ref). +A complete specification of the MPS requires us to define the physical space and the virtual space of the constituent tensors. +At this point is it useful to note that `MPSKit.jl` is powered by [`TensorKit.jl`](https://github.com/QuantumKitHub/TensorKit.jl) under the hood and has some very generic interfaces in order to allow imposing symmetries of all kinds. +As a result, it is sometimes necessary to be a bit more explicit about what we want to do in terms of the vector spaces involved. +In this case, we will not consider any symmetries and simply take the most naive approach of working within the [`Trivial`](@extref TensorKitSectors.Trivial) sector. +The physical space is then `ℂ^(nmax+1)`, and the virtual space is `ℂ^D` where $D$ is some integer chosen to be the bond dimension of the MPS, and `ℂ` is an alias for [`ComplexSpace`](@extref TensorKit.ComplexSpace) (typeset as `\bbC`). +As $D$ is increased, one increases the amount of entanglement, i.e, quantum correlations that can be captured by the state. ````julia cutoff, D = 4, 5 @@ -110,12 +93,10 @@ initial_state = InfiniteMPS(ℂ^(cutoff + 1), ℂ^D) ```` -This simply initializes a tensor filled with random entries (check out the documentation for -other useful constructors). Next, we need the creation and annihilation operators. While we -could construct them from scratch, here we will use -[`MPSKitModels.jl`](https://github.com/QuantumKitHub/MPSKitModels.jl) instead that has -predefined operators and models for most well-known lattice models. In particular, we can -use [`MPSKitModels.a_min`](@extref) to create the bosonic annihilation operator. +This simply initializes a tensor filled with random entries (check out the documentation for other useful constructors). +Next, we need the creation and annihilation operators. +While we could construct them from scratch, here we will use [`MPSKitModels.jl`](https://github.com/QuantumKitHub/MPSKitModels.jl) instead that has predefined operators and models for most well-known lattice models. +In particular, we can use [`MPSKitModels.a_min`](@extref) to create the bosonic annihilation operator. ````julia a_op = a_min(cutoff = cutoff) # creates a bosonic annihilation operator without any symmetries @@ -123,10 +104,8 @@ display(a_op[]) display((a_op' * a_op)[]) ```` -The [] accessor lets us see the underlying array, and indeed the operators are exactly what -we require. Similarly, the Bose Hubbard model is also predefined in -[`MPSKitModels.bose_hubbard_model`](@extref) (although we will construct our own variant -later on). +The [] accessor lets us see the underlying array, and indeed the operators are exactly what we require. +Similarly, the Bose Hubbard model is also predefined in [`MPSKitModels.bose_hubbard_model`](@extref) (although we will construct our own variant later on). ````julia hamiltonian = bose_hubbard_model(InfiniteChain(1); cutoff = cutoff, U = 1, mu = 0.5, t = 0.2) # It is not strictly required to pass InfiniteChain() and is only included for clarity; one may instead pass FiniteChain(N) as well @@ -142,11 +121,9 @@ hamiltonian = bose_hubbard_model(InfiniteChain(1); cutoff = cutoff, U = 1, mu = ```` -This has created the Hamiltonian operator as a [matrix product operator](@ref -InfiniteMPOHamiltonian) (MPO) which is a convenient form to use in conjunction with MPS. -Finally, the ground state optimization may be performed with either [`iDMRG`](@ref IDMRG) or -[`VUMPS`](@ref). Both should take similar arguments but it is known that VUMPS is typically -more efficient for these systems so we proceed with that. +This has created the Hamiltonian operator as a [matrix product operator](@ref InfiniteMPOHamiltonian) (MPO) which is a convenient form to use in conjunction with MPS. +Finally, the ground state optimization may be performed with either [`iDMRG`](@ref IDMRG) or [`VUMPS`](@ref). +Both should take similar arguments but it is known that VUMPS is typically more efficient for these systems so we proceed with that. ````julia ground_state, _, _ = find_groundstate(initial_state, hamiltonian, VUMPS(tol = 1.0e-6, verbosity = 2, maxiter = 200)) @@ -160,9 +137,8 @@ Energy: -0.675698155160498 - 6.668144181512403e-17im ```` -This automatically runs the algorithm until a certain [error measure](@ref -MPSKit.calc_galerkin) falls below the specified tolerance or the maximum iterations is -reached. Let us wrap all this into a convenient function. +This automatically runs the algorithm until a certain [error measure](@ref MPSKit.calc_galerkin) falls below the specified tolerance or the maximum iterations is reached. +Let us wrap all this into a convenient function. ````julia function get_ground_state(mu, t, cutoff, D; kwargs...) @@ -186,11 +162,10 @@ ground_state = get_ground_state(0.5, 0.01, cutoff, D; tol = 1.0e-6, verbosity = ```` -Now that we have the state, we may compute observables using the [`expectation_value`](@ref) -function. It typically expects a `Pair`, `(i1, i2, .., ik) => op` where `op` is a -`TensorMap` or `InfiniteMPO` acting over `k` sites. In case of the Hamiltonian, it is not -necessary to specify the indices as it spans the whole lattice. We can now plot the -correlation function $\langle \hat{a}^{\dagger}_i \hat{a}_j\rangle$. +Now that we have the state, we may compute observables using the [`expectation_value`](@ref) function. +It typically expects a `Pair`, `(i1, i2, .., ik) => op` where `op` is a `TensorMap` or `InfiniteMPO` acting over `k` sites. +In case of the Hamiltonian, it is not necessary to specify the indices as it spans the whole lattice. +We can now plot the correlation function $⟨â^{†}_i â_j⟩$. ````julia plot(map(i -> real.(expectation_value(ground_state, (0, i) => a_op' ⊗ a_op)), 1:50), lw = 2, xlabel = "Site index", ylabel = "Correlation function", yscale = :log10) @@ -199,8 +174,8 @@ hline!([abs2(expectation_value(ground_state, (0,) => a_op))], ls = :dash, c = :b ![](figure-1.png) -We see that the correlations drop off exponentially, indicating the existence of a gapped -Mott insulating phase. Let us now shift our parameters to probe other phases. +We see that the correlations drop off exponentially, indicating the existence of a gapped Mott insulating phase. +Let us now shift our parameters to probe other phases. ````julia ground_state = get_ground_state(0.5, 0.2, cutoff, D; tol = 1.0e-6, verbosity = 2, maxiter = 500) @@ -211,20 +186,13 @@ hline!([abs2(expectation_value(ground_state, (0,) => a_op))], ls = :dash, c = :b ![](figure-2.png) -In this case, the correlation function drops off algebraically and eventually saturates as -$\lim_{i \to \infty}\langle\hat{a}_i^{\dagger} \hat{a}_j\rangle ≈ \langle \hat{a}_i^{\dagger}\rangle \langle \hat{a}_j \rangle = |\langle a_i \rangle|^2 \neq 0$. -This is a signature of long-range order and suggests the existence of a Bose-Einstein -condensate. However, this is a bit odd since at zero temperature, the Bose Hubbard model is -not expected to break any continuous symmetries ($U(1)$ in this case, corresponding to -particle number conservation) due to the -[Mermin-Wagner theorem](https://en.wikipedia.org/wiki/Mermin%E2%80%93Wagner_theorem). The -source of this contradiction lies in the fact that the true 1D superfluid ground state is an -extended critical phase exhibiting algebraic decay, however, a finite bond-dimension MPS can -only capture exponentially decaying correlations. As a result, the finite bond dimension -effectively introduces a length scale into the system in a similar manner as finite-size -effects. We can see this clearly by increasing the bond dimension. We also see that the -correlation length seems to depend algebraically on the bond dimension as expected from -finite-entanglement scaling arguments. +In this case, the correlation function drops off algebraically and eventually saturates as $\lim_{i → ∞}⟨â_i^{†} â_j⟩ ≈ ⟨â_i^{†}⟩ ⟨â_j⟩ = |⟨a_i⟩|^2 ≠ 0$. +This is a signature of long-range order and suggests the existence of a Bose-Einstein condensate. +However, this is a bit odd since at zero temperature, the Bose Hubbard model is not expected to break any continuous symmetries ($U(1)$ in this case, corresponding to particle number conservation) due to the [Mermin-Wagner theorem](https://en.wikipedia.org/wiki/Mermin%E2%80%93Wagner_theorem). +The source of this contradiction lies in the fact that the true 1D superfluid ground state is an extended critical phase exhibiting algebraic decay, however, a finite bond-dimension MPS can only capture exponentially decaying correlations. +As a result, the finite bond dimension effectively introduces a length scale into the system in a similar manner as finite-size effects. +We can see this clearly by increasing the bond dimension. +We also see that the correlation length seems to depend algebraically on the bond dimension as expected from finite-entanglement scaling arguments. ````julia cutoff = 4 @@ -273,11 +241,8 @@ scatter!( ![](figure-3.png) -This shows that any finite bond dimension MPS necessarily breaks the symmetry of the system, -forming a Bose-Einstein condensate which introduces erroneous long-distance behaviour of -correlation functions. In case of finite bond dimension, it is thus reasonable to associate -the finite expectation value of the field operator to the 'quasicondensate' density of the -system which vanishes as $D \to \infty$. +This shows that any finite bond dimension MPS necessarily breaks the symmetry of the system, forming a Bose-Einstein condensate which introduces erroneous long-distance behaviour of correlation functions. +In case of finite bond dimension, it is thus reasonable to associate the finite expectation value of the field operator to the 'quasicondensate' density of the system which vanishes as $D → ∞$. ````julia quasicondensate_density = map(state -> abs2(expectation_value(state, (0,) => a_op)), states) @@ -294,40 +259,35 @@ quasicondensate_density = map(state -> abs2(expectation_value(state, (0,) => a_o 0.22799752254820496 ```` -We may now also visualize the momentum distribution function, which is obtained as the -Fourier transform of the single-particle density matrix. Starting from the definition of the -momentum occupation operators: +We may now also visualize the momentum distribution function, which is obtained as the Fourier transform of the single-particle density matrix. +Starting from the definition of the momentum occupation operators: ```math -\hat{a}_k = \frac{1}{\sqrt{L}} \sum_j e^{-ikj} \hat{a}_j, \qquad -\hat{a}_k^\dagger = \frac{1}{\sqrt{L}} \sum_{j'} e^{ikj'} \hat{a}_{j'}^\dagger +â_k = \frac{1}{\sqrt{L}} \sum_j e^{-ikj} â_j, \qquad +â_k^† = \frac{1}{\sqrt{L}} \sum_{j'} e^{ikj'} â_{j'}^† ``` the momentum distribution is ```math -\langle \hat{n}_k \rangle = \langle \hat{a}_k^\dagger \hat{a}_k \rangle -= \frac{1}{L} \sum_{j',j} e^{ik(j'-j)} \langle \hat{a}_{j'}^\dagger \hat{a}_j \rangle. +⟨\hat{n}_k⟩ = ⟨â_k^† â_k⟩ += \frac{1}{L} \sum_{j',j} e^{ik(j'-j)} ⟨â_{j'}^† â_j⟩. ``` -For a translationally invariant system, the correlation depends only on the distance -$r = j' - j$: +For a translationally invariant system, the correlation depends only on the distance $r = j' - j$: -$$\langle \hat{a}_{j'}^\dagger \hat{a}_j \rangle = C(r) = \langle \hat{a}_r^\dagger \hat{a}_0 \rangle.$$ +$$⟨â_{j'}^† â_j⟩ = C(r) = ⟨â_r^† â_0⟩.$$ Changing variables ($j' = j + r$) gives -$$\langle \hat{n}_k \rangle = \frac{1}{L} \sum_j \sum_r e^{ikr} C(r).$$ +$$⟨\hat{n}_k⟩ = \frac{1}{L} \sum_j \sum_r e^{ikr} C(r).$$ The sum over $j$ yields a factor of $L$, which cancels the prefactor, leading to -$$\langle \hat{n}_k \rangle = \sum_{r \in \mathbb{Z}} e^{ikr} \langle \hat{a}_r^\dagger \hat{a}_0 \rangle$$ +$$⟨\hat{n}_k⟩ = \sum_{r ∈ \mathbb{Z}} e^{ikr} ⟨â_r^† â_0⟩$$ -However, we know that a finite bond dimension MPS introduces a non-zero quasi-condensate -density which would give rise to an $\mathcal{O}(N)$ divergence in the momentum distribution -that is not indicative of the true physics of the system. Since we know this contribution -vanishes in the infinite bond dimension limit, we instead work with -$\langle \hat{a}_r^{\dagger} \hat{a}_0 \rangle_c = \langle \hat{a}_r^{\dagger} \hat{a}_0 \rangle - |\langle \hat{a}\rangle|^2$. +However, we know that a finite bond dimension MPS introduces a non-zero quasi-condensate density which would give rise to an $\mathcal{O}(N)$ divergence in the momentum distribution that is not indicative of the true physics of the system. +Since we know this contribution vanishes in the infinite bond dimension limit, we instead work with $⟨â_r^{†} â_0⟩_c = ⟨â_r^{†} â_0⟩ - |⟨â⟩|^2$. ````julia ks = range(-0.05, 0.15, 500) @@ -346,39 +306,23 @@ plot(ks, momentum_distribution, lab = "D = " .* string.(permutedims(Ds)), lw = 1 ![](figure-4.png) -We see that the density seems to peak around $k=0$, this time seemingly becoming more -prominent as $D \to \infty$ which seems to suggest again that there is a condensate. -However, going by the Penrose-Onsager criterion, the existence of a condensate can be -quantified by requiring the leading eigenvalue of the single particle density matrix (i.e, -$\langle \hat{n}_{k=0}\rangle = \sum_j \langle \hat{a}_j^{\dagger} \hat{a}_0\rangle$) to -diverge as $O(N)$ in the thermodynamic limit. In this case, since the correlations decay as -a power law, there is naturally a divergence at low momenta. But this does not imply the -existence of a condensate since the order of divergence is much weaker. However, this does -indicate the remnants of some kind of condensation in the 1D model despite the quantum -fluctuations, leading to the practical utility of defining the concept of a quasicondensate -where there is still a notion of phase coherence over short distances. - -What this means for us is that, as far as MPS simulations go, we may still utilize the -quasicondensate density as an effective order parameter, although it will be less robust as -the bond dimension is increased. Alternatively, we realize that the true phase is -characterized as being a superfluid (a concept distinct from Bose-Einstein condensation) and -can be identified by a non-zero value of the superfluid stiffness (also known as helicity -modulus, $\Upsilon$) as defined by Leggett. Upon applying a phase twist $\Phi$ to the -boundaries of the system, a superfluid phase would suffer an increase in energy whereas an -insulating phase would not. In the thermodynamic limit, one could show that the boundary -conditions may be considered as periodic and instead uniformly distribute the phase across -the chain as $\hat{a}_i \to \hat{a}_i e^{i\Phi/L}$. Concretely, in the limit of -$\Phi/L \to 0$, we have: - -$$\frac{E[\Phi] - E[0]}{L} \approx \frac{1}{2} \Upsilon(L) \bigg (\frac{\Phi}{L}\bigg)^2 + \cdots$$ - -In order to find the ground state under these twisted boundary conditions, we must construct -our own variant of the Bose-Hubbard Hamiltonian. Typically you would want to take a peek at -the -[source code](https://github.com/QuantumKitHub/MPSKitModels.jl/blob/f4c36d9660a9eab05fa253ffd5c20dc6b7df44cc/src/models/hamiltonians.jl#L379-L409) -of `MPSKitModels.jl` to see how these models are defined and tweak it as per your needs. -Here we see that applying twisted boundary conditions is equivalent to adding a prefactor of -$e^{\pm i\phi}$ in front of the hopping amplitudes. +We see that the density seems to peak around $k=0$, this time seemingly becoming more prominent as $D → ∞$ which seems to suggest again that there is a condensate. +However, going by the Penrose-Onsager criterion, the existence of a condensate can be quantified by requiring the leading eigenvalue of the single particle density matrix (i.e, $⟨\hat{n}_{k=0}⟩ = \sum_j ⟨â_j^{†} â_0⟩$) to diverge as $O(N)$ in the thermodynamic limit. +In this case, since the correlations decay as a power law, there is naturally a divergence at low momenta. +But this does not imply the existence of a condensate since the order of divergence is much weaker. +However, this does indicate the remnants of some kind of condensation in the 1D model despite the quantum fluctuations, leading to the practical utility of defining the concept of a quasicondensate where there is still a notion of phase coherence over short distances. + +What this means for us is that, as far as MPS simulations go, we may still utilize the quasicondensate density as an effective order parameter, although it will be less robust as the bond dimension is increased. +Alternatively, we realize that the true phase is characterized as being a superfluid (a concept distinct from Bose-Einstein condensation) and can be identified by a non-zero value of the superfluid stiffness (also known as helicity modulus, $Υ$) as defined by Leggett. +Upon applying a phase twist $Φ$ to the boundaries of the system, a superfluid phase would suffer an increase in energy whereas an insulating phase would not. +In the thermodynamic limit, one could show that the boundary conditions may be considered as periodic and instead uniformly distribute the phase across the chain as $â_i → â_i e^{iΦ/L}$. +Concretely, in the limit of $Φ/L → 0$, we have: + +$$\frac{E[Φ] - E[0]}{L} ≈ \frac{1}{2} Υ(L) \bigg (\frac{Φ}{L}\bigg)^2 + ⋯$$ + +In order to find the ground state under these twisted boundary conditions, we must construct our own variant of the Bose-Hubbard Hamiltonian. +Typically you would want to take a peek at the [source code](https://github.com/QuantumKitHub/MPSKitModels.jl/blob/f4c36d9660a9eab05fa253ffd5c20dc6b7df44cc/src/models/hamiltonians.jl#L379-L409) of `MPSKitModels.jl` to see how these models are defined and tweak it as per your needs. +Here we see that applying twisted boundary conditions is equivalent to adding a prefactor of $e^{± iφ}$ in front of the hopping amplitudes. ````julia function bose_hubbard_model_twisted_bc( @@ -428,14 +372,9 @@ superfluid_stiffness_profile(0.01, 0.3, 5, 4) # mott insulator ![](figure-5.png) -Now that we know what phases to expect, we can plot the phase diagram by scanning over a -range of parameters. In general, one could do better by performing a bisection algorithm for -each chemical potential to determine the value of the hopping parameter at the transition -point, however the 1D Bose-Hubbard model may have two transition points at the same chemical -potential which makes this a bit cumbersome to implement robustly. Furthermore, we stick to -using the quasi-condensate density as an order parameter since extracting the superfluid -density accurately requires a more robust scheme to compute second derivatives which takes -us away from the focus of this tutorial. +Now that we know what phases to expect, we can plot the phase diagram by scanning over a range of parameters. +In general, one could do better by performing a bisection algorithm for each chemical potential to determine the value of the hopping parameter at the transition point, however the 1D Bose-Hubbard model may have two transition points at the same chemical potential which makes this a bit cumbersome to implement robustly. +Furthermore, we stick to using the quasi-condensate density as an order parameter since extracting the superfluid density accurately requires a more robust scheme to compute second derivatives which takes us away from the focus of this tutorial. ````julia cutoff, D = 4, 10 @@ -457,11 +396,8 @@ heatmap(ts, mus, order_parameters, xlabel = L"t/U", ylabel = L"\mu/U", title = L ![](figure-6.png) -Although the bond dimension here is quite low, we already see the deformation of the Mott -insulator lobes to give way to the well known BKT transition that happens at commensurate -density. One can go further and estimate the critical exponents using finite-entanglement -scaling procedures on the correlation functions, but these may now be performed with ease -using what we have learnt in this tutorial. +Although the bond dimension here is quite low, we already see the deformation of the Mott insulator lobes to give way to the well known BKT transition that happens at commensurate density. +One can go further and estimate the critical exponents using finite-entanglement scaling procedures on the correlation functions, but these may now be performed with ease using what we have learnt in this tutorial. --- diff --git a/docs/src/examples/groundstates/bose-hubbard/main.ipynb b/docs/src/examples/groundstates/bose-hubbard/main.ipynb index 615cea4a7..5fbec9399 100644 --- a/docs/src/examples/groundstates/bose-hubbard/main.ipynb +++ b/docs/src/examples/groundstates/bose-hubbard/main.ipynb @@ -21,82 +21,65 @@ "source": [ "# 1D Bose-Hubbard model\n", "\n", - "In this tutorial, we will explore the physics of the one-dimensional Bose–Hubbard model\n", - "using matrix product states. For the most part, we replicate the results presented in\n", - "[**Phys. Rev. B 105,\n", - "134502**](https://journals.aps.org/prb/abstract/10.1103/PhysRevB.105.134502), which can be\n", - "consulted for any statements in this tutorial that are not otherwise cited. The Hamiltonian\n", - "under study is defined as follows:\n", + "In this tutorial, we will explore the physics of the one-dimensional Bose–Hubbard model using matrix product states.\n", + "For the most part, we replicate the results presented in [**Phys. Rev. B 105, 134502**](https://journals.aps.org/prb/abstract/10.1103/PhysRevB.105.134502), which can be consulted for any statements in this tutorial that are not otherwise cited.\n", + "The Hamiltonian under study is defined as follows:\n", "\n", - "$$H = -t \\sum_{i} (\\hat{a}_i^{\\dagger} \\hat{a}_{i+1} + \\hat{a}_{i+1}^{\\dagger} \\hat{a}_i) + \\frac{U}{2} \\sum_i \\hat{n}_i(\\hat{n}_i - 1) - \\mu \\sum_i \\hat{n}_i$$\n", + "$$H = -t \\sum_{i} (â_i^{†} â_{i+1} + â_{i+1}^{†} â_i) + \\frac{U}{2} \\sum_i \\hat{n}_i(\\hat{n}_i - 1) - μ \\sum_i \\hat{n}_i$$\n", "\n", - "where the bosonic creation and annihilation operators satisfy the canonical commutation\n", - "relations (CCR):\n", + "where the bosonic creation and annihilation operators satisfy the canonical commutation relations (CCR):\n", "\n", - "$$[\\hat{a}_i, \\hat{a}_j^{\\dagger}] = \\delta_{ij}.$$\n", + "$$[â_i, â_j^{†}] = δ_{ij}.$$\n", "\n", - "Each lattice site hosts a local Hilbert space corresponding to bosonic occupation states\n", - "$|n\\rangle$, where $(n = 0, 1, 2, \\ldots)$. Since this space is formally\n", - "infinite-dimensional, numerical simulations typically impose a truncation at some maximum\n", - "occupation number $(n_{\\text{max}})$. Such a treatment is justified since it can be observed\n", - "that the simulation results quickly converge with the cutoff if the filling fraction is kept\n", - "sufficiently low.\n", + "Each lattice site hosts a local Hilbert space corresponding to bosonic occupation states $|n⟩$, where $(n = 0, 1, 2, …)$.\n", + "Since this space is formally infinite-dimensional, numerical simulations typically impose a truncation at some maximum occupation number $(n_{\\text{max}})$.\n", + "Such a treatment is justified since it can be observed that the simulation results quickly converge with the cutoff if the filling fraction is kept sufficiently low.\n", "\n", - "Within this truncated space, the local creation and annihilation operators are represented\n", - "by finite-dimensional matrices. For example, with cutoff $n_{\\text{max}}$, the annihilation\n", - "operator takes the form\n", + "Within this truncated space, the local creation and annihilation operators are represented by finite-dimensional matrices.\n", + "For example, with cutoff $n_{\\text{max}}$, the annihilation operator takes the form\n", "\n", "$$\n", - "\\hat{a} =\n", + "â =\n", "\\begin{bmatrix}\n", - "0 & \\sqrt{1} & 0 & 0 & \\cdots & 0 \\\\\n", - "0 & 0 & \\sqrt{2} & 0 & \\cdots & 0 \\\\\n", - "0 & 0 & 0 & \\sqrt{3} & \\cdots & 0 \\\\\n", - "\\vdots & & & \\ddots & \\ddots & \\vdots \\\\\n", - "0 & 0 & 0 & \\cdots & 0 & \\sqrt{n_{\\text{max}}} \\\\\n", - "0 & 0 & 0 & \\cdots & 0 & 0\n", + "0 & \\sqrt{1} & 0 & 0 & ⋯ & 0 \\\\\n", + "0 & 0 & \\sqrt{2} & 0 & ⋯ & 0 \\\\\n", + "0 & 0 & 0 & \\sqrt{3} & ⋯ & 0 \\\\\n", + "⋮ & & & ⋱ & ⋱ & ⋮ \\\\\n", + "0 & 0 & 0 & ⋯ & 0 & \\sqrt{n_{\\text{max}}} \\\\\n", + "0 & 0 & 0 & ⋯ & 0 & 0\n", "\\end{bmatrix}\n", "$$\n", "\n", "and the creation operator is simply its Hermitian conjugate,\n", "\n", "$$\n", - "\\hat{a}^\\dagger =\n", + "â^† =\n", "\\begin{bmatrix}\n", - "0 & 0 & 0 & \\cdots & 0 & 0 \\\\\n", - "\\sqrt{1} & 0 & 0 & \\cdots & 0 & 0 \\\\\n", - "0 & \\sqrt{2} & 0 & \\cdots & 0 & 0 \\\\\n", - "\\vdots & & \\ddots & \\ddots & & \\vdots \\\\\n", - "0 & 0 & 0 & \\cdots & 0 & 0 \\\\\n", - "0 & 0 & 0 & \\cdots & \\sqrt{n_{\\text{max}}} & 0\n", + "0 & 0 & 0 & ⋯ & 0 & 0 \\\\\n", + "\\sqrt{1} & 0 & 0 & ⋯ & 0 & 0 \\\\\n", + "0 & \\sqrt{2} & 0 & ⋯ & 0 & 0 \\\\\n", + "⋮ & & ⋱ & ⋱ & & ⋮ \\\\\n", + "0 & 0 & 0 & ⋯ & 0 & 0 \\\\\n", + "0 & 0 & 0 & ⋯ & \\sqrt{n_{\\text{max}}} & 0\n", "\\end{bmatrix}\n", "$$\n", "\n", "The number operator is then given by\n", "\n", - "$$\\hat{n} = \\hat{a}^\\dagger \\hat{a} = \\mathrm{diag}(0, 1, 2, \\ldots, n_{\\text{max}}).$$\n", + "$$\\hat{n} = â^† â = \\mathrm{diag}(0, 1, 2, …, n_{\\text{max}}).$$\n", "\n", "Before moving on, notice that the Hamiltonian is uniform and translationally invariant.\n", - "Typically, such models are studied on a finite chain of $N$ sites with periodic boundary\n", - "conditions, but this introduces finite-size effects that are rather annoying to deal with.\n", - "In contrast, the MPS framework allows us to work directly in the thermodynamic limit,\n", - "avoiding such artifacts. We will follow this line of exploration in this tutorial and leave\n", - "finite systems for another example.\n", - "\n", - "In order to work in the thermodynamic limit, we will have to create an\n", - "`InfiniteMPS`. A complete specification of the MPS requires us to define the\n", - "physical space and the virtual space of the constituent tensors. At this point is it useful\n", - "to note that `MPSKit.jl` is powered by\n", - "[`TensorKit.jl`](https://github.com/QuantumKitHub/TensorKit.jl) under the hood and has some\n", - "very generic interfaces in order to allow imposing symmetries of all kinds. As a result, it\n", - "is sometimes necessary to be a bit more explicit about what we want to do in terms of the\n", - "vector spaces involved. In this case, we will not consider any symmetries and simply take\n", - "the most naive approach of working within the `Trivial`\n", - "sector. The physical space is then `ℂ^(nmax+1)`, and the virtual space is `ℂ^D` where $D$ is\n", - "some integer chosen to be the bond dimension of the MPS, and `ℂ` is an alias for\n", - "`ComplexSpace` (typeset as `\\bbC`). As $D$ is increased,\n", - "one increases the amount of entanglement, i.e, quantum correlations that can be captured by\n", - "the state." + "Typically, such models are studied on a finite chain of $N$ sites with periodic boundary conditions, but this introduces finite-size effects that are rather annoying to deal with.\n", + "In contrast, the MPS framework allows us to work directly in the thermodynamic limit, avoiding such artifacts.\n", + "We will follow this line of exploration in this tutorial and leave finite systems for another example.\n", + "\n", + "In order to work in the thermodynamic limit, we will have to create an `InfiniteMPS`.\n", + "A complete specification of the MPS requires us to define the physical space and the virtual space of the constituent tensors.\n", + "At this point is it useful to note that `MPSKit.jl` is powered by [`TensorKit.jl`](https://github.com/QuantumKitHub/TensorKit.jl) under the hood and has some very generic interfaces in order to allow imposing symmetries of all kinds.\n", + "As a result, it is sometimes necessary to be a bit more explicit about what we want to do in terms of the vector spaces involved.\n", + "In this case, we will not consider any symmetries and simply take the most naive approach of working within the `Trivial` sector.\n", + "The physical space is then `ℂ^(nmax+1)`, and the virtual space is `ℂ^D` where $D$ is some integer chosen to be the bond dimension of the MPS, and `ℂ` is an alias for `ComplexSpace` (typeset as `\\bbC`).\n", + "As $D$ is increased, one increases the amount of entanglement, i.e, quantum correlations that can be captured by the state." ] }, { @@ -113,12 +96,10 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This simply initializes a tensor filled with random entries (check out the documentation for\n", - "other useful constructors). Next, we need the creation and annihilation operators. While we\n", - "could construct them from scratch, here we will use\n", - "[`MPSKitModels.jl`](https://github.com/QuantumKitHub/MPSKitModels.jl) instead that has\n", - "predefined operators and models for most well-known lattice models. In particular, we can\n", - "use `MPSKitModels.a_min` to create the bosonic annihilation operator." + "This simply initializes a tensor filled with random entries (check out the documentation for other useful constructors).\n", + "Next, we need the creation and annihilation operators.\n", + "While we could construct them from scratch, here we will use [`MPSKitModels.jl`](https://github.com/QuantumKitHub/MPSKitModels.jl) instead that has predefined operators and models for most well-known lattice models.\n", + "In particular, we can use `MPSKitModels.a_min` to create the bosonic annihilation operator." ] }, { @@ -136,10 +117,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The [] accessor lets us see the underlying array, and indeed the operators are exactly what\n", - "we require. Similarly, the Bose Hubbard model is also predefined in\n", - "`MPSKitModels.bose_hubbard_model` (although we will construct our own variant\n", - "later on)." + "The [] accessor lets us see the underlying array, and indeed the operators are exactly what we require.\n", + "Similarly, the Bose Hubbard model is also predefined in `MPSKitModels.bose_hubbard_model` (although we will construct our own variant later on)." ] }, { @@ -155,11 +134,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This has created the Hamiltonian operator as a [matrix product operator](@ref\n", - "InfiniteMPOHamiltonian) (MPO) which is a convenient form to use in conjunction with MPS.\n", - "Finally, the ground state optimization may be performed with either `iDMRG` or\n", - "`VUMPS`. Both should take similar arguments but it is known that VUMPS is typically\n", - "more efficient for these systems so we proceed with that." + "This has created the Hamiltonian operator as a matrix product operator (MPO) which is a convenient form to use in conjunction with MPS.\n", + "Finally, the ground state optimization may be performed with either `iDMRG` or `VUMPS`.\n", + "Both should take similar arguments but it is known that VUMPS is typically more efficient for these systems so we proceed with that." ] }, { @@ -176,9 +153,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This automatically runs the algorithm until a certain [error measure](@ref\n", - "MPSKit.calc_galerkin) falls below the specified tolerance or the maximum iterations is\n", - "reached. Let us wrap all this into a convenient function." + "This automatically runs the algorithm until a certain error measure falls below the specified tolerance or the maximum iterations is reached.\n", + "Let us wrap all this into a convenient function." ] }, { @@ -202,11 +178,10 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now that we have the state, we may compute observables using the `expectation_value`\n", - "function. It typically expects a `Pair`, `(i1, i2, .., ik) => op` where `op` is a\n", - "`TensorMap` or `InfiniteMPO` acting over `k` sites. In case of the Hamiltonian, it is not\n", - "necessary to specify the indices as it spans the whole lattice. We can now plot the\n", - "correlation function $\\langle \\hat{a}^{\\dagger}_i \\hat{a}_j\\rangle$." + "Now that we have the state, we may compute observables using the `expectation_value` function.\n", + "It typically expects a `Pair`, `(i1, i2, .., ik) => op` where `op` is a `TensorMap` or `InfiniteMPO` acting over `k` sites.\n", + "In case of the Hamiltonian, it is not necessary to specify the indices as it spans the whole lattice.\n", + "We can now plot the correlation function $⟨â^{†}_i â_j⟩$." ] }, { @@ -223,8 +198,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We see that the correlations drop off exponentially, indicating the existence of a gapped\n", - "Mott insulating phase. Let us now shift our parameters to probe other phases." + "We see that the correlations drop off exponentially, indicating the existence of a gapped Mott insulating phase.\n", + "Let us now shift our parameters to probe other phases." ] }, { @@ -243,20 +218,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In this case, the correlation function drops off algebraically and eventually saturates as\n", - "$\\lim_{i \\to \\infty}\\langle\\hat{a}_i^{\\dagger} \\hat{a}_j\\rangle ≈ \\langle \\hat{a}_i^{\\dagger}\\rangle \\langle \\hat{a}_j \\rangle = |\\langle a_i \\rangle|^2 \\neq 0$.\n", - "This is a signature of long-range order and suggests the existence of a Bose-Einstein\n", - "condensate. However, this is a bit odd since at zero temperature, the Bose Hubbard model is\n", - "not expected to break any continuous symmetries ($U(1)$ in this case, corresponding to\n", - "particle number conservation) due to the\n", - "[Mermin-Wagner theorem](https://en.wikipedia.org/wiki/Mermin%E2%80%93Wagner_theorem). The\n", - "source of this contradiction lies in the fact that the true 1D superfluid ground state is an\n", - "extended critical phase exhibiting algebraic decay, however, a finite bond-dimension MPS can\n", - "only capture exponentially decaying correlations. As a result, the finite bond dimension\n", - "effectively introduces a length scale into the system in a similar manner as finite-size\n", - "effects. We can see this clearly by increasing the bond dimension. We also see that the\n", - "correlation length seems to depend algebraically on the bond dimension as expected from\n", - "finite-entanglement scaling arguments." + "In this case, the correlation function drops off algebraically and eventually saturates as $\\lim_{i → ∞}⟨â_i^{†} â_j⟩ ≈ ⟨â_i^{†}⟩ ⟨â_j⟩ = |⟨a_i⟩|^2 ≠ 0$.\n", + "This is a signature of long-range order and suggests the existence of a Bose-Einstein condensate.\n", + "However, this is a bit odd since at zero temperature, the Bose Hubbard model is not expected to break any continuous symmetries ($U(1)$ in this case, corresponding to particle number conservation) due to the [Mermin-Wagner theorem](https://en.wikipedia.org/wiki/Mermin%E2%80%93Wagner_theorem).\n", + "The source of this contradiction lies in the fact that the true 1D superfluid ground state is an extended critical phase exhibiting algebraic decay, however, a finite bond-dimension MPS can only capture exponentially decaying correlations.\n", + "As a result, the finite bond dimension effectively introduces a length scale into the system in a similar manner as finite-size effects.\n", + "We can see this clearly by increasing the bond dimension.\n", + "We also see that the correlation length seems to depend algebraically on the bond dimension as expected from finite-entanglement scaling arguments." ] }, { @@ -313,11 +281,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This shows that any finite bond dimension MPS necessarily breaks the symmetry of the system,\n", - "forming a Bose-Einstein condensate which introduces erroneous long-distance behaviour of\n", - "correlation functions. In case of finite bond dimension, it is thus reasonable to associate\n", - "the finite expectation value of the field operator to the 'quasicondensate' density of the\n", - "system which vanishes as $D \\to \\infty$." + "This shows that any finite bond dimension MPS necessarily breaks the symmetry of the system, forming a Bose-Einstein condensate which introduces erroneous long-distance behaviour of correlation functions.\n", + "In case of finite bond dimension, it is thus reasonable to associate the finite expectation value of the field operator to the 'quasicondensate' density of the system which vanishes as $D → ∞$." ] }, { @@ -333,40 +298,35 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We may now also visualize the momentum distribution function, which is obtained as the\n", - "Fourier transform of the single-particle density matrix. Starting from the definition of the\n", - "momentum occupation operators:\n", + "We may now also visualize the momentum distribution function, which is obtained as the Fourier transform of the single-particle density matrix.\n", + "Starting from the definition of the momentum occupation operators:\n", "\n", "$$\n", - "\\hat{a}_k = \\frac{1}{\\sqrt{L}} \\sum_j e^{-ikj} \\hat{a}_j, \\qquad\n", - "\\hat{a}_k^\\dagger = \\frac{1}{\\sqrt{L}} \\sum_{j'} e^{ikj'} \\hat{a}_{j'}^\\dagger\n", + "â_k = \\frac{1}{\\sqrt{L}} \\sum_j e^{-ikj} â_j, \\qquad\n", + "â_k^† = \\frac{1}{\\sqrt{L}} \\sum_{j'} e^{ikj'} â_{j'}^†\n", "$$\n", "\n", "the momentum distribution is\n", "\n", "$$\n", - "\\langle \\hat{n}_k \\rangle = \\langle \\hat{a}_k^\\dagger \\hat{a}_k \\rangle\n", - "= \\frac{1}{L} \\sum_{j',j} e^{ik(j'-j)} \\langle \\hat{a}_{j'}^\\dagger \\hat{a}_j \\rangle.\n", + "⟨\\hat{n}_k⟩ = ⟨â_k^† â_k⟩\n", + "= \\frac{1}{L} \\sum_{j',j} e^{ik(j'-j)} ⟨â_{j'}^† â_j⟩.\n", "$$\n", "\n", - "For a translationally invariant system, the correlation depends only on the distance\n", - "$r = j' - j$:\n", + "For a translationally invariant system, the correlation depends only on the distance $r = j' - j$:\n", "\n", - "$$\\langle \\hat{a}_{j'}^\\dagger \\hat{a}_j \\rangle = C(r) = \\langle \\hat{a}_r^\\dagger \\hat{a}_0 \\rangle.$$\n", + "$$⟨â_{j'}^† â_j⟩ = C(r) = ⟨â_r^† â_0⟩.$$\n", "\n", "Changing variables ($j' = j + r$) gives\n", "\n", - "$$\\langle \\hat{n}_k \\rangle = \\frac{1}{L} \\sum_j \\sum_r e^{ikr} C(r).$$\n", + "$$⟨\\hat{n}_k⟩ = \\frac{1}{L} \\sum_j \\sum_r e^{ikr} C(r).$$\n", "\n", "The sum over $j$ yields a factor of $L$, which cancels the prefactor, leading to\n", "\n", - "$$\\langle \\hat{n}_k \\rangle = \\sum_{r \\in \\mathbb{Z}} e^{ikr} \\langle \\hat{a}_r^\\dagger \\hat{a}_0 \\rangle$$\n", + "$$⟨\\hat{n}_k⟩ = \\sum_{r ∈ \\mathbb{Z}} e^{ikr} ⟨â_r^† â_0⟩$$\n", "\n", - "However, we know that a finite bond dimension MPS introduces a non-zero quasi-condensate\n", - "density which would give rise to an $\\mathcal{O}(N)$ divergence in the momentum distribution\n", - "that is not indicative of the true physics of the system. Since we know this contribution\n", - "vanishes in the infinite bond dimension limit, we instead work with\n", - "$\\langle \\hat{a}_r^{\\dagger} \\hat{a}_0 \\rangle_c = \\langle \\hat{a}_r^{\\dagger} \\hat{a}_0 \\rangle - |\\langle \\hat{a}\\rangle|^2$." + "However, we know that a finite bond dimension MPS introduces a non-zero quasi-condensate density which would give rise to an $\\mathcal{O}(N)$ divergence in the momentum distribution that is not indicative of the true physics of the system.\n", + "Since we know this contribution vanishes in the infinite bond dimension limit, we instead work with $⟨â_r^{†} â_0⟩_c = ⟨â_r^{†} â_0⟩ - |⟨â⟩|^2$." ] }, { @@ -393,39 +353,23 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We see that the density seems to peak around $k=0$, this time seemingly becoming more\n", - "prominent as $D \\to \\infty$ which seems to suggest again that there is a condensate.\n", - "However, going by the Penrose-Onsager criterion, the existence of a condensate can be\n", - "quantified by requiring the leading eigenvalue of the single particle density matrix (i.e,\n", - "$\\langle \\hat{n}_{k=0}\\rangle = \\sum_j \\langle \\hat{a}_j^{\\dagger} \\hat{a}_0\\rangle$) to\n", - "diverge as $O(N)$ in the thermodynamic limit. In this case, since the correlations decay as\n", - "a power law, there is naturally a divergence at low momenta. But this does not imply the\n", - "existence of a condensate since the order of divergence is much weaker. However, this does\n", - "indicate the remnants of some kind of condensation in the 1D model despite the quantum\n", - "fluctuations, leading to the practical utility of defining the concept of a quasicondensate\n", - "where there is still a notion of phase coherence over short distances.\n", - "\n", - "What this means for us is that, as far as MPS simulations go, we may still utilize the\n", - "quasicondensate density as an effective order parameter, although it will be less robust as\n", - "the bond dimension is increased. Alternatively, we realize that the true phase is\n", - "characterized as being a superfluid (a concept distinct from Bose-Einstein condensation) and\n", - "can be identified by a non-zero value of the superfluid stiffness (also known as helicity\n", - "modulus, $\\Upsilon$) as defined by Leggett. Upon applying a phase twist $\\Phi$ to the\n", - "boundaries of the system, a superfluid phase would suffer an increase in energy whereas an\n", - "insulating phase would not. In the thermodynamic limit, one could show that the boundary\n", - "conditions may be considered as periodic and instead uniformly distribute the phase across\n", - "the chain as $\\hat{a}_i \\to \\hat{a}_i e^{i\\Phi/L}$. Concretely, in the limit of\n", - "$\\Phi/L \\to 0$, we have:\n", - "\n", - "$$\\frac{E[\\Phi] - E[0]}{L} \\approx \\frac{1}{2} \\Upsilon(L) \\bigg (\\frac{\\Phi}{L}\\bigg)^2 + \\cdots$$\n", - "\n", - "In order to find the ground state under these twisted boundary conditions, we must construct\n", - "our own variant of the Bose-Hubbard Hamiltonian. Typically you would want to take a peek at\n", - "the\n", - "[source code](https://github.com/QuantumKitHub/MPSKitModels.jl/blob/f4c36d9660a9eab05fa253ffd5c20dc6b7df44cc/src/models/hamiltonians.jl#L379-L409)\n", - "of `MPSKitModels.jl` to see how these models are defined and tweak it as per your needs.\n", - "Here we see that applying twisted boundary conditions is equivalent to adding a prefactor of\n", - "$e^{\\pm i\\phi}$ in front of the hopping amplitudes." + "We see that the density seems to peak around $k=0$, this time seemingly becoming more prominent as $D → ∞$ which seems to suggest again that there is a condensate.\n", + "However, going by the Penrose-Onsager criterion, the existence of a condensate can be quantified by requiring the leading eigenvalue of the single particle density matrix (i.e, $⟨\\hat{n}_{k=0}⟩ = \\sum_j ⟨â_j^{†} â_0⟩$) to diverge as $O(N)$ in the thermodynamic limit.\n", + "In this case, since the correlations decay as a power law, there is naturally a divergence at low momenta.\n", + "But this does not imply the existence of a condensate since the order of divergence is much weaker.\n", + "However, this does indicate the remnants of some kind of condensation in the 1D model despite the quantum fluctuations, leading to the practical utility of defining the concept of a quasicondensate where there is still a notion of phase coherence over short distances.\n", + "\n", + "What this means for us is that, as far as MPS simulations go, we may still utilize the quasicondensate density as an effective order parameter, although it will be less robust as the bond dimension is increased.\n", + "Alternatively, we realize that the true phase is characterized as being a superfluid (a concept distinct from Bose-Einstein condensation) and can be identified by a non-zero value of the superfluid stiffness (also known as helicity modulus, $Υ$) as defined by Leggett.\n", + "Upon applying a phase twist $Φ$ to the boundaries of the system, a superfluid phase would suffer an increase in energy whereas an insulating phase would not.\n", + "In the thermodynamic limit, one could show that the boundary conditions may be considered as periodic and instead uniformly distribute the phase across the chain as $â_i → â_i e^{iΦ/L}$.\n", + "Concretely, in the limit of $Φ/L → 0$, we have:\n", + "\n", + "$$\\frac{E[Φ] - E[0]}{L} ≈ \\frac{1}{2} Υ(L) \\bigg (\\frac{Φ}{L}\\bigg)^2 + ⋯$$\n", + "\n", + "In order to find the ground state under these twisted boundary conditions, we must construct our own variant of the Bose-Hubbard Hamiltonian.\n", + "Typically you would want to take a peek at the [source code](https://github.com/QuantumKitHub/MPSKitModels.jl/blob/f4c36d9660a9eab05fa253ffd5c20dc6b7df44cc/src/models/hamiltonians.jl#L379-L409) of `MPSKitModels.jl` to see how these models are defined and tweak it as per your needs.\n", + "Here we see that applying twisted boundary conditions is equivalent to adding a prefactor of $e^{± iφ}$ in front of the hopping amplitudes." ] }, { @@ -483,14 +427,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now that we know what phases to expect, we can plot the phase diagram by scanning over a\n", - "range of parameters. In general, one could do better by performing a bisection algorithm for\n", - "each chemical potential to determine the value of the hopping parameter at the transition\n", - "point, however the 1D Bose-Hubbard model may have two transition points at the same chemical\n", - "potential which makes this a bit cumbersome to implement robustly. Furthermore, we stick to\n", - "using the quasi-condensate density as an order parameter since extracting the superfluid\n", - "density accurately requires a more robust scheme to compute second derivatives which takes\n", - "us away from the focus of this tutorial." + "Now that we know what phases to expect, we can plot the phase diagram by scanning over a range of parameters.\n", + "In general, one could do better by performing a bisection algorithm for each chemical potential to determine the value of the hopping parameter at the transition point, however the 1D Bose-Hubbard model may have two transition points at the same chemical potential which makes this a bit cumbersome to implement robustly.\n", + "Furthermore, we stick to using the quasi-condensate density as an order parameter since extracting the superfluid density accurately requires a more robust scheme to compute second derivatives which takes us away from the focus of this tutorial." ] }, { @@ -520,11 +459,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Although the bond dimension here is quite low, we already see the deformation of the Mott\n", - "insulator lobes to give way to the well known BKT transition that happens at commensurate\n", - "density. One can go further and estimate the critical exponents using finite-entanglement\n", - "scaling procedures on the correlation functions, but these may now be performed with ease\n", - "using what we have learnt in this tutorial." + "Although the bond dimension here is quite low, we already see the deformation of the Mott insulator lobes to give way to the well known BKT transition that happens at commensurate density.\n", + "One can go further and estimate the critical exponents using finite-entanglement scaling procedures on the correlation functions, but these may now be performed with ease using what we have learnt in this tutorial." ] }, { diff --git a/docs/src/examples/groundstates/haldane-spt/index.md b/docs/src/examples/groundstates/haldane-spt/index.md index 51c9d03f7..764fdf398 100644 --- a/docs/src/examples/groundstates/haldane-spt/index.md +++ b/docs/src/examples/groundstates/haldane-spt/index.md @@ -8,31 +8,24 @@ EditURL = "../../../../../examples/groundstates/haldane-spt/main.jl" # Spin 1 Heisenberg model -The quantum Heisenberg model is a model often used in the study of critical points and phase -transitions of magnetic systems, in which the spins are treated quantum mechanically. It -models magnetic interactions between neighbouring spins through the so-called Heisenberg -interaction term, which causes the spins to either align ($J > 0$) or anti-align ($J < 0$), -thus modeling a (anti-) ferromagnetic system. Here, we will focus on the case of $S = 1$, -with anti-ferromagnetic interactions. +The quantum Heisenberg model is a model often used in the study of critical points and phase transitions of magnetic systems, in which the spins are treated quantum mechanically. +It models magnetic interactions between neighbouring spins through the so-called Heisenberg interaction term, which causes the spins to either align ($J > 0$) or anti-align ($J < 0$), thus modeling a (anti-) ferromagnetic system. +Here, we will focus on the case of $S = 1$, with anti-ferromagnetic interactions. ```math -H = -J \sum_{\langle i, j \rangle} \vec{S}_i \cdot \vec{S}_j +H = -J \sum_{⟨i, j⟩} \vec{S}_i · \vec{S}_j ``` -Importantly, the Hamiltonian of the isotropic model is invariant under $SU(2)$ rotations, -which can be exploited to increase efficiency, as well as interpretability of the MPS -simulations. To see this, we can make use of the following derivation for the interaction -term: +Importantly, the Hamiltonian of the isotropic model is invariant under $SU(2)$ rotations, which can be exploited to increase efficiency, as well as interpretability of the MPS simulations. +To see this, we can make use of the following derivation for the interaction term: ```math -(\vec{S}_i + \vec{S}_j)^2 = \vec{S}_i^2 + 2 \vec{S}_i \cdot \vec{S}_j + \vec{S}_j^2 -\implies \vec{S}_i \cdot \vec{S}_j = \frac{1}{2} \left( (\vec{S}_i + \vec{S}_j)^2 - \vec{S}_i^2 - \vec{S}_j^2 \right) +(\vec{S}_i + \vec{S}_j)^2 = \vec{S}_i^2 + 2 \vec{S}_i · \vec{S}_j + \vec{S}_j^2 +⟹ \vec{S}_i · \vec{S}_j = \frac{1}{2} \left( (\vec{S}_i + \vec{S}_j)^2 - \vec{S}_i^2 - \vec{S}_j^2 \right) ``` -Here, we recognize the quadratic -[Casimir element](https://en.wikipedia.org/wiki/Casimir_element) $\vec{S}^2$, which commutes -with the elements of $SU(2)$. Consequently, the Hamiltonian also commutes with all elements -of $SU(2)$. +Here, we recognize the quadratic [Casimir element](https://en.wikipedia.org/wiki/Casimir_element) $\vec{S}^2$, which commutes with the elements of $SU(2)$. +Consequently, the Hamiltonian also commutes with all elements of $SU(2)$. ````julia using TensorKit @@ -65,33 +58,27 @@ H = heisenberg_hamiltonian() ## Symmetry-Protected Topological Order -The representations of $SU(2)$ possess additional structure, known as a -$\mathbb{Z}_2$-grading. This means, that they can be partitioned in integer $(+)$ and -half-integer $(-)$ spins, and the fusion rules will respect this grading. In other words, -the following table holds: +The representations of $SU(2)$ possess additional structure, known as a $\mathbb{Z}_2$-grading. +This means, that they can be partitioned in integer $(+)$ and half-integer $(-)$ spins, and the fusion rules will respect this grading. +In other words, the following table holds: -| $s_1$ | $s_2$ | $s_1 \otimes s_2$ | +| $s_1$ | $s_2$ | $s_1 ⊗ s_2$ | | --- | --- | --- | | $+$ | $+$ | $+$ | | $+$ | $-$ | $-$ | | $-$ | $+$ | $-$ | | $-$ | $-$ | $+$ | -This has important consequences for the MPS representation of an $SU(2)$-symmetric state. If -the physical spin consists of only integer representations, this means that the left and -right virtual spaces of the MPS tensor belong to the same grading, i.e. are either both -integer, or both half-integer. Thus, naively constructing a MPS tensor which contains spins -from both classes, will necessarily be the direct sum of the two, which yields a -non-injective MPS. +This has important consequences for the MPS representation of an $SU(2)$-symmetric state. +If the physical spin consists of only integer representations, this means that the left and right virtual spaces of the MPS tensor belong to the same grading, i.e. are either both integer, or both half-integer. +Thus, naively constructing a MPS tensor which contains spins from both classes, will necessarily be the direct sum of the two, which yields a non-injective MPS. ```math -\ket{\psi} = \ket{\psi_+} \oplus \ket{\psi_-} +|ψ⟩ = |ψ_+⟩ ⊕ |ψ_-⟩ ``` -Because of this direct sum, many of the usual MPS algorithms will fail, as they typically -cannot deal with non-injective MPS. The resulting MPS will have multiple values of the -transfer matrix spectrum that have a magnitude close to 1, which is a clear sign of a -non-injective MPS. +Because of this direct sum, many of the usual MPS algorithms will fail, as they typically cannot deal with non-injective MPS. +The resulting MPS will have multiple values of the transfer matrix spectrum that have a magnitude close to 1, which is a clear sign of a non-injective MPS. ````julia ℋ = SU2Space(1 => 1) @@ -104,21 +91,15 @@ transferplot(ψ; sectors, title = "Transfer matrix spectrum", legend = :outertop ![](figure-1.png) -Nevertheless, using the symmetry, this can be remedied rather easily, by imposing the -ground state to belong to a single class, and comparing the results. We can readily obtain 3 -different criteria for determining the SPT phase of the ground state. +Nevertheless, using the symmetry, this can be remedied rather easily, by imposing the ground state to belong to a single class, and comparing the results. +We can readily obtain 3 different criteria for determining the SPT phase of the ground state. -Firstly, we can compare variational energies for states of similar bond dimensions. As we -expect the state of the wrong SPT phase to have to expend some of its expressiveness in -correcting the SPT, it should have a harder time reaching lower energies. +Firstly, we can compare variational energies for states of similar bond dimensions. +As we expect the state of the wrong SPT phase to have to expend some of its expressiveness in correcting the SPT, it should have a harder time reaching lower energies. -Secondly, when inspecting the spectrum of the transfer matrix, we should see that the wrong -SPT phase has a dominant value that is not in the trivial sector, which leads to a -non-injective MPS. +Secondly, when inspecting the spectrum of the transfer matrix, we should see that the wrong SPT phase has a dominant value that is not in the trivial sector, which leads to a non-injective MPS. -Finally, the entanglement spectrum of the wrong SPT phase will show degeneracies of all -singular values, which can again be attributed to an attempt to mimic the spectrum of the -right SPT phase. +Finally, the entanglement spectrum of the wrong SPT phase will show degeneracies of all singular values, which can again be attributed to an attempt to mimic the spectrum of the right SPT phase. ````julia V_plus = SU2Space(0 => 10, 1 => 5, 2 => 3) @@ -164,21 +145,18 @@ plot(entanglementp_plus, entanglementp_minus; layout = (1, 2), size = (800, 400) ![](figure-3.png) -As we can see, the ground state can be found in the non-trivial SPT phase, $\ket{\psi_-}$. We -can obtain an intuitive understanding of $\ket{\psi_+}$ by considering the following -diagram. If we denote the MPS tensors that make up the ground state as $A_-$, we can -construct a state in the trivial SPT phase that approximates the ground state as follows: +As we can see, the ground state can be found in the non-trivial SPT phase, $|ψ_-⟩$. +We can obtain an intuitive understanding of $|ψ_+⟩$ by considering the following diagram. +If we denote the MPS tensors that make up the ground state as $A_-$, we can construct a state in the trivial SPT phase that approximates the ground state as follows: ```@raw html SPT tensors ``` -In other words, we can factorize a purely virtual isomorphism of $S = 1/2$ in order to -obtain the ground state. This then also explains the degeneracies in the entanglement -spectrum as well as in the transfer matrix spectrum. Finally, we can further confirm this -intuition by looking at the entanglement entropy of the ground state. As we can see, the -entanglement entropy of the state in the wrong SPT phase is exactly $log(2)$ higher than the -one in the right SPT phase, which is exactly what we would expect from the diagram above. +In other words, we can factorize a purely virtual isomorphism of $S = 1/2$ in order to obtain the ground state. +This then also explains the degeneracies in the entanglement spectrum as well as in the transfer matrix spectrum. +Finally, we can further confirm this intuition by looking at the entanglement entropy of the ground state. +As we can see, the entanglement entropy of the state in the wrong SPT phase is exactly $log(2)$ higher than the one in the right SPT phase, which is exactly what we would expect from the diagram above. ````julia S_minus = sum(real, entropy(ψ_minus)) diff --git a/docs/src/examples/groundstates/haldane-spt/main.ipynb b/docs/src/examples/groundstates/haldane-spt/main.ipynb index f85c243c3..3f02a0b95 100644 --- a/docs/src/examples/groundstates/haldane-spt/main.ipynb +++ b/docs/src/examples/groundstates/haldane-spt/main.ipynb @@ -6,31 +6,24 @@ "source": [ "# Spin 1 Heisenberg model\n", "\n", - "The quantum Heisenberg model is a model often used in the study of critical points and phase\n", - "transitions of magnetic systems, in which the spins are treated quantum mechanically. It\n", - "models magnetic interactions between neighbouring spins through the so-called Heisenberg\n", - "interaction term, which causes the spins to either align ($J > 0$) or anti-align ($J < 0$),\n", - "thus modeling a (anti-) ferromagnetic system. Here, we will focus on the case of $S = 1$,\n", - "with anti-ferromagnetic interactions.\n", + "The quantum Heisenberg model is a model often used in the study of critical points and phase transitions of magnetic systems, in which the spins are treated quantum mechanically.\n", + "It models magnetic interactions between neighbouring spins through the so-called Heisenberg interaction term, which causes the spins to either align ($J > 0$) or anti-align ($J < 0$), thus modeling a (anti-) ferromagnetic system.\n", + "Here, we will focus on the case of $S = 1$, with anti-ferromagnetic interactions.\n", "\n", "$$\n", - "H = -J \\sum_{\\langle i, j \\rangle} \\vec{S}_i \\cdot \\vec{S}_j\n", + "H = -J \\sum_{⟨i, j⟩} \\vec{S}_i · \\vec{S}_j\n", "$$\n", "\n", - "Importantly, the Hamiltonian of the isotropic model is invariant under $SU(2)$ rotations,\n", - "which can be exploited to increase efficiency, as well as interpretability of the MPS\n", - "simulations. To see this, we can make use of the following derivation for the interaction\n", - "term:\n", + "Importantly, the Hamiltonian of the isotropic model is invariant under $SU(2)$ rotations, which can be exploited to increase efficiency, as well as interpretability of the MPS simulations.\n", + "To see this, we can make use of the following derivation for the interaction term:\n", "\n", "$$\n", - "(\\vec{S}_i + \\vec{S}_j)^2 = \\vec{S}_i^2 + 2 \\vec{S}_i \\cdot \\vec{S}_j + \\vec{S}_j^2\n", - "\\implies \\vec{S}_i \\cdot \\vec{S}_j = \\frac{1}{2} \\left( (\\vec{S}_i + \\vec{S}_j)^2 - \\vec{S}_i^2 - \\vec{S}_j^2 \\right)\n", + "(\\vec{S}_i + \\vec{S}_j)^2 = \\vec{S}_i^2 + 2 \\vec{S}_i · \\vec{S}_j + \\vec{S}_j^2\n", + "⟹ \\vec{S}_i · \\vec{S}_j = \\frac{1}{2} \\left( (\\vec{S}_i + \\vec{S}_j)^2 - \\vec{S}_i^2 - \\vec{S}_j^2 \\right)\n", "$$\n", "\n", - "Here, we recognize the quadratic\n", - "[Casimir element](https://en.wikipedia.org/wiki/Casimir_element) $\\vec{S}^2$, which commutes\n", - "with the elements of $SU(2)$. Consequently, the Hamiltonian also commutes with all elements\n", - "of $SU(2)$." + "Here, we recognize the quadratic [Casimir element](https://en.wikipedia.org/wiki/Casimir_element) $\\vec{S}^2$, which commutes with the elements of $SU(2)$.\n", + "Consequently, the Hamiltonian also commutes with all elements of $SU(2)$." ] }, { @@ -63,33 +56,27 @@ "source": [ "## Symmetry-Protected Topological Order\n", "\n", - "The representations of $SU(2)$ possess additional structure, known as a\n", - "$\\mathbb{Z}_2$-grading. This means, that they can be partitioned in integer $(+)$ and\n", - "half-integer $(-)$ spins, and the fusion rules will respect this grading. In other words,\n", - "the following table holds:\n", + "The representations of $SU(2)$ possess additional structure, known as a $\\mathbb{Z}_2$-grading.\n", + "This means, that they can be partitioned in integer $(+)$ and half-integer $(-)$ spins, and the fusion rules will respect this grading.\n", + "In other words, the following table holds:\n", "\n", - "| $s_1$ | $s_2$ | $s_1 \\otimes s_2$ |\n", + "| $s_1$ | $s_2$ | $s_1 ⊗ s_2$ |\n", "| --- | --- | --- |\n", "| $+$ | $+$ | $+$ |\n", "| $+$ | $-$ | $-$ |\n", "| $-$ | $+$ | $-$ |\n", "| $-$ | $-$ | $+$ |\n", "\n", - "This has important consequences for the MPS representation of an $SU(2)$-symmetric state. If\n", - "the physical spin consists of only integer representations, this means that the left and\n", - "right virtual spaces of the MPS tensor belong to the same grading, i.e. are either both\n", - "integer, or both half-integer. Thus, naively constructing a MPS tensor which contains spins\n", - "from both classes, will necessarily be the direct sum of the two, which yields a\n", - "non-injective MPS.\n", + "This has important consequences for the MPS representation of an $SU(2)$-symmetric state.\n", + "If the physical spin consists of only integer representations, this means that the left and right virtual spaces of the MPS tensor belong to the same grading, i.e. are either both integer, or both half-integer.\n", + "Thus, naively constructing a MPS tensor which contains spins from both classes, will necessarily be the direct sum of the two, which yields a non-injective MPS.\n", "\n", "$$\n", - "\\ket{\\psi} = \\ket{\\psi_+} \\oplus \\ket{\\psi_-}\n", + "|ψ⟩ = |ψ_+⟩ ⊕ |ψ_-⟩\n", "$$\n", "\n", - "Because of this direct sum, many of the usual MPS algorithms will fail, as they typically\n", - "cannot deal with non-injective MPS. The resulting MPS will have multiple values of the\n", - "transfer matrix spectrum that have a magnitude close to 1, which is a clear sign of a\n", - "non-injective MPS." + "Because of this direct sum, many of the usual MPS algorithms will fail, as they typically cannot deal with non-injective MPS.\n", + "The resulting MPS will have multiple values of the transfer matrix spectrum that have a magnitude close to 1, which is a clear sign of a non-injective MPS." ] }, { @@ -110,21 +97,15 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Nevertheless, using the symmetry, this can be remedied rather easily, by imposing the\n", - "ground state to belong to a single class, and comparing the results. We can readily obtain 3\n", - "different criteria for determining the SPT phase of the ground state.\n", + "Nevertheless, using the symmetry, this can be remedied rather easily, by imposing the ground state to belong to a single class, and comparing the results.\n", + "We can readily obtain 3 different criteria for determining the SPT phase of the ground state.\n", "\n", - "Firstly, we can compare variational energies for states of similar bond dimensions. As we\n", - "expect the state of the wrong SPT phase to have to expend some of its expressiveness in\n", - "correcting the SPT, it should have a harder time reaching lower energies.\n", + "Firstly, we can compare variational energies for states of similar bond dimensions.\n", + "As we expect the state of the wrong SPT phase to have to expend some of its expressiveness in correcting the SPT, it should have a harder time reaching lower energies.\n", "\n", - "Secondly, when inspecting the spectrum of the transfer matrix, we should see that the wrong\n", - "SPT phase has a dominant value that is not in the trivial sector, which leads to a\n", - "non-injective MPS.\n", + "Secondly, when inspecting the spectrum of the transfer matrix, we should see that the wrong SPT phase has a dominant value that is not in the trivial sector, which leads to a non-injective MPS.\n", "\n", - "Finally, the entanglement spectrum of the wrong SPT phase will show degeneracies of all\n", - "singular values, which can again be attributed to an attempt to mimic the spectrum of the\n", - "right SPT phase." + "Finally, the entanglement spectrum of the wrong SPT phase will show degeneracies of all singular values, which can again be attributed to an attempt to mimic the spectrum of the right SPT phase." ] }, { @@ -159,21 +140,18 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "As we can see, the ground state can be found in the non-trivial SPT phase, $\\ket{\\psi_-}$. We\n", - "can obtain an intuitive understanding of $\\ket{\\psi_+}$ by considering the following\n", - "diagram. If we denote the MPS tensors that make up the ground state as $A_-$, we can\n", - "construct a state in the trivial SPT phase that approximates the ground state as follows:\n", + "As we can see, the ground state can be found in the non-trivial SPT phase, $|ψ_-⟩$.\n", + "We can obtain an intuitive understanding of $|ψ_+⟩$ by considering the following diagram.\n", + "If we denote the MPS tensors that make up the ground state as $A_-$, we can construct a state in the trivial SPT phase that approximates the ground state as follows:\n", "\n", "\n", "\"SPT\n", "\n", "\n", - "In other words, we can factorize a purely virtual isomorphism of $S = 1/2$ in order to\n", - "obtain the ground state. This then also explains the degeneracies in the entanglement\n", - "spectrum as well as in the transfer matrix spectrum. Finally, we can further confirm this\n", - "intuition by looking at the entanglement entropy of the ground state. As we can see, the\n", - "entanglement entropy of the state in the wrong SPT phase is exactly $log(2)$ higher than the\n", - "one in the right SPT phase, which is exactly what we would expect from the diagram above." + "In other words, we can factorize a purely virtual isomorphism of $S = 1/2$ in order to obtain the ground state.\n", + "This then also explains the degeneracies in the entanglement spectrum as well as in the transfer matrix spectrum.\n", + "Finally, we can further confirm this intuition by looking at the entanglement entropy of the ground state.\n", + "As we can see, the entanglement entropy of the state in the wrong SPT phase is exactly $log(2)$ higher than the one in the right SPT phase, which is exactly what we would expect from the diagram above." ] }, { diff --git a/docs/src/examples/groundstates/hubbard/index.md b/docs/src/examples/groundstates/hubbard/index.md index 0082d0899..625511c00 100644 --- a/docs/src/examples/groundstates/hubbard/index.md +++ b/docs/src/examples/groundstates/hubbard/index.md @@ -13,8 +13,7 @@ using Markdown # Hubbard chain at half filling The Hubbard model is a model of interacting fermions on a lattice, which is often used as a somewhat realistic model for electrons in a solid. -The Hamiltonian consists of two terms that describe competing forces of each electron: -a kinetic term that allows electrons to hop between neighboring sites, and a potential term reflecting on-site interactions between electrons. +The Hamiltonian consists of two terms that describe competing forces of each electron: a kinetic term that allows electrons to hop between neighboring sites, and a potential term reflecting on-site interactions between electrons. Often, a third term is included which serves as a chemical potential to control the number of electrons in the system. ```math @@ -29,7 +28,7 @@ This results in the following Hamiltonian: H = - ∑_{⟨i, j⟩, σ} c^{†}_{i,σ} c_{j,σ} + U / 4 ∑_i (1 - 2 n_{i,↑}) (1 - 2 n_{i,↓}) - μ ∑_{i,σ} n_{i,σ} ``` -Finally, setting `\mu = 0` and defining `u = U / 4` we obtain the Hubbard model at half-filling. +Finally, setting `μ = 0` and defining `u = U / 4` we obtain the Hubbard model at half-filling. ```math H = - ∑_{⟨i, j⟩, σ} c^{†}_{i,σ} c_{j,σ} + u ∑_i (1 - 2 n_{i,↑}) (1 - 2 n_{i,↓}) @@ -46,31 +45,6 @@ using Interpolations using Optim ```` -```` -Precompiling packages... - 3407.9 ms ✓ Interpolations - 1 dependency successfully precompiled in 4 seconds. 29 already precompiled. -Precompiling packages... - 1357.0 ms ✓ TensorOperations → TensorOperationsChainRulesCoreExt - 1 dependency successfully precompiled in 2 seconds. 20 already precompiled. -Precompiling packages... - 3507.7 ms ✓ TensorKit → TensorKitChainRulesCoreExt - 1 dependency successfully precompiled in 5 seconds. 55 already precompiled. -Precompiling packages... - 949.2 ms ✓ KrylovKit → KrylovKitChainRulesCoreExt - 1 dependency successfully precompiled in 1 seconds. 12 already precompiled. -Precompiling packages... - 1923.6 ms ✓ SpecialFunctions → SpecialFunctionsChainRulesCoreExt - 1 dependency successfully precompiled in 2 seconds. 18 already precompiled. -Precompiling packages... - 691.7 ms ✓ DifferentiationInterface → DifferentiationInterfaceChainRulesCoreExt - 1 dependency successfully precompiled in 1 seconds. 11 already precompiled. -Precompiling packages... - 656.3 ms ✓ ArrayInterface → ArrayInterfaceChainRulesCoreExt - 1 dependency successfully precompiled in 1 seconds. 10 already precompiled. - -```` - For reproducibility of this page, we fix the seed of the random number generator: ````julia @@ -194,7 +168,7 @@ The elementary excitations are known as spinons and holons, which are domain wal The fact that the spin and charge sectors are separate is a phenomenon known as spin-charge separation. The domain walls can be constructed by noticing that there are two equivalent groundstates, which differ by a translation over a single site. -In other words, the groundstates are ``\psi_{AB}`` and ``\psi_{BA}``, where ``A`` and ``B`` are the two sites. +In other words, the groundstates are ``ψ_{AB}`` and ``ψ_{BA}``, where ``A`` and ``B`` are the two sites. These excitations can be constructed as follows: ````julia diff --git a/docs/src/examples/groundstates/hubbard/main.ipynb b/docs/src/examples/groundstates/hubbard/main.ipynb index f8fc1f68d..62597f93c 100644 --- a/docs/src/examples/groundstates/hubbard/main.ipynb +++ b/docs/src/examples/groundstates/hubbard/main.ipynb @@ -16,8 +16,7 @@ "# Hubbard chain at half filling\n", "\n", "The Hubbard model is a model of interacting fermions on a lattice, which is often used as a somewhat realistic model for electrons in a solid.\n", - "The Hamiltonian consists of two terms that describe competing forces of each electron:\n", - "a kinetic term that allows electrons to hop between neighboring sites, and a potential term reflecting on-site interactions between electrons.\n", + "The Hamiltonian consists of two terms that describe competing forces of each electron: a kinetic term that allows electrons to hop between neighboring sites, and a potential term reflecting on-site interactions between electrons.\n", "Often, a third term is included which serves as a chemical potential to control the number of electrons in the system.\n", "\n", "$$\n", @@ -32,7 +31,7 @@ "H = - ∑_{⟨i, j⟩, σ} c^{†}_{i,σ} c_{j,σ} + U / 4 ∑_i (1 - 2 n_{i,↑}) (1 - 2 n_{i,↓}) - μ ∑_{i,σ} n_{i,σ}\n", "$$\n", "\n", - "Finally, setting `\\mu = 0` and defining `u = U / 4` we obtain the Hubbard model at half-filling.\n", + "Finally, setting `μ = 0` and defining `u = U / 4` we obtain the Hubbard model at half-filling.\n", "\n", "$$\n", "H = - ∑_{⟨i, j⟩, σ} c^{†}_{i,σ} c_{j,σ} + u ∑_i (1 - 2 n_{i,↑}) (1 - 2 n_{i,↓})\n", @@ -194,7 +193,7 @@ "The fact that the spin and charge sectors are separate is a phenomenon known as spin-charge separation.\n", "\n", "The domain walls can be constructed by noticing that there are two equivalent groundstates, which differ by a translation over a single site.\n", - "In other words, the groundstates are $\\psi_{AB}$ and $\\psi_{BA}$, where $A$ and $B$ are the two sites.\n", + "In other words, the groundstates are $ψ_{AB}$ and $ψ_{BA}$, where $A$ and $B$ are the two sites.\n", "These excitations can be constructed as follows:" ] }, diff --git a/docs/src/examples/groundstates/ising-cft/index.md b/docs/src/examples/groundstates/ising-cft/index.md index 77113f9cc..8162b37f8 100644 --- a/docs/src/examples/groundstates/ising-cft/index.md +++ b/docs/src/examples/groundstates/ising-cft/index.md @@ -8,17 +8,15 @@ EditURL = "../../../../../examples/groundstates/ising-cft/main.jl" # The Ising CFT spectrum -This tutorial is meant to show the finite size CFT spectrum for the quantum Ising model. We -do this by first employing an exact diagonalization technique, and then extending the -analysis to larger system sizes through the use of MPS techniques. +This tutorial is meant to show the finite size CFT spectrum for the quantum Ising model. +We do this by first employing an exact diagonalization technique, and then extending the analysis to larger system sizes through the use of MPS techniques. ````julia using MPSKit, MPSKitModels, TensorKit, Plots, KrylovKit using LinearAlgebra: eigvals, diagm, Hermitian ```` -The Hamiltonian is defined on a finite lattice with periodic boundary conditions, -which can be implemented as follows: +The Hamiltonian is defined on a finite lattice with periodic boundary conditions, which can be implemented as follows: ````julia L = 12 @@ -47,11 +45,8 @@ H = periodic_boundary_conditions(transverse_field_ising(), L) ## Exact diagonalisation -In MPSKit, there is support for exact diagonalisation by leveraging the fact that applying -the Hamiltonian to an untruncated MPS will result in an effective Hamiltonian on the center -site which implements the action of the entire Hamiltonian. Thus, optimizing the middle -tensor is equivalent to optimixing a state in the entire Hilbert space, as all other tensors -are just unitary matrices that mix the basis. +In MPSKit, there is support for exact diagonalisation by leveraging the fact that applying the Hamiltonian to an untruncated MPS will result in an effective Hamiltonian on the center site which implements the action of the entire Hamiltonian. +Thus, optimizing the middle tensor is equivalent to optimizing a state in the entire Hilbert space, as all other tensors are just unitary matrices that mix the basis. ````julia energies, states = exact_diagonalization(H; num = 18, alg = Lanczos(; krylovdim = 200)); @@ -69,9 +64,8 @@ plot( ## Extracting momentum -Given a state, it is possible to assign a momentum label -through the use of the translation operator. This operator can be defined in MPO language -either diagramatically as +Given a state, it is possible to assign a momentum label through the use of the translation operator. +This operator can be defined in MPO language either diagrammatically as ```@raw html translation operator @@ -91,13 +85,11 @@ end O_shift (generic function with 1 method) ```` -We can then calculate the momentum of the ground state as the expectation value of this -operator. However, there is a subtlety because of the degeneracies in the energy -eigenvalues. The eigensolver will find an orthonormal basis within each energy subspace, but -this basis is not necessarily a basis of eigenstates of the translation operator. In order -to fix this, we diagonalize the translation operator within each energy subspace. -The resulting energy levels have one-to-one correspondence to the operators in CFT, where -the momentum is related to their conformal spin as $P_n = \frac{2\pi}{L}S_n$. +We can then calculate the momentum of the ground state as the expectation value of this operator. +However, there is a subtlety because of the degeneracies in the energy eigenvalues. +The eigensolver will find an orthonormal basis within each energy subspace, but this basis is not necessarily a basis of eigenstates of the translation operator. +In order to fix this, we diagonalize the translation operator within each energy subspace. +The resulting energy levels have one-to-one correspondence to the operators in CFT, where the momentum is related to their conformal spin as $P_n = \frac{2π}{L}S_n$. ````julia function fix_degeneracies(basis) @@ -146,10 +138,8 @@ append!(momenta, fix_degeneracies(states[17:18])) -1.5707963267948966 ```` -We can compute the scaling dimensions $\Delta_n$ of the operators in the CFT from the -energy gap of the corresponding excitations as $E_n - E_0 = \frac{2\pi v}{L} \Delta_n$, -where $v = 2$. If we plot these scaling dimensions against the conformal spin $S_n$ from -above, we retrieve the familiar spectrum of the Ising CFT. +We can compute the scaling dimensions $Δ_n$ of the operators in the CFT from the energy gap of the corresponding excitations as $E_n - E_0 = \frac{2π v}{L} Δ_n$, where $v = 2$. +If we plot these scaling dimensions against the conformal spin $S_n$ from above, we retrieve the familiar spectrum of the Ising CFT. ````julia v = 2.0 @@ -170,8 +160,7 @@ p ## Finite bond dimension -If we limit the maximum bond dimension of the MPS, we get an approximate solution, but we -can reach higher system sizes. +If we limit the maximum bond dimension of the MPS, we get an approximate solution, but we can reach higher system sizes. ````julia L_mps = 20 @@ -180,9 +169,8 @@ D = 64 ψ, envs, δ = find_groundstate(FiniteMPS(L_mps, ℂ^2, ℂ^D), H_mps, DMRG(; verbosity = 0)); ```` -Excitations on top of the ground state can be found through the use of the quasiparticle -ansatz. This returns quasiparticle states, which can be converted to regular `FiniteMPS` -objects. +Excitations on top of the ground state can be found through the use of the quasiparticle ansatz. +This returns quasiparticle states, which can be converted to regular `FiniteMPS` objects. ````julia E_ex, qps = excitations(H_mps, QuasiparticleAnsatz(), ψ, envs; num = 18) diff --git a/docs/src/examples/groundstates/ising-cft/main.ipynb b/docs/src/examples/groundstates/ising-cft/main.ipynb index e21dc19cc..0e6d15199 100644 --- a/docs/src/examples/groundstates/ising-cft/main.ipynb +++ b/docs/src/examples/groundstates/ising-cft/main.ipynb @@ -6,9 +6,8 @@ "source": [ "# The Ising CFT spectrum\n", "\n", - "This tutorial is meant to show the finite size CFT spectrum for the quantum Ising model. We\n", - "do this by first employing an exact diagonalization technique, and then extending the\n", - "analysis to larger system sizes through the use of MPS techniques." + "This tutorial is meant to show the finite size CFT spectrum for the quantum Ising model.\n", + "We do this by first employing an exact diagonalization technique, and then extending the analysis to larger system sizes through the use of MPS techniques." ] }, { @@ -25,8 +24,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The Hamiltonian is defined on a finite lattice with periodic boundary conditions,\n", - "which can be implemented as follows:" + "The Hamiltonian is defined on a finite lattice with periodic boundary conditions, which can be implemented as follows:" ] }, { @@ -45,11 +43,8 @@ "source": [ "## Exact diagonalisation\n", "\n", - "In MPSKit, there is support for exact diagonalisation by leveraging the fact that applying\n", - "the Hamiltonian to an untruncated MPS will result in an effective Hamiltonian on the center\n", - "site which implements the action of the entire Hamiltonian. Thus, optimizing the middle\n", - "tensor is equivalent to optimixing a state in the entire Hilbert space, as all other tensors\n", - "are just unitary matrices that mix the basis." + "In MPSKit, there is support for exact diagonalisation by leveraging the fact that applying the Hamiltonian to an untruncated MPS will result in an effective Hamiltonian on the center site which implements the action of the entire Hamiltonian.\n", + "Thus, optimizing the middle tensor is equivalent to optimizing a state in the entire Hilbert space, as all other tensors are just unitary matrices that mix the basis." ] }, { @@ -81,9 +76,8 @@ "source": [ "## Extracting momentum\n", "\n", - "Given a state, it is possible to assign a momentum label\n", - "through the use of the translation operator. This operator can be defined in MPO language\n", - "either diagramatically as\n", + "Given a state, it is possible to assign a momentum label through the use of the translation operator.\n", + "This operator can be defined in MPO language either diagrammatically as\n", "\n", "\n", "\"translation\n", @@ -109,13 +103,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can then calculate the momentum of the ground state as the expectation value of this\n", - "operator. However, there is a subtlety because of the degeneracies in the energy\n", - "eigenvalues. The eigensolver will find an orthonormal basis within each energy subspace, but\n", - "this basis is not necessarily a basis of eigenstates of the translation operator. In order\n", - "to fix this, we diagonalize the translation operator within each energy subspace.\n", - "The resulting energy levels have one-to-one correspondence to the operators in CFT, where\n", - "the momentum is related to their conformal spin as $P_n = \\frac{2\\pi}{L}S_n$." + "We can then calculate the momentum of the ground state as the expectation value of this operator.\n", + "However, there is a subtlety because of the degeneracies in the energy eigenvalues.\n", + "The eigensolver will find an orthonormal basis within each energy subspace, but this basis is not necessarily a basis of eigenstates of the translation operator.\n", + "In order to fix this, we diagonalize the translation operator within each energy subspace.\n", + "The resulting energy levels have one-to-one correspondence to the operators in CFT, where the momentum is related to their conformal spin as $P_n = \\frac{2π}{L}S_n$." ] }, { @@ -152,10 +144,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can compute the scaling dimensions $\\Delta_n$ of the operators in the CFT from the\n", - "energy gap of the corresponding excitations as $E_n - E_0 = \\frac{2\\pi v}{L} \\Delta_n$,\n", - "where $v = 2$. If we plot these scaling dimensions against the conformal spin $S_n$ from\n", - "above, we retrieve the familiar spectrum of the Ising CFT." + "We can compute the scaling dimensions $Δ_n$ of the operators in the CFT from the energy gap of the corresponding excitations as $E_n - E_0 = \\frac{2π v}{L} Δ_n$, where $v = 2$.\n", + "If we plot these scaling dimensions against the conformal spin $S_n$ from above, we retrieve the familiar spectrum of the Ising CFT." ] }, { @@ -184,8 +174,7 @@ "source": [ "## Finite bond dimension\n", "\n", - "If we limit the maximum bond dimension of the MPS, we get an approximate solution, but we\n", - "can reach higher system sizes." + "If we limit the maximum bond dimension of the MPS, we get an approximate solution, but we can reach higher system sizes." ] }, { @@ -204,9 +193,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Excitations on top of the ground state can be found through the use of the quasiparticle\n", - "ansatz. This returns quasiparticle states, which can be converted to regular `FiniteMPS`\n", - "objects." + "Excitations on top of the ground state can be found through the use of the quasiparticle ansatz.\n", + "This returns quasiparticle states, which can be converted to regular `FiniteMPS` objects." ] }, { diff --git a/docs/src/examples/groundstates/xxz-heisenberg/index.md b/docs/src/examples/groundstates/xxz-heisenberg/index.md index 687bc0cb8..f487be24a 100644 --- a/docs/src/examples/groundstates/xxz-heisenberg/index.md +++ b/docs/src/examples/groundstates/xxz-heisenberg/index.md @@ -42,7 +42,8 @@ H = heisenberg_XXX(; spin = 1 // 2) ```` -We then need an initial state, which we shall later optimize. In this example we work directly in the thermodynamic limit. +We then need an initial state, which we shall later optimize. +In this example we work directly in the thermodynamic limit. ````julia state = InfiniteMPS(2, 20) diff --git a/docs/src/examples/groundstates/xxz-heisenberg/main.ipynb b/docs/src/examples/groundstates/xxz-heisenberg/main.ipynb index 8f1685258..a1bda9266 100644 --- a/docs/src/examples/groundstates/xxz-heisenberg/main.ipynb +++ b/docs/src/examples/groundstates/xxz-heisenberg/main.ipynb @@ -60,7 +60,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We then need an initial state, which we shall later optimize. In this example we work directly in the thermodynamic limit." + "We then need an initial state, which we shall later optimize.\n", + "In this example we work directly in the thermodynamic limit." ] }, { diff --git a/docs/src/examples/index.md b/docs/src/examples/index.md index a26eb27aa..8a36ee4fb 100644 --- a/docs/src/examples/index.md +++ b/docs/src/examples/index.md @@ -4,51 +4,53 @@ This gallery collects the full worked examples that ship with MPSKit.jl. Each one is a complete, runnable script (also available as a Jupyter notebook, linked from the example page itself) that goes well beyond the short snippets in the how-to guides. The examples are grouped by the kind of computation they demonstrate rather than by the physical system. -Within each group, the summaries below are ordered roughly by increasing difficulty: start at the top if you are new to MPSKit, and work down as you get comfortable with symmetries, infinite systems, and the less common algorithms. -(The sidebar lists the same pages alphabetically.) +Every summary states the complexity of the example, so you can begin with an introductory one and move on to those that combine symmetries, infinite systems, and the less common algorithms. +The sidebar lists the same pages alphabetically. ## Ground states -### [The XXZ model](groundstates/xxz-heisenberg/index.md) - -![](groundstates/xxz-heisenberg/figure-2.png) - -Walks through a ground-state search that first goes wrong: single-site `VUMPS` and `GradientGrassmann` stall on the spin-1/2 Heisenberg antiferromagnet, and `transferplot`/`entanglementplot` reveal a near-non-injective state with several almost-degenerate transfer-matrix eigenvalues. -The fix is a two-site unit cell together with the `SU2Irrep`-symmetric Hamiltonian, after which `IDMRG2` and `VUMPS` converge cleanly. -A useful, diagnostic-driven example for recognizing and debugging convergence failures. -**Level: intermediate.** - -### [Hubbard chain at half filling](groundstates/hubbard/index.md) +### [The Ising CFT spectrum](groundstates/ising-cft/index.md) -![](groundstates/hubbard/figure-2.png) +![](groundstates/ising-cft/figure-2.png) -Studies the 1D Hubbard model at half filling with fermionic `InfiniteMPS`, first benchmarking a plain `VUMPS`/`GradientGrassmann` ground-state search against the exact Bethe-ansatz integral for the energy, then imposing the full particle-number and spin symmetry (`U1Irrep`, `SU2Irrep`, with `MPSKit.add_physical_charge` to pin the filling) and constructing the spinon/holon excitation spectrum with the `QuasiparticleAnsatz`. -Combines fermionic symmetry sectors with a more elaborate ground-state recipe (staged bond-dimension growth via `changebonds`/`OptimalExpand`, `SvdCut`, and mixed `VUMPS`/`GradientGrassmann` refinement). -**Level: advanced.** +Extracts the finite-size conformal spectrum of the critical transverse-field Ising chain, first by brute-force exact diagonalization on a small periodic chain, then by extending to larger sizes with finite DMRG and the quasiparticle ansatz, using a translation MPO to assign a momentum label to each state. +It works without any symmetries, which makes it a good entry point into the finite-MPS workflow. +**Complexity: introductory.** -### [1D Bose-Hubbard model](groundstates/bose-hubbard/index.md) +### [The XXZ model](groundstates/xxz-heisenberg/index.md) -![](groundstates/bose-hubbard/figure-6.png) +![](groundstates/xxz-heisenberg/figure-2.png) -The most comprehensive ground-state example in the gallery: works directly in the thermodynamic limit with a truncated bosonic local Hilbert space, extracts correlation functions and the correlation length as a function of bond dimension, computes the momentum distribution, and maps out the Mott-insulator/superfluid structure of the phase diagram from the ground-state response to an applied phase twist. -Touches most of the ground-state toolbox (`InfiniteMPS`, `find_groundstate`, bond-dimension control, `expectation_value`-based observables) in a single, longer study. -**Level: advanced.** +Shows how to pick a unit cell and a symmetry that suit the state you are after, using the spin-1/2 Heisenberg antiferromagnet as the case study. +The transfer-matrix and entanglement spectra serve as diagnostics: they reveal several almost-degenerate transfer-matrix eigenvalues, which is the signature of a state that a single-site ansatz cannot represent. +A two-site unit cell together with the SU(2)-symmetric Hamiltonian resolves this, after which both two-site IDMRG and VUMPS converge cleanly. +A good example for learning to read these diagnostics and act on them. +**Complexity: intermediate.** ### [Spin 1 Heisenberg model](groundstates/haldane-spt/index.md) ![](groundstates/haldane-spt/figure-3.png) -Distinguishes the two symmetry-protected topological phases of the SU(2)-symmetric spin-1 Heisenberg chain by restricting the virtual `SU2Space` to integer or half-integer charges, then compares the two resulting ground states through their energy, transfer-matrix spectrum (`transferplot`), entanglement spectrum (`entanglementplot`), and entanglement entropy (`entropy`). +Distinguishes the two symmetry-protected topological phases of the SU(2)-symmetric spin-1 Heisenberg chain by restricting the virtual space to integer or half-integer charges, then compares the two resulting ground states through their energy, transfer-matrix spectrum, entanglement spectrum, and entanglement entropy. Builds directly on the symmetry machinery introduced in the Haldane gap example. -**Level: intermediate/advanced.** +**Complexity: intermediate to advanced.** -### [The Ising CFT spectrum](groundstates/ising-cft/index.md) +### [Hubbard chain at half filling](groundstates/hubbard/index.md) -![](groundstates/ising-cft/figure-2.png) +![](groundstates/hubbard/figure-2.png) + +Studies the one-dimensional Hubbard model at half filling with a fermionic infinite MPS. +It first benchmarks a plain ground-state search against the exact Bethe-ansatz integral for the energy, then imposes the full particle-number and spin symmetry, pinning the filling by adding a charge to the physical space, and finally constructs the spinon and holon excitation spectrum with the quasiparticle ansatz. +Combines fermionic symmetry sectors with a more elaborate ground-state recipe, growing the bond dimension in stages before refining. +**Complexity: advanced.** + +### [1D Bose-Hubbard model](groundstates/bose-hubbard/index.md) + +![](groundstates/bose-hubbard/figure-6.png) -Extracts the finite-size conformal spectrum of the critical transverse-field Ising chain, first by brute-force `exact_diagonalization` on a small periodic chain, then by extending to larger sizes with finite `DMRG` and the `QuasiparticleAnsatz`, using a translation MPO to assign a momentum label to each state. -No symmetries are used, which makes this a good entry point into the finite-MPS workflow. -**Level: introductory.** +The most comprehensive ground-state example in the gallery: it works directly in the thermodynamic limit with a truncated bosonic local Hilbert space, extracts correlation functions and the correlation length as a function of bond dimension, computes the momentum distribution, and maps out the Mott-insulator and superfluid structure of the phase diagram from the ground-state response to an applied phase twist. +Touches most of the ground-state toolbox in a single, longer study. +**Complexity: advanced.** ## Excitations & dispersions @@ -56,9 +58,9 @@ No symmetries are used, which makes this a good entry point into the finite-MPS ![](excitations/haldane/figure-3.png) -Computes the Haldane gap of the spin-1 Heisenberg antiferromagnet in two complementary ways: finite-size `DMRG` with the `QuasiparticleAnsatz`, extrapolated over system size, and a direct infinite-chain `VUMPS` calculation with a momentum-resolved excitation scan. -Introduces `SU2Irrep`/`SU2Space` symmetric tensors for both `FiniteMPS` and `InfiniteMPS`. -**Level: intermediate.** +Computes the Haldane gap of the spin-1 Heisenberg antiferromagnet in two complementary ways: finite-size DMRG with the quasiparticle ansatz, extrapolated over system size, and a direct infinite-chain VUMPS calculation with a momentum-resolved excitation scan. +Introduces SU(2)-symmetric tensors for both finite and infinite MPS. +**Complexity: intermediate.** ## Dynamics & finite temperature @@ -66,17 +68,18 @@ Introduces `SU2Irrep`/`SU2Space` symmetric tensors for both `FiniteMPS` and `Inf ![](dynamics/ising-dqpt/infinite_timeev.png) -Quenches the transverse-field Ising chain across its critical point and tracks the Loschmidt echo in search of non-analyticities (dynamical quantum phase transitions), on both a finite chain (`TDVP2`/`TDVP`) and directly in the thermodynamic limit (`changebonds` with `OptimalExpand`, then `TDVP`). +Quenches the transverse-field Ising chain across its critical point and tracks the Loschmidt echo in search of non-analyticities, the dynamical quantum phase transitions of the title. +This is done both on a finite chain, with two-site and then single-site TDVP, and directly in the thermodynamic limit, where the bond dimension is grown explicitly before evolving. A compact introduction to real-time evolution and environment reuse, still without symmetries. -**Level: introductory/intermediate.** +**Complexity: introductory to intermediate.** ### [Finite temperature XY model](dynamics/xy-finiteT/index.md) ![](dynamics/xy-finiteT/figure-1.png) Simulates the finite-temperature XY chain by purifying the infinite-temperature density matrix and evolving it in imaginary time, then compares the resulting partition function and free energy against exact diagonalization and, via BenchmarkFreeFermions.jl, the exact free-fermion solution. -A technical, comparison-heavy example built around `MPSKit.infinite_temperature_density_matrix` and imaginary-time evolution rather than ground-state search. -**Level: advanced.** +A technical, comparison-heavy example built around imaginary-time evolution of a density matrix rather than a ground-state search. +**Complexity: advanced.** ## Statistical mechanics @@ -84,6 +87,6 @@ A technical, comparison-heavy example built around `MPSKit.infinite_temperature_ ![](statmech/hard-hexagon/figure-1.png) -Extracts the central charge of the hard hexagon lattice gas by finding the leading boundary MPS of its transfer matrix with `VUMPS` (using Fibonacci-anyon virtual spaces), then fitting the CFT-predicted scaling relation between entanglement entropy and correlation length as the bond dimension is increased. -The only classical statistical-mechanics example in the gallery, and the only one demonstrating non-abelian anyonic symmetries (`FibonacciAnyon`) in MPSKit. -**Level: advanced.** +Extracts the central charge of the hard hexagon lattice gas by finding the leading boundary MPS of its transfer matrix with VUMPS, using Fibonacci-anyon virtual spaces, then fitting the CFT-predicted scaling relation between entanglement entropy and correlation length as the bond dimension is increased. +The only classical statistical-mechanics example in the gallery, and the only one demonstrating non-abelian anyonic symmetries in MPSKit. +**Complexity: advanced.** diff --git a/docs/src/examples/statmech/hard-hexagon/index.md b/docs/src/examples/statmech/hard-hexagon/index.md index a1f7bdde0..da3e0ab23 100644 --- a/docs/src/examples/statmech/hard-hexagon/index.md +++ b/docs/src/examples/statmech/hard-hexagon/index.md @@ -71,7 +71,8 @@ This can be exploited to formulate a scaling hypothesis [pollmann2009](@cite), w First we need to know the entropy and correlation length at several different bond dimensions. Our approach will be to re-use the previous approximated dominant eigenvector, and then expanding its bond dimension and re-running VUMPS. -According to the scaling hypothesis we should have ``S ∝ \frac{c}{6} log(ξ)``. Therefore we should find ``c`` using +According to the scaling hypothesis we should have ``S ∝ \frac{c}{6} log(ξ)``. +Therefore we should find ``c`` using ````julia function scaling_simulations( diff --git a/docs/src/examples/statmech/hard-hexagon/main.ipynb b/docs/src/examples/statmech/hard-hexagon/main.ipynb index 29b854be8..d8576e2ec 100644 --- a/docs/src/examples/statmech/hard-hexagon/main.ipynb +++ b/docs/src/examples/statmech/hard-hexagon/main.ipynb @@ -94,7 +94,8 @@ "\n", "First we need to know the entropy and correlation length at several different bond dimensions.\n", "Our approach will be to re-use the previous approximated dominant eigenvector, and then expanding its bond dimension and re-running VUMPS.\n", - "According to the scaling hypothesis we should have $S ∝ \\frac{c}{6} log(ξ)$. Therefore we should find $c$ using" + "According to the scaling hypothesis we should have $S ∝ \\frac{c}{6} log(ξ)$.\n", + "Therefore we should find $c$ using" ] }, { diff --git a/examples/Cache.toml b/examples/Cache.toml index 367b32a61..16e6368d8 100644 --- a/examples/Cache.toml +++ b/examples/Cache.toml @@ -2,15 +2,15 @@ "haldane" = "c09df36c3be5cd452bec564d22f6e2815474a9dab71dd5528013a3fb46b2f7c0" [dynamics] -"ising-dqpt" = "f90e6a301a8bc6634f80d23957843ed0e721ac0fd6bf8c4fd07a152dbe264563" -"xy-finiteT" = "315b668d2e9ab114cbba396f4dbeb28cb2f7e97db280a0844f36dc17df26d3bc" +"ising-dqpt" = "dec15a8c3187b1d0f92577e48e1ac2c719711414eb3e5e57bbb878f8d2621580" +"xy-finiteT" = "ab355f357560061f9aaba461e0aa3d7686929d7ba610ee0d91fb97f6708db55b" [statmech] -"hard-hexagon" = "bd5e82948c6b7511e6c9c05565053113ce40df31102d70b544d82b6595306238" +"hard-hexagon" = "6ef3f8f094c60d0562b209aa0541f30bccf0e593a095550d539b083b416ba30c" [groundstates] -"haldane-spt" = "c8fd3a8d406b9ff3ea9a34b596c5910d81e4eb710b665d7fa04e30f795a46086" -"hubbard" = "29e2469ac9307f1242bdfb76b97c6a2e04dc087f5d4b6c45c8b7a15df12ad36c" -"bose-hubbard" = "cf0d9a543e784dc6053e413780d19e1b59bf956dd4598752fdf664804dd68ce6" -"xxz-heisenberg" = "dae5f29dcad5fcfaffd12a7847916adb92c955276ce24166fd3f9c9534c50784" -"ising-cft" = "ebcae1e501347cb00a46d0889df1355707be77cf962f9ee0d16416393492529b" +"haldane-spt" = "f29ae05d4f2b6c60e0e9d283444acb6d22b106d0b7c92f360642cc0c1d5ba1c1" +"hubbard" = "6cd857ca7bf28c5524254cdc49d14ba02153f22d8437872c56e96baa4ea7950f" +"bose-hubbard" = "439cf4165079bd64b2e9420f7be8def0dac9beba72f083e04c3d48097c3c19bb" +"xxz-heisenberg" = "c6c200059f14bd05a8c4d7e65fe670231d22715ed500f1f5baf164993c15f840" +"ising-cft" = "387d4986e2925f1ee227f6c7fa088418e605aaab6a7d7e5f52037c739063ce06" diff --git a/examples/dynamics/ising-dqpt/main.jl b/examples/dynamics/ising-dqpt/main.jl index 78c09abcb..dc1081ada 100644 --- a/examples/dynamics/ising-dqpt/main.jl +++ b/examples/dynamics/ising-dqpt/main.jl @@ -1,25 +1,26 @@ md""" # DQPT in the Ising model -In this tutorial we will try to reproduce the results from -[this paper](https://arxiv.org/pdf/1206.2505.pdf). The needed packages are +In this tutorial we will try to reproduce the results from [this paper](https://arxiv.org/pdf/1206.2505.pdf). +The needed packages are """ using MPSKit, MPSKitModels, TensorKit md""" Dynamical quantum phase transitions (DQPT in short) are signatures of equilibrium phase transitions in a dynamical quantity - the Loschmidt echo. -This quantity is given by ``L(t) = \frac{-2}{N} ln(| < \psi(t) | \psi(0) > |) `` where ``N`` is the system size. +This quantity is given by ``L(t) = \frac{-2}{N} \ln |⟨ψ(t)|ψ(0)⟩|`` where ``N`` is the system size. One typically starts from a ground state and then quenches the Hamiltonian to a different point. -Non analycities in the Loschmidt echo are called 'dynamical quantum phase transitions'. +Non-analyticities in the Loschmidt echo are called 'dynamical quantum phase transitions'. In the mentioned paper they work with -``H(g) = - \sum^{N-1}_{i=1} \sigma^z_i \sigma^z_{i+1} + g \sum_{i=1}^N \sigma^x_i`` +``H(g) = - \sum^{N-1}_{i=1} σ^z_i σ^z_{i+1} + g \sum_{i=1}^N σ^x_i`` -and show that divergences occur when quenching across the critical point (g₀ → g₁) for ``t^*_n = t^*(n+\frac{1}{2})`` with ``t^* = \pi/e(g_1,k^*)``, ``cos(k^*) = (1+g_0 g_1) / (g_0 + g_1)``, `` e(g,k) = \sqrt{(g-cos k)^2 + sin^2 k}``. +and show that divergences occur when quenching across the critical point (g₀ → g₁) for ``t^*_n = t^*(n+\frac{1}{2})`` with ``t^* = π/e(g_1,k^*)``, ``cos(k^*) = (1+g_0 g_1) / (g_0 + g_1)``, `` e(g,k) = \sqrt{(g-cos k)^2 + sin^2 k}``. -The outline of the tutorial is as follows. We will pick ``g₀ = 0.5``, ``g₁ = 2.0``, and perform the time evolution at different system sizes and compare with the thermodynamic limit. +The outline of the tutorial is as follows. +We will pick ``g₀ = 0.5``, ``g₁ = 2.0``, and perform the time evolution at different system sizes and compare with the thermodynamic limit. For those ``g`` we expect non-analyticities to occur at ``t_n ≈ 2.35 (n + 1/2)``. First we construct the Hamiltonian in MPO form, and obtain the pre-quenched ground state: @@ -33,14 +34,15 @@ H₀ = transverse_field_ising(FiniteChain(L); g = -0.5) md""" ## Finite MPS quenching -We can define a helper function that measures the loschmith echo +We can define a helper function that measures the Loschmidt echo """ echo(ψ₀::FiniteMPS, ψₜ::FiniteMPS) = -2 * log(abs(dot(ψ₀, ψₜ))) / length(ψ₀) @assert isapprox(echo(ψ₀, ψ₀), 0, atol = 1.0e-10) md""" -We will initially use a two-site TDVP scheme to dynamically increase the bond dimension while time evolving, and later on switch to a faster one-site scheme. A single timestep can be done using +We will initially use a two-site TDVP scheme to dynamically increase the bond dimension while time evolving, and later on switch to a faster one-site scheme. +A single timestep can be done using """ H₁ = transverse_field_ising(FiniteChain(L); g = -2.0) @@ -49,7 +51,8 @@ dt = 0.01 ψₜ, envs = timestep(ψₜ, H₁, 0, dt, TDVP2(; trunc = truncrank(20))); md""" -"envs" is a kind of cache object that keeps track of all environments in `ψ`. It is often advantageous to re-use the environment, so that MPSKit doesn't need to recalculate everything. +"envs" is a kind of cache object that keeps track of all environments in `ψ`. +It is often advantageous to re-use the environment, so that MPSKit doesn't need to recalculate everything. Putting it all together, we get """ @@ -88,7 +91,7 @@ H₀ = transverse_field_ising(; g = -0.5) ψ₀, _ = find_groundstate(ψ₀, H₀, VUMPS(; verbosity = 0)); md""" -The dot product of two infinite matrix product states scales as ``\alpha ^N`` where ``α`` is the dominant eigenvalue of the transfer matrix. +The dot product of two infinite matrix product states scales as ``α ^N`` where ``α`` is the dominant eigenvalue of the transfer matrix. It is this ``α`` that is returned when calling """ @@ -102,7 +105,8 @@ echo(ψ₀::InfiniteMPS, ψₜ::InfiniteMPS) = -2 * log(abs(dot(ψ₀, ψₜ))) @assert isapprox(echo(ψ₀, ψ₀), 0, atol = 1.0e-10) md""" -We make use of the `changebonds` machinery to grow the bond dimension. This can also be achieved through a two-site scheme. +We make use of the `changebonds` machinery to grow the bond dimension. +This can also be achieved through a two-site scheme. Multiple algorithms are available, but we will only focus on `OptimalExpand()`. Growing the bond dimension by ``5`` can be done by calling: """ diff --git a/examples/dynamics/xy-finiteT/main.jl b/examples/dynamics/xy-finiteT/main.jl index 31a50d035..f3ed23a75 100644 --- a/examples/dynamics/xy-finiteT/main.jl +++ b/examples/dynamics/xy-finiteT/main.jl @@ -22,7 +22,7 @@ As a result, many properties have analytical expressions that can be used to ver Here, we use [BenchmarkFreeFermions.jl](https://github.com/Qiaoyi-Li/BenchmarkFreeFermions.jl/) to compare our results. ```math - H = J \sum_{i=1}^{N} \left( \sigma^x_i \sigma^x_{i+1} + \sigma^y_i \sigma^y_{i+1} \right) + H = J \sum_{i=1}^{N} \left( σ^x_i σ^x_{i+1} + σ^y_i σ^y_{i+1} \right) ``` Here we will consider the anti-ferromagnetic ($J > 0$) chain, and restrict ourselves to $J = 1/2$. @@ -49,11 +49,10 @@ end md""" ## Diagonalization of the Hamiltonian -The Hamiltonian can be diagonalized through a Bogoliubov transformation, leading to the following expression for the ground state energy -The Hamiltonian can be diagonalized in terms of fermionic creation and annihilation operators, leading to the following expression in terms of [an incomplete elliptic integral of the second kind](https://en.wikipedia.org/wiki/Elliptic_integral). +The Hamiltonian can be diagonalized in terms of fermionic creation and annihilation operators, which yields an expression for the ground state energy in terms of [an incomplete elliptic integral of the second kind](https://en.wikipedia.org/wiki/Elliptic_integral). ```math - E_0 = -\frac{1}{\pi} \text{EllipticE}\left( \sqrt{1 - \gamma^2} \right) + E_0 = -\frac{1}{π} \text{EllipticE}\left( \sqrt{1 - γ^2} \right) ``` The derivation, via a Jordan-Wigner transformation to free fermions followed by a Bogoliubov rotation, can be found in [Lieb, Schultz & Mattis, Ann. Phys. 16, 407 (1961)](https://doi.org/10.1016/0003-4916(61)90115-4). @@ -108,39 +107,39 @@ To go beyond the ground state, we can extract several properties at finite tempe This is given by ```math - Z(\beta) = \text{Tr} \left( e^{-\beta H} \right) + Z(β) = \text{Tr} \left( e^{-β H} \right) ``` -where $\beta = 1 / T$ is the inverse temperature. +where $β = 1 / T$ is the inverse temperature. Given the partition function, we can compute the free energy as ```math - F(\beta) = -\frac{1}{\beta} \log Z(\beta) + F(β) = -\frac{1}{β} \log Z(β) ``` We can also compute observables using ```math - \langle O \rangle = \frac{1}{Z} \text{Tr} \left( O e^{-\beta H} \right) + ⟨O⟩ = \frac{1}{Z} \text{Tr} \left( O e^{-β H} \right) ``` In particular, we can compute the energy as ```math - U = \langle H \rangle = \frac{1}{Z} \text{Tr} \left( H e^{-\beta H} \right) + U = ⟨H⟩ = \frac{1}{Z} \text{Tr} \left( H e^{-β H} \right) ``` Finally, the specific heat can be computed as ```math - \chi = \frac{\partial U}{\partial T} = -\beta^2 \frac{\partial U}{\partial \beta} + χ = \frac{∂ U}{∂ T} = -β^2 \frac{∂ U}{∂ β} ``` Luckily, the partition function can be computed analytically for the XY model. The resulting expression is ```math - Z(\beta) = \prod_{k=1}^{N} \left( 1 + e^{-\beta \epsilon_k} \right)^{1/N} + Z(β) = \prod_{k=1}^{N} \left( 1 + e^{-β ε_k} \right)^{1/N} ``` -This expression follows from the same free-fermion diagonalization as the ground-state energy above: each single-particle mode $\epsilon_k$ is independently occupied or empty, giving the usual free-fermion partition function (see again [Lieb, Schultz & Mattis (1961)](https://doi.org/10.1016/0003-4916(61)90115-4)). +This expression follows from the same free-fermion diagonalization as the ground-state energy above: each single-particle mode $ε_k$ is independently occupied or empty, giving the usual free-fermion partition function (see again [Lieb, Schultz & Mattis (1961)](https://doi.org/10.1016/0003-4916(61)90115-4)). """ function partition_function(β::Number, J::Number, N::Number) @@ -163,10 +162,10 @@ md""" ### MPO approach We can numerically compute the partition function by explicitly computing the trace of the time-evolution operator. -To that end, we first need to build the time-evolution operator $e^{-\beta H}$, and then compute its trace. +To that end, we first need to build the time-evolution operator $e^{-β H}$, and then compute its trace. In order to build the time-evolution operator, we can repurpose the `make_time_mpo` function, which constructs the time-evolution operator for the ground state. -However, since we are interested in $e^{-\beta H}$, instead of $e^{-iH dt}$, we work with $dt = -i \beta$. +However, since we are interested in $e^{-β H}$, instead of $e^{-iH dt}$, we work with $dt = -i β$. In particular, we can approximate the exponential using a Taylor series through the `TaylorCluster` algorithm. """ @@ -206,13 +205,13 @@ end md""" Some observations: - The first order approximation fails to capture the behavior of the partition function. -- The higher order approximations are in good agreement with the analytical result, as long as $\beta$ is not too large. -- The computational cost of the approximations does not depend on $\beta$, but on the order of the approximation. +- The higher order approximations are in good agreement with the analytical result, as long as $β$ is not too large. +- The computational cost of the approximations does not depend on $β$, but on the order of the approximation. """ md""" To address the first point, we can have a look at the particular form of the time-evolution operator. -Here we see that for this particular Hamiltonian, all the terms with factors $d\tau$ are either zero or have trace zero. +Here we see that for this particular Hamiltonian, all the terms with factors $dτ$ are either zero or have trace zero. As a result, the trace of the time-evolution operator is equal to the trace of the identity, hence the result is always $2$. ```math @@ -223,9 +222,9 @@ H &= \begin{pmatrix} 0 & 0 & 1 \end{pmatrix} \\ -e^{\tau H} &= \begin{pmatrix} - 1 + \tau D + \frac{\tau^2}{2} D^2 & C + \frac{\tau}{2} (CD + DC) \\ - \tau (B + \frac{\tau}{2} (BD + DB)) & A + \frac{\tau^2}{2} (AD + DA + CB + BC) +e^{τ H} &= \begin{pmatrix} + 1 + τ D + \frac{τ^2}{2} D^2 & C + \frac{τ}{2} (CD + DC) \\ + τ (B + \frac{τ}{2} (BD + DB)) & A + \frac{τ^2}{2} (AD + DA + CB + BC) \end{pmatrix} \end{align} ``` @@ -257,20 +256,20 @@ p_taylor_diff = let end md""" -We can now clearly see that, somewhat unsurprisingly, the error increases the larger $\beta$ becomes. -Given that we are computing Taylor expansions around $\beta = 0$, this is to be expected. +We can now clearly see that, somewhat unsurprisingly, the error increases the larger $β$ becomes. +Given that we are computing Taylor expansions around $β = 0$, this is to be expected. However, there is a trick we can use to improve our results slightly. To that end, we first rewrite the partition function as ```math -Z(\beta) = - \text{Tr} \left( e^{-\beta H} \right) = - \text{Tr} \left( e^{-\beta H / 2} e^{-\beta H / 2} \right) = - \left\langle e^{-\beta H^\dagger / 2}, e^{-\beta H / 2} \right\rangle +Z(β) = + \text{Tr} \left( e^{-β H} \right) = + \text{Tr} \left( e^{-β H / 2} e^{-β H / 2} \right) = + \left\langle e^{-β H^† / 2}, e^{-β H / 2} \right\rangle ``` -In other words, we can compute the partition function at $\beta$ by computing the overlap of two states evolved for $\beta / 2$, as long as the Hamiltonian is Hermitian. -Otherwise, we could still use the same trick, but we would have to compute the evolved states twice, once for $H$ and once for $H^\dagger$. +In other words, we can compute the partition function at $β$ by computing the overlap of two states evolved for $β / 2$, as long as the Hamiltonian is Hermitian. +Otherwise, we could still use the same trick, but we would have to compute the evolved states twice, once for $H$ and once for $H^†$. """ @@ -309,15 +308,15 @@ end md""" ### MPO multiplication approach (linear) -While the Taylor series approach is useful, we can only push that so far, since we are always expanding around $\beta = 0$. -However, inspired by the trick we used to improve the results, we can use MPO multiplication techniques to compute partition functions at larger $\beta$. -In particular, we can implement the following algorithm to scan over a linear range of $\beta$ values. +While the Taylor series approach is useful, we can only push that so far, since we are always expanding around $β = 0$. +However, inspired by the trick we used to improve the results, we can use MPO multiplication techniques to compute partition functions at larger $β$. +In particular, we can implement the following algorithm to scan over a linear range of $β$ values. ```math \begin{align} -Z(2\beta) &= Z(\beta) \cdot Z(\beta) \\ -Z(3\beta) &= Z(\beta) \cdot Z(\beta) \cdot Z(\beta) = Z(\beta) \cdot Z(2\beta) \\ -\vdots &= \vdots +Z(2β) &= Z(β) · Z(β) \\ +Z(3β) &= Z(β) · Z(β) · Z(β) = Z(β) · Z(2β) \\ +⋮ &= ⋮ \end{align} ``` @@ -382,10 +381,10 @@ p_mpo_mul_diff = let end md""" -This approach clearly improves the accuracy of the results, indicating that we can indeed compute partition functions at larger $\beta$ values. -However, the computational cost of this approach (at fixed maximal bond dimension) is now linear in $\beta$, since we need to compute the partition function at each $\beta$ value. -Often, this is fine, since we are typically interested in a range of $\beta$ values, rather than a single one. -However, to really push this to larger $\beta$ values, this can still turn out to be a bottleneck. +This approach clearly improves the accuracy of the results, indicating that we can indeed compute partition functions at larger $β$ values. +However, the computational cost of this approach (at fixed maximal bond dimension) is now linear in $β$, since we need to compute the partition function at each $β$ value. +Often, this is fine, since we are typically interested in a range of $β$ values, rather than a single one. +However, to really push this to larger $β$ values, this can still turn out to be a bottleneck. We also have to be careful with the accuracy of our results. In particular, the error in the partition function will accumulate over the iterations, which might turn the results into garbage. @@ -393,25 +392,25 @@ Typically, the entanglement entropy of the density matrix is a good measure of t Apart from the bond dimension, we have two other parameters to tune: the accuracy of the initial density matrix, and the size of the step. The accuracy of the initial density matrix can be improved by increasing the order of the Taylor expansion, but this will result in a larger MPO bond dimension. -On the other hand, if we improve the accuracy of the initial density matrix, we could also increase the step size, which would reduce the number of iterations required to reach a certain $\beta$ value. +On the other hand, if we improve the accuracy of the initial density matrix, we could also increase the step size, which would reduce the number of iterations required to reach a certain $β$ value. Keeping these parameters in balance is necessary to obtain accurate results, and this might require some trial and error. """ md""" ### MPO multiplication approach (exponential) -If we wish to push the results to even larger $\beta$ values, we can note that taking linear steps in $\beta$ is not the only option. -To that end, we can use another trick to scan over an exponential range of $\beta$ values: [exponentiating by squaring](https://en.wikipedia.org/wiki/Exponentiation_by_squaring). -In particular, we note that computing $x^n$ for integer (large) $n$ can typically be done more efficiently than computing $x \cdot x \cdot \dots \cdot x$. +If we wish to push the results to even larger $β$ values, we can note that taking linear steps in $β$ is not the only option. +To that end, we can use another trick to scan over an exponential range of $β$ values: [exponentiating by squaring](https://en.wikipedia.org/wiki/Exponentiation_by_squaring). +In particular, we note that computing $x^n$ for integer (large) $n$ can typically be done more efficiently than computing $x · x · … · x$. To do so, we note that multiplication is associative, and regroup the factors in such a way that we can compute the result in a logarithmic number of steps. Here, we assume $n = 2^m$ for some integer $m$, and note that this could be generalized to any $n$ by decomposing $n$ into a sum of powers of $2$. Then, we can write ```math -x^n = x^{2^m} = x^{2^{m-1}} \cdot x^{2^{m-1}} = (x^{2^{m-2}} \cdot x^{2^{m-2}}) \cdot (x^{2^{m-2}} \cdot x^{2^{m-2}}) = \dots +x^n = x^{2^m} = x^{2^{m-1}} · x^{2^{m-1}} = (x^{2^{m-2}} · x^{2^{m-2}}) · (x^{2^{m-2}} · x^{2^{m-2}}) = … ``` -In other words, we can scan a range of exponentially increasing $\beta$ values by squaring the density matrix at each step. +In other words, we can scan a range of exponentially increasing $β$ values by squaring the density matrix at each step. """ βs_exp = 2.0 .^ (-3:3) @@ -462,7 +461,7 @@ p_mpo_mul_exp_diff = let end md""" -Clearly, the exponential approach allows us to reach larger $\beta$ values much quicker, but there is again a trade-off. +Clearly, the exponential approach allows us to reach larger $β$ values much quicker, but there is again a trade-off. Since the size of the steps are increasing, we need to be more careful with the accuracy of our approximations. !!! warning @@ -476,14 +475,14 @@ md""" Finally, we can also note that the partition function is characterized by the following differential equation: ```math -\frac{dZ}{d\beta} = -H \cdot Z -\implies Z(\beta) = e^{-\beta H} \cdot Z(0) +\frac{dZ}{dβ} = -H · Z +⟹ Z(β) = e^{-β H} · Z(0) ``` -In other words, we can compute the partition function at $\beta$ by evolving the partition function at $0$ for a time $d\tau = -i \beta$. +In other words, we can compute the partition function at $β$ by evolving the partition function at $0$ for a time $dτ = -i β$. The starting point for this approach could be either achieved through one of the techniques we have already discussed, but we can also start from the infinite temperature state directly. -In particular, this state is given by the identity MPO, and we can evolve this state to compute the partition function at any $\beta$ value. +In particular, this state is given by the identity MPO, and we can evolve this state to compute the partition function at any $β$ value. """ Z_tdvp = zeros(length(βs)) @@ -533,6 +532,6 @@ end md""" !!! note - We could further improve the accuracy of the TDVP approach by evolving with $(H \otimes \mathbb{1} + \mathbb{1} \otimes H^\dagger)$, rather than $H \otimes \mathbb{1}$ which is the current implementation. + We could further improve the accuracy of the TDVP approach by evolving with $(H ⊗ \mathbb{1} + \mathbb{1} ⊗ H^†)$, rather than $H ⊗ \mathbb{1}$ which is the current implementation. This is known to improve the stability of the positive semidefinite property of the density matrix, and could lead to more accurate results. """ diff --git a/examples/groundstates/bose-hubbard/main.jl b/examples/groundstates/bose-hubbard/main.jl index 86edb774d..0cfa88eff 100644 --- a/examples/groundstates/bose-hubbard/main.jl +++ b/examples/groundstates/bose-hubbard/main.jl @@ -12,94 +12,75 @@ default(fontfamily = "Computer Modern", label = nothing, dpi = 100, framestyle = md""" # 1D Bose-Hubbard model -In this tutorial, we will explore the physics of the one-dimensional Bose–Hubbard model -using matrix product states. For the most part, we replicate the results presented in -[**Phys. Rev. B 105, -134502**](https://journals.aps.org/prb/abstract/10.1103/PhysRevB.105.134502), which can be -consulted for any statements in this tutorial that are not otherwise cited. The Hamiltonian -under study is defined as follows: +In this tutorial, we will explore the physics of the one-dimensional Bose–Hubbard model using matrix product states. +For the most part, we replicate the results presented in [**Phys. Rev. B 105, 134502**](https://journals.aps.org/prb/abstract/10.1103/PhysRevB.105.134502), which can be consulted for any statements in this tutorial that are not otherwise cited. +The Hamiltonian under study is defined as follows: -$$H = -t \sum_{i} (\hat{a}_i^{\dagger} \hat{a}_{i+1} + \hat{a}_{i+1}^{\dagger} \hat{a}_i) + \frac{U}{2} \sum_i \hat{n}_i(\hat{n}_i - 1) - \mu \sum_i \hat{n}_i$$ +$$H = -t \sum_{i} (â_i^{†} â_{i+1} + â_{i+1}^{†} â_i) + \frac{U}{2} \sum_i \hat{n}_i(\hat{n}_i - 1) - μ \sum_i \hat{n}_i$$ -where the bosonic creation and annihilation operators satisfy the canonical commutation -relations (CCR): +where the bosonic creation and annihilation operators satisfy the canonical commutation relations (CCR): -$$[\hat{a}_i, \hat{a}_j^{\dagger}] = \delta_{ij}.$$ +$$[â_i, â_j^{†}] = δ_{ij}.$$ -Each lattice site hosts a local Hilbert space corresponding to bosonic occupation states -$|n\rangle$, where $(n = 0, 1, 2, \ldots)$. Since this space is formally -infinite-dimensional, numerical simulations typically impose a truncation at some maximum -occupation number $(n_{\text{max}})$. Such a treatment is justified since it can be observed -that the simulation results quickly converge with the cutoff if the filling fraction is kept -sufficiently low. +Each lattice site hosts a local Hilbert space corresponding to bosonic occupation states $|n⟩$, where $(n = 0, 1, 2, …)$. +Since this space is formally infinite-dimensional, numerical simulations typically impose a truncation at some maximum occupation number $(n_{\text{max}})$. +Such a treatment is justified since it can be observed that the simulation results quickly converge with the cutoff if the filling fraction is kept sufficiently low. -Within this truncated space, the local creation and annihilation operators are represented -by finite-dimensional matrices. For example, with cutoff $n_{\text{max}}$, the annihilation -operator takes the form +Within this truncated space, the local creation and annihilation operators are represented by finite-dimensional matrices. +For example, with cutoff $n_{\text{max}}$, the annihilation operator takes the form ```math -\hat{a} = +â = \begin{bmatrix} -0 & \sqrt{1} & 0 & 0 & \cdots & 0 \\ -0 & 0 & \sqrt{2} & 0 & \cdots & 0 \\ -0 & 0 & 0 & \sqrt{3} & \cdots & 0 \\ -\vdots & & & \ddots & \ddots & \vdots \\ -0 & 0 & 0 & \cdots & 0 & \sqrt{n_{\text{max}}} \\ -0 & 0 & 0 & \cdots & 0 & 0 +0 & \sqrt{1} & 0 & 0 & ⋯ & 0 \\ +0 & 0 & \sqrt{2} & 0 & ⋯ & 0 \\ +0 & 0 & 0 & \sqrt{3} & ⋯ & 0 \\ +⋮ & & & ⋱ & ⋱ & ⋮ \\ +0 & 0 & 0 & ⋯ & 0 & \sqrt{n_{\text{max}}} \\ +0 & 0 & 0 & ⋯ & 0 & 0 \end{bmatrix} ``` and the creation operator is simply its Hermitian conjugate, ```math -\hat{a}^\dagger = +â^† = \begin{bmatrix} -0 & 0 & 0 & \cdots & 0 & 0 \\ -\sqrt{1} & 0 & 0 & \cdots & 0 & 0 \\ -0 & \sqrt{2} & 0 & \cdots & 0 & 0 \\ -\vdots & & \ddots & \ddots & & \vdots \\ -0 & 0 & 0 & \cdots & 0 & 0 \\ -0 & 0 & 0 & \cdots & \sqrt{n_{\text{max}}} & 0 +0 & 0 & 0 & ⋯ & 0 & 0 \\ +\sqrt{1} & 0 & 0 & ⋯ & 0 & 0 \\ +0 & \sqrt{2} & 0 & ⋯ & 0 & 0 \\ +⋮ & & ⋱ & ⋱ & & ⋮ \\ +0 & 0 & 0 & ⋯ & 0 & 0 \\ +0 & 0 & 0 & ⋯ & \sqrt{n_{\text{max}}} & 0 \end{bmatrix} ``` The number operator is then given by -$$\hat{n} = \hat{a}^\dagger \hat{a} = \mathrm{diag}(0, 1, 2, \ldots, n_{\text{max}}).$$ +$$\hat{n} = â^† â = \mathrm{diag}(0, 1, 2, …, n_{\text{max}}).$$ Before moving on, notice that the Hamiltonian is uniform and translationally invariant. -Typically, such models are studied on a finite chain of $N$ sites with periodic boundary -conditions, but this introduces finite-size effects that are rather annoying to deal with. -In contrast, the MPS framework allows us to work directly in the thermodynamic limit, -avoiding such artifacts. We will follow this line of exploration in this tutorial and leave -finite systems for another example. - -In order to work in the thermodynamic limit, we will have to create an -[`InfiniteMPS`](@ref). A complete specification of the MPS requires us to define the -physical space and the virtual space of the constituent tensors. At this point is it useful -to note that `MPSKit.jl` is powered by -[`TensorKit.jl`](https://github.com/QuantumKitHub/TensorKit.jl) under the hood and has some -very generic interfaces in order to allow imposing symmetries of all kinds. As a result, it -is sometimes necessary to be a bit more explicit about what we want to do in terms of the -vector spaces involved. In this case, we will not consider any symmetries and simply take -the most naive approach of working within the [`Trivial`](@extref TensorKitSectors.Trivial) -sector. The physical space is then `ℂ^(nmax+1)`, and the virtual space is `ℂ^D` where $D$ is -some integer chosen to be the bond dimension of the MPS, and `ℂ` is an alias for -[`ComplexSpace`](@extref TensorKit.ComplexSpace) (typeset as `\bbC`). As $D$ is increased, -one increases the amount of entanglement, i.e, quantum correlations that can be captured by -the state. +Typically, such models are studied on a finite chain of $N$ sites with periodic boundary conditions, but this introduces finite-size effects that are rather annoying to deal with. +In contrast, the MPS framework allows us to work directly in the thermodynamic limit, avoiding such artifacts. +We will follow this line of exploration in this tutorial and leave finite systems for another example. + +In order to work in the thermodynamic limit, we will have to create an [`InfiniteMPS`](@ref). +A complete specification of the MPS requires us to define the physical space and the virtual space of the constituent tensors. +At this point is it useful to note that `MPSKit.jl` is powered by [`TensorKit.jl`](https://github.com/QuantumKitHub/TensorKit.jl) under the hood and has some very generic interfaces in order to allow imposing symmetries of all kinds. +As a result, it is sometimes necessary to be a bit more explicit about what we want to do in terms of the vector spaces involved. +In this case, we will not consider any symmetries and simply take the most naive approach of working within the [`Trivial`](@extref TensorKitSectors.Trivial) sector. +The physical space is then `ℂ^(nmax+1)`, and the virtual space is `ℂ^D` where $D$ is some integer chosen to be the bond dimension of the MPS, and `ℂ` is an alias for [`ComplexSpace`](@extref TensorKit.ComplexSpace) (typeset as `\bbC`). +As $D$ is increased, one increases the amount of entanglement, i.e, quantum correlations that can be captured by the state. """ cutoff, D = 4, 5 initial_state = InfiniteMPS(ℂ^(cutoff + 1), ℂ^D) md""" -This simply initializes a tensor filled with random entries (check out the documentation for -other useful constructors). Next, we need the creation and annihilation operators. While we -could construct them from scratch, here we will use -[`MPSKitModels.jl`](https://github.com/QuantumKitHub/MPSKitModels.jl) instead that has -predefined operators and models for most well-known lattice models. In particular, we can -use [`MPSKitModels.a_min`](@extref) to create the bosonic annihilation operator. +This simply initializes a tensor filled with random entries (check out the documentation for other useful constructors). +Next, we need the creation and annihilation operators. +While we could construct them from scratch, here we will use [`MPSKitModels.jl`](https://github.com/QuantumKitHub/MPSKitModels.jl) instead that has predefined operators and models for most well-known lattice models. +In particular, we can use [`MPSKitModels.a_min`](@extref) to create the bosonic annihilation operator. """ a_op = a_min(cutoff = cutoff) # creates a bosonic annihilation operator without any symmetries @@ -108,30 +89,25 @@ display((a_op' * a_op)[]) md""" -The [] accessor lets us see the underlying array, and indeed the operators are exactly what -we require. Similarly, the Bose Hubbard model is also predefined in -[`MPSKitModels.bose_hubbard_model`](@extref) (although we will construct our own variant -later on). +The [] accessor lets us see the underlying array, and indeed the operators are exactly what we require. +Similarly, the Bose Hubbard model is also predefined in [`MPSKitModels.bose_hubbard_model`](@extref) (although we will construct our own variant later on). """ hamiltonian = bose_hubbard_model(InfiniteChain(1); cutoff = cutoff, U = 1, mu = 0.5, t = 0.2) # It is not strictly required to pass InfiniteChain() and is only included for clarity; one may instead pass FiniteChain(N) as well md""" -This has created the Hamiltonian operator as a [matrix product operator](@ref -InfiniteMPOHamiltonian) (MPO) which is a convenient form to use in conjunction with MPS. -Finally, the ground state optimization may be performed with either [`iDMRG`](@ref IDMRG) or -[`VUMPS`](@ref). Both should take similar arguments but it is known that VUMPS is typically -more efficient for these systems so we proceed with that. +This has created the Hamiltonian operator as a [matrix product operator](@ref InfiniteMPOHamiltonian) (MPO) which is a convenient form to use in conjunction with MPS. +Finally, the ground state optimization may be performed with either [`iDMRG`](@ref IDMRG) or [`VUMPS`](@ref). +Both should take similar arguments but it is known that VUMPS is typically more efficient for these systems so we proceed with that. """ ground_state, _, _ = find_groundstate(initial_state, hamiltonian, VUMPS(tol = 1.0e-6, verbosity = 2, maxiter = 200)) println("Energy: ", expectation_value(ground_state, hamiltonian)) md""" -This automatically runs the algorithm until a certain [error measure](@ref -MPSKit.calc_galerkin) falls below the specified tolerance or the maximum iterations is -reached. Let us wrap all this into a convenient function. +This automatically runs the algorithm until a certain [error measure](@ref MPSKit.calc_galerkin) falls below the specified tolerance or the maximum iterations is reached. +Let us wrap all this into a convenient function. """ function get_ground_state(mu, t, cutoff, D; kwargs...) @@ -146,19 +122,18 @@ ground_state = get_ground_state(0.5, 0.01, cutoff, D; tol = 1.0e-6, verbosity = md""" -Now that we have the state, we may compute observables using the [`expectation_value`](@ref) -function. It typically expects a `Pair`, `(i1, i2, .., ik) => op` where `op` is a -`TensorMap` or `InfiniteMPO` acting over `k` sites. In case of the Hamiltonian, it is not -necessary to specify the indices as it spans the whole lattice. We can now plot the -correlation function $\langle \hat{a}^{\dagger}_i \hat{a}_j\rangle$. +Now that we have the state, we may compute observables using the [`expectation_value`](@ref) function. +It typically expects a `Pair`, `(i1, i2, .., ik) => op` where `op` is a `TensorMap` or `InfiniteMPO` acting over `k` sites. +In case of the Hamiltonian, it is not necessary to specify the indices as it spans the whole lattice. +We can now plot the correlation function $⟨â^{†}_i â_j⟩$. """ plot(map(i -> real.(expectation_value(ground_state, (0, i) => a_op' ⊗ a_op)), 1:50), lw = 2, xlabel = "Site index", ylabel = "Correlation function", yscale = :log10) hline!([abs2(expectation_value(ground_state, (0,) => a_op))], ls = :dash, c = :black) md""" -We see that the correlations drop off exponentially, indicating the existence of a gapped -Mott insulating phase. Let us now shift our parameters to probe other phases. +We see that the correlations drop off exponentially, indicating the existence of a gapped Mott insulating phase. +Let us now shift our parameters to probe other phases. """ ground_state = get_ground_state(0.5, 0.2, cutoff, D; tol = 1.0e-6, verbosity = 2, maxiter = 500) @@ -167,20 +142,13 @@ plot(map(i -> real.(expectation_value(ground_state, (0, i) => a_op' ⊗ a_op)), hline!([abs2(expectation_value(ground_state, (0,) => a_op))], ls = :dash, c = :black) md""" -In this case, the correlation function drops off algebraically and eventually saturates as -$\lim_{i \to \infty}\langle\hat{a}_i^{\dagger} \hat{a}_j\rangle ≈ \langle \hat{a}_i^{\dagger}\rangle \langle \hat{a}_j \rangle = |\langle a_i \rangle|^2 \neq 0$. -This is a signature of long-range order and suggests the existence of a Bose-Einstein -condensate. However, this is a bit odd since at zero temperature, the Bose Hubbard model is -not expected to break any continuous symmetries ($U(1)$ in this case, corresponding to -particle number conservation) due to the -[Mermin-Wagner theorem](https://en.wikipedia.org/wiki/Mermin%E2%80%93Wagner_theorem). The -source of this contradiction lies in the fact that the true 1D superfluid ground state is an -extended critical phase exhibiting algebraic decay, however, a finite bond-dimension MPS can -only capture exponentially decaying correlations. As a result, the finite bond dimension -effectively introduces a length scale into the system in a similar manner as finite-size -effects. We can see this clearly by increasing the bond dimension. We also see that the -correlation length seems to depend algebraically on the bond dimension as expected from -finite-entanglement scaling arguments. +In this case, the correlation function drops off algebraically and eventually saturates as $\lim_{i → ∞}⟨â_i^{†} â_j⟩ ≈ ⟨â_i^{†}⟩ ⟨â_j⟩ = |⟨a_i⟩|^2 ≠ 0$. +This is a signature of long-range order and suggests the existence of a Bose-Einstein condensate. +However, this is a bit odd since at zero temperature, the Bose Hubbard model is not expected to break any continuous symmetries ($U(1)$ in this case, corresponding to particle number conservation) due to the [Mermin-Wagner theorem](https://en.wikipedia.org/wiki/Mermin%E2%80%93Wagner_theorem). +The source of this contradiction lies in the fact that the true 1D superfluid ground state is an extended critical phase exhibiting algebraic decay, however, a finite bond-dimension MPS can only capture exponentially decaying correlations. +As a result, the finite bond dimension effectively introduces a length scale into the system in a similar manner as finite-size effects. +We can see this clearly by increasing the bond dimension. +We also see that the correlation length seems to depend algebraically on the bond dimension as expected from finite-entanglement scaling arguments. """ cutoff = 4 @@ -227,50 +195,42 @@ scatter!( ) md""" -This shows that any finite bond dimension MPS necessarily breaks the symmetry of the system, -forming a Bose-Einstein condensate which introduces erroneous long-distance behaviour of -correlation functions. In case of finite bond dimension, it is thus reasonable to associate -the finite expectation value of the field operator to the 'quasicondensate' density of the -system which vanishes as $D \to \infty$. +This shows that any finite bond dimension MPS necessarily breaks the symmetry of the system, forming a Bose-Einstein condensate which introduces erroneous long-distance behaviour of correlation functions. +In case of finite bond dimension, it is thus reasonable to associate the finite expectation value of the field operator to the 'quasicondensate' density of the system which vanishes as $D → ∞$. """ quasicondensate_density = map(state -> abs2(expectation_value(state, (0,) => a_op)), states) md""" -We may now also visualize the momentum distribution function, which is obtained as the -Fourier transform of the single-particle density matrix. Starting from the definition of the -momentum occupation operators: +We may now also visualize the momentum distribution function, which is obtained as the Fourier transform of the single-particle density matrix. +Starting from the definition of the momentum occupation operators: ```math -\hat{a}_k = \frac{1}{\sqrt{L}} \sum_j e^{-ikj} \hat{a}_j, \qquad -\hat{a}_k^\dagger = \frac{1}{\sqrt{L}} \sum_{j'} e^{ikj'} \hat{a}_{j'}^\dagger +â_k = \frac{1}{\sqrt{L}} \sum_j e^{-ikj} â_j, \qquad +â_k^† = \frac{1}{\sqrt{L}} \sum_{j'} e^{ikj'} â_{j'}^† ``` the momentum distribution is ```math -\langle \hat{n}_k \rangle = \langle \hat{a}_k^\dagger \hat{a}_k \rangle -= \frac{1}{L} \sum_{j',j} e^{ik(j'-j)} \langle \hat{a}_{j'}^\dagger \hat{a}_j \rangle. +⟨\hat{n}_k⟩ = ⟨â_k^† â_k⟩ += \frac{1}{L} \sum_{j',j} e^{ik(j'-j)} ⟨â_{j'}^† â_j⟩. ``` -For a translationally invariant system, the correlation depends only on the distance -$r = j' - j$: +For a translationally invariant system, the correlation depends only on the distance $r = j' - j$: -$$\langle \hat{a}_{j'}^\dagger \hat{a}_j \rangle = C(r) = \langle \hat{a}_r^\dagger \hat{a}_0 \rangle.$$ +$$⟨â_{j'}^† â_j⟩ = C(r) = ⟨â_r^† â_0⟩.$$ Changing variables ($j' = j + r$) gives -$$\langle \hat{n}_k \rangle = \frac{1}{L} \sum_j \sum_r e^{ikr} C(r).$$ +$$⟨\hat{n}_k⟩ = \frac{1}{L} \sum_j \sum_r e^{ikr} C(r).$$ The sum over $j$ yields a factor of $L$, which cancels the prefactor, leading to -$$\langle \hat{n}_k \rangle = \sum_{r \in \mathbb{Z}} e^{ikr} \langle \hat{a}_r^\dagger \hat{a}_0 \rangle$$ +$$⟨\hat{n}_k⟩ = \sum_{r ∈ \mathbb{Z}} e^{ikr} ⟨â_r^† â_0⟩$$ -However, we know that a finite bond dimension MPS introduces a non-zero quasi-condensate -density which would give rise to an $\mathcal{O}(N)$ divergence in the momentum distribution -that is not indicative of the true physics of the system. Since we know this contribution -vanishes in the infinite bond dimension limit, we instead work with -$\langle \hat{a}_r^{\dagger} \hat{a}_0 \rangle_c = \langle \hat{a}_r^{\dagger} \hat{a}_0 \rangle - |\langle \hat{a}\rangle|^2$. +However, we know that a finite bond dimension MPS introduces a non-zero quasi-condensate density which would give rise to an $\mathcal{O}(N)$ divergence in the momentum distribution that is not indicative of the true physics of the system. +Since we know this contribution vanishes in the infinite bond dimension limit, we instead work with $⟨â_r^{†} â_0⟩_c = ⟨â_r^{†} â_0⟩ - |⟨â⟩|^2$. """ ks = range(-0.05, 0.15, 500) @@ -287,39 +247,23 @@ momentum_distribution = vcat(momentum_distribution...)' plot(ks, momentum_distribution, lab = "D = " .* string.(permutedims(Ds)), lw = 1.5, xlabel = "Momentum k", ylabel = L"\langle n_k \rangle", ylim = [0, 50]) md""" -We see that the density seems to peak around $k=0$, this time seemingly becoming more -prominent as $D \to \infty$ which seems to suggest again that there is a condensate. -However, going by the Penrose-Onsager criterion, the existence of a condensate can be -quantified by requiring the leading eigenvalue of the single particle density matrix (i.e, -$\langle \hat{n}_{k=0}\rangle = \sum_j \langle \hat{a}_j^{\dagger} \hat{a}_0\rangle$) to -diverge as $O(N)$ in the thermodynamic limit. In this case, since the correlations decay as -a power law, there is naturally a divergence at low momenta. But this does not imply the -existence of a condensate since the order of divergence is much weaker. However, this does -indicate the remnants of some kind of condensation in the 1D model despite the quantum -fluctuations, leading to the practical utility of defining the concept of a quasicondensate -where there is still a notion of phase coherence over short distances. - -What this means for us is that, as far as MPS simulations go, we may still utilize the -quasicondensate density as an effective order parameter, although it will be less robust as -the bond dimension is increased. Alternatively, we realize that the true phase is -characterized as being a superfluid (a concept distinct from Bose-Einstein condensation) and -can be identified by a non-zero value of the superfluid stiffness (also known as helicity -modulus, $\Upsilon$) as defined by Leggett. Upon applying a phase twist $\Phi$ to the -boundaries of the system, a superfluid phase would suffer an increase in energy whereas an -insulating phase would not. In the thermodynamic limit, one could show that the boundary -conditions may be considered as periodic and instead uniformly distribute the phase across -the chain as $\hat{a}_i \to \hat{a}_i e^{i\Phi/L}$. Concretely, in the limit of -$\Phi/L \to 0$, we have: - -$$\frac{E[\Phi] - E[0]}{L} \approx \frac{1}{2} \Upsilon(L) \bigg (\frac{\Phi}{L}\bigg)^2 + \cdots$$ - -In order to find the ground state under these twisted boundary conditions, we must construct -our own variant of the Bose-Hubbard Hamiltonian. Typically you would want to take a peek at -the -[source code](https://github.com/QuantumKitHub/MPSKitModels.jl/blob/f4c36d9660a9eab05fa253ffd5c20dc6b7df44cc/src/models/hamiltonians.jl#L379-L409) -of `MPSKitModels.jl` to see how these models are defined and tweak it as per your needs. -Here we see that applying twisted boundary conditions is equivalent to adding a prefactor of -$e^{\pm i\phi}$ in front of the hopping amplitudes. +We see that the density seems to peak around $k=0$, this time seemingly becoming more prominent as $D → ∞$ which seems to suggest again that there is a condensate. +However, going by the Penrose-Onsager criterion, the existence of a condensate can be quantified by requiring the leading eigenvalue of the single particle density matrix (i.e, $⟨\hat{n}_{k=0}⟩ = \sum_j ⟨â_j^{†} â_0⟩$) to diverge as $O(N)$ in the thermodynamic limit. +In this case, since the correlations decay as a power law, there is naturally a divergence at low momenta. +But this does not imply the existence of a condensate since the order of divergence is much weaker. +However, this does indicate the remnants of some kind of condensation in the 1D model despite the quantum fluctuations, leading to the practical utility of defining the concept of a quasicondensate where there is still a notion of phase coherence over short distances. + +What this means for us is that, as far as MPS simulations go, we may still utilize the quasicondensate density as an effective order parameter, although it will be less robust as the bond dimension is increased. +Alternatively, we realize that the true phase is characterized as being a superfluid (a concept distinct from Bose-Einstein condensation) and can be identified by a non-zero value of the superfluid stiffness (also known as helicity modulus, $Υ$) as defined by Leggett. +Upon applying a phase twist $Φ$ to the boundaries of the system, a superfluid phase would suffer an increase in energy whereas an insulating phase would not. +In the thermodynamic limit, one could show that the boundary conditions may be considered as periodic and instead uniformly distribute the phase across the chain as $â_i → â_i e^{iΦ/L}$. +Concretely, in the limit of $Φ/L → 0$, we have: + +$$\frac{E[Φ] - E[0]}{L} ≈ \frac{1}{2} Υ(L) \bigg (\frac{Φ}{L}\bigg)^2 + ⋯$$ + +In order to find the ground state under these twisted boundary conditions, we must construct our own variant of the Bose-Hubbard Hamiltonian. +Typically you would want to take a peek at the [source code](https://github.com/QuantumKitHub/MPSKitModels.jl/blob/f4c36d9660a9eab05fa253ffd5c20dc6b7df44cc/src/models/hamiltonians.jl#L379-L409) of `MPSKitModels.jl` to see how these models are defined and tweak it as per your needs. +Here we see that applying twisted boundary conditions is equivalent to adding a prefactor of $e^{± iφ}$ in front of the hopping amplitudes. """ function bose_hubbard_model_twisted_bc( @@ -367,14 +311,9 @@ superfluid_stiffness_profile(0.2, 0.3, 5, 4) # superfluid superfluid_stiffness_profile(0.01, 0.3, 5, 4) # mott insulator md""" -Now that we know what phases to expect, we can plot the phase diagram by scanning over a -range of parameters. In general, one could do better by performing a bisection algorithm for -each chemical potential to determine the value of the hopping parameter at the transition -point, however the 1D Bose-Hubbard model may have two transition points at the same chemical -potential which makes this a bit cumbersome to implement robustly. Furthermore, we stick to -using the quasi-condensate density as an order parameter since extracting the superfluid -density accurately requires a more robust scheme to compute second derivatives which takes -us away from the focus of this tutorial. +Now that we know what phases to expect, we can plot the phase diagram by scanning over a range of parameters. +In general, one could do better by performing a bisection algorithm for each chemical potential to determine the value of the hopping parameter at the transition point, however the 1D Bose-Hubbard model may have two transition points at the same chemical potential which makes this a bit cumbersome to implement robustly. +Furthermore, we stick to using the quasi-condensate density as an order parameter since extracting the superfluid density accurately requires a more robust scheme to compute second derivatives which takes us away from the focus of this tutorial. """ cutoff, D = 4, 10 @@ -394,9 +333,6 @@ end heatmap(ts, mus, order_parameters, xlabel = L"t/U", ylabel = L"\mu/U", title = L"\langle \hat{a}_i \rangle") md""" -Although the bond dimension here is quite low, we already see the deformation of the Mott -insulator lobes to give way to the well known BKT transition that happens at commensurate -density. One can go further and estimate the critical exponents using finite-entanglement -scaling procedures on the correlation functions, but these may now be performed with ease -using what we have learnt in this tutorial. +Although the bond dimension here is quite low, we already see the deformation of the Mott insulator lobes to give way to the well known BKT transition that happens at commensurate density. +One can go further and estimate the critical exponents using finite-entanglement scaling procedures on the correlation functions, but these may now be performed with ease using what we have learnt in this tutorial. """ diff --git a/examples/groundstates/haldane-spt/main.jl b/examples/groundstates/haldane-spt/main.jl index 937228e6d..e04bad1bb 100644 --- a/examples/groundstates/haldane-spt/main.jl +++ b/examples/groundstates/haldane-spt/main.jl @@ -1,31 +1,24 @@ md""" # Spin 1 Heisenberg model -The quantum Heisenberg model is a model often used in the study of critical points and phase -transitions of magnetic systems, in which the spins are treated quantum mechanically. It -models magnetic interactions between neighbouring spins through the so-called Heisenberg -interaction term, which causes the spins to either align ($J > 0$) or anti-align ($J < 0$), -thus modeling a (anti-) ferromagnetic system. Here, we will focus on the case of $S = 1$, -with anti-ferromagnetic interactions. +The quantum Heisenberg model is a model often used in the study of critical points and phase transitions of magnetic systems, in which the spins are treated quantum mechanically. +It models magnetic interactions between neighbouring spins through the so-called Heisenberg interaction term, which causes the spins to either align ($J > 0$) or anti-align ($J < 0$), thus modeling a (anti-) ferromagnetic system. +Here, we will focus on the case of $S = 1$, with anti-ferromagnetic interactions. ```math -H = -J \sum_{\langle i, j \rangle} \vec{S}_i \cdot \vec{S}_j +H = -J \sum_{⟨i, j⟩} \vec{S}_i · \vec{S}_j ``` -Importantly, the Hamiltonian of the isotropic model is invariant under $SU(2)$ rotations, -which can be exploited to increase efficiency, as well as interpretability of the MPS -simulations. To see this, we can make use of the following derivation for the interaction -term: +Importantly, the Hamiltonian of the isotropic model is invariant under $SU(2)$ rotations, which can be exploited to increase efficiency, as well as interpretability of the MPS simulations. +To see this, we can make use of the following derivation for the interaction term: ```math -(\vec{S}_i + \vec{S}_j)^2 = \vec{S}_i^2 + 2 \vec{S}_i \cdot \vec{S}_j + \vec{S}_j^2 -\implies \vec{S}_i \cdot \vec{S}_j = \frac{1}{2} \left( (\vec{S}_i + \vec{S}_j)^2 - \vec{S}_i^2 - \vec{S}_j^2 \right) +(\vec{S}_i + \vec{S}_j)^2 = \vec{S}_i^2 + 2 \vec{S}_i · \vec{S}_j + \vec{S}_j^2 +⟹ \vec{S}_i · \vec{S}_j = \frac{1}{2} \left( (\vec{S}_i + \vec{S}_j)^2 - \vec{S}_i^2 - \vec{S}_j^2 \right) ``` -Here, we recognize the quadratic -[Casimir element](https://en.wikipedia.org/wiki/Casimir_element) $\vec{S}^2$, which commutes -with the elements of $SU(2)$. Consequently, the Hamiltonian also commutes with all elements -of $SU(2)$. +Here, we recognize the quadratic [Casimir element](https://en.wikipedia.org/wiki/Casimir_element) $\vec{S}^2$, which commutes with the elements of $SU(2)$. +Consequently, the Hamiltonian also commutes with all elements of $SU(2)$. """ using TensorKit @@ -48,33 +41,27 @@ H = heisenberg_hamiltonian() md""" ## Symmetry-Protected Topological Order -The representations of $SU(2)$ possess additional structure, known as a -$\mathbb{Z}_2$-grading. This means, that they can be partitioned in integer $(+)$ and -half-integer $(-)$ spins, and the fusion rules will respect this grading. In other words, -the following table holds: +The representations of $SU(2)$ possess additional structure, known as a $\mathbb{Z}_2$-grading. +This means, that they can be partitioned in integer $(+)$ and half-integer $(-)$ spins, and the fusion rules will respect this grading. +In other words, the following table holds: -| $s_1$ | $s_2$ | $s_1 \otimes s_2$ | +| $s_1$ | $s_2$ | $s_1 ⊗ s_2$ | | --- | --- | --- | | $+$ | $+$ | $+$ | | $+$ | $-$ | $-$ | | $-$ | $+$ | $-$ | | $-$ | $-$ | $+$ | -This has important consequences for the MPS representation of an $SU(2)$-symmetric state. If -the physical spin consists of only integer representations, this means that the left and -right virtual spaces of the MPS tensor belong to the same grading, i.e. are either both -integer, or both half-integer. Thus, naively constructing a MPS tensor which contains spins -from both classes, will necessarily be the direct sum of the two, which yields a -non-injective MPS. +This has important consequences for the MPS representation of an $SU(2)$-symmetric state. +If the physical spin consists of only integer representations, this means that the left and right virtual spaces of the MPS tensor belong to the same grading, i.e. are either both integer, or both half-integer. +Thus, naively constructing a MPS tensor which contains spins from both classes, will necessarily be the direct sum of the two, which yields a non-injective MPS. ```math -\ket{\psi} = \ket{\psi_+} \oplus \ket{\psi_-} +|ψ⟩ = |ψ_+⟩ ⊕ |ψ_-⟩ ``` -Because of this direct sum, many of the usual MPS algorithms will fail, as they typically -cannot deal with non-injective MPS. The resulting MPS will have multiple values of the -transfer matrix spectrum that have a magnitude close to 1, which is a clear sign of a -non-injective MPS. +Because of this direct sum, many of the usual MPS algorithms will fail, as they typically cannot deal with non-injective MPS. +The resulting MPS will have multiple values of the transfer matrix spectrum that have a magnitude close to 1, which is a clear sign of a non-injective MPS. """ ℋ = SU2Space(1 => 1) @@ -85,21 +72,15 @@ sectors = SU2Irrep[0, 1 // 2, 1, 3 // 2] transferplot(ψ; sectors, title = "Transfer matrix spectrum", legend = :outertop) md""" -Nevertheless, using the symmetry, this can be remedied rather easily, by imposing the -ground state to belong to a single class, and comparing the results. We can readily obtain 3 -different criteria for determining the SPT phase of the ground state. +Nevertheless, using the symmetry, this can be remedied rather easily, by imposing the ground state to belong to a single class, and comparing the results. +We can readily obtain 3 different criteria for determining the SPT phase of the ground state. -Firstly, we can compare variational energies for states of similar bond dimensions. As we -expect the state of the wrong SPT phase to have to expend some of its expressiveness in -correcting the SPT, it should have a harder time reaching lower energies. +Firstly, we can compare variational energies for states of similar bond dimensions. +As we expect the state of the wrong SPT phase to have to expend some of its expressiveness in correcting the SPT, it should have a harder time reaching lower energies. -Secondly, when inspecting the spectrum of the transfer matrix, we should see that the wrong -SPT phase has a dominant value that is not in the trivial sector, which leads to a -non-injective MPS. +Secondly, when inspecting the spectrum of the transfer matrix, we should see that the wrong SPT phase has a dominant value that is not in the trivial sector, which leads to a non-injective MPS. -Finally, the entanglement spectrum of the wrong SPT phase will show degeneracies of all -singular values, which can again be attributed to an attempt to mimic the spectrum of the -right SPT phase. +Finally, the entanglement spectrum of the wrong SPT phase will show degeneracies of all singular values, which can again be attributed to an attempt to mimic the spectrum of the right SPT phase. """ V_plus = SU2Space(0 => 10, 1 => 5, 2 => 3) @@ -134,21 +115,18 @@ plot(entanglementp_plus, entanglementp_minus; layout = (1, 2), size = (800, 400) md""" -As we can see, the ground state can be found in the non-trivial SPT phase, $\ket{\psi_-}$. We -can obtain an intuitive understanding of $\ket{\psi_+}$ by considering the following -diagram. If we denote the MPS tensors that make up the ground state as $A_-$, we can -construct a state in the trivial SPT phase that approximates the ground state as follows: +As we can see, the ground state can be found in the non-trivial SPT phase, $|ψ_-⟩$. +We can obtain an intuitive understanding of $|ψ_+⟩$ by considering the following diagram. +If we denote the MPS tensors that make up the ground state as $A_-$, we can construct a state in the trivial SPT phase that approximates the ground state as follows: ```@raw html SPT tensors ``` -In other words, we can factorize a purely virtual isomorphism of $S = 1/2$ in order to -obtain the ground state. This then also explains the degeneracies in the entanglement -spectrum as well as in the transfer matrix spectrum. Finally, we can further confirm this -intuition by looking at the entanglement entropy of the ground state. As we can see, the -entanglement entropy of the state in the wrong SPT phase is exactly $log(2)$ higher than the -one in the right SPT phase, which is exactly what we would expect from the diagram above. +In other words, we can factorize a purely virtual isomorphism of $S = 1/2$ in order to obtain the ground state. +This then also explains the degeneracies in the entanglement spectrum as well as in the transfer matrix spectrum. +Finally, we can further confirm this intuition by looking at the entanglement entropy of the ground state. +As we can see, the entanglement entropy of the state in the wrong SPT phase is exactly $log(2)$ higher than the one in the right SPT phase, which is exactly what we would expect from the diagram above. """ S_minus = sum(real, entropy(ψ_minus)) diff --git a/examples/groundstates/hubbard/main.jl b/examples/groundstates/hubbard/main.jl index b3400dc13..c138966f8 100644 --- a/examples/groundstates/hubbard/main.jl +++ b/examples/groundstates/hubbard/main.jl @@ -4,8 +4,7 @@ md""" # Hubbard chain at half filling The Hubbard model is a model of interacting fermions on a lattice, which is often used as a somewhat realistic model for electrons in a solid. -The Hamiltonian consists of two terms that describe competing forces of each electron: -a kinetic term that allows electrons to hop between neighboring sites, and a potential term reflecting on-site interactions between electrons. +The Hamiltonian consists of two terms that describe competing forces of each electron: a kinetic term that allows electrons to hop between neighboring sites, and a potential term reflecting on-site interactions between electrons. Often, a third term is included which serves as a chemical potential to control the number of electrons in the system. ```math @@ -20,7 +19,7 @@ This results in the following Hamiltonian: H = - ∑_{⟨i, j⟩, σ} c^{†}_{i,σ} c_{j,σ} + U / 4 ∑_i (1 - 2 n_{i,↑}) (1 - 2 n_{i,↓}) - μ ∑_{i,σ} n_{i,σ} ``` -Finally, setting `\mu = 0` and defining `u = U / 4` we obtain the Hubbard model at half-filling. +Finally, setting `μ = 0` and defining `u = U / 4` we obtain the Hubbard model at half-filling. ```math H = - ∑_{⟨i, j⟩, σ} c^{†}_{i,σ} c_{j,σ} + u ∑_i (1 - 2 n_{i,↑}) (1 - 2 n_{i,↓}) @@ -140,7 +139,7 @@ The elementary excitations are known as spinons and holons, which are domain wal The fact that the spin and charge sectors are separate is a phenomenon known as spin-charge separation. The domain walls can be constructed by noticing that there are two equivalent groundstates, which differ by a translation over a single site. -In other words, the groundstates are ``\psi_{AB}`` and ``\psi_{BA}``, where ``A`` and ``B`` are the two sites. +In other words, the groundstates are ``ψ_{AB}`` and ``ψ_{BA}``, where ``A`` and ``B`` are the two sites. These excitations can be constructed as follows: """ diff --git a/examples/groundstates/ising-cft/main.jl b/examples/groundstates/ising-cft/main.jl index 571e6ec74..4f52e8448 100644 --- a/examples/groundstates/ising-cft/main.jl +++ b/examples/groundstates/ising-cft/main.jl @@ -1,17 +1,15 @@ md""" # The Ising CFT spectrum -This tutorial is meant to show the finite size CFT spectrum for the quantum Ising model. We -do this by first employing an exact diagonalization technique, and then extending the -analysis to larger system sizes through the use of MPS techniques. +This tutorial is meant to show the finite size CFT spectrum for the quantum Ising model. +We do this by first employing an exact diagonalization technique, and then extending the analysis to larger system sizes through the use of MPS techniques. """ using MPSKit, MPSKitModels, TensorKit, Plots, KrylovKit using LinearAlgebra: eigvals, diagm, Hermitian md""" -The Hamiltonian is defined on a finite lattice with periodic boundary conditions, -which can be implemented as follows: +The Hamiltonian is defined on a finite lattice with periodic boundary conditions, which can be implemented as follows: """ L = 12 @@ -20,11 +18,8 @@ H = periodic_boundary_conditions(transverse_field_ising(), L) md""" ## Exact diagonalisation -In MPSKit, there is support for exact diagonalisation by leveraging the fact that applying -the Hamiltonian to an untruncated MPS will result in an effective Hamiltonian on the center -site which implements the action of the entire Hamiltonian. Thus, optimizing the middle -tensor is equivalent to optimixing a state in the entire Hilbert space, as all other tensors -are just unitary matrices that mix the basis. +In MPSKit, there is support for exact diagonalisation by leveraging the fact that applying the Hamiltonian to an untruncated MPS will result in an effective Hamiltonian on the center site which implements the action of the entire Hamiltonian. +Thus, optimizing the middle tensor is equivalent to optimizing a state in the entire Hilbert space, as all other tensors are just unitary matrices that mix the basis. """ energies, states = exact_diagonalization(H; num = 18, alg = Lanczos(; krylovdim = 200)); @@ -42,9 +37,8 @@ md""" md""" ## Extracting momentum -Given a state, it is possible to assign a momentum label -through the use of the translation operator. This operator can be defined in MPO language -either diagramatically as +Given a state, it is possible to assign a momentum label through the use of the translation operator. +This operator can be defined in MPO language either diagrammatically as ```@raw html translation operator @@ -60,13 +54,11 @@ function O_shift(L) end md""" -We can then calculate the momentum of the ground state as the expectation value of this -operator. However, there is a subtlety because of the degeneracies in the energy -eigenvalues. The eigensolver will find an orthonormal basis within each energy subspace, but -this basis is not necessarily a basis of eigenstates of the translation operator. In order -to fix this, we diagonalize the translation operator within each energy subspace. -The resulting energy levels have one-to-one correspondence to the operators in CFT, where -the momentum is related to their conformal spin as $P_n = \frac{2\pi}{L}S_n$. +We can then calculate the momentum of the ground state as the expectation value of this operator. +However, there is a subtlety because of the degeneracies in the energy eigenvalues. +The eigensolver will find an orthonormal basis within each energy subspace, but this basis is not necessarily a basis of eigenstates of the translation operator. +In order to fix this, we diagonalize the translation operator within each energy subspace. +The resulting energy levels have one-to-one correspondence to the operators in CFT, where the momentum is related to their conformal spin as $P_n = \frac{2π}{L}S_n$. """ function fix_degeneracies(basis) @@ -93,10 +85,8 @@ append!(momenta, fix_degeneracies(states[13:16])) append!(momenta, fix_degeneracies(states[17:18])) md""" -We can compute the scaling dimensions $\Delta_n$ of the operators in the CFT from the -energy gap of the corresponding excitations as $E_n - E_0 = \frac{2\pi v}{L} \Delta_n$, -where $v = 2$. If we plot these scaling dimensions against the conformal spin $S_n$ from -above, we retrieve the familiar spectrum of the Ising CFT. +We can compute the scaling dimensions $Δ_n$ of the operators in the CFT from the energy gap of the corresponding excitations as $E_n - E_0 = \frac{2π v}{L} Δ_n$, where $v = 2$. +If we plot these scaling dimensions against the conformal spin $S_n$ from above, we retrieve the familiar spectrum of the Ising CFT. """ v = 2.0 @@ -115,8 +105,7 @@ p md""" ## Finite bond dimension -If we limit the maximum bond dimension of the MPS, we get an approximate solution, but we -can reach higher system sizes. +If we limit the maximum bond dimension of the MPS, we get an approximate solution, but we can reach higher system sizes. """ L_mps = 20 @@ -125,9 +114,8 @@ D = 64 ψ, envs, δ = find_groundstate(FiniteMPS(L_mps, ℂ^2, ℂ^D), H_mps, DMRG(; verbosity = 0)); md""" -Excitations on top of the ground state can be found through the use of the quasiparticle -ansatz. This returns quasiparticle states, which can be converted to regular `FiniteMPS` -objects. +Excitations on top of the ground state can be found through the use of the quasiparticle ansatz. +This returns quasiparticle states, which can be converted to regular `FiniteMPS` objects. """ E_ex, qps = excitations(H_mps, QuasiparticleAnsatz(), ψ, envs; num = 18) diff --git a/examples/groundstates/xxz-heisenberg/main.jl b/examples/groundstates/xxz-heisenberg/main.jl index 010cb2445..677f00ecd 100644 --- a/examples/groundstates/xxz-heisenberg/main.jl +++ b/examples/groundstates/xxz-heisenberg/main.jl @@ -23,7 +23,8 @@ Working directly in the thermodynamic limit, this is achieved as follows: H = heisenberg_XXX(; spin = 1 // 2) md""" -We then need an initial state, which we shall later optimize. In this example we work directly in the thermodynamic limit. +We then need an initial state, which we shall later optimize. +In this example we work directly in the thermodynamic limit. """ state = InfiniteMPS(2, 20) diff --git a/examples/make.jl b/examples/make.jl index 13a9fb049..a2e7b0e29 100644 --- a/examples/make.jl +++ b/examples/make.jl @@ -77,6 +77,58 @@ end normalize_log_locations(content::AbstractString) = replace(content, r"(@ [A-Za-z_][A-Za-z0-9_]* )\S*?/(src/\S*\.jl:\d+)" => s"\1\2") +# A `using` block emits precompilation progress whenever the pipeline happens to run +# against a cold depot, e.g. +# +# Precompiling packages... +# 14306.2 ms ✓ MPSKitModels +# 1 dependency successfully precompiled in 16 seconds. 74 already precompiled. +# +# That says nothing about the example and its timings differ per machine, so drop any +# captured-output block whose every line is precompilation progress. Blocks that mix +# precompilation with real output are left alone. +function strip_precompilation_output(content::AbstractString) + is_precompilation_line(line) = !isnothing( + match( + r"""^\s*(?: + Precompiling\ .* # the header + | [\d.]+\s*ms\s*[✓✗].* # per-package timings + | \d+\ dependenc(?:y|ies)\ successfully\ precompiled.* + | \d+\ already\ precompiled\..* + )?\s*$"""x, line + ) + ) + + lines = collect(eachsplit(content, '\n')) + kept = similar(lines, 0) + i = firstindex(lines) + while i <= lastindex(lines) + # Walk fenced blocks as blocks. Both ````julia (code) and bare ```` (captured + # output) open one and a bare ```` closes it, so a closing fence must never be + # mistaken for the start of the next block. + if startswith(lines[i], "````") + close = findnext(l -> rstrip(l) == "````", lines, i + 1) + if !isnothing(close) + body = @view lines[(i + 1):(close - 1)] + if rstrip(lines[i]) == "````" && + any(contains("Precompiling"), body) && + all(is_precompilation_line, body) + # drop the block, and the blank line that followed it + i = close + 1 + i <= lastindex(lines) && isempty(rstrip(lines[i])) && (i += 1) + continue + end + append!(kept, @view lines[i:close]) + i = close + 1 + continue + end + end + push!(kept, lines[i]) + i += 1 + end + return join(kept, '\n') +end + function build_example(root, name) source_dir = joinpath(@__DIR__, "..", "examples", root, name) source_file = joinpath(source_dir, "main.jl") @@ -86,8 +138,8 @@ function build_example(root, name) Literate.markdown( source_file, target_dir; execute = true, name = "index", preprocess = attach_notebook_badge(root, name), - postprocess = content -> normalize_log_locations( - externalize_figures(content, target_dir) + postprocess = content -> strip_precompilation_output( + normalize_log_locations(externalize_figures(content, target_dir)) ), mdstrings = true, nbviewer_root_url = "https://nbviewer.jupyter.org/github/QuantumKitHub/MPSKit.jl/blob/gh-pages/dev", diff --git a/examples/statmech/hard-hexagon/main.jl b/examples/statmech/hard-hexagon/main.jl index c7b3531b1..0af7f76e0 100644 --- a/examples/statmech/hard-hexagon/main.jl +++ b/examples/statmech/hard-hexagon/main.jl @@ -62,7 +62,8 @@ This can be exploited to formulate a scaling hypothesis [pollmann2009](@cite), w First we need to know the entropy and correlation length at several different bond dimensions. Our approach will be to re-use the previous approximated dominant eigenvector, and then expanding its bond dimension and re-running VUMPS. -According to the scaling hypothesis we should have ``S ∝ \frac{c}{6} log(ξ)``. Therefore we should find ``c`` using +According to the scaling hypothesis we should have ``S ∝ \frac{c}{6} log(ξ)``. +Therefore we should find ``c`` using """ function scaling_simulations(