Skip to content

Constructing states

The examples on this page use MPSKit.jl and TensorKit.jl. See Installation for how to add these packages to your environment.

This page collects recipes for building FiniteMPS, InfiniteMPS, WindowMPS, and MultilineMPS objects. All constructors live in the MPSKit namespace; the examples below assume

julia
using MPSKit, TensorKit

For background on what these types represent and how gauging works, see the States reference page.


1. A finite MPS

From length, physical space, and maximum bond dimension

The most common starting point: give the chain length N, the local physical VectorSpace, and the maximum allowed virtual space. The constructor fills the tensors with random ComplexF64 entries and trims the actual bond dimensions to full rank, so passing an over-large maxVspace is safe.

julia
L = 10
d =^2       # spin-1/2 physical space (dim 2)
D =^16      # maximum bond dimension

ψ = FiniteMPS(L, d, D)
10-site FiniteMPS(ComplexF64, TensorKit.ComplexSpace) with maximal dimension 16 and center 21/2:
┌─[10]─ ℂ^2
│ ℂ^2
├─[9]─ ℂ^2
│ ℂ^4
├─[8]─ ℂ^2
│ ℂ^8
├─[7]─ ℂ^2
│ ℂ^16
├─[6]─ ℂ^2
│ ℂ^16
├─[5]─ ℂ^2
│ ℂ^16
├─[4]─ ℂ^2
│ ℂ^8
├─[3]─ ℂ^2
│ ℂ^4
├─[2]─ ℂ^2
│ ℂ^2
└─[1]─ ℂ^2

Inspect the resulting virtual spaces with left_virtualspace and right_virtualspace. To get the numeric bond dimension at bond i use dim:

julia
dim(left_virtualspace(ψ, 3))   # bond dimension between sites 2 and 3
4
julia
physicalspace(ψ, 1)             # local Hilbert space at site 1
ℂ^2

Choosing the initializer and element type

Pass an initializer function (rand or randn) and an element type as the first two arguments:

julia
ψ_rand = FiniteMPS(rand, ComplexF64, L, d, D)   # default — same as FiniteMPS(L, d, D)
ψ_randn = FiniteMPS(randn, ComplexF64, L, d, D)   # normally distributed entries
10-site FiniteMPS(ComplexF64, TensorKit.ComplexSpace) with maximal dimension 16 and center 21/2:
┌─[10]─ ℂ^2
│ ℂ^2
├─[9]─ ℂ^2
│ ℂ^4
├─[8]─ ℂ^2
│ ℂ^8
├─[7]─ ℂ^2
│ ℂ^16
├─[6]─ ℂ^2
│ ℂ^16
├─[5]─ ℂ^2
│ ℂ^16
├─[4]─ ℂ^2
│ ℂ^8
├─[3]─ ℂ^2
│ ℂ^4
├─[2]─ ℂ^2
│ ℂ^2
└─[1]─ ℂ^2

The element type sets the scalar type of the tensors, e.g. ComplexF64 (the default) or Float64 for a real-valued state.

Per-site physical and virtual spaces

When the physical space varies from site to site — or you want fine control over which bond gets which maximum dimension — pass vectors instead of scalars. The maxVspaces vector must have length N - 1 (one entry per bond):

julia
Pspaces = [ℂ^2, ℂ^3, ℂ^2, ℂ^3, ℂ^2]   # alternating physical spaces
maxVspaces = [ℂ^8, ℂ^8, ℂ^8, ℂ^8]        # one per bond (length N-1)

ψ_het = FiniteMPS(rand, ComplexF64, Pspaces, maxVspaces)
5-site FiniteMPS(ComplexF64, TensorKit.ComplexSpace) with maximal dimension 6 and center 11/2:
┌─[5]─ ℂ^2
│ ℂ^2
├─[4]─ ℂ^3
│ ℂ^6
├─[3]─ ℂ^2
│ ℂ^6
├─[2]─ ℂ^3
│ ℂ^2
└─[1]─ ℂ^2
julia
physicalspace(ψ_het, 2)   # ℂ^3
ℂ^3

A product state (trivial virtual space)

A product (bond-dimension-1) state has no entanglement: each site carries its own single-site state, independent of the others (with rand, a random such state per site). Achieve this by passing oneunit(d) — the one-dimensional unit space of the same symmetry sector — as the maximum virtual space:

julia
ψ_prod = FiniteMPS(rand, ComplexF64, L, ℂ^2, oneunit(ℂ^2))
dim(left_virtualspace(ψ_prod, 5))   # should be 1
1

Note

oneunit(V) returns the one-dimensional trivial space matching the symmetry type of V. For plain complex spaces, oneunit(ℂ^2) == ℂ^1.

From your own site tensors

If you already have a vector of TensorMap objects with the correct index structure (virtual ⊗ physical ← virtual), pass them directly. The constructor performs a left-to-right QR sweep to bring the state into a canonical form:

julia
# build three-site rank-1 tensors by hand
site_tensors = [rand(ComplexF64, ℂ^1^2^1) for _ in 1:L]
ψ_from_tensors = FiniteMPS(site_tensors)
10-site FiniteMPS(ComplexF64, TensorKit.ComplexSpace) with maximal dimension 1 and center 21/2:
┌─[10]─ ℂ^2
│ ℂ^1
├─[9]─ ℂ^2
│ ℂ^1
├─[8]─ ℂ^2
│ ℂ^1
├─[7]─ ℂ^2
│ ℂ^1
├─[6]─ ℂ^2
│ ℂ^1
├─[5]─ ℂ^2
│ ℂ^1
├─[4]─ ℂ^2
│ ℂ^1
├─[3]─ ℂ^2
│ ℂ^1
├─[2]─ ℂ^2
│ ℂ^1
└─[1]─ ℂ^2

Set normalize = true to also normalize the state during construction (the default is false when passing raw tensors):

julia
ψ_normed = FiniteMPS(site_tensors; normalize = true)
10-site FiniteMPS(ComplexF64, TensorKit.ComplexSpace) with maximal dimension 1 and center 21/2:
┌─[10]─ ℂ^2
│ ℂ^1
├─[9]─ ℂ^2
│ ℂ^1
├─[8]─ ℂ^2
│ ℂ^1
├─[7]─ ℂ^2
│ ℂ^1
├─[6]─ ℂ^2
│ ℂ^1
├─[5]─ ℂ^2
│ ℂ^1
├─[4]─ ℂ^2
│ ℂ^1
├─[3]─ ℂ^2
│ ℂ^1
├─[2]─ ℂ^2
│ ℂ^1
└─[1]─ ℂ^2

2. An infinite MPS

Scalar convenience form

Provide d and D as integers or spaces; the constructor builds a single-site unit cell:

julia
ψ_inf = InfiniteMPS(2, 20)        # integers → plain ComplexSpace dimensions
1-site InfiniteMPS(ComplexF64, TensorKit.ComplexSpace) with maximal dimension 20:
| ⋮
| ℂ^20
├─[1]─ ℂ^2
│ ℂ^20
| ⋮
julia
ψ_inf2 = InfiniteMPS(ℂ^2, ℂ^20)  # same, spelled out as spaces
1-site InfiniteMPS(ComplexF64, TensorKit.ComplexSpace) with maximal dimension 20:
| ⋮
| ℂ^20
├─[1]─ ℂ^2
│ ℂ^20
| ⋮

Multi-site unit cell

Pass vectors of physical and virtual spaces. The virtual spaces are those to the right of the corresponding sites:

julia
ψ_2site = InfiniteMPS([ℂ^2, ℂ^2], [ℂ^20, ℂ^20])
2-site InfiniteMPS(ComplexF64, TensorKit.ComplexSpace) with maximal dimension 20:
| ⋮
| ℂ^20
├─[2]─ ℂ^2
│ ℂ^20
├─[1]─ ℂ^2
│ ℂ^20
| ⋮
julia
physicalspace(ψ_2site, 1)
ℂ^2
julia
right_virtualspace(ψ_2site, 1)   # virtual space to the right of site 1
ℂ^20

Choosing element type and initializer

julia
ψ_inf_r = InfiniteMPS(rand, Float64, [ℂ^2], [ℂ^10])
1-site InfiniteMPS(Float64, TensorKit.ComplexSpace) with maximal dimension 10:
| ⋮
| ℂ^10
├─[1]─ ℂ^2
│ ℂ^10
| ⋮

From site tensors

Tensors must form a valid periodic chain (virtual spaces must match across the unit-cell boundary):

julia
inf_tensors = [rand(ComplexF64, ℂ^4^2^4)]
ψ_inf_t = InfiniteMPS(inf_tensors)
1-site InfiniteMPS(ComplexF64, TensorKit.ComplexSpace) with maximal dimension 4:
| ⋮
| ℂ^4
├─[1]─ ℂ^2
│ ℂ^4
| ⋮

3. A window MPS

A WindowMPS embeds a mutable finite window inside two infinite environments.

Slice an existing InfiniteMPS

The simplest route: pick a region of length L from an InfiniteMPS. Both environments are set to the same object (the original infinite state):

