11using Graphs: add_edge!, edges, vertices
2- using ITensorBase: Index
3- using ITensorNetworksNext: TensorNetwork , TensorNetworkOperator, dmrg, insertlink!
2+ using ITensorBase: Index, name, nameddims, setname, uniquename
3+ using ITensorNetworksNext: ITensorNetwork , TensorNetworkOperator, dmrg, insertlink!
44using LinearAlgebra: eigen
55using MatrixAlgebraKit: truncrank
6- using NamedDimsArrays: name, nameddims, randname, setname
76using NamedGraphs. NamedGraphGenerators: named_path_graph
87using NamedGraphs: NamedGraph
98using StableRNGs: StableRNG
@@ -34,7 +33,7 @@ function tfim_path_operator(N, sites, sitemap; J, h)
3433 verts = collect (1 : N)
3534 bond_edges = [(verts[i], verts[i + 1 ]) for i in 1 : (N - 1 )]
3635 bonds = Dict (
37- e => setname (Index (Base. OneTo (3 )), randname (name (sites[verts[1 ]])))
36+ e => setname (Index (Base. OneTo (3 )), uniquename (name (sites[verts[1 ]])))
3837 for e in bond_edges
3938 )
4039 W = ising_mpo_tensor (; J, h)
@@ -58,7 +57,7 @@ function tfim_path_operator(N, sites, sitemap; J, h)
5857 W, (name (bonds[bond_edges[left]]), name (bonds[bond_edges[right]]), k, b)
5958 )
6059 end
61- tn = TensorNetwork (g) do v
60+ tn = ITensorNetwork (g) do v
6261 return tensor (v)
6362 end
6463 return TensorNetworkOperator (tn, sitemap)
@@ -83,7 +82,7 @@ function tfim_star_operator(sites, sitemap; J, h)
8382 add_edge! (g, 1 , v)
8483 end
8584 bonds = Dict (
86- v => setname (Index (Base. OneTo (3 )), randname (name (sites[1 ]))) for v in leaves
85+ v => setname (Index (Base. OneTo (3 )), uniquename (name (sites[1 ]))) for v in leaves
8786 )
8887 # Center tensor: one bond per leaf, with `-hX` once and `-JZ`/`I` on each leaf channel.
8988 center = zeros (3 , 3 , 3 , 2 , 2 )
@@ -105,7 +104,7 @@ function tfim_star_operator(sites, sitemap; J, h)
105104 end
106105 tensors =
107106 Dict (1 => nameddims (center, center_names), (v => leaf_tensor (v) for v in leaves). .. )
108- tn = TensorNetwork (g) do v
107+ tn = ITensorNetwork (g) do v
109108 return tensors[v]
110109 end
111110 return TensorNetworkOperator (tn, sitemap)
124123
125124function random_ket (rng, g)
126125 sites = Dict (v => Index (Base. OneTo (2 )) for v in vertices (g))
127- ket = TensorNetwork (NamedGraph (collect (vertices (g)))) do v
126+ ket = ITensorNetwork (NamedGraph (collect (vertices (g)))) do v
128127 return randn (rng, Float64, (sites[v],))
129128 end
130129 for e in edges (g)
138137 rng = StableRNG (8 )
139138 g = named_path_graph (N)
140139 ket0, sites = random_ket (rng, g)
141- sitemap = Dict (name (sites[v]) => randname (name (sites[v])) for v in vertices (g))
140+ sitemap = Dict (name (sites[v]) => uniquename (name (sites[v])) for v in vertices (g))
142141 operator = tfim_path_operator (N, sites, sitemap; J = 1.0 , h = 0.7 )
143142 exact = minimum (eigen (tfim_path_dense (N; J = 1.0 , h = 0.7 )). values)
144143
151150 rng = StableRNG (8 )
152151 g = named_path_graph (N)
153152 ket0, sites = random_ket (rng, g)
154- sitemap = Dict (name (sites[v]) => randname (name (sites[v])) for v in vertices (g))
153+ sitemap = Dict (name (sites[v]) => uniquename (name (sites[v])) for v in vertices (g))
155154 operator = tfim_path_operator (N, sites, sitemap; J = 1.0 , h = 0.7 )
156155 exact = minimum (eigen (tfim_path_dense (N; J = 1.0 , h = 0.7 )). values)
157156
165164 rng = StableRNG (8 )
166165 g = named_path_graph (N)
167166 ket0, sites = random_ket (rng, g)
168- sitemap = Dict (name (sites[v]) => randname (name (sites[v])) for v in vertices (g))
167+ sitemap = Dict (name (sites[v]) => uniquename (name (sites[v])) for v in vertices (g))
169168 operator = tfim_path_operator (N, sites, sitemap; J = 1.0 , h = 0.7 )
170169 exact = minimum (eigen (tfim_path_dense (N; J = 1.0 , h = 0.7 )). values)
171170
180179 rng = StableRNG (8 )
181180 g = named_path_graph (N)
182181 ket0, sites = random_ket (rng, g)
183- sitemap = Dict (name (sites[v]) => randname (name (sites[v])) for v in vertices (g))
182+ sitemap = Dict (name (sites[v]) => uniquename (name (sites[v])) for v in vertices (g))
184183 operator = tfim_path_operator (N, sites, sitemap; J = 1.0 , h = 0.7 )
185184 exact = minimum (eigen (tfim_path_dense (N; J = 1.0 , h = 0.7 )). values)
186185
197196 add_edge! (g, 1 , v)
198197 end
199198 ket0, sites = random_ket (rng, g)
200- sitemap = Dict (name (sites[v]) => randname (name (sites[v])) for v in vertices (g))
199+ sitemap = Dict (name (sites[v]) => uniquename (name (sites[v])) for v in vertices (g))
201200 operator = tfim_star_operator (sites, sitemap; J = 1.0 , h = 0.6 )
202201 exact = minimum (eigen (tfim_star_dense (; J = 1.0 , h = 0.6 )). values)
203202
209208 rng = StableRNG (8 )
210209 g = named_path_graph (4 )
211210 ket0, sites = random_ket (rng, g)
212- sitemap = Dict (name (sites[v]) => randname (name (sites[v])) for v in vertices (g))
211+ sitemap = Dict (name (sites[v]) => uniquename (name (sites[v])) for v in vertices (g))
213212 operator = tfim_path_operator (4 , sites, sitemap; J = 1.0 , h = 0.7 )
214213 @test_throws ArgumentError dmrg (operator, ket0)
215214 end
0 commit comments