From 72a3396cdef4d13f46cd3222b336b4557153fe43 Mon Sep 17 00:00:00 2001 From: Matt Fishman Date: Thu, 16 May 2024 22:41:29 -0400 Subject: [PATCH] Use `random_itensor` and `random_mps` (#8) * Use `random_itensor` and `random_mps` * Bump to v0.1.5 --- Project.toml | 2 +- examples/Project.toml | 12 ++++++++++++ examples/ex_dmrg.jl | 10 +++++----- examples/ex_qn_mps.jl | 2 +- examples/notest_ex_2d_circuit.jl | 29 ----------------------------- examples/notest_ex_qft_circuit.jl | 25 ------------------------- test/Project.toml | 4 ++++ test/test_basics.jl | 10 +++++----- 8 files changed, 28 insertions(+), 66 deletions(-) create mode 100644 examples/Project.toml delete mode 100644 examples/notest_ex_2d_circuit.jl delete mode 100644 examples/notest_ex_qft_circuit.jl diff --git a/Project.toml b/Project.toml index 40923e8..6cd54b9 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "ITensorGLMakie" uuid = "3f718f31-6db8-4f43-a433-67cb5c73363e" authors = ["Matthew Fishman "] -version = "0.1.4" +version = "0.1.5" [deps] GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" diff --git a/examples/Project.toml b/examples/Project.toml new file mode 100644 index 0000000..ef7ae87 --- /dev/null +++ b/examples/Project.toml @@ -0,0 +1,12 @@ +[deps] +GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" +ITensorGLMakie = "3f718f31-6db8-4f43-a433-67cb5c73363e" +ITensorMPS = "0d1a4710-d33b-49a5-8f18-73bdf49b47e2" +ITensors = "9136182c-28ba-11e9-034c-db9fb085ebd5" +LayeredLayouts = "f4a74d36-062a-4d48-97cd-1356bad1de4e" +NetworkLayout = "46757867-2c16-5918-afeb-47bfcb05e46a" + +[compat] +ITensorMPS = "0.2.2" +ITensors = "0.6.8" diff --git a/examples/ex_dmrg.jl b/examples/ex_dmrg.jl index 64be720..21eb2b4 100644 --- a/examples/ex_dmrg.jl +++ b/examples/ex_dmrg.jl @@ -14,11 +14,11 @@ x = Index([QN("Sz", 0) => 2]; tags="X") y = Index([QN("Sz", 0) => 2]; tags="Y") n = 2 -ψn1n2 = randomITensor(l⃗[n - 1], s⃗[n], s⃗[n + 1], l⃗[n + 1], dag(x), dag(y)) -hn1 = randomITensor(dag(h⃗[n - 1]), s⃗[n]', dag(s⃗[n]), h⃗[n], x, y) -hn2 = randomITensor(dag(h⃗[n]), s⃗[n + 1]', dag(s⃗[n + 1]), h⃗[n + 1]) -ELn0 = randomITensor(l⃗[n - 1]', h⃗[n - 1], dag(l⃗[n - 1])) -ERn2 = randomITensor(l⃗[n + 1]', dag(h⃗[n + 1]), dag(l⃗[n + 1])) +ψn1n2 = random_itensor(l⃗[n - 1], s⃗[n], s⃗[n + 1], l⃗[n + 1], dag(x), dag(y)) +hn1 = random_itensor(dag(h⃗[n - 1]), s⃗[n]', dag(s⃗[n]), h⃗[n], x, y) +hn2 = random_itensor(dag(h⃗[n]), s⃗[n + 1]', dag(s⃗[n + 1]), h⃗[n + 1]) +ELn0 = random_itensor(l⃗[n - 1]', h⃗[n - 1], dag(l⃗[n - 1])) +ERn2 = random_itensor(l⃗[n + 1]', dag(h⃗[n + 1]), dag(l⃗[n + 1])) edge_labels = (; plevs=true) diff --git a/examples/ex_qn_mps.jl b/examples/ex_qn_mps.jl index 8a3573d..d5459f3 100644 --- a/examples/ex_qn_mps.jl +++ b/examples/ex_qn_mps.jl @@ -3,7 +3,7 @@ using ITensorMPS using ITensorGLMakie s = siteinds("S=1/2", 5; conserve_qns=true) -ψ = randomMPS(s, n -> isodd(n) ? "↑" : "↓"; linkdims=2) +ψ = random_mps(s, n -> isodd(n) ? "↑" : "↓"; linkdims=2) orthogonalize!(ψ, 2) ψdag = prime(linkinds, dag(ψ)) tn = [ψ..., ψdag...] diff --git a/examples/notest_ex_2d_circuit.jl b/examples/notest_ex_2d_circuit.jl deleted file mode 100644 index e981156..0000000 --- a/examples/notest_ex_2d_circuit.jl +++ /dev/null @@ -1,29 +0,0 @@ -using ITensors -using ITensorMPS -using ITensorGLMakie -using Graphs -using PastaQ: randomcircuit -using LayeredLayouts - -Nx, Ny = 3, 3 -N = Nx * Ny -# TODO: change to (Nx, Ny) with PastaQ v0.0.16 -gates = randomcircuit( - Nx, Ny; depth=4, twoqubitgates="CX", onequbitgates="Rn", layered=false, rotated=false -) - -s = siteinds("Qubit", N) - -U, s̃ = circuit_network(gates, s) -ψ = MPS(s) -ψ̃ = MPS(s̃) -tn = [prod(ψ), U..., prod(ψ̃)] - -edge_labels = (; plevs=true) -layout(g) = layered_layout(solve_positions(Zarate(), g)) -@visualize fig tn arrow_show = true edge_labels = edge_labels layout = layout edge_textsize = - 20 -@visualize! fig[2, 1] tn ndims = 3 arrow_show = true edge_labels = edge_labels edge_textsize = - 10 - -fig diff --git a/examples/notest_ex_qft_circuit.jl b/examples/notest_ex_qft_circuit.jl deleted file mode 100644 index 806b687..0000000 --- a/examples/notest_ex_qft_circuit.jl +++ /dev/null @@ -1,25 +0,0 @@ -using ITensors -using ITensorMPS -using ITensorGLMakie -using Graphs -using PastaQ: qft -using LayeredLayouts - -N = 4 -gates = qft(N) - -s = siteinds("Qubit", N) - -U, s̃ = circuit_network(gates, s) -ψ = MPS(s) -ψ̃ = MPS(s̃) -tn = [ψ..., U..., ψ̃...] - -edge_labels = (; tags=true, plevs=true) -layout(g) = layered_layout(solve_positions(Zarate(), g)) -@visualize fig tn arrow_show = true edge_labels = edge_labels edge_textsize = 20 layout = - layout -edge_labels = (; plevs=true) -@visualize! fig[1, 2] tn ndims = 3 edge_labels = edge_labels edge_textsize = 20 - -fig diff --git a/test/Project.toml b/test/Project.toml index 3a5369f..3022329 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -10,3 +10,7 @@ NetworkLayout = "46757867-2c16-5918-afeb-47bfcb05e46a" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" ReferenceTests = "324d217c-45ce-50fc-942e-d289b448e8cf" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[compat] +ITensorMPS = "0.2.2" +ITensors = "0.6.8" diff --git a/test/test_basics.jl b/test/test_basics.jl index 36f639b..2e68215 100644 --- a/test/test_basics.jl +++ b/test/test_basics.jl @@ -19,11 +19,11 @@ using Test y = Index([QN("Sz", 0) => 2]; tags="Y") n = 2 - ψn1n2 = randomITensor(l⃗[n - 1], s⃗[n], s⃗[n + 1], l⃗[n + 1], dag(x), dag(y)) - hn1 = randomITensor(dag(h⃗[n - 1]), s⃗[n]', dag(s⃗[n]), h⃗[n], x, y) - hn2 = randomITensor(dag(h⃗[n]), s⃗[n + 1]', dag(s⃗[n + 1]), h⃗[n + 1]) - ELn0 = randomITensor(l⃗[n - 1]', h⃗[n - 1], dag(l⃗[n - 1])) - ERn2 = randomITensor(l⃗[n + 1]', dag(h⃗[n + 1]), dag(l⃗[n + 1])) + ψn1n2 = random_itensor(l⃗[n - 1], s⃗[n], s⃗[n + 1], l⃗[n + 1], dag(x), dag(y)) + hn1 = random_itensor(dag(h⃗[n - 1]), s⃗[n]', dag(s⃗[n]), h⃗[n], x, y) + hn2 = random_itensor(dag(h⃗[n]), s⃗[n + 1]', dag(s⃗[n + 1]), h⃗[n + 1]) + ELn0 = random_itensor(l⃗[n - 1]', h⃗[n - 1], dag(l⃗[n - 1])) + ERn2 = random_itensor(l⃗[n + 1]', dag(h⃗[n + 1]), dag(l⃗[n + 1])) tn = [ELn0, ψn1n2, hn1, hn2, ERn2]