julia
ψ_bulk = InfiniteMPS(ℂ^2, ℂ^8)
ψ_win = WindowMPS(ψ_bulk, 6)     # window of 6 sites
WindowMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42183413762206823 + 0.557165803091801im, 0.044555391543555964 + 0.03345972726885402im, -0.008466229203605173 + 0.008273462366577564im, 0.005316829207450264 - 0.0019700273121536025im, 0.00023733806605111968 + 0.002121666726621853im, 0.0001817113188664748 + 0.00015424367831929142im, 4.9122314805526694e-5 + 0.0006949946988860322im, 0.00010709994268843996 + 0.00015665689733764324im, 0.5683621491512314 + 0.42217848613950826im, 0.07729203866136806 + 0.03096860857616763im  …  0.21204893917199188 + 0.04456291008469743im, -0.00721653077772455 + 0.005110333975564212im, 0.0009176009109706368 + 0.004783536418400208im, 0.00207186415673416 - 0.05998573497059257im, 0.18174230085780196 + 0.16183090412362208im, 0.29422732978359123 + 0.27292516947209655im, -0.22794000475442944 - 0.30370797473122535im, 0.09238379629939995 + 0.21933151445486868im, 0.059148432079227986 + 0.08459871093934307im, 0.010412174118121861 + 0.0016311473695380654im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.48685753126977493 + 0.518286013119263im, -0.017849747404403402 + 0.7019611576084105im, -0.009046546174827549 + 0.008423318095569449im, 0.017291780626647817 + 0.02208152431147434im, 0.006058490142600034 - 0.013813200376609661im, 0.0008365822601954934 - 0.0024529376498219225im, 0.0023409662515978254 + 0.0026988865940720725im, 0.0008964979246755168 - 0.006145267675136557im, 0.5172315812201151 + 0.47612900197385544im, -0.033773991737208436 - 0.7095306992852185im  …  0.03197304068441837 + 0.027093826739761646im, -0.007763499183596423 + 0.03860122180026368im, 1.4050870374535117e-10 + 7.32484562114391e-10im, 2.624268437654336e-8 - 8.539702932728526e-7im, 0.00025600412146791114 + 0.00020673484612340954im, 0.001895737866847241 + 0.0017764772987640585im, -0.001739555188186535 + 0.0028199315888391904im, 0.0060040788071316995 + 0.01701471984747735im, 0.06742228763129292 - 0.010880283294717706im, 0.1055904459969247 + 0.029060909625505463im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4839054005801089 + 0.5151433113079887im, 0.0637233510466769 + 0.05056219947004415im, -0.00560651470067234 + 0.005501218143827153im, 0.0044201321481955715 - 2.6878518961661875e-5im, 0.0008551717166615847 + 0.0018177048489877632im, 0.0001581971210728315 + 0.00047423509908108973im, 0.00017637465495606606 + 0.0004611578421950952im, 8.054514287835954e-5 + 9.000832930781391e-5im, 0.5140952731083728 + 0.4732419252651905im, 0.06574299759508226 + 0.03016515002943002im  …  3.227335177906596e-8 + 6.782370518231236e-9im, -1.0983390783438698e-9 + 7.777808592012078e-10im, 1.3965670900398576e-10 + 7.280430365831055e-10im, 3.1533287093921613e-10 - 9.129688335113626e-9im, 2.7660752426416336e-8 + 2.4630284489514674e-8im, 4.478071031243959e-8 + 4.1538571417185304e-8im, -3.469193473302377e-8 - 4.622364226334762e-8im, 1.4060597371052154e-8 + 3.338174267637283e-8im, 9.002252796581079e-9 + 1.2875725617219026e-8im, 1.584708508381057e-9 + 2.482568083865863e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)]), FiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42183413762206823 + 0.557165803091801im, 0.044555391543555964 + 0.03345972726885402im, -0.008466229203605173 + 0.008273462366577564im, 0.005316829207450264 - 0.0019700273121536025im, 0.00023733806605111968 + 0.002121666726621853im, 0.0001817113188664748 + 0.00015424367831929142im, 4.9122314805526694e-5 + 0.0006949946988860322im, 0.00010709994268843996 + 0.00015665689733764324im, 0.5683621491512314 + 0.42217848613950826im, 0.07729203866136806 + 0.03096860857616763im  …  0.21204893917199188 + 0.04456291008469743im, -0.00721653077772455 + 0.005110333975564212im, 0.0009176009109706368 + 0.004783536418400208im, 0.00207186415673416 - 0.05998573497059257im, 0.18174230085780196 + 0.16183090412362208im, 0.29422732978359123 + 0.27292516947209655im, -0.22794000475442944 - 0.30370797473122535im, 0.09238379629939995 + 0.21933151445486868im, 0.059148432079227986 + 0.08459871093934307im, 0.010412174118121861 + 0.0016311473695380654im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42183413762206823 + 0.557165803091801im, 0.044555391543555964 + 0.03345972726885402im, -0.008466229203605173 + 0.008273462366577564im, 0.005316829207450264 - 0.0019700273121536025im, 0.00023733806605111968 + 0.002121666726621853im, 0.0001817113188664748 + 0.00015424367831929142im, 4.9122314805526694e-5 + 0.0006949946988860322im, 0.00010709994268843996 + 0.00015665689733764324im, 0.5683621491512314 + 0.42217848613950826im, 0.07729203866136806 + 0.03096860857616763im  …  0.21204893917199188 + 0.04456291008469743im, -0.00721653077772455 + 0.005110333975564212im, 0.0009176009109706368 + 0.004783536418400208im, 0.00207186415673416 - 0.05998573497059257im, 0.18174230085780196 + 0.16183090412362208im, 0.29422732978359123 + 0.27292516947209655im, -0.22794000475442944 - 0.30370797473122535im, 0.09238379629939995 + 0.21933151445486868im, 0.059148432079227986 + 0.08459871093934307im, 0.010412174118121861 + 0.0016311473695380654im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42183413762206823 + 0.557165803091801im, 0.044555391543555964 + 0.03345972726885402im, -0.008466229203605173 + 0.008273462366577564im, 0.005316829207450264 - 0.0019700273121536025im, 0.00023733806605111968 + 0.002121666726621853im, 0.0001817113188664748 + 0.00015424367831929142im, 4.9122314805526694e-5 + 0.0006949946988860322im, 0.00010709994268843996 + 0.00015665689733764324im, 0.5683621491512314 + 0.42217848613950826im, 0.07729203866136806 + 0.03096860857616763im  …  0.21204893917199188 + 0.04456291008469743im, -0.00721653077772455 + 0.005110333975564212im, 0.0009176009109706368 + 0.004783536418400208im, 0.00207186415673416 - 0.05998573497059257im, 0.18174230085780196 + 0.16183090412362208im, 0.29422732978359123 + 0.27292516947209655im, -0.22794000475442944 - 0.30370797473122535im, 0.09238379629939995 + 0.21933151445486868im, 0.059148432079227986 + 0.08459871093934307im, 0.010412174118121861 + 0.0016311473695380654im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42183413762206823 + 0.557165803091801im, 0.044555391543555964 + 0.03345972726885402im, -0.008466229203605173 + 0.008273462366577564im, 0.005316829207450264 - 0.0019700273121536025im, 0.00023733806605111968 + 0.002121666726621853im, 0.0001817113188664748 + 0.00015424367831929142im, 4.9122314805526694e-5 + 0.0006949946988860322im, 0.00010709994268843996 + 0.00015665689733764324im, 0.5683621491512314 + 0.42217848613950826im, 0.07729203866136806 + 0.03096860857616763im  …  0.21204893917199188 + 0.04456291008469743im, -0.00721653077772455 + 0.005110333975564212im, 0.0009176009109706368 + 0.004783536418400208im, 0.00207186415673416 - 0.05998573497059257im, 0.18174230085780196 + 0.16183090412362208im, 0.29422732978359123 + 0.27292516947209655im, -0.22794000475442944 - 0.30370797473122535im, 0.09238379629939995 + 0.21933151445486868im, 0.059148432079227986 + 0.08459871093934307im, 0.010412174118121861 + 0.0016311473695380654im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42183413762206823 + 0.557165803091801im, 0.044555391543555964 + 0.03345972726885402im, -0.008466229203605173 + 0.008273462366577564im, 0.005316829207450264 - 0.0019700273121536025im, 0.00023733806605111968 + 0.002121666726621853im, 0.0001817113188664748 + 0.00015424367831929142im, 4.9122314805526694e-5 + 0.0006949946988860322im, 0.00010709994268843996 + 0.00015665689733764324im, 0.5683621491512314 + 0.42217848613950826im, 0.07729203866136806 + 0.03096860857616763im  …  0.21204893917199188 + 0.04456291008469743im, -0.00721653077772455 + 0.005110333975564212im, 0.0009176009109706368 + 0.004783536418400208im, 0.00207186415673416 - 0.05998573497059257im, 0.18174230085780196 + 0.16183090412362208im, 0.29422732978359123 + 0.27292516947209655im, -0.22794000475442944 - 0.30370797473122535im, 0.09238379629939995 + 0.21933151445486868im, 0.059148432079227986 + 0.08459871093934307im, 0.010412174118121861 + 0.0016311473695380654im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42183413762206823 + 0.557165803091801im, 0.044555391543555964 + 0.03345972726885402im, -0.008466229203605173 + 0.008273462366577564im, 0.005316829207450264 - 0.0019700273121536025im, 0.00023733806605111968 + 0.002121666726621853im, 0.0001817113188664748 + 0.00015424367831929142im, 4.9122314805526694e-5 + 0.0006949946988860322im, 0.00010709994268843996 + 0.00015665689733764324im, 0.5683621491512314 + 0.42217848613950826im, 0.07729203866136806 + 0.03096860857616763im  …  0.21204893917199188 + 0.04456291008469743im, -0.00721653077772455 + 0.005110333975564212im, 0.0009176009109706368 + 0.004783536418400208im, 0.00207186415673416 - 0.05998573497059257im, 0.18174230085780196 + 0.16183090412362208im, 0.29422732978359123 + 0.27292516947209655im, -0.22794000475442944 - 0.30370797473122535im, 0.09238379629939995 + 0.21933151445486868im, 0.059148432079227986 + 0.08459871093934307im, 0.010412174118121861 + 0.0016311473695380654im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.48685753126977493 + 0.518286013119263im, -0.017849747404403402 + 0.7019611576084105im, -0.009046546174827549 + 0.008423318095569449im, 0.017291780626647817 + 0.02208152431147434im, 0.006058490142600034 - 0.013813200376609661im, 0.0008365822601954934 - 0.0024529376498219225im, 0.0023409662515978254 + 0.0026988865940720725im, 0.0008964979246755168 - 0.006145267675136557im, 0.5172315812201151 + 0.47612900197385544im, -0.033773991737208436 - 0.7095306992852185im  …  0.03197304068441837 + 0.027093826739761646im, -0.007763499183596423 + 0.03860122180026368im, 1.4050870374535117e-10 + 7.32484562114391e-10im, 2.624268437654336e-8 - 8.539702932728526e-7im, 0.00025600412146791114 + 0.00020673484612340954im, 0.001895737866847241 + 0.0017764772987640585im, -0.001739555188186535 + 0.0028199315888391904im, 0.0060040788071316995 + 0.01701471984747735im, 0.06742228763129292 - 0.010880283294717706im, 0.1055904459969247 + 0.029060909625505463im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.48685753126977493 + 0.518286013119263im, -0.017849747404403402 + 0.7019611576084105im, -0.009046546174827549 + 0.008423318095569449im, 0.017291780626647817 + 0.02208152431147434im, 0.006058490142600034 - 0.013813200376609661im, 0.0008365822601954934 - 0.0024529376498219225im, 0.0023409662515978254 + 0.0026988865940720725im, 0.0008964979246755168 - 0.006145267675136557im, 0.5172315812201151 + 0.47612900197385544im, -0.033773991737208436 - 0.7095306992852185im  …  0.03197304068441837 + 0.027093826739761646im, -0.007763499183596423 + 0.03860122180026368im, 1.4050870374535117e-10 + 7.32484562114391e-10im, 2.624268437654336e-8 - 8.539702932728526e-7im, 0.00025600412146791114 + 0.00020673484612340954im, 0.001895737866847241 + 0.0017764772987640585im, -0.001739555188186535 + 0.0028199315888391904im, 0.0060040788071316995 + 0.01701471984747735im, 0.06742228763129292 - 0.010880283294717706im, 0.1055904459969247 + 0.029060909625505463im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.48685753126977493 + 0.518286013119263im, -0.017849747404403402 + 0.7019611576084105im, -0.009046546174827549 + 0.008423318095569449im, 0.017291780626647817 + 0.02208152431147434im, 0.006058490142600034 - 0.013813200376609661im, 0.0008365822601954934 - 0.0024529376498219225im, 0.0023409662515978254 + 0.0026988865940720725im, 0.0008964979246755168 - 0.006145267675136557im, 0.5172315812201151 + 0.47612900197385544im, -0.033773991737208436 - 0.7095306992852185im  …  0.03197304068441837 + 0.027093826739761646im, -0.007763499183596423 + 0.03860122180026368im, 1.4050870374535117e-10 + 7.32484562114391e-10im, 2.624268437654336e-8 - 8.539702932728526e-7im, 0.00025600412146791114 + 0.00020673484612340954im, 0.001895737866847241 + 0.0017764772987640585im, -0.001739555188186535 + 0.0028199315888391904im, 0.0060040788071316995 + 0.01701471984747735im, 0.06742228763129292 - 0.010880283294717706im, 0.1055904459969247 + 0.029060909625505463im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.48685753126977493 + 0.518286013119263im, -0.017849747404403402 + 0.7019611576084105im, -0.009046546174827549 + 0.008423318095569449im, 0.017291780626647817 + 0.02208152431147434im, 0.006058490142600034 - 0.013813200376609661im, 0.0008365822601954934 - 0.0024529376498219225im, 0.0023409662515978254 + 0.0026988865940720725im, 0.0008964979246755168 - 0.006145267675136557im, 0.5172315812201151 + 0.47612900197385544im, -0.033773991737208436 - 0.7095306992852185im  …  0.03197304068441837 + 0.027093826739761646im, -0.007763499183596423 + 0.03860122180026368im, 1.4050870374535117e-10 + 7.32484562114391e-10im, 2.624268437654336e-8 - 8.539702932728526e-7im, 0.00025600412146791114 + 0.00020673484612340954im, 0.001895737866847241 + 0.0017764772987640585im, -0.001739555188186535 + 0.0028199315888391904im, 0.0060040788071316995 + 0.01701471984747735im, 0.06742228763129292 - 0.010880283294717706im, 0.1055904459969247 + 0.029060909625505463im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.48685753126977493 + 0.518286013119263im, -0.017849747404403402 + 0.7019611576084105im, -0.009046546174827549 + 0.008423318095569449im, 0.017291780626647817 + 0.02208152431147434im, 0.006058490142600034 - 0.013813200376609661im, 0.0008365822601954934 - 0.0024529376498219225im, 0.0023409662515978254 + 0.0026988865940720725im, 0.0008964979246755168 - 0.006145267675136557im, 0.5172315812201151 + 0.47612900197385544im, -0.033773991737208436 - 0.7095306992852185im  …  0.03197304068441837 + 0.027093826739761646im, -0.007763499183596423 + 0.03860122180026368im, 1.4050870374535117e-10 + 7.32484562114391e-10im, 2.624268437654336e-8 - 8.539702932728526e-7im, 0.00025600412146791114 + 0.00020673484612340954im, 0.001895737866847241 + 0.0017764772987640585im, -0.001739555188186535 + 0.0028199315888391904im, 0.0060040788071316995 + 0.01701471984747735im, 0.06742228763129292 - 0.010880283294717706im, 0.1055904459969247 + 0.029060909625505463im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.48685753126977493 + 0.518286013119263im, -0.017849747404403402 + 0.7019611576084105im, -0.009046546174827549 + 0.008423318095569449im, 0.017291780626647817 + 0.02208152431147434im, 0.006058490142600034 - 0.013813200376609661im, 0.0008365822601954934 - 0.0024529376498219225im, 0.0023409662515978254 + 0.0026988865940720725im, 0.0008964979246755168 - 0.006145267675136557im, 0.5172315812201151 + 0.47612900197385544im, -0.033773991737208436 - 0.7095306992852185im  …  0.03197304068441837 + 0.027093826739761646im, -0.007763499183596423 + 0.03860122180026368im, 1.4050870374535117e-10 + 7.32484562114391e-10im, 2.624268437654336e-8 - 8.539702932728526e-7im, 0.00025600412146791114 + 0.00020673484612340954im, 0.001895737866847241 + 0.0017764772987640585im, -0.001739555188186535 + 0.0028199315888391904im, 0.0060040788071316995 + 0.01701471984747735im, 0.06742228763129292 - 0.010880283294717706im, 0.1055904459969247 + 0.029060909625505463im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4839054005801089 + 0.5151433113079887im, 0.0637233510466769 + 0.05056219947004415im, -0.00560651470067234 + 0.005501218143827153im, 0.0044201321481955715 - 2.6878518961661875e-5im, 0.0008551717166615847 + 0.0018177048489877632im, 0.0001581971210728315 + 0.00047423509908108973im, 0.00017637465495606606 + 0.0004611578421950952im, 8.054514287835954e-5 + 9.000832930781391e-5im, 0.5140952731083728 + 0.4732419252651905im, 0.06574299759508226 + 0.03016515002943002im  …  3.227335177906596e-8 + 6.782370518231236e-9im, -1.0983390783438698e-9 + 7.777808592012078e-10im, 1.3965670900398576e-10 + 7.280430365831055e-10im, 3.1533287093921613e-10 - 9.129688335113626e-9im, 2.7660752426416336e-8 + 2.4630284489514674e-8im, 4.478071031243959e-8 + 4.1538571417185304e-8im, -3.469193473302377e-8 - 4.622364226334762e-8im, 1.4060597371052154e-8 + 3.338174267637283e-8im, 9.002252796581079e-9 + 1.2875725617219026e-8im, 1.584708508381057e-9 + 2.482568083865863e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4839054005801089 + 0.5151433113079887im, 0.0637233510466769 + 0.05056219947004415im, -0.00560651470067234 + 0.005501218143827153im, 0.0044201321481955715 - 2.6878518961661875e-5im, 0.0008551717166615847 + 0.0018177048489877632im, 0.0001581971210728315 + 0.00047423509908108973im, 0.00017637465495606606 + 0.0004611578421950952im, 8.054514287835954e-5 + 9.000832930781391e-5im, 0.5140952731083728 + 0.4732419252651905im, 0.06574299759508226 + 0.03016515002943002im  …  3.227335177906596e-8 + 6.782370518231236e-9im, -1.0983390783438698e-9 + 7.777808592012078e-10im, 1.3965670900398576e-10 + 7.280430365831055e-10im, 3.1533287093921613e-10 - 9.129688335113626e-9im, 2.7660752426416336e-8 + 2.4630284489514674e-8im, 4.478071031243959e-8 + 4.1538571417185304e-8im, -3.469193473302377e-8 - 4.622364226334762e-8im, 1.4060597371052154e-8 + 3.338174267637283e-8im, 9.002252796581079e-9 + 1.2875725617219026e-8im, 1.584708508381057e-9 + 2.482568083865863e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4839054005801089 + 0.5151433113079887im, 0.0637233510466769 + 0.05056219947004415im, -0.00560651470067234 + 0.005501218143827153im, 0.0044201321481955715 - 2.6878518961661875e-5im, 0.0008551717166615847 + 0.0018177048489877632im, 0.0001581971210728315 + 0.00047423509908108973im, 0.00017637465495606606 + 0.0004611578421950952im, 8.054514287835954e-5 + 9.000832930781391e-5im, 0.5140952731083728 + 0.4732419252651905im, 0.06574299759508226 + 0.03016515002943002im  …  3.227335177906596e-8 + 6.782370518231236e-9im, -1.0983390783438698e-9 + 7.777808592012078e-10im, 1.3965670900398576e-10 + 7.280430365831055e-10im, 3.1533287093921613e-10 - 9.129688335113626e-9im, 2.7660752426416336e-8 + 2.4630284489514674e-8im, 4.478071031243959e-8 + 4.1538571417185304e-8im, -3.469193473302377e-8 - 4.622364226334762e-8im, 1.4060597371052154e-8 + 3.338174267637283e-8im, 9.002252796581079e-9 + 1.2875725617219026e-8im, 1.584708508381057e-9 + 2.482568083865863e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4839054005801089 + 0.5151433113079887im, 0.0637233510466769 + 0.05056219947004415im, -0.00560651470067234 + 0.005501218143827153im, 0.0044201321481955715 - 2.6878518961661875e-5im, 0.0008551717166615847 + 0.0018177048489877632im, 0.0001581971210728315 + 0.00047423509908108973im, 0.00017637465495606606 + 0.0004611578421950952im, 8.054514287835954e-5 + 9.000832930781391e-5im, 0.5140952731083728 + 0.4732419252651905im, 0.06574299759508226 + 0.03016515002943002im  …  3.227335177906596e-8 + 6.782370518231236e-9im, -1.0983390783438698e-9 + 7.777808592012078e-10im, 1.3965670900398576e-10 + 7.280430365831055e-10im, 3.1533287093921613e-10 - 9.129688335113626e-9im, 2.7660752426416336e-8 + 2.4630284489514674e-8im, 4.478071031243959e-8 + 4.1538571417185304e-8im, -3.469193473302377e-8 - 4.622364226334762e-8im, 1.4060597371052154e-8 + 3.338174267637283e-8im, 9.002252796581079e-9 + 1.2875725617219026e-8im, 1.584708508381057e-9 + 2.482568083865863e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4839054005801089 + 0.5151433113079887im, 0.0637233510466769 + 0.05056219947004415im, -0.00560651470067234 + 0.005501218143827153im, 0.0044201321481955715 - 2.6878518961661875e-5im, 0.0008551717166615847 + 0.0018177048489877632im, 0.0001581971210728315 + 0.00047423509908108973im, 0.00017637465495606606 + 0.0004611578421950952im, 8.054514287835954e-5 + 9.000832930781391e-5im, 0.5140952731083728 + 0.4732419252651905im, 0.06574299759508226 + 0.03016515002943002im  …  3.227335177906596e-8 + 6.782370518231236e-9im, -1.0983390783438698e-9 + 7.777808592012078e-10im, 1.3965670900398576e-10 + 7.280430365831055e-10im, 3.1533287093921613e-10 - 9.129688335113626e-9im, 2.7660752426416336e-8 + 2.4630284489514674e-8im, 4.478071031243959e-8 + 4.1538571417185304e-8im, -3.469193473302377e-8 - 4.622364226334762e-8im, 1.4060597371052154e-8 + 3.338174267637283e-8im, 9.002252796581079e-9 + 1.2875725617219026e-8im, 1.584708508381057e-9 + 2.482568083865863e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4839054005801089 + 0.5151433113079887im, 0.0637233510466769 + 0.05056219947004415im, -0.00560651470067234 + 0.005501218143827153im, 0.0044201321481955715 - 2.6878518961661875e-5im, 0.0008551717166615847 + 0.0018177048489877632im, 0.0001581971210728315 + 0.00047423509908108973im, 0.00017637465495606606 + 0.0004611578421950952im, 8.054514287835954e-5 + 9.000832930781391e-5im, 0.5140952731083728 + 0.4732419252651905im, 0.06574299759508226 + 0.03016515002943002im  …  3.227335177906596e-8 + 6.782370518231236e-9im, -1.0983390783438698e-9 + 7.777808592012078e-10im, 1.3965670900398576e-10 + 7.280430365831055e-10im, 3.1533287093921613e-10 - 9.129688335113626e-9im, 2.7660752426416336e-8 + 2.4630284489514674e-8im, 4.478071031243959e-8 + 4.1538571417185304e-8im, -3.469193473302377e-8 - 4.622364226334762e-8im, 1.4060597371052154e-8 + 3.338174267637283e-8im, 9.002252796581079e-9 + 1.2875725617219026e-8im, 1.584708508381057e-9 + 2.482568083865863e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8)]), InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42183413762206823 + 0.557165803091801im, 0.044555391543555964 + 0.03345972726885402im, -0.008466229203605173 + 0.008273462366577564im, 0.005316829207450264 - 0.0019700273121536025im, 0.00023733806605111968 + 0.002121666726621853im, 0.0001817113188664748 + 0.00015424367831929142im, 4.9122314805526694e-5 + 0.0006949946988860322im, 0.00010709994268843996 + 0.00015665689733764324im, 0.5683621491512314 + 0.42217848613950826im, 0.07729203866136806 + 0.03096860857616763im  …  0.21204893917199188 + 0.04456291008469743im, -0.00721653077772455 + 0.005110333975564212im, 0.0009176009109706368 + 0.004783536418400208im, 0.00207186415673416 - 0.05998573497059257im, 0.18174230085780196 + 0.16183090412362208im, 0.29422732978359123 + 0.27292516947209655im, -0.22794000475442944 - 0.30370797473122535im, 0.09238379629939995 + 0.21933151445486868im, 0.059148432079227986 + 0.08459871093934307im, 0.010412174118121861 + 0.0016311473695380654im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.48685753126977493 + 0.518286013119263im, -0.017849747404403402 + 0.7019611576084105im, -0.009046546174827549 + 0.008423318095569449im, 0.017291780626647817 + 0.02208152431147434im, 0.006058490142600034 - 0.013813200376609661im, 0.0008365822601954934 - 0.0024529376498219225im, 0.0023409662515978254 + 0.0026988865940720725im, 0.0008964979246755168 - 0.006145267675136557im, 0.5172315812201151 + 0.47612900197385544im, -0.033773991737208436 - 0.7095306992852185im  …  0.03197304068441837 + 0.027093826739761646im, -0.007763499183596423 + 0.03860122180026368im, 1.4050870374535117e-10 + 7.32484562114391e-10im, 2.624268437654336e-8 - 8.539702932728526e-7im, 0.00025600412146791114 + 0.00020673484612340954im, 0.001895737866847241 + 0.0017764772987640585im, -0.001739555188186535 + 0.0028199315888391904im, 0.0060040788071316995 + 0.01701471984747735im, 0.06742228763129292 - 0.010880283294717706im, 0.1055904459969247 + 0.029060909625505463im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4839054005801089 + 0.5151433113079887im, 0.0637233510466769 + 0.05056219947004415im, -0.00560651470067234 + 0.005501218143827153im, 0.0044201321481955715 - 2.6878518961661875e-5im, 0.0008551717166615847 + 0.0018177048489877632im, 0.0001581971210728315 + 0.00047423509908108973im, 0.00017637465495606606 + 0.0004611578421950952im, 8.054514287835954e-5 + 9.000832930781391e-5im, 0.5140952731083728 + 0.4732419252651905im, 0.06574299759508226 + 0.03016515002943002im  …  3.227335177906596e-8 + 6.782370518231236e-9im, -1.0983390783438698e-9 + 7.777808592012078e-10im, 1.3965670900398576e-10 + 7.280430365831055e-10im, 3.1533287093921613e-10 - 9.129688335113626e-9im, 2.7660752426416336e-8 + 2.4630284489514674e-8im, 4.478071031243959e-8 + 4.1538571417185304e-8im, -3.469193473302377e-8 - 4.622364226334762e-8im, 1.4060597371052154e-8 + 3.338174267637283e-8im, 9.002252796581079e-9 + 1.2875725617219026e-8im, 1.584708508381057e-9 + 2.482568083865863e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)]))
julia
length(ψ_win)                     # 6
6

From space specifications

Provide the window dimensions together with the infinite environments. The boundary virtual spaces are taken automatically from ψₗ/ψᵣ:

julia
ψ_win2 = WindowMPS(rand, ComplexF64, 6, ℂ^2, ℂ^8, ψ_bulk)
WindowMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42183413762206823 + 0.557165803091801im, 0.044555391543555964 + 0.03345972726885402im, -0.008466229203605173 + 0.008273462366577564im, 0.005316829207450264 - 0.0019700273121536025im, 0.00023733806605111968 + 0.002121666726621853im, 0.0001817113188664748 + 0.00015424367831929142im, 4.9122314805526694e-5 + 0.0006949946988860322im, 0.00010709994268843996 + 0.00015665689733764324im, 0.5683621491512314 + 0.42217848613950826im, 0.07729203866136806 + 0.03096860857616763im  …  0.21204893917199188 + 0.04456291008469743im, -0.00721653077772455 + 0.005110333975564212im, 0.0009176009109706368 + 0.004783536418400208im, 0.00207186415673416 - 0.05998573497059257im, 0.18174230085780196 + 0.16183090412362208im, 0.29422732978359123 + 0.27292516947209655im, -0.22794000475442944 - 0.30370797473122535im, 0.09238379629939995 + 0.21933151445486868im, 0.059148432079227986 + 0.08459871093934307im, 0.010412174118121861 + 0.0016311473695380654im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.48685753126977493 + 0.518286013119263im, -0.017849747404403402 + 0.7019611576084105im, -0.009046546174827549 + 0.008423318095569449im, 0.017291780626647817 + 0.02208152431147434im, 0.006058490142600034 - 0.013813200376609661im, 0.0008365822601954934 - 0.0024529376498219225im, 0.0023409662515978254 + 0.0026988865940720725im, 0.0008964979246755168 - 0.006145267675136557im, 0.5172315812201151 + 0.47612900197385544im, -0.033773991737208436 - 0.7095306992852185im  …  0.03197304068441837 + 0.027093826739761646im, -0.007763499183596423 + 0.03860122180026368im, 1.4050870374535117e-10 + 7.32484562114391e-10im, 2.624268437654336e-8 - 8.539702932728526e-7im, 0.00025600412146791114 + 0.00020673484612340954im, 0.001895737866847241 + 0.0017764772987640585im, -0.001739555188186535 + 0.0028199315888391904im, 0.0060040788071316995 + 0.01701471984747735im, 0.06742228763129292 - 0.010880283294717706im, 0.1055904459969247 + 0.029060909625505463im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4839054005801089 + 0.5151433113079887im, 0.0637233510466769 + 0.05056219947004415im, -0.00560651470067234 + 0.005501218143827153im, 0.0044201321481955715 - 2.6878518961661875e-5im, 0.0008551717166615847 + 0.0018177048489877632im, 0.0001581971210728315 + 0.00047423509908108973im, 0.00017637465495606606 + 0.0004611578421950952im, 8.054514287835954e-5 + 9.000832930781391e-5im, 0.5140952731083728 + 0.4732419252651905im, 0.06574299759508226 + 0.03016515002943002im  …  3.227335177906596e-8 + 6.782370518231236e-9im, -1.0983390783438698e-9 + 7.777808592012078e-10im, 1.3965670900398576e-10 + 7.280430365831055e-10im, 3.1533287093921613e-10 - 9.129688335113626e-9im, 2.7660752426416336e-8 + 2.4630284489514674e-8im, 4.478071031243959e-8 + 4.1538571417185304e-8im, -3.469193473302377e-8 - 4.622364226334762e-8im, 1.4060597371052154e-8 + 3.338174267637283e-8im, 9.002252796581079e-9 + 1.2875725617219026e-8im, 1.584708508381057e-9 + 2.482568083865863e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)]), FiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.029064631726183565 + 0.113397822957265im, 0.0900700542712904 + 0.07795096155257608im, 0.15580357329801334 + 0.07376658774020212im, 0.2782795226366554 + 0.22786268776156662im, 0.22881166050892088 + 0.08616400928611413im, 0.2416423681823196 + 0.1489246037422406im, 0.06463076383918458 + 0.10760741772466001im, 0.026777393152844574 + 0.22293918895964646im, 0.21026112115830498 + 0.028175099627378533im, 0.29143838547768364 + 0.2057492359641448im  …  0.0996331350817558 + 0.08060146307869454im, -0.4396942352919948 + 0.1699637887622338im, 0.13609301511397967 + 0.2521053737631078im, -0.13818478059448466 - 0.07248396476006072im, 0.15812238016509528 - 0.05121508407382846im, 0.08075698730025575 - 0.07216914436378505im, -0.1781864476963082 - 0.20315694573076176im, 0.05799077389409783 + 0.15520409351115835im, -0.06954315975513127 - 0.03500673657233873im, -0.13327209600091744 - 0.12754521758172185im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4015936440345407 + 0.6057874194147024im, 0.07527394832873074 + 0.21782252205097746im, 0.05834556048523082 + 0.09742976415080024im, -0.003837264598947343 + 0.11179838245301915im, 0.006090303374549041 + 0.01722995807457998im, 0.03407638108594106 + 0.053885227734197065im, 0.02961574660679819 + 0.047898487567242354im, 0.0161141948847717 + 0.034018231632031916im, 0.35118688245923946 + 0.43822244654714615im, 0.10751209158155922 + 0.19076082564680755im  …  -0.24343032409810297 - 0.07468032418683453im, 0.017242561057177586 - 0.03745153974226054im, 0.0969304277382683 + 0.048946867249723im, 0.1318915552530558 - 0.1715208467407014im, 0.01895824570602475 - 0.20790080545332112im, -0.08840931049469886 - 0.12549664611770828im, 0.14757220664586806 + 0.31353292643972797im, -0.34903245467372984 + 0.16203681305980017im, -0.11231822324527568 - 0.24624777397700262im, 0.012601200667174392 - 0.028460944300121502im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5121899566497685 + 0.5703238087954553im, 0.060667028517208746 + 0.017148051819099133im, 0.026974130326357752 + 0.06473255975902786im, 4.153740651944158e-5 + 0.0006908577351873548im, 0.007704044673912218 + 0.014367071506186086im, 0.012506309569233131 + 0.010638436913806396im, 0.004236362634303583 + 0.006580600966444746im, 0.005144259667316856 + 0.0014776645052978908im, 0.5348325815104351 + 0.3262451719782565im, 0.03535306532948555 - 0.023008577318235985im  …  -0.10910532472664587 + 0.2167928399118768im, 0.0988113599094409 - 0.2291457732160117im, -0.02644609942579178 - 0.018587517522172393im, 0.03452423532785863 - 0.19274196306607647im, -0.04346930603169733 + 0.1878042407231061im, 0.09842666767451694 + 0.11527776177991401im, 0.2839844596151958 + 0.23763847993644632im, 0.30246887162301006 - 0.18802733233391034im, 0.3218203668483759 + 0.22332079714850855im, -0.41049743304395164 - 0.15543565386374647im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.6246090284415182 + 0.4428677955845356im, 0.06016443507570187 - 0.004117495969015464im, 0.008046329173787576 + 0.03087823066054266im, 0.003668295746472508 + 0.0032356073648419394im, 0.0021063293904317114 + 0.002661327798085375im, 0.001063210329731109 - 0.000540707006482498im, 0.00195488116099078 + 0.0013750993026385157im, 0.0005205417944900722 + 0.0010363191675437481im, 0.4910477094325484 + 0.40479300014569997im, 0.055955173784424814 + 0.021311646155372233im  …  -0.04384347997592787 - 0.18685953376324063im, -0.054053715116653356 + 0.1811494083441144im, -0.012677824027817114 - 0.00036601858759943706im, 0.14508116273126662 + 0.057448273716336165im, 0.35437741069296247 + 0.036210394696224266im, -0.07880825252551094 + 0.5572297869714096im, -0.3527783151645751 - 0.15125208333390006im, -0.1800628672720752 + 0.2657767695134236im, 0.07768089506289344 - 0.1308808537434008im, -0.08116150982527587 - 0.08709321184094258im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4698886093953101 + 0.6258458997767767im, 0.04064620367272231 - 0.006105121199661523im, -0.00042171392254952526 + 0.02540447280188922im, 0.008431325155349719 - 0.0010946853224386055im, 0.0020536075693624958 + 0.0012719130045074183im, 0.0013363456495885985 + 0.0002973862020707172im, 0.0008202365747560961 - 6.484565704215723e-5im, 0.0003682183400920358 + 0.0008429534581406451im, 0.4584687020168831 + 0.41380365672668273im, 0.04092918150875153 - 0.032611493287662906im  …  0.14692683291957512 - 0.1555014546708987im, -0.3288882604736747 - 0.22689366912244618im, 0.005265233390458854 - 0.0021568313085788826im, -0.04355378650981184 - 0.0874602624355762im, -0.06512255932742265 - 0.040223188600682386im, -0.20327505080534275 + 0.467633790375222im, 0.09572190975974902 - 0.3045984020554118im, -0.19796550460379758 - 0.007831810189560195im, -0.04272433184191582 - 0.06656509798235064im, 0.07440693038863633 - 0.034157563134013906im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.39264079504066407 + 0.47326103856336305im, 0.06064606800931614 + 0.03024320574845172im, 0.00726330455507532 + 0.0017453892917164166im, 0.00345342175331299 + 0.005006979490076195im, -0.00014514024218624448 + 0.0005223244957807895im, 0.00019627333926763022 + 0.0002523690049344894im, 0.0001879236363764895 + 0.0005027574269100759im, 2.6832721608960628e-5 + 7.913688938957582e-5im, 0.5772143572296848 + 0.5291524064881222im, 0.05724638942596811 + 0.022316606655303717im  …  -0.047300823662235494 + 0.03866018990559965im, -0.030652575256744585 + 0.011715357531715083im, -0.0032969336904710295 + 0.005988989414147473im, 0.03411375829517713 - 0.046566605072393234im, -0.43358888261273537 + 0.1771655393357788im, -0.12909292069326084 - 0.4454512282307468im, 0.17493175589050242 - 0.18768388969370678im, -0.05744243179811206 - 0.009492983614786153im, 0.05947055038521358 + 0.009319927473446012im, -0.04603863848231353 - 0.03308564464864055im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}}[missing, missing, missing, missing, missing, missing], Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}}[missing, missing, missing, missing, missing, missing], Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}[missing, missing, missing, missing, missing, missing, TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.39444732140827177 + 0.0im, 0.0 - 0.0im, 0.0 + 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.2565419947340865 - 0.003937395357392478im, 0.08238633109656301 + 0.0im  …  0.0021239593571811405 + 0.0im, 0.0 + 0.0im, 0.30864937536519327 - 0.0434175619246052im, 0.03931279092425972 + 0.03214965140991063im, 0.0026627398822409664 - 0.011719792514211522im, 0.008365947936457094 - 0.005069548884367838im, 6.818328883823969e-6 - 0.000871791103634407im, 0.0006322410143383481 - 4.8259965280088e-5im, -0.0005917525296326584 + 3.819242295989226e-5im, 0.0008636470912398486 + 0.0im], ℂ^8 ← ℂ^8)]), InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42183413762206823 + 0.557165803091801im, 0.044555391543555964 + 0.03345972726885402im, -0.008466229203605173 + 0.008273462366577564im, 0.005316829207450264 - 0.0019700273121536025im, 0.00023733806605111968 + 0.002121666726621853im, 0.0001817113188664748 + 0.00015424367831929142im, 4.9122314805526694e-5 + 0.0006949946988860322im, 0.00010709994268843996 + 0.00015665689733764324im, 0.5683621491512314 + 0.42217848613950826im, 0.07729203866136806 + 0.03096860857616763im  …  0.21204893917199188 + 0.04456291008469743im, -0.00721653077772455 + 0.005110333975564212im, 0.0009176009109706368 + 0.004783536418400208im, 0.00207186415673416 - 0.05998573497059257im, 0.18174230085780196 + 0.16183090412362208im, 0.29422732978359123 + 0.27292516947209655im, -0.22794000475442944 - 0.30370797473122535im, 0.09238379629939995 + 0.21933151445486868im, 0.059148432079227986 + 0.08459871093934307im, 0.010412174118121861 + 0.0016311473695380654im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.48685753126977493 + 0.518286013119263im, -0.017849747404403402 + 0.7019611576084105im, -0.009046546174827549 + 0.008423318095569449im, 0.017291780626647817 + 0.02208152431147434im, 0.006058490142600034 - 0.013813200376609661im, 0.0008365822601954934 - 0.0024529376498219225im, 0.0023409662515978254 + 0.0026988865940720725im, 0.0008964979246755168 - 0.006145267675136557im, 0.5172315812201151 + 0.47612900197385544im, -0.033773991737208436 - 0.7095306992852185im  …  0.03197304068441837 + 0.027093826739761646im, -0.007763499183596423 + 0.03860122180026368im, 1.4050870374535117e-10 + 7.32484562114391e-10im, 2.624268437654336e-8 - 8.539702932728526e-7im, 0.00025600412146791114 + 0.00020673484612340954im, 0.001895737866847241 + 0.0017764772987640585im, -0.001739555188186535 + 0.0028199315888391904im, 0.0060040788071316995 + 0.01701471984747735im, 0.06742228763129292 - 0.010880283294717706im, 0.1055904459969247 + 0.029060909625505463im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4839054005801089 + 0.5151433113079887im, 0.0637233510466769 + 0.05056219947004415im, -0.00560651470067234 + 0.005501218143827153im, 0.0044201321481955715 - 2.6878518961661875e-5im, 0.0008551717166615847 + 0.0018177048489877632im, 0.0001581971210728315 + 0.00047423509908108973im, 0.00017637465495606606 + 0.0004611578421950952im, 8.054514287835954e-5 + 9.000832930781391e-5im, 0.5140952731083728 + 0.4732419252651905im, 0.06574299759508226 + 0.03016515002943002im  …  3.227335177906596e-8 + 6.782370518231236e-9im, -1.0983390783438698e-9 + 7.777808592012078e-10im, 1.3965670900398576e-10 + 7.280430365831055e-10im, 3.1533287093921613e-10 - 9.129688335113626e-9im, 2.7660752426416336e-8 + 2.4630284489514674e-8im, 4.478071031243959e-8 + 4.1538571417185304e-8im, -3.469193473302377e-8 - 4.622364226334762e-8im, 1.4060597371052154e-8 + 3.338174267637283e-8im, 9.002252796581079e-9 + 1.2875725617219026e-8im, 1.584708508381057e-9 + 2.482568083865863e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)]))

From a FiniteMPS and two environments

Build a FiniteMPS with matching boundary virtual spaces first, then wrap:

julia
finite_part = FiniteMPS(6, ℂ^2, ℂ^8; left =^8, right =^8)
ψ_win3 = WindowMPS(ψ_bulk, finite_part, ψ_bulk)
WindowMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42183413762206823 + 0.557165803091801im, 0.044555391543555964 + 0.03345972726885402im, -0.008466229203605173 + 0.008273462366577564im, 0.005316829207450264 - 0.0019700273121536025im, 0.00023733806605111968 + 0.002121666726621853im, 0.0001817113188664748 + 0.00015424367831929142im, 4.9122314805526694e-5 + 0.0006949946988860322im, 0.00010709994268843996 + 0.00015665689733764324im, 0.5683621491512314 + 0.42217848613950826im, 0.07729203866136806 + 0.03096860857616763im  …  0.21204893917199188 + 0.04456291008469743im, -0.00721653077772455 + 0.005110333975564212im, 0.0009176009109706368 + 0.004783536418400208im, 0.00207186415673416 - 0.05998573497059257im, 0.18174230085780196 + 0.16183090412362208im, 0.29422732978359123 + 0.27292516947209655im, -0.22794000475442944 - 0.30370797473122535im, 0.09238379629939995 + 0.21933151445486868im, 0.059148432079227986 + 0.08459871093934307im, 0.010412174118121861 + 0.0016311473695380654im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.48685753126977493 + 0.518286013119263im, -0.017849747404403402 + 0.7019611576084105im, -0.009046546174827549 + 0.008423318095569449im, 0.017291780626647817 + 0.02208152431147434im, 0.006058490142600034 - 0.013813200376609661im, 0.0008365822601954934 - 0.0024529376498219225im, 0.0023409662515978254 + 0.0026988865940720725im, 0.0008964979246755168 - 0.006145267675136557im, 0.5172315812201151 + 0.47612900197385544im, -0.033773991737208436 - 0.7095306992852185im  …  0.03197304068441837 + 0.027093826739761646im, -0.007763499183596423 + 0.03860122180026368im, 1.4050870374535117e-10 + 7.32484562114391e-10im, 2.624268437654336e-8 - 8.539702932728526e-7im, 0.00025600412146791114 + 0.00020673484612340954im, 0.001895737866847241 + 0.0017764772987640585im, -0.001739555188186535 + 0.0028199315888391904im, 0.0060040788071316995 + 0.01701471984747735im, 0.06742228763129292 - 0.010880283294717706im, 0.1055904459969247 + 0.029060909625505463im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4839054005801089 + 0.5151433113079887im, 0.0637233510466769 + 0.05056219947004415im, -0.00560651470067234 + 0.005501218143827153im, 0.0044201321481955715 - 2.6878518961661875e-5im, 0.0008551717166615847 + 0.0018177048489877632im, 0.0001581971210728315 + 0.00047423509908108973im, 0.00017637465495606606 + 0.0004611578421950952im, 8.054514287835954e-5 + 9.000832930781391e-5im, 0.5140952731083728 + 0.4732419252651905im, 0.06574299759508226 + 0.03016515002943002im  …  3.227335177906596e-8 + 6.782370518231236e-9im, -1.0983390783438698e-9 + 7.777808592012078e-10im, 1.3965670900398576e-10 + 7.280430365831055e-10im, 3.1533287093921613e-10 - 9.129688335113626e-9im, 2.7660752426416336e-8 + 2.4630284489514674e-8im, 4.478071031243959e-8 + 4.1538571417185304e-8im, -3.469193473302377e-8 - 4.622364226334762e-8im, 1.4060597371052154e-8 + 3.338174267637283e-8im, 9.002252796581079e-9 + 1.2875725617219026e-8im, 1.584708508381057e-9 + 2.482568083865863e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)]), FiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.11271019992340947 + 0.06392194572617955im, 0.09870340946049949 + 0.034006676683465666im, 0.18661575060350455 + 0.19869926874397534im, 0.049425653815659956 + 0.213255285087874im, 0.17041891543304194 + 0.20681576040222674im, 0.07661323142541605 + 0.17120000897185336im, 0.034866118971187444 + 0.07188974023200893im, 0.2873866820580237 + 0.22142610560722298im, 0.21220625156875447 + 0.29634709259253855im, 0.3189318307055058 + 0.03246196388406115im  …  0.13295287400568176 - 0.2616724482849514im, 0.20100079976740304 + 0.10460634931252481im, 0.23961536889406407 - 0.18794666787913478im, -0.25292552067434565 - 0.05695052944952887im, 0.32111250107869455 - 0.13520270860091094im, 0.1576765995620047 + 0.10185028392271742im, 0.03349094934854245 + 0.39327043842988796im, -0.13358512909014886 + 0.006338605150360388im, -0.02849824206381596 + 0.059123265314184645im, -0.21415580707263177 + 0.21269097958306363im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42292557854998925 + 0.45255452137802904im, 0.22467564275291826 + 0.17026016096591595im, 0.09219444316334137 + 0.11553031692889595im, 0.15517148896754834 + 0.04171410967990677im, 0.052721631213046766 + 0.06466807276552451im, 0.029273627673843367 + 0.0574157009392504im, 0.04182066837690708 + 0.02426428119412643im, 0.019534217914993088 + 0.03537245092143802im, 0.27177748401997803 + 0.5109378850441837im, 0.17069730813687037 + 0.21450378285022256im  …  -0.06734678474828253 + 0.19409802250901537im, 0.190094135429422 + 0.13489443588851552im, -0.02309046283452476 - 0.03494132097805969im, -0.07643506651043722 + 0.2673308914036251im, 0.3021240353623328 - 0.308771654707567im, -0.0031024394155055313 + 0.1533045685118658im, -0.012477740989212435 - 0.06435784085807766im, -0.16009018892950827 + 0.02581882331170549im, 0.18518301695988795 - 0.03587637127432353im, 0.07077997949701467 + 0.36629534384481344im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.45542446932313196 + 0.3542460900819939im, 0.04028185512805679 + 0.020742708905349266im, 0.021025586567838175 + 0.03658969632854592im, 0.025855798783981906 + 0.020842463049902647im, 0.005055758761837178 + 0.005983253678800945im, 0.010869795737967276 + 0.006083806033380249im, 0.011010808159913728 - 0.000492538764530186im, 0.005478016309948764 + 0.002976413333342604im, 0.6204846968141513 + 0.5077900659745962im, 0.06995951578837638 + 0.050138325791786564im  …  0.2934928742426433 - 0.20119794220491116im, 0.03667301073666751 - 0.09189244811868458im, -0.0417502052224693 - 0.015939628615306636im, 0.07045844163732405 + 0.15831086729346597im, 0.17278716173140563 - 0.11956431453452336im, 0.5404667842307712 + 0.07001831697141234im, -0.01766894355417446 + 0.018480952464119876im, -0.11328603017370864 + 0.06198933089407747im, 0.07637355888809189 + 0.19427271607503244im, -0.026235587365530416 + 0.07608459756223221im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.37162731651098935 + 0.6882022607791657im, 0.08363283517830558 + 0.053629397992989214im, 0.0156805355655701 + 0.013437991644696933im, 0.015532144990942829 + 0.012306158149236503im, -0.0011875905588475105 + 0.006447860020937828im, 0.0024577746811222058 + 0.005138702547494107im, 0.0005027197190551503 + 0.003750102709895264im, 0.001737365074812175 + 0.001957150154456722im, 0.454286819728297 + 0.4021851351149416im, 0.08529405665348862 + 0.041461018344997484im  …  -0.10723268015371257 - 0.0049483222629052494im, 0.09398525733104379 + 0.11297885227283273im, -0.013168101054832237 - 0.03531299840815566im, 0.026114052154539324 + 0.19206768951529246im, 0.20915093041781163 + 0.020688851228118338im, 0.3705295614437154 - 0.23316877349406523im, 0.25720160293559774 - 0.007299744566987537im, 0.1744435238979108 - 0.051365957860602586im, 0.10010947086252053 + 0.19814038834735978im, 0.06810213933044146 + 0.01774422880333481im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.6591124535368806 + 0.3951101216962924im, 0.2208188578194174 - 0.01875850025297359im, 0.013689150486055686 + 0.007662233401228025im, 0.0007200315919994396 + 0.007042996088173784im, 0.004889960083955045 - 0.0009212050032240209im, -0.00032832275604829356 + 0.002598312778982855im, 0.0016693199546490172 + 0.0014555358780958733im, 0.0006107118424507742 + 0.0004648094137729254im, 0.4311527139687316 + 0.3849109966520475im, 0.16002089376154005 - 0.004624789511921211im  …  -0.25723274551700914 - 0.002706789356037064im, 0.04466573908793192 - 0.017239675790485395im, 0.011303118385865396 + 0.015551012623306049im, -0.04475316391433068 - 0.05357842091513179im, -0.39041919360029037 + 0.23156540233768758im, -0.15516201220626502 - 0.024774968785271384im, 0.18116023798352363 + 0.003203130962346864im, -0.3127010110915036 + 0.016846457966289762im, 0.2281447585386672 - 0.04016049906495136im, -0.042592363920888825 - 0.14456623154377227im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.3710930286547236 + 0.523449690025082im, 0.02899473454424443 + 0.06699390356602064im, 0.013357824037900846 + 0.02105429874594899im, -0.004043771833592681 + 0.005011537925426203im, 0.002039648224179413 + 0.00018036639882557342im, 0.0009599687466555129 + 0.0013261965361312847im, 0.00023518930507244475 + 0.0003249020107167637im, 0.0003556799249243059 + 0.0001385603023173329im, 0.4411647889376724 + 0.6115067256389135im, 0.042282312578010656 + 0.10178648335255154im  …  0.014571894037567878 + 0.04858959654199022im, -0.08188580633469633 + 0.0423707583505978im, 0.03274039162364873 - 0.012159336399082565im, -0.15831687653230242 + 0.034757581397519055im, 0.154565161279685 + 0.04608086437516431im, -0.2060909323950945 - 0.3845935347047825im, 0.03018576253996521 - 0.0063003296415051644im, -0.15232290747111327 + 0.03523222930539707im, -0.060301165227596876 + 0.013621976880526163im, 0.03084413706987058 + 0.14245187705840748im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}}[missing, missing, missing, missing, missing, missing], Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}}[missing, missing, missing, missing, missing, missing], Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}[missing, missing, missing, missing, missing, missing, TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.33426097786964276 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 + 0.0im, 0.3487774881363477 + 0.00898812139549342im, 0.06294109089695639 + 0.0im  …  0.003786850573808291 + 0.0im, 0.0 + 0.0im, 0.33866719694581227 + 0.019459421874836822im, -0.026407283305781216 - 0.022715945164782883im, 0.011801780764549874 - 0.018648819292752986im, -0.005614005861740951 + 0.0011433916716047654im, 0.002469363465426125 + 0.002985715231065513im, -0.0006522305048538731 - 0.003923759093963415im, 0.001356669712958526 - 0.00043700783880417304im, 0.0013315153161832427 + 0.0im], ℂ^8 ← ℂ^8)]), InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42183413762206823 + 0.557165803091801im, 0.044555391543555964 + 0.03345972726885402im, -0.008466229203605173 + 0.008273462366577564im, 0.005316829207450264 - 0.0019700273121536025im, 0.00023733806605111968 + 0.002121666726621853im, 0.0001817113188664748 + 0.00015424367831929142im, 4.9122314805526694e-5 + 0.0006949946988860322im, 0.00010709994268843996 + 0.00015665689733764324im, 0.5683621491512314 + 0.42217848613950826im, 0.07729203866136806 + 0.03096860857616763im  …  0.21204893917199188 + 0.04456291008469743im, -0.00721653077772455 + 0.005110333975564212im, 0.0009176009109706368 + 0.004783536418400208im, 0.00207186415673416 - 0.05998573497059257im, 0.18174230085780196 + 0.16183090412362208im, 0.29422732978359123 + 0.27292516947209655im, -0.22794000475442944 - 0.30370797473122535im, 0.09238379629939995 + 0.21933151445486868im, 0.059148432079227986 + 0.08459871093934307im, 0.010412174118121861 + 0.0016311473695380654im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.48685753126977493 + 0.518286013119263im, -0.017849747404403402 + 0.7019611576084105im, -0.009046546174827549 + 0.008423318095569449im, 0.017291780626647817 + 0.02208152431147434im, 0.006058490142600034 - 0.013813200376609661im, 0.0008365822601954934 - 0.0024529376498219225im, 0.0023409662515978254 + 0.0026988865940720725im, 0.0008964979246755168 - 0.006145267675136557im, 0.5172315812201151 + 0.47612900197385544im, -0.033773991737208436 - 0.7095306992852185im  …  0.03197304068441837 + 0.027093826739761646im, -0.007763499183596423 + 0.03860122180026368im, 1.4050870374535117e-10 + 7.32484562114391e-10im, 2.624268437654336e-8 - 8.539702932728526e-7im, 0.00025600412146791114 + 0.00020673484612340954im, 0.001895737866847241 + 0.0017764772987640585im, -0.001739555188186535 + 0.0028199315888391904im, 0.0060040788071316995 + 0.01701471984747735im, 0.06742228763129292 - 0.010880283294717706im, 0.1055904459969247 + 0.029060909625505463im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939363561205131 + 0.0im, 0.10561145829023955 - 0.024114084503649123im, 0.0007776958191156957 + 0.013038195493904751im, 0.00405826116411765 - 0.005989637658815961im, 0.0027284933717053677 + 0.0010444610228028271im, 0.0006084328934697875 + 0.000210945418731898im, 0.0006534964678223556 + 0.0003551606633897591im, 0.00020448034370824133 + 4.307661340139759e-5im, 0.0 - 0.0im, 0.010777493001375206 + 0.0im  …  5.656116409908878e-7 + 0.0im, -2.5470209952284926e-7 - 8.255511814475827e-8im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.5219765731951718e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4839054005801089 + 0.5151433113079887im, 0.0637233510466769 + 0.05056219947004415im, -0.00560651470067234 + 0.005501218143827153im, 0.0044201321481955715 - 2.6878518961661875e-5im, 0.0008551717166615847 + 0.0018177048489877632im, 0.0001581971210728315 + 0.00047423509908108973im, 0.00017637465495606606 + 0.0004611578421950952im, 8.054514287835954e-5 + 9.000832930781391e-5im, 0.5140952731083728 + 0.4732419252651905im, 0.06574299759508226 + 0.03016515002943002im  …  3.227335177906596e-8 + 6.782370518231236e-9im, -1.0983390783438698e-9 + 7.777808592012078e-10im, 1.3965670900398576e-10 + 7.280430365831055e-10im, 3.1533287093921613e-10 - 9.129688335113626e-9im, 2.7660752426416336e-8 + 2.4630284489514674e-8im, 4.478071031243959e-8 + 4.1538571417185304e-8im, -3.469193473302377e-8 - 4.622364226334762e-8im, 1.4060597371052154e-8 + 3.338174267637283e-8im, 9.002252796581079e-9 + 1.2875725617219026e-8im, 1.584708508381057e-9 + 2.482568083865863e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)]))

Warning

When ψᵣ is omitted in the outer constructors, the right environment is the same object as the left environment (no copy is made). If you later evolve the two environments independently, pass copy(ψ_bulk) explicitly as the right argument to avoid aliasing:

julia
ψ_win_safe = WindowMPS(rand, ComplexF64, 6, ℂ^2, ℂ^8, ψ_bulk, copy(ψ_bulk))

4. A multiline MPS

MultilineMPS stacks several InfiniteMPS rows and is used in boundary-MPS methods for 2D classical partition functions.

From a vector of InfiniteMPS rows

julia
row1 = InfiniteMPS(ℂ^2, ℂ^8)
row2 = InfiniteMPS(ℂ^2, ℂ^8)
ψ_ml = MultilineMPS([row1, row2])
MultilineMPS{InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}}(InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}[InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4601244013914201 + 0.36824708110659876im, 0.07182694919236322 - 0.03145949131256184im, 0.008163881587786973 + 0.01104554733801267im, 0.012747293257724576 + 0.00907734766841624im, 0.0009114545967170725 + 8.263072251253845e-5im, 7.13740177635017e-5 - 0.00032649898675203467im, 0.0005505206012429998 + 0.0001698372719321203im, 0.0001167699043382201 + 2.6100880604069215e-6im, 0.5479354548540857 + 0.5768805340877456im, 0.1099788289810674 - 0.014988342455867873im  …  0.1467086133396138 - 0.03706483217949921im, 0.022125070992298435 - 0.09118951050586212im, -0.003969539456556783 + 0.005445310823724132im, 0.03912550240881513 + 0.008031127899385697im, 0.2168080642356201 - 0.6183326385653866im, 0.1715936302054703 + 0.1930605212422888im, -0.046760729289004224 + 0.28199777322124103im, -0.17679634789715282 + 0.27199261495472893im, -0.08882977634151965 - 0.15173330741826238im, 0.05816109837432217 + 0.026883189985052264im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.524325349028538 + 0.4605003876911801im, 0.7047695491467978 + 0.005821200220625139im, 0.08047815318399837 - 0.008233631387883297im, 0.054306480912408236 - 0.07279340738320733im, -0.0365693217235627 + 0.0019778570305564137im, -0.010648692978095967 - 0.002151818252853732im, 0.0034083667322267206 + 0.003758567233897164im, -0.0010896600526693935 + 0.0012944629832130144im, 0.5107652911337187 + 0.5020736547958751im, -0.6863678107814106 - 0.04455095962677649im  …  0.008832958491347949 - 0.0039401858341298664im, 0.00820413396423847 - 0.11813804327181981im, -8.853031177249494e-10 + 1.2144357555790496e-9im, 1.0776080395585057e-6 + 1.9813643693268515e-7im, 0.00021379123822909507 - 0.0006138965019039551im, 0.0008853446092594002 + 0.0006481339101559127im, 0.0010174320886496098 + 0.006910821688670452im, -0.007952595466241287 - 0.002320539131358903im, -0.005655421873891827 - 0.005581819855174544im, 0.04743075494533642 + 0.052327061771603636im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9896782827252474 + 0.0im, 0.07901980233705827 - 0.11475838047971672im, 0.01780243857335208 + 0.011418655357973184im, 0.024498608445907153 + 0.0010487778189290095im, 0.002186846369629413 - 0.00017465785383962942im, -0.0002588235625412457 - 0.0014734818260632625im, 0.0007075611148023342 + 0.00015194791100234242im, 0.00023034597069945207 + 9.525366315179019e-6im, 0.0 + 0.0im, 0.00794950887031952 + 0.0im  …  1.382749214506732e-6 + 0.0im, -4.2396809339571333e-7 + 2.393908352664048e-7im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 2.2072214644286568e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5189134110158791 + 0.4557472328845176im, 0.0998809359247392 - 0.023735802604691686im, 0.0041076591562230515 + 0.015423981154786444im, 0.012522979497386504 + 0.012321435834897034im, 0.0011975280767884083 + 0.0009524293240481272im, 0.00044066749745279505 - 0.0009430496833235627im, 0.00035157408040339597 + 0.00039543161763912844im, 0.00012005997980395472 + 0.00014014339024074357im, 0.5054933162048797 + 0.4968913924799704im, 0.09252144485181482 - 0.019294994903876383im  …  3.2381840037975995e-8 - 8.181029316203666e-9im, 4.8834931596208945e-9 - 2.0127544491928135e-8im, -8.761652692408598e-10 + 1.2019006930609594e-9im, 8.635864872329186e-9 + 1.772647788309594e-9im, 4.785434130420877e-8 - 1.364797071998328e-7im, 3.787451437487476e-8 + 4.2612732641976455e-8im, -1.0321128537902789e-8 + 6.224315379750079e-8im, -3.902286939111919e-8 + 6.003479378941566e-8im, -1.9606698902139903e-8 - 3.349090130023407e-8im, 1.2837442472655055e-8 + 5.9337153967320855e-9im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)]), InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.32040644060780177 + 0.5166572926007845im, 0.07550914760936485 + 0.09382402545518233im, 0.00025763997990353466 + 0.014923566873055311im, 0.006249512700353312 + 0.0021641022818055865im, -0.0014734246242083925 + 0.003624620268314603im, -0.0014510792706390594 + 0.002375094246710166im, -0.0002075631110004174 - 3.245993566405267e-5im, 5.543459223972757e-6 + 0.00032148228073672374im, 0.6146066188629378 + 0.4584387632013388im, 0.1516242293600481 + 0.06488733496742498im  …  -0.04065806827318262 - 0.04582911203264787im, -0.018087812633187816 + 0.05892811912739733im, -0.006345724129655034 + 0.010764839285895056im, 0.10155013038238309 - 0.05897205583039583im, -0.5286444985967559 - 0.2118141933250864im, -0.20661409334703063 - 0.24697110731138514im, -0.313415010962073 - 0.2081434499733255im, -0.08133404374936293 + 0.3219369967127201im, -0.03271898947679028 + 0.09721336123545618im, 0.1332020180006495 + 0.03607259390318786im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4718266692270452 + 0.4938809709683617im, -0.4779181703074252 + 0.5428676174614764im, -0.05791509822490372 + 0.07063484893206867im, -0.03650545812151254 - 0.0007626594390502334im, 0.004802444900972625 - 0.013333155216117703im, 0.014113678476065115 - 0.00432930360240515im, 0.012958863669145872 - 0.00016181868894686206im, -0.0009548494832716527 + 0.002620117049857524im, 0.5093448124874417 + 0.5234100697443534im, 0.4430391773446924 - 0.5130002512324745im  …  0.003671661208989408 - 0.01549488132618178im, -0.10153452508329885 - 0.0032661669880853592im, -1.2664380964797756e-9 + 2.1483761814399514e-9im, 2.4136492269430515e-6 - 1.4495475298143752e-6im, -0.0017285354524796946 - 0.0006485873984354045im, 0.0013644651241384975 + 0.0002384666147631433im, -0.01639923601033333 - 0.0031789167341446877im, -0.013255233953065805 + 0.009941132629267858im, 0.012387042293697026 - 0.0062471538078135895im, 0.10018816625338677 - 0.015969730260673297im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9800279503753674 + 0.0im, 0.19012802563784684 - 0.050956839610862135im, 0.022757785286994913 + 0.0067771084909622305im, 0.003240944941017489 - 0.00939101461270523im, 0.006812693833924578 + 0.0018143369021535686im, 0.003316918527432723 + 0.0020938429910537im, 1.1230242460746241e-5 + 0.00027998117975432276im, 0.0003118195860186546 - 1.2744551985460978e-5im, 0.0 - 0.0im, 0.008283413115191356 + 0.0im  …  1.4561123696682093e-6 + 0.0im, -5.870031533081555e-7 + 1.6104827302308685e-7im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.955875652021992e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4624033235750177 + 0.4840171557075198im, 0.11091529284799828 + 0.07435461474468051im, 0.006227434994274236 + 0.015030016960352598im, 0.006231586858733205 - 0.0025679580898408964im, 0.0022337730313278376 + 0.0041757911388547175im, 0.0003216751709027611 + 0.0026607750716139415im, -0.00011120707058801487 + 0.0001093026347006491im, 0.00012089412526731331 + 0.0001677585383535993im, 0.4991721526163933 + 0.5129564978573868im, 0.12718192307395035 + 0.06931092823375885im  …  -7.952212579376573e-9 - 8.963604437844408e-9im, -3.5377512327587847e-9 + 1.1525607342072787e-8im, -1.2411447319640726e-9 + 2.105468705721195e-9im, 1.986194274745618e-8 - 1.1534200814835276e-8im, -1.033962903380769e-7 - 4.142822234772156e-8im, -4.041114745420562e-8 - 4.830447755432488e-8im, -6.130007889189244e-8 - 4.071027059306849e-8im, -1.5907927584987045e-8 + 6.296687333554934e-8im, -6.399427487641788e-9 + 1.901372462916473e-8im, 2.605265838076655e-8 + 7.055350812052209e-9im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)])])

Access tensors with Cartesian [row, col] indexing:

julia
ψ_ml.AL[1, 1]   # left-gauged tensor of row 1, unit-cell site 1
8×2←8 TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}:
 codomain: (ℂ^8 ⊗ ℂ^2)
 domain: ⊗(ℂ^8)
 blocks: 
 * Trivial() => 16×8 reshape(view(::Vector{ComplexF64}, 1:128), 16, 8) with eltype ComplexF64:
    0.460124+0.368247im     …  -0.00692386+0.00168177im
   0.0718269-0.0314595im         0.0414473-0.0577054im
  0.00816388+0.0110455im          0.219986+0.0471246im
   0.0127473+0.00907735im        -0.282775-0.093339im
 0.000911455+8.26307e-5im        -0.201192-0.0545183im
   7.1374e-5-0.000326499im  …    -0.119351-0.215759im
 0.000550521+0.000169837im        0.146709-0.0370648im
  0.00011677+2.61009e-6im        0.0221251-0.0911895im
    0.547935+0.576881im        -0.00396954+0.00544531im
    0.109979-0.0149883im         0.0391255+0.00803113im
  0.00314324+0.017772im     …     0.216808-0.618333im
   0.0106292+0.017531im           0.171594+0.193061im
  0.00137499+0.00142183im       -0.0467607+0.281998im
 0.000222862-0.00109821im        -0.176796+0.271993im
 0.000207921+0.000537237im      -0.0888298-0.151733im
 0.000157306+4.53815e-5im   …    0.0581611+0.0268832im

From space matrices

Pass matrices whose rows correspond to MPS rows and columns to unit-cell sites:

julia
pspaces = fill(ℂ^2, 2, 2)    # 2 rows × 2-site unit cell
Dspaces = fill(ℂ^8, 2, 2)
ψ_ml2 = MultilineMPS(pspaces, Dspaces)
MultilineMPS{InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}}(InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}[InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.553567253072756 + 0.5067763583852731im, 0.07316269549481093 + 0.01574440134503327im, 0.009163361017271622 + 0.003894032618449945im, 0.0031959781834012173 + 0.0031740286695647654im, 0.0005780326577630252 + 0.0016701854809880571im, 0.0012847516832968338 - 0.0003103972812621371im, 0.0006452550756605571 + 0.0005444456904392591im, 3.73545716046689e-5 + 1.3561447208530617e-5im, 0.3514223127515086 + 0.5520533422561312im, 0.04259237501696399 + 0.02985923421207523im  …  0.027770957815199893 + 0.0595471512957095im, -0.003628989921046877 + 0.0039272040008003105im, 0.006012749489637648 - 0.010708805637567827im, -0.06334375693786917 + 0.020920087935665993im, 0.4034032665829363 + 0.4413429396695591im, -0.20154571593777465 + 0.25255848371310313im, -0.13438809812479338 + 0.24990807942055746im, 0.04626970247578016 - 0.06861902653432542im, -0.00023069760820461707 - 0.018943189039710248im, 0.010531493226252027 - 0.003150232294234944im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5989309206509126 + 0.3245690080329577im, 0.10219801747588955 - 0.006095092990317078im, 0.004236864309096188 + 0.0036577192405729637im, 0.0007707662353786495 - 0.0002839800452291108im, 0.0022849694399336208 + 0.0010071859360232204im, 0.0001423019914561788 + 0.00010715623747664438im, 0.0007702357492223287 + 8.433276461411855e-5im, 0.00020382884281242367 + 0.00023778116141806927im, 0.5240483160377918 + 0.48876695532968634im, 0.10893822096012158 + 0.0015031229554322845im  …  0.20118859253638974 - 0.4960675101850596im, 0.21826508408662204 + 0.20960887819498647im, -0.001406843946097358 + 0.0064062111820337025im, -0.011061741873185454 - 0.029927617321611824im, -0.025322734331173567 - 0.17073301905581717im, 0.006700635708355745 + 0.1875571616020692im, 0.09030856869161359 + 0.005391211333594242im, -0.13647454193455025 - 0.08943378207713863im, 0.3649825492232984 + 0.14855799593662883im, -0.09916909543713603 + 0.4337798455190528im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.46246014387881296 + 0.5417223283838953im, -0.4465522370919527 + 0.43910308391702196im, -0.013162941101299355 + 0.2661229847153742im, -0.16485379423481297 - 0.002345374725333893im, 0.04398426994878442 + 0.006079016132045702im, 0.01643244042318173 - 0.0008985434979326046im, 0.00230845843660413 - 0.0018997670689392633im, -0.0026216234284170722 - 0.003086989006249426im, 0.45939063901221583 + 0.5306560619737218im, 0.4472574096207291 - 0.44819507081958876im  …  -0.03300997484250537 + 0.002490963909927477im, -0.009225598374226873 + 0.02396859195859674im, 5.941239442491911e-9 - 1.058144506860736e-8im, -2.2626337703956416e-5 + 7.836081752748252e-6im, 0.0012158606888108756 + 0.0012652037385341727im, 0.00043423460076605553 + 0.00020827502346631148im, -0.008603507844772257 + 0.008460592204414745im, -0.017368115616493672 + 0.02372183724218963im, -0.002145828305000066 - 0.07087966181658334im, -0.048039149882164504 - 0.03135364473337496im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5936112910782969 + 0.3935543781665386im, 0.5938308051962378 + 0.3580984838512812im, -0.02738838988692005 - 0.019550246904030198im, -0.09763103151672467 - 0.019390532872916574im, -0.020144129100383913 - 0.002869197419973193im, 0.01779258180909603 - 0.003862376521140468im, 0.0068759869976132695 + 0.0013210152360388556im, -5.0670971030600363e-5 + 0.0029214604121525437im, 0.5519936375986998 + 0.43363083857538953im, -0.5711298160446228 - 0.41009593864626703im  …  0.025674098241858342 - 0.0778112149667014im, -0.06048319450064543 - 0.022612093420404177im, -3.4808267594994603e-10 + 1.5850309034833365e-9im, -4.865483713282406e-7 - 1.3043879423954099e-6im, -2.5977905628530147e-5 - 0.00016477908486436815im, -9.192271676777566e-5 + 0.0005485224739797194im, 0.004745903387898116 + 0.003138869876588297im, -0.005725268419382022 - 5.161646568521846e-5im, 0.04851294433903325 + 0.026779352093127293im, 0.05823792927515513 + 0.054983316404695906im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9887120849796828 + 0.0im, 0.11725500993840891 - 0.09275442412414876im, 0.002445808886605399 + 0.001865000090421585im, -0.0006902611390541642 - 0.004481340621173018im, 0.005512479019526513 + 0.00035647045686602093im, 0.00024201699591580952 - 0.0002462489283977797im, 0.001044479938134865 - 1.0435745486061382e-5im, 0.00047489653458222434 + 4.925720565927404e-5im, 0.0 - 0.0im, 0.005779932992765968 + 0.0im  …  1.7204440862470354e-6 + 0.0im, -6.032174413658087e-7 + 1.5767216571480471e-6im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 9.838777448031833e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9957199108356314 + 0.0im, 0.08770035975980729 - 0.026393624109364078im, 0.01000475619642572 - 0.0015622745145876175im, 0.005703042486148656 + 0.0004172872370185656im, 0.002239493485659207 + 0.0012413628988119114im, 0.001074355575172014 - 0.0012841174886491474im, 0.0008279745412740203 - 9.572532701024552e-5im, 6.654219348853168e-5 - 2.000222918655616e-6im, 0.0 + 0.0im, 0.002765108507387954 + 0.0im  …  1.989893804989201e-6 + 0.0im, 5.444183076230771e-9 + 1.9747372449519057e-7im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 2.446280905897055e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4604807732280448 + 0.5394037085160828im, 0.05362117110998205 + 0.03651741155904749im, 0.005266591086243949 + 0.0051247340389238855im, 0.0020693692423122663 + 0.0031966862304734214im, 0.0003879437331019961 + 0.001878893235475716im, 0.001343932824872168 - 0.00021141094414325098im, 0.0005528254944753003 + 0.0003905885150881227im, 3.5605780452239004e-5 + 4.29481664813323e-5im, 0.4574244061159671 + 0.5283848067128615im, 0.05553137621108347 + 0.0331744356950764im  …  2.732322734624321e-8 + 5.8587116926276616e-8im, -3.5704824194330834e-9 + 3.863888615689448e-9im, 5.91581040793118e-9 - 1.0536155540225849e-8im, -6.232251272339172e-8 + 2.058280893922734e-8im, 3.968994961718567e-7 + 4.342274961668932e-7im, -1.9829634447160073e-7 + 2.484866713865594e-7im, -1.3222145891141062e-7 + 2.458789975883929e-7im, 4.552373052458485e-8 - 6.751273307718188e-8im, -2.26978242491847e-10 - 1.86377821117705e-8im, 1.0361701804854845e-8 - 3.0994434452580346e-9im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5869106572695026 + 0.38911196978991397im, 0.10954010980638619 - 0.006844065692864946im, 0.0005504792097619834 + 0.002180650938307919im, 0.0011090280831090754 - 0.0025467401609659554im, 0.0030501653823458274 + 0.002050197242660825im, 0.0002872815586159633 + 2.743531592669004e-5im, 0.0006294010573624994 + 0.000356732091868419im, 0.0002871864271835381 + 0.00023102139656954997im, 0.5457627803257311 + 0.4287360505193691im, 0.10164410611019742 - 0.002724790734882354im  …  4.9216381240607293e-8 - 1.2135204782016043e-7im, 5.3393770762511865e-8 + 5.1276219643489695e-8im, -3.4415354829148325e-10 + 1.567139209375325e-9im, -2.7060127930335497e-9 - 7.321135881285297e-9im, -6.194652147945373e-9 - 4.1766092452240355e-8im, 1.6391637190722646e-9 + 4.588175031913902e-8im, 2.2092012722918693e-8 + 1.3188417345027393e-9im, -3.338550660755372e-8 - 2.187801534374625e-8im, 8.92849841150587e-8 + 3.6341458887810736e-8im, -2.4259546462294864e-8 + 1.0611473534562331e-7im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)]), InfiniteMPS{TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}(TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4455687123211971 + 0.41016323697733303im, 0.08406373739508478 + 0.006572551961009556im, 0.011719444548538715 + 0.01096706725462772im, 0.0007312652550666846 + 0.0013627327707857204im, 0.0004057310396475478 + 0.0006100474266535182im, 0.0007563359662170941 + 0.0008992014188469151im, -0.00024068982516429896 + 0.00016699002809930196im, 0.0001745642368772312 + 0.0002477854304228677im, 0.4649680332735564 + 0.628510448304805im, 0.11756221216177262 + 0.012334961096534699im  …  0.08759226031382167 - 0.025155037559253864im, -0.06183903922430112 - 0.039294235133497515im, 0.030034696571153874 + 0.01773910251777564im, -0.12325299555263086 - 0.06814184776717229im, -0.5755551912919893 + 0.26834284861699487im, -0.06568395204967166 - 0.19817265939765838im, 0.1177443053667321 + 0.041915126718295295im, -0.014700676020447515 + 0.012098820960142292im, -0.044913671272958096 + 0.02755178173264363im, 0.011728018845092442 - 0.0019896559564721557im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.49373495760289443 + 0.3596186664461086im, 0.11003079593049776 + 0.014654915871266822im, 0.0042249642410282 + 0.0115005756731421im, 0.003230522507306376 + 0.010073727705816634im, 0.00033723454047924177 - 0.00017692053501917217im, 0.001092700217336882 + 0.0016849937909333775im, 0.0003991981366115298 - 0.00020183184174243592im, 0.0003315396865495198 + 0.0004706962779732962im, 0.5738293181263986 + 0.5210326551816862im, 0.10898837457195205 + 0.03863250469043826im  …  0.034381443421587964 + 0.0791470798241745im, 0.07907248498043473 - 0.22136306569507389im, -0.002805696063568404 - 0.0005134005491498062im, 0.060064555912002514 + 0.003828679853894852im, -0.09878167461523252 - 0.47056965779158044im, 0.2394397643676648 + 0.13654288212893909im, -0.034098806994752436 - 0.14774854616007757im, -0.31153777006660466 + 0.057034101018691656im, 0.14443581350449247 - 0.09148942905193162im, -0.3107794496412191 + 0.43713928693821574im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.45000810334504515 + 0.5465960876877364im, 0.018283758084548463 + 0.4940406242701987im, 0.2453713020568716 + 0.4371226843209961im, 0.04314787203661783 + 0.0010132469504142497im, 0.022598079375849848 - 0.0201013279015551im, -0.003933282422893343 + 0.01171485446278227im, -0.008868124133186878 + 0.0016727226618626395im, -0.0026731920223228645 + 0.0029557347029717054im, 0.47473360709859347 + 0.5227993027111788im, -0.0449581858096717 - 0.494172827171816im  …  -0.017359517323185983 + 0.06373657855990447im, 0.004660920826817683 - 0.036728136202703134im, 2.4467445599419594e-8 + 1.4450970889882642e-8im, -9.76965349566874e-5 - 5.061311006648403e-5im, -0.0003146720323210968 + 0.00020386899231673923im, 0.0046457743334602465 - 0.004075632803402139im, 0.011696188008303715 + 0.009586421242932843im, 0.018120899336807134 - 0.031069610490492658im, 0.022363684320862973 - 0.015062505832109795im, -0.050949032051020436 + 0.06724374943782721im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5295433831399412 + 0.4692991914065695im, 0.648465928457232 - 0.17795459121207058im, 0.16511804350940715 + 0.05617466928067297im, -0.06558648381970933 - 0.1094242774208068im, 0.012272155326998135 - 0.006491487875482373im, 0.0075663225420717324 + 0.01070732153885376im, 0.004086324305144693 - 0.004348577603882315im, -0.0034039664268307765 - 0.007073837609919555im, 0.5555190771680203 + 0.43673683330098134im, -0.6373034069771157 + 0.21604179516561572im  …  0.032180987436660105 + 0.08664016129151002im, 0.013463096830350185 - 0.001179038394760129im, -1.1463670939679326e-9 - 2.097680868617917e-10im, 4.225997156800726e-6 + 2.5479200792288464e-7im, -0.00020455227889021625 - 0.0010094126347518534im, 0.003174969292310743 - 1.130583573359786e-6im, -0.009278836909078245 - 0.020565447552054073im, -0.023952264923868993 + 0.013719241704570553im, 0.00919314310976094 - 0.04618629158486704im, -0.01289631612609498 - 0.014295121685485922im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9845655329717803 + 0.0im, 0.14791864165627838 - 0.08989956055225287im, 0.017283482117596338 + 0.009262254109643608im, 0.013861520524719707 + 0.00707881313726952im, 0.0004272004628741953 - 0.00022418817887750537im, 0.0019637543275285063 + 0.0012199899267799678im, 0.0001807043926677557 - 0.000175579456441666im, 0.001007683483598162 - 3.499752237009552e-5im, 0.0 + 0.0im, 0.00576222733871918 + 0.0im  …  9.303985942034055e-7 + 0.0im, -1.4400779260876884e-6 - 3.091839629466151e-7im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 0.0 - 0.0im, 8.060303364121173e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.989432120444044 + 0.0im, 0.08448023948451604 - 0.11287828429156797im, 0.03176426936758962 - 0.009675339585632738im, 0.005819033022693496 + 0.00024656677513253296im, 0.0016386605940846486 + 0.00045147373900436246im, 0.001316320602499602 - 0.00015286659762854744im, 0.0001056805794899371 + 0.00016043854381125256im, 0.0002767463213858823 - 1.1770381848773932e-5im, 0.0 - 0.0im, 0.0010547341313484884 + 0.0im  …  9.854379389256148e-7 + 0.0im, 5.088730708830031e-7 - 4.734263654061902e-7im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 4.022793286345826e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4452524719096905 + 0.5408197260672957im, 0.09973490542293843 - 0.0040984927250413365im, 0.0200920538580197 + 0.013973746434487164im, 0.002651646739354906 + 0.00390626921781119im, 0.00043379568737808853 + 0.00124753485705372im, 0.0006435278296925465 + 0.0006631824699481854im, -4.513766453509012e-5 + 0.00010783190320341293im, 0.00010579603113947268 + 0.00018457617782400388im, 0.4697166795176109 + 0.5172744226481892im, 0.09907087820484628 - 0.009942125717061299im  …  7.060201904784744e-8 - 2.027572338634484e-8im, -4.984414158936555e-8 - 3.1672345563709844e-8im, 2.4208876581283023e-8 + 1.4298254770051738e-8im, -9.934565346908826e-8 - 5.492439647951717e-8im, -4.639149444608227e-7 + 2.1629247654454226e-7im, -5.2943257967474235e-8 - 1.5973317532197852e-7im, 9.490548206535815e-8 + 3.378486368950408e-8im, -1.1849190838246857e-8 + 9.752016728693468e-9im, -3.6201781565645666e-8 + 2.2207571898715974e-8im, 9.453138975157513e-9 - 1.6037230599396248e-9im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5213701632528557 + 0.4620558085104331im, 0.12425573710829223 + 0.020786966675082688im, 0.0050798641714277434 + 0.013863257315400944im, 0.004124149284227766 + 0.010625403706841225im, 0.00031705119365098056 + 8.681356749623423e-5im, 0.0006691196081739292 + 0.0015666903782390676im, 0.00017487766053176894 - 5.5000142200652277e-5im, 0.0005954293991773473 + 0.0003797993467777271im, 0.546944936287924 + 0.42999603304738976im, 0.11776178958484132 + 0.015905480165756755im  …  1.3830943977124292e-8 + 3.183923413505664e-8im, 3.18092261713974e-8 - 8.904978545230733e-8im, -1.1286735288049887e-9 - 2.0653042823261004e-10im, 2.4162729227014722e-8 + 1.5401987611815729e-9im, -3.973782574561553e-8 - 1.8930044601220226e-7im, 9.632166765824684e-8 + 5.4928378952660565e-8im, -1.371724518508922e-8 - 5.9436185956011643e-8im, -1.253252049867087e-7 + 2.2943639867076242e-8im, 5.810354208737701e-8 - 3.680430609617233e-8im, -1.250201483550947e-7 + 1.758520988693056e-7im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)])])

5. States with symmetries

All constructors accept TensorKit graded spaces. Pass a Rep[G] physical space and a Rep[G] maximum virtual space; the constructor automatically selects the consistent fusion channels.

Finite MPS with U(1) symmetry

julia
# U(1) spin-1/2: physical space = spin up (charge +1/2) + spin down (charge -1/2)
d_u1 = Rep[U₁](1 // 2 => 1, -1 // 2 => 1)   # dim 2 total
# the virtual space must span both charge parities (integer and half-integer):
# with only ±1/2 on each site, the total charge alternates parity bond to bond,
# so a purely half-integer virtual space would starve every even bond
D_u1 = Rep[U₁](0 => 2, 1 // 2 => 2, -1 // 2 => 2, 1 => 1, -1 => 1)

ψ_u1 = FiniteMPS(rand, ComplexF64, L, d_u1, D_u1)
physicalspace(ψ_u1, 1)
Rep[U₁](…) of dim 2:
  1/2 => 1
 -1/2 => 1
julia
dim(left_virtualspace(ψ_u1, 5))   # actual trimmed bond dimension ≤ dim(D_u1)
4

Note

The boundary virtual spaces default to oneunit(spacetype(d_u1)), i.e. the charge-0 sector. Use the left and right keywords to target a different total charge:

julia
# state in total charge-sector +1 (one more up-spin than down-spin)
ψ_charged = FiniteMPS(rand, ComplexF64, L, d_u1, D_u1;
                      right = Rep[U₁](1 => 1))

Infinite MPS with U(1) symmetry

julia
ψ_inf_u1 = InfiniteMPS(d_u1, D_u1)
physicalspace(ψ_inf_u1, 1)
Rep[U₁](…) of dim 2:
  1/2 => 1
 -1/2 => 1