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.515300079885594 + 0.44053438638729153im, 0.013453933789207673 + 0.05388539829212912im, 0.005897302285295475 + 0.012944785894373053im, 0.01146328235900452 + 0.011654478331736929im, -0.0006911958690663959 - 0.00024264614162635692im, 0.001468830136011177 + 0.0008132855700660508im, 0.00020410953788287423 + 7.779954140941385e-5im, 6.238413949955659e-5 + 2.6716628710157496e-5im, 0.4625127259184531 + 0.5622004781969973im, 0.03171267309746396 + 0.07453536185004038im  …  0.009641848923295263 - 0.1365872308428739im, -0.024522503342226054 - 0.027218990158006287im, 0.0020334850781510705 + 0.013057499137816064im, -0.039701381584854575 - 0.050696787997469586im, 0.11286958804918394 - 0.12208441648049859im, -0.018467476347977702 - 0.27619046018631643im, 0.004074331302691015 + 0.35019954046485996im, 0.26874505903580487 - 0.01968526915816884im, 0.20600441250297408 + 0.04641271760790785im, -0.0003648137832828242 - 0.046658618527066244im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47549198805441373 + 0.4915726397338829im, -0.3195899183237582 + 0.6357128849963678im, 0.05202174766321197 - 0.12096757507054354im, 0.0020969283072005077 - 0.0377247615297004im, 0.05577846743791492 + 0.05052117398738141im, 0.03276256081976489 + 0.019999474519401046im, -0.005211971264025629 + 0.0016660050626831667im, 0.0017245915370960876 + 0.0058947627366456555im, 0.5107171457785763 + 0.5209602053342693im, 0.29525506177706773 - 0.5981966758196592im  …  0.008124008844169407 - 0.02438915993332448im, -0.08094118168860076 + 0.04530873209846931im, 3.796499925225183e-10 + 2.4378243554863076e-9im, -1.339108761081553e-6 - 1.7726335288545909e-6im, 8.033471442575608e-5 - 9.268433998022387e-5im, 0.0001938374109606708 - 0.0005862700609194589im, 0.0003978328462526798 + 0.007363117284196649im, -0.0010482438967604657 - 0.01036646363779053im, 0.01569905773937052 + 0.023198500165351313im, -0.013805574151912779 - 0.0844983598233889im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47324828987505263 + 0.4892530619817795im, 0.0016299527221981993 + 0.06507344907545685im, 0.004760696853795597 + 0.019301025055531603im, 0.012128411363748771 + 0.0068809975422923im, -5.7725194627072224e-5 + 0.0005057054121061857im, 0.0011589211235041624 + 0.001007325548297441im, 0.00042691593572135976 + 0.0001226055265675253im, 6.380496972390023e-5 + 5.966549343116368e-5im, 0.5083072310819263 + 0.5185019568388308im, 0.005627497092693326 + 0.06247087553618724im  …  1.7916310392697288e-9 - 2.5380393770197913e-8im, -4.556727500923365e-9 - 5.0577838350940055e-9im, 3.778585427847738e-10 + 2.426321023764145e-9im, -7.377239377549501e-9 - 9.420386036965709e-9im, 2.0973224009964397e-8 - 2.268550686882567e-8im, -3.4315932665234526e-9 - 5.132121496162977e-8im, 7.570849205625903e-10 + 6.50734492550423e-8im, 4.993772390019628e-8 - 3.6578813379810452e-9im, 3.827936971457055e-8 + 8.624327776209229e-9im, -6.778904159178064e-11 - 8.670020643091297e-9im], (ℂ^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.515300079885594 + 0.44053438638729153im, 0.013453933789207673 + 0.05388539829212912im, 0.005897302285295475 + 0.012944785894373053im, 0.01146328235900452 + 0.011654478331736929im, -0.0006911958690663959 - 0.00024264614162635692im, 0.001468830136011177 + 0.0008132855700660508im, 0.00020410953788287423 + 7.779954140941385e-5im, 6.238413949955659e-5 + 2.6716628710157496e-5im, 0.4625127259184531 + 0.5622004781969973im, 0.03171267309746396 + 0.07453536185004038im  …  0.009641848923295263 - 0.1365872308428739im, -0.024522503342226054 - 0.027218990158006287im, 0.0020334850781510705 + 0.013057499137816064im, -0.039701381584854575 - 0.050696787997469586im, 0.11286958804918394 - 0.12208441648049859im, -0.018467476347977702 - 0.27619046018631643im, 0.004074331302691015 + 0.35019954046485996im, 0.26874505903580487 - 0.01968526915816884im, 0.20600441250297408 + 0.04641271760790785im, -0.0003648137832828242 - 0.046658618527066244im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.515300079885594 + 0.44053438638729153im, 0.013453933789207673 + 0.05388539829212912im, 0.005897302285295475 + 0.012944785894373053im, 0.01146328235900452 + 0.011654478331736929im, -0.0006911958690663959 - 0.00024264614162635692im, 0.001468830136011177 + 0.0008132855700660508im, 0.00020410953788287423 + 7.779954140941385e-5im, 6.238413949955659e-5 + 2.6716628710157496e-5im, 0.4625127259184531 + 0.5622004781969973im, 0.03171267309746396 + 0.07453536185004038im  …  0.009641848923295263 - 0.1365872308428739im, -0.024522503342226054 - 0.027218990158006287im, 0.0020334850781510705 + 0.013057499137816064im, -0.039701381584854575 - 0.050696787997469586im, 0.11286958804918394 - 0.12208441648049859im, -0.018467476347977702 - 0.27619046018631643im, 0.004074331302691015 + 0.35019954046485996im, 0.26874505903580487 - 0.01968526915816884im, 0.20600441250297408 + 0.04641271760790785im, -0.0003648137832828242 - 0.046658618527066244im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.515300079885594 + 0.44053438638729153im, 0.013453933789207673 + 0.05388539829212912im, 0.005897302285295475 + 0.012944785894373053im, 0.01146328235900452 + 0.011654478331736929im, -0.0006911958690663959 - 0.00024264614162635692im, 0.001468830136011177 + 0.0008132855700660508im, 0.00020410953788287423 + 7.779954140941385e-5im, 6.238413949955659e-5 + 2.6716628710157496e-5im, 0.4625127259184531 + 0.5622004781969973im, 0.03171267309746396 + 0.07453536185004038im  …  0.009641848923295263 - 0.1365872308428739im, -0.024522503342226054 - 0.027218990158006287im, 0.0020334850781510705 + 0.013057499137816064im, -0.039701381584854575 - 0.050696787997469586im, 0.11286958804918394 - 0.12208441648049859im, -0.018467476347977702 - 0.27619046018631643im, 0.004074331302691015 + 0.35019954046485996im, 0.26874505903580487 - 0.01968526915816884im, 0.20600441250297408 + 0.04641271760790785im, -0.0003648137832828242 - 0.046658618527066244im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.515300079885594 + 0.44053438638729153im, 0.013453933789207673 + 0.05388539829212912im, 0.005897302285295475 + 0.012944785894373053im, 0.01146328235900452 + 0.011654478331736929im, -0.0006911958690663959 - 0.00024264614162635692im, 0.001468830136011177 + 0.0008132855700660508im, 0.00020410953788287423 + 7.779954140941385e-5im, 6.238413949955659e-5 + 2.6716628710157496e-5im, 0.4625127259184531 + 0.5622004781969973im, 0.03171267309746396 + 0.07453536185004038im  …  0.009641848923295263 - 0.1365872308428739im, -0.024522503342226054 - 0.027218990158006287im, 0.0020334850781510705 + 0.013057499137816064im, -0.039701381584854575 - 0.050696787997469586im, 0.11286958804918394 - 0.12208441648049859im, -0.018467476347977702 - 0.27619046018631643im, 0.004074331302691015 + 0.35019954046485996im, 0.26874505903580487 - 0.01968526915816884im, 0.20600441250297408 + 0.04641271760790785im, -0.0003648137832828242 - 0.046658618527066244im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.515300079885594 + 0.44053438638729153im, 0.013453933789207673 + 0.05388539829212912im, 0.005897302285295475 + 0.012944785894373053im, 0.01146328235900452 + 0.011654478331736929im, -0.0006911958690663959 - 0.00024264614162635692im, 0.001468830136011177 + 0.0008132855700660508im, 0.00020410953788287423 + 7.779954140941385e-5im, 6.238413949955659e-5 + 2.6716628710157496e-5im, 0.4625127259184531 + 0.5622004781969973im, 0.03171267309746396 + 0.07453536185004038im  …  0.009641848923295263 - 0.1365872308428739im, -0.024522503342226054 - 0.027218990158006287im, 0.0020334850781510705 + 0.013057499137816064im, -0.039701381584854575 - 0.050696787997469586im, 0.11286958804918394 - 0.12208441648049859im, -0.018467476347977702 - 0.27619046018631643im, 0.004074331302691015 + 0.35019954046485996im, 0.26874505903580487 - 0.01968526915816884im, 0.20600441250297408 + 0.04641271760790785im, -0.0003648137832828242 - 0.046658618527066244im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.515300079885594 + 0.44053438638729153im, 0.013453933789207673 + 0.05388539829212912im, 0.005897302285295475 + 0.012944785894373053im, 0.01146328235900452 + 0.011654478331736929im, -0.0006911958690663959 - 0.00024264614162635692im, 0.001468830136011177 + 0.0008132855700660508im, 0.00020410953788287423 + 7.779954140941385e-5im, 6.238413949955659e-5 + 2.6716628710157496e-5im, 0.4625127259184531 + 0.5622004781969973im, 0.03171267309746396 + 0.07453536185004038im  …  0.009641848923295263 - 0.1365872308428739im, -0.024522503342226054 - 0.027218990158006287im, 0.0020334850781510705 + 0.013057499137816064im, -0.039701381584854575 - 0.050696787997469586im, 0.11286958804918394 - 0.12208441648049859im, -0.018467476347977702 - 0.27619046018631643im, 0.004074331302691015 + 0.35019954046485996im, 0.26874505903580487 - 0.01968526915816884im, 0.20600441250297408 + 0.04641271760790785im, -0.0003648137832828242 - 0.046658618527066244im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47549198805441373 + 0.4915726397338829im, -0.3195899183237582 + 0.6357128849963678im, 0.05202174766321197 - 0.12096757507054354im, 0.0020969283072005077 - 0.0377247615297004im, 0.05577846743791492 + 0.05052117398738141im, 0.03276256081976489 + 0.019999474519401046im, -0.005211971264025629 + 0.0016660050626831667im, 0.0017245915370960876 + 0.0058947627366456555im, 0.5107171457785763 + 0.5209602053342693im, 0.29525506177706773 - 0.5981966758196592im  …  0.008124008844169407 - 0.02438915993332448im, -0.08094118168860076 + 0.04530873209846931im, 3.796499925225183e-10 + 2.4378243554863076e-9im, -1.339108761081553e-6 - 1.7726335288545909e-6im, 8.033471442575608e-5 - 9.268433998022387e-5im, 0.0001938374109606708 - 0.0005862700609194589im, 0.0003978328462526798 + 0.007363117284196649im, -0.0010482438967604657 - 0.01036646363779053im, 0.01569905773937052 + 0.023198500165351313im, -0.013805574151912779 - 0.0844983598233889im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47549198805441373 + 0.4915726397338829im, -0.3195899183237582 + 0.6357128849963678im, 0.05202174766321197 - 0.12096757507054354im, 0.0020969283072005077 - 0.0377247615297004im, 0.05577846743791492 + 0.05052117398738141im, 0.03276256081976489 + 0.019999474519401046im, -0.005211971264025629 + 0.0016660050626831667im, 0.0017245915370960876 + 0.0058947627366456555im, 0.5107171457785763 + 0.5209602053342693im, 0.29525506177706773 - 0.5981966758196592im  …  0.008124008844169407 - 0.02438915993332448im, -0.08094118168860076 + 0.04530873209846931im, 3.796499925225183e-10 + 2.4378243554863076e-9im, -1.339108761081553e-6 - 1.7726335288545909e-6im, 8.033471442575608e-5 - 9.268433998022387e-5im, 0.0001938374109606708 - 0.0005862700609194589im, 0.0003978328462526798 + 0.007363117284196649im, -0.0010482438967604657 - 0.01036646363779053im, 0.01569905773937052 + 0.023198500165351313im, -0.013805574151912779 - 0.0844983598233889im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47549198805441373 + 0.4915726397338829im, -0.3195899183237582 + 0.6357128849963678im, 0.05202174766321197 - 0.12096757507054354im, 0.0020969283072005077 - 0.0377247615297004im, 0.05577846743791492 + 0.05052117398738141im, 0.03276256081976489 + 0.019999474519401046im, -0.005211971264025629 + 0.0016660050626831667im, 0.0017245915370960876 + 0.0058947627366456555im, 0.5107171457785763 + 0.5209602053342693im, 0.29525506177706773 - 0.5981966758196592im  …  0.008124008844169407 - 0.02438915993332448im, -0.08094118168860076 + 0.04530873209846931im, 3.796499925225183e-10 + 2.4378243554863076e-9im, -1.339108761081553e-6 - 1.7726335288545909e-6im, 8.033471442575608e-5 - 9.268433998022387e-5im, 0.0001938374109606708 - 0.0005862700609194589im, 0.0003978328462526798 + 0.007363117284196649im, -0.0010482438967604657 - 0.01036646363779053im, 0.01569905773937052 + 0.023198500165351313im, -0.013805574151912779 - 0.0844983598233889im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47549198805441373 + 0.4915726397338829im, -0.3195899183237582 + 0.6357128849963678im, 0.05202174766321197 - 0.12096757507054354im, 0.0020969283072005077 - 0.0377247615297004im, 0.05577846743791492 + 0.05052117398738141im, 0.03276256081976489 + 0.019999474519401046im, -0.005211971264025629 + 0.0016660050626831667im, 0.0017245915370960876 + 0.0058947627366456555im, 0.5107171457785763 + 0.5209602053342693im, 0.29525506177706773 - 0.5981966758196592im  …  0.008124008844169407 - 0.02438915993332448im, -0.08094118168860076 + 0.04530873209846931im, 3.796499925225183e-10 + 2.4378243554863076e-9im, -1.339108761081553e-6 - 1.7726335288545909e-6im, 8.033471442575608e-5 - 9.268433998022387e-5im, 0.0001938374109606708 - 0.0005862700609194589im, 0.0003978328462526798 + 0.007363117284196649im, -0.0010482438967604657 - 0.01036646363779053im, 0.01569905773937052 + 0.023198500165351313im, -0.013805574151912779 - 0.0844983598233889im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47549198805441373 + 0.4915726397338829im, -0.3195899183237582 + 0.6357128849963678im, 0.05202174766321197 - 0.12096757507054354im, 0.0020969283072005077 - 0.0377247615297004im, 0.05577846743791492 + 0.05052117398738141im, 0.03276256081976489 + 0.019999474519401046im, -0.005211971264025629 + 0.0016660050626831667im, 0.0017245915370960876 + 0.0058947627366456555im, 0.5107171457785763 + 0.5209602053342693im, 0.29525506177706773 - 0.5981966758196592im  …  0.008124008844169407 - 0.02438915993332448im, -0.08094118168860076 + 0.04530873209846931im, 3.796499925225183e-10 + 2.4378243554863076e-9im, -1.339108761081553e-6 - 1.7726335288545909e-6im, 8.033471442575608e-5 - 9.268433998022387e-5im, 0.0001938374109606708 - 0.0005862700609194589im, 0.0003978328462526798 + 0.007363117284196649im, -0.0010482438967604657 - 0.01036646363779053im, 0.01569905773937052 + 0.023198500165351313im, -0.013805574151912779 - 0.0844983598233889im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47549198805441373 + 0.4915726397338829im, -0.3195899183237582 + 0.6357128849963678im, 0.05202174766321197 - 0.12096757507054354im, 0.0020969283072005077 - 0.0377247615297004im, 0.05577846743791492 + 0.05052117398738141im, 0.03276256081976489 + 0.019999474519401046im, -0.005211971264025629 + 0.0016660050626831667im, 0.0017245915370960876 + 0.0058947627366456555im, 0.5107171457785763 + 0.5209602053342693im, 0.29525506177706773 - 0.5981966758196592im  …  0.008124008844169407 - 0.02438915993332448im, -0.08094118168860076 + 0.04530873209846931im, 3.796499925225183e-10 + 2.4378243554863076e-9im, -1.339108761081553e-6 - 1.7726335288545909e-6im, 8.033471442575608e-5 - 9.268433998022387e-5im, 0.0001938374109606708 - 0.0005862700609194589im, 0.0003978328462526798 + 0.007363117284196649im, -0.0010482438967604657 - 0.01036646363779053im, 0.01569905773937052 + 0.023198500165351313im, -0.013805574151912779 - 0.0844983598233889im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47324828987505263 + 0.4892530619817795im, 0.0016299527221981993 + 0.06507344907545685im, 0.004760696853795597 + 0.019301025055531603im, 0.012128411363748771 + 0.0068809975422923im, -5.7725194627072224e-5 + 0.0005057054121061857im, 0.0011589211235041624 + 0.001007325548297441im, 0.00042691593572135976 + 0.0001226055265675253im, 6.380496972390023e-5 + 5.966549343116368e-5im, 0.5083072310819263 + 0.5185019568388308im, 0.005627497092693326 + 0.06247087553618724im  …  1.7916310392697288e-9 - 2.5380393770197913e-8im, -4.556727500923365e-9 - 5.0577838350940055e-9im, 3.778585427847738e-10 + 2.426321023764145e-9im, -7.377239377549501e-9 - 9.420386036965709e-9im, 2.0973224009964397e-8 - 2.268550686882567e-8im, -3.4315932665234526e-9 - 5.132121496162977e-8im, 7.570849205625903e-10 + 6.50734492550423e-8im, 4.993772390019628e-8 - 3.6578813379810452e-9im, 3.827936971457055e-8 + 8.624327776209229e-9im, -6.778904159178064e-11 - 8.670020643091297e-9im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47324828987505263 + 0.4892530619817795im, 0.0016299527221981993 + 0.06507344907545685im, 0.004760696853795597 + 0.019301025055531603im, 0.012128411363748771 + 0.0068809975422923im, -5.7725194627072224e-5 + 0.0005057054121061857im, 0.0011589211235041624 + 0.001007325548297441im, 0.00042691593572135976 + 0.0001226055265675253im, 6.380496972390023e-5 + 5.966549343116368e-5im, 0.5083072310819263 + 0.5185019568388308im, 0.005627497092693326 + 0.06247087553618724im  …  1.7916310392697288e-9 - 2.5380393770197913e-8im, -4.556727500923365e-9 - 5.0577838350940055e-9im, 3.778585427847738e-10 + 2.426321023764145e-9im, -7.377239377549501e-9 - 9.420386036965709e-9im, 2.0973224009964397e-8 - 2.268550686882567e-8im, -3.4315932665234526e-9 - 5.132121496162977e-8im, 7.570849205625903e-10 + 6.50734492550423e-8im, 4.993772390019628e-8 - 3.6578813379810452e-9im, 3.827936971457055e-8 + 8.624327776209229e-9im, -6.778904159178064e-11 - 8.670020643091297e-9im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47324828987505263 + 0.4892530619817795im, 0.0016299527221981993 + 0.06507344907545685im, 0.004760696853795597 + 0.019301025055531603im, 0.012128411363748771 + 0.0068809975422923im, -5.7725194627072224e-5 + 0.0005057054121061857im, 0.0011589211235041624 + 0.001007325548297441im, 0.00042691593572135976 + 0.0001226055265675253im, 6.380496972390023e-5 + 5.966549343116368e-5im, 0.5083072310819263 + 0.5185019568388308im, 0.005627497092693326 + 0.06247087553618724im  …  1.7916310392697288e-9 - 2.5380393770197913e-8im, -4.556727500923365e-9 - 5.0577838350940055e-9im, 3.778585427847738e-10 + 2.426321023764145e-9im, -7.377239377549501e-9 - 9.420386036965709e-9im, 2.0973224009964397e-8 - 2.268550686882567e-8im, -3.4315932665234526e-9 - 5.132121496162977e-8im, 7.570849205625903e-10 + 6.50734492550423e-8im, 4.993772390019628e-8 - 3.6578813379810452e-9im, 3.827936971457055e-8 + 8.624327776209229e-9im, -6.778904159178064e-11 - 8.670020643091297e-9im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47324828987505263 + 0.4892530619817795im, 0.0016299527221981993 + 0.06507344907545685im, 0.004760696853795597 + 0.019301025055531603im, 0.012128411363748771 + 0.0068809975422923im, -5.7725194627072224e-5 + 0.0005057054121061857im, 0.0011589211235041624 + 0.001007325548297441im, 0.00042691593572135976 + 0.0001226055265675253im, 6.380496972390023e-5 + 5.966549343116368e-5im, 0.5083072310819263 + 0.5185019568388308im, 0.005627497092693326 + 0.06247087553618724im  …  1.7916310392697288e-9 - 2.5380393770197913e-8im, -4.556727500923365e-9 - 5.0577838350940055e-9im, 3.778585427847738e-10 + 2.426321023764145e-9im, -7.377239377549501e-9 - 9.420386036965709e-9im, 2.0973224009964397e-8 - 2.268550686882567e-8im, -3.4315932665234526e-9 - 5.132121496162977e-8im, 7.570849205625903e-10 + 6.50734492550423e-8im, 4.993772390019628e-8 - 3.6578813379810452e-9im, 3.827936971457055e-8 + 8.624327776209229e-9im, -6.778904159178064e-11 - 8.670020643091297e-9im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47324828987505263 + 0.4892530619817795im, 0.0016299527221981993 + 0.06507344907545685im, 0.004760696853795597 + 0.019301025055531603im, 0.012128411363748771 + 0.0068809975422923im, -5.7725194627072224e-5 + 0.0005057054121061857im, 0.0011589211235041624 + 0.001007325548297441im, 0.00042691593572135976 + 0.0001226055265675253im, 6.380496972390023e-5 + 5.966549343116368e-5im, 0.5083072310819263 + 0.5185019568388308im, 0.005627497092693326 + 0.06247087553618724im  …  1.7916310392697288e-9 - 2.5380393770197913e-8im, -4.556727500923365e-9 - 5.0577838350940055e-9im, 3.778585427847738e-10 + 2.426321023764145e-9im, -7.377239377549501e-9 - 9.420386036965709e-9im, 2.0973224009964397e-8 - 2.268550686882567e-8im, -3.4315932665234526e-9 - 5.132121496162977e-8im, 7.570849205625903e-10 + 6.50734492550423e-8im, 4.993772390019628e-8 - 3.6578813379810452e-9im, 3.827936971457055e-8 + 8.624327776209229e-9im, -6.778904159178064e-11 - 8.670020643091297e-9im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47324828987505263 + 0.4892530619817795im, 0.0016299527221981993 + 0.06507344907545685im, 0.004760696853795597 + 0.019301025055531603im, 0.012128411363748771 + 0.0068809975422923im, -5.7725194627072224e-5 + 0.0005057054121061857im, 0.0011589211235041624 + 0.001007325548297441im, 0.00042691593572135976 + 0.0001226055265675253im, 6.380496972390023e-5 + 5.966549343116368e-5im, 0.5083072310819263 + 0.5185019568388308im, 0.005627497092693326 + 0.06247087553618724im  …  1.7916310392697288e-9 - 2.5380393770197913e-8im, -4.556727500923365e-9 - 5.0577838350940055e-9im, 3.778585427847738e-10 + 2.426321023764145e-9im, -7.377239377549501e-9 - 9.420386036965709e-9im, 2.0973224009964397e-8 - 2.268550686882567e-8im, -3.4315932665234526e-9 - 5.132121496162977e-8im, 7.570849205625903e-10 + 6.50734492550423e-8im, 4.993772390019628e-8 - 3.6578813379810452e-9im, 3.827936971457055e-8 + 8.624327776209229e-9im, -6.778904159178064e-11 - 8.670020643091297e-9im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], Union{Missing, TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-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.515300079885594 + 0.44053438638729153im, 0.013453933789207673 + 0.05388539829212912im, 0.005897302285295475 + 0.012944785894373053im, 0.01146328235900452 + 0.011654478331736929im, -0.0006911958690663959 - 0.00024264614162635692im, 0.001468830136011177 + 0.0008132855700660508im, 0.00020410953788287423 + 7.779954140941385e-5im, 6.238413949955659e-5 + 2.6716628710157496e-5im, 0.4625127259184531 + 0.5622004781969973im, 0.03171267309746396 + 0.07453536185004038im  …  0.009641848923295263 - 0.1365872308428739im, -0.024522503342226054 - 0.027218990158006287im, 0.0020334850781510705 + 0.013057499137816064im, -0.039701381584854575 - 0.050696787997469586im, 0.11286958804918394 - 0.12208441648049859im, -0.018467476347977702 - 0.27619046018631643im, 0.004074331302691015 + 0.35019954046485996im, 0.26874505903580487 - 0.01968526915816884im, 0.20600441250297408 + 0.04641271760790785im, -0.0003648137832828242 - 0.046658618527066244im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47549198805441373 + 0.4915726397338829im, -0.3195899183237582 + 0.6357128849963678im, 0.05202174766321197 - 0.12096757507054354im, 0.0020969283072005077 - 0.0377247615297004im, 0.05577846743791492 + 0.05052117398738141im, 0.03276256081976489 + 0.019999474519401046im, -0.005211971264025629 + 0.0016660050626831667im, 0.0017245915370960876 + 0.0058947627366456555im, 0.5107171457785763 + 0.5209602053342693im, 0.29525506177706773 - 0.5981966758196592im  …  0.008124008844169407 - 0.02438915993332448im, -0.08094118168860076 + 0.04530873209846931im, 3.796499925225183e-10 + 2.4378243554863076e-9im, -1.339108761081553e-6 - 1.7726335288545909e-6im, 8.033471442575608e-5 - 9.268433998022387e-5im, 0.0001938374109606708 - 0.0005862700609194589im, 0.0003978328462526798 + 0.007363117284196649im, -0.0010482438967604657 - 0.01036646363779053im, 0.01569905773937052 + 0.023198500165351313im, -0.013805574151912779 - 0.0844983598233889im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47324828987505263 + 0.4892530619817795im, 0.0016299527221981993 + 0.06507344907545685im, 0.004760696853795597 + 0.019301025055531603im, 0.012128411363748771 + 0.0068809975422923im, -5.7725194627072224e-5 + 0.0005057054121061857im, 0.0011589211235041624 + 0.001007325548297441im, 0.00042691593572135976 + 0.0001226055265675253im, 6.380496972390023e-5 + 5.966549343116368e-5im, 0.5083072310819263 + 0.5185019568388308im, 0.005627497092693326 + 0.06247087553618724im  …  1.7916310392697288e-9 - 2.5380393770197913e-8im, -4.556727500923365e-9 - 5.0577838350940055e-9im, 3.778585427847738e-10 + 2.426321023764145e-9im, -7.377239377549501e-9 - 9.420386036965709e-9im, 2.0973224009964397e-8 - 2.268550686882567e-8im, -3.4315932665234526e-9 - 5.132121496162977e-8im, 7.570849205625903e-10 + 6.50734492550423e-8im, 4.993772390019628e-8 - 3.6578813379810452e-9im, 3.827936971457055e-8 + 8.624327776209229e-9im, -6.778904159178064e-11 - 8.670020643091297e-9im], (ℂ^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.515300079885594 + 0.44053438638729153im, 0.013453933789207673 + 0.05388539829212912im, 0.005897302285295475 + 0.012944785894373053im, 0.01146328235900452 + 0.011654478331736929im, -0.0006911958690663959 - 0.00024264614162635692im, 0.001468830136011177 + 0.0008132855700660508im, 0.00020410953788287423 + 7.779954140941385e-5im, 6.238413949955659e-5 + 2.6716628710157496e-5im, 0.4625127259184531 + 0.5622004781969973im, 0.03171267309746396 + 0.07453536185004038im  …  0.009641848923295263 - 0.1365872308428739im, -0.024522503342226054 - 0.027218990158006287im, 0.0020334850781510705 + 0.013057499137816064im, -0.039701381584854575 - 0.050696787997469586im, 0.11286958804918394 - 0.12208441648049859im, -0.018467476347977702 - 0.27619046018631643im, 0.004074331302691015 + 0.35019954046485996im, 0.26874505903580487 - 0.01968526915816884im, 0.20600441250297408 + 0.04641271760790785im, -0.0003648137832828242 - 0.046658618527066244im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47549198805441373 + 0.4915726397338829im, -0.3195899183237582 + 0.6357128849963678im, 0.05202174766321197 - 0.12096757507054354im, 0.0020969283072005077 - 0.0377247615297004im, 0.05577846743791492 + 0.05052117398738141im, 0.03276256081976489 + 0.019999474519401046im, -0.005211971264025629 + 0.0016660050626831667im, 0.0017245915370960876 + 0.0058947627366456555im, 0.5107171457785763 + 0.5209602053342693im, 0.29525506177706773 - 0.5981966758196592im  …  0.008124008844169407 - 0.02438915993332448im, -0.08094118168860076 + 0.04530873209846931im, 3.796499925225183e-10 + 2.4378243554863076e-9im, -1.339108761081553e-6 - 1.7726335288545909e-6im, 8.033471442575608e-5 - 9.268433998022387e-5im, 0.0001938374109606708 - 0.0005862700609194589im, 0.0003978328462526798 + 0.007363117284196649im, -0.0010482438967604657 - 0.01036646363779053im, 0.01569905773937052 + 0.023198500165351313im, -0.013805574151912779 - 0.0844983598233889im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47324828987505263 + 0.4892530619817795im, 0.0016299527221981993 + 0.06507344907545685im, 0.004760696853795597 + 0.019301025055531603im, 0.012128411363748771 + 0.0068809975422923im, -5.7725194627072224e-5 + 0.0005057054121061857im, 0.0011589211235041624 + 0.001007325548297441im, 0.00042691593572135976 + 0.0001226055265675253im, 6.380496972390023e-5 + 5.966549343116368e-5im, 0.5083072310819263 + 0.5185019568388308im, 0.005627497092693326 + 0.06247087553618724im  …  1.7916310392697288e-9 - 2.5380393770197913e-8im, -4.556727500923365e-9 - 5.0577838350940055e-9im, 3.778585427847738e-10 + 2.426321023764145e-9im, -7.377239377549501e-9 - 9.420386036965709e-9im, 2.0973224009964397e-8 - 2.268550686882567e-8im, -3.4315932665234526e-9 - 5.132121496162977e-8im, 7.570849205625903e-10 + 6.50734492550423e-8im, 4.993772390019628e-8 - 3.6578813379810452e-9im, 3.827936971457055e-8 + 8.624327776209229e-9im, -6.778904159178064e-11 - 8.670020643091297e-9im], (ℂ^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.21974344661661593 + 0.03372984920921133im, 0.14788689616264414 + 0.32085925076463506im, 0.16176908724003447 + 0.02048723808670129im, 0.132108000774264 + 0.05392814842210158im, 0.2117611553529158 + 0.27375911446173906im, 0.20900745649577937 + 0.06864207203474366im, 0.053731312509082814 + 0.19248565215581082im, 0.20218216174443418 + 0.004541220073361335im, 0.08659801152874996 + 0.1169200647861605im, 0.0355643794253423 + 0.23390474935816957im  …  -0.231875833026119 - 0.06301459285230802im, 0.12711971079868012 - 0.10293535648621542im, 0.005383728575378555 - 0.09072869727038764im, -0.12608145928162787 + 0.05782532771196979im, 0.28213409409103035 + 0.20338844954764837im, -0.03337293367035718 + 0.4194882231878769im, 0.04540921341971546 + 0.13650437587963005im, -0.13738091482953466 - 0.35237582300838294im, -0.10197884125322967 - 0.25685465695839166im, 0.2910409485807029 - 0.11427490719202363im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.444850998799295 + 0.39605036322494463im, 0.13555293915184638 + 0.16637331999425514im, 0.2092332273963464 + 0.15994660695522195im, -0.0007628982974069685 + 0.08083834905842974im, 0.019841162244880983 - 0.04453676691537201im, 0.06446382493377222 + 0.03282563288289588im, 0.03850761298849086 + 0.0392292751175982im, 0.04489746792291735 + 0.0053059953585245035im, 0.4289470898819781 + 0.4447437969211254im, 0.1336311492387218 + 0.14764842422362126im  …  -0.014473462658426528 + 0.23126220438713735im, 0.23310785856466887 + 0.04840662650823826im, 0.12395881612828186 + 0.03642332236493495im, -0.36492674288792215 - 0.09659106833072767im, -0.11379819227800635 - 0.28036468072681126im, 0.05562569419974649 - 0.1356350160401898im, -0.019908527155099495 - 0.1675936946543199im, -0.2709548026493044 + 0.023716408245899545im, 0.11903153932464132 - 0.3744553346991162im, 0.11745852530674729 + 0.06758387849093941im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.33283039544592086 + 0.35986395796043613im, 0.04978022147710587 + 0.014228837472036775im, 0.0032506178190900193 + 0.01080797445830954im, 0.004101284106625318 + 0.007069081007438018im, 0.0060101629642121766 + 0.011552769736552448im, 0.006136063189139928 + 0.0028054387078438733im, 0.010355874481780042 + 0.009539849232163906im, 0.008898600875615347 + 0.0009117434391287186im, 0.5048720065564998 + 0.7012990765856945im, 0.07302228580786468 + 0.050295213998999486im  …  -0.016850338330067473 + 0.0044912926788825275im, -0.058622697405275925 - 0.0775234567020769im, 0.00925798634168326 + 0.02614101568792851im, -0.06832513978823895 - 0.1722223774113782im, -0.025402247278753204 - 0.21851723642283383im, 0.007696459792889937 + 0.004292446275336911im, 0.0703586423261668 + 0.24789018080513128im, 0.12715351753675164 - 0.23917244799920387im, -0.17148523373324703 - 0.12063977123161435im, -0.05663151967661043 + 0.16253508971625272im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.6386862980505974 + 0.41578097697615984im, 0.14179567551797356 + 0.1806903389335599im, 0.013409399979599976 + 0.00564052367214147im, 0.007627394564020635 + 0.0007817132505462852im, 0.007918309176928911 + 0.0016363793996620264im, 0.00212729841771257 + 0.0024045495070598344im, 0.0014732485307026558 + 0.0012567094507283936im, 0.0002299943531428281 + 0.002207158918242569im, 0.39326208441643956 + 0.4293223593629353im, 0.028314730641512312 + 0.1617868532656242im  …  -0.3456076377823891 + 0.2512741211614004im, 0.17953168694763622 + 0.11034242492989026im, -0.0020689120823234597 + 0.0014838202339443039im, 4.813991898416914e-6 - 0.002633800136164814im, -0.054743047171527906 - 0.13143120451553708im, -0.13726855234543517 + 0.08337750341706061im, 0.23578791756287443 - 0.05143885250899393im, 0.4226435813866058 - 0.14999281151313293im, 0.19826135137431913 + 0.13688319132542398im, 0.34792383710560937 - 0.016665341534329248im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5012241777823332 + 0.5218610691202613im, 0.10655308862363319 + 0.10811543929375775im, 0.013544550334476504 - 0.001054852808436973im, 0.0034730386803599428 + 0.006547567299853645im, 0.003080361843111567 + 0.001445283189690536im, 0.00031144959237758724 + 0.0004566593897528862im, 0.0005551889212089676 + 0.00017478268982951633im, 0.00012916120325321393 + 7.808818388006938e-5im, 0.4653531751328273 + 0.4671864369987695im, 0.09322256342588327 + 0.09689763256952905im  …  0.05955067469871691 + 0.0018925174364949355im, 0.07286003024339904 + 0.03171840788384619im, 0.017941998702300704 + 0.03654489227049282im, -0.014529198303676494 - 0.12337373739671122im, -0.7157727606739803 - 0.032008334851402906im, 0.05756236344441937 - 0.2815428136137044im, 0.018949898608833483 - 0.05105634555925649im, -0.10797122845863695 + 0.07429353107763015im, 0.05696957834393457 + 0.03270390913470466im, 0.006053907054239284 + 0.029445821504185964im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.3305412415006028 + 0.5799166603361237im, 0.02744365348701034 + 0.032539409998378024im, -0.004214688524718468 + 0.007027698618157996im, 0.006980579054456738 + 0.003751607878582745im, 0.0013851094565966813 + 0.0016799287747769325im, 0.0011413369583423271 + 0.002269986747811449im, 0.001556721951332206 + 0.00016321623482100128im, 0.00023982895598903352 + 0.00027249152570884866im, 0.5377520369127714 + 0.5082513788107931im, 0.013701934910687791 + 0.06612165966647143im  …  -0.018106674868814954 - 0.3154303231288908im, -0.06390151926068088 + 0.016043201361957863im, -0.010687966877480831 - 0.008776261410434083im, 0.024747616848272806 + 0.017650524331316086im, -0.011079396311072666 + 0.26074549434266076im, 0.35241203373540475 + 0.33198857019704797im, 0.1342225750516626 + 0.13217445112345136im, 0.28862933401980334 + 0.23421696684706259im, 0.31288923917130546 + 0.08075676698780809im, -0.1419390864004507 - 0.01749398373554791im], (ℂ^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.37765207085100283 + 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.3517507375499356 + 0.004856185644957034im, 0.05538312685101079 + 0.0im  …  0.003089290430674338 + 0.0im, 0.0 + 0.0im, 0.35201498450379165 + 0.02388572913031433im, 0.05198374938319811 - 0.10415235387172576im, 0.01926266749144467 + 0.010121674185127863im, -0.00207254420139913 + 0.002080953515122526im, -0.0003369393696810834 + 0.0010665699977644636im, 0.0018088451751759951 + 0.0029436684470138218im, 0.0017109118446231439 + 0.0005228898960686928im, 0.001214477791644878 + 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.515300079885594 + 0.44053438638729153im, 0.013453933789207673 + 0.05388539829212912im, 0.005897302285295475 + 0.012944785894373053im, 0.01146328235900452 + 0.011654478331736929im, -0.0006911958690663959 - 0.00024264614162635692im, 0.001468830136011177 + 0.0008132855700660508im, 0.00020410953788287423 + 7.779954140941385e-5im, 6.238413949955659e-5 + 2.6716628710157496e-5im, 0.4625127259184531 + 0.5622004781969973im, 0.03171267309746396 + 0.07453536185004038im  …  0.009641848923295263 - 0.1365872308428739im, -0.024522503342226054 - 0.027218990158006287im, 0.0020334850781510705 + 0.013057499137816064im, -0.039701381584854575 - 0.050696787997469586im, 0.11286958804918394 - 0.12208441648049859im, -0.018467476347977702 - 0.27619046018631643im, 0.004074331302691015 + 0.35019954046485996im, 0.26874505903580487 - 0.01968526915816884im, 0.20600441250297408 + 0.04641271760790785im, -0.0003648137832828242 - 0.046658618527066244im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47549198805441373 + 0.4915726397338829im, -0.3195899183237582 + 0.6357128849963678im, 0.05202174766321197 - 0.12096757507054354im, 0.0020969283072005077 - 0.0377247615297004im, 0.05577846743791492 + 0.05052117398738141im, 0.03276256081976489 + 0.019999474519401046im, -0.005211971264025629 + 0.0016660050626831667im, 0.0017245915370960876 + 0.0058947627366456555im, 0.5107171457785763 + 0.5209602053342693im, 0.29525506177706773 - 0.5981966758196592im  …  0.008124008844169407 - 0.02438915993332448im, -0.08094118168860076 + 0.04530873209846931im, 3.796499925225183e-10 + 2.4378243554863076e-9im, -1.339108761081553e-6 - 1.7726335288545909e-6im, 8.033471442575608e-5 - 9.268433998022387e-5im, 0.0001938374109606708 - 0.0005862700609194589im, 0.0003978328462526798 + 0.007363117284196649im, -0.0010482438967604657 - 0.01036646363779053im, 0.01569905773937052 + 0.023198500165351313im, -0.013805574151912779 - 0.0844983598233889im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47324828987505263 + 0.4892530619817795im, 0.0016299527221981993 + 0.06507344907545685im, 0.004760696853795597 + 0.019301025055531603im, 0.012128411363748771 + 0.0068809975422923im, -5.7725194627072224e-5 + 0.0005057054121061857im, 0.0011589211235041624 + 0.001007325548297441im, 0.00042691593572135976 + 0.0001226055265675253im, 6.380496972390023e-5 + 5.966549343116368e-5im, 0.5083072310819263 + 0.5185019568388308im, 0.005627497092693326 + 0.06247087553618724im  …  1.7916310392697288e-9 - 2.5380393770197913e-8im, -4.556727500923365e-9 - 5.0577838350940055e-9im, 3.778585427847738e-10 + 2.426321023764145e-9im, -7.377239377549501e-9 - 9.420386036965709e-9im, 2.0973224009964397e-8 - 2.268550686882567e-8im, -3.4315932665234526e-9 - 5.132121496162977e-8im, 7.570849205625903e-10 + 6.50734492550423e-8im, 4.993772390019628e-8 - 3.6578813379810452e-9im, 3.827936971457055e-8 + 8.624327776209229e-9im, -6.778904159178064e-11 - 8.670020643091297e-9im], (ℂ^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.515300079885594 + 0.44053438638729153im, 0.013453933789207673 + 0.05388539829212912im, 0.005897302285295475 + 0.012944785894373053im, 0.01146328235900452 + 0.011654478331736929im, -0.0006911958690663959 - 0.00024264614162635692im, 0.001468830136011177 + 0.0008132855700660508im, 0.00020410953788287423 + 7.779954140941385e-5im, 6.238413949955659e-5 + 2.6716628710157496e-5im, 0.4625127259184531 + 0.5622004781969973im, 0.03171267309746396 + 0.07453536185004038im  …  0.009641848923295263 - 0.1365872308428739im, -0.024522503342226054 - 0.027218990158006287im, 0.0020334850781510705 + 0.013057499137816064im, -0.039701381584854575 - 0.050696787997469586im, 0.11286958804918394 - 0.12208441648049859im, -0.018467476347977702 - 0.27619046018631643im, 0.004074331302691015 + 0.35019954046485996im, 0.26874505903580487 - 0.01968526915816884im, 0.20600441250297408 + 0.04641271760790785im, -0.0003648137832828242 - 0.046658618527066244im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47549198805441373 + 0.4915726397338829im, -0.3195899183237582 + 0.6357128849963678im, 0.05202174766321197 - 0.12096757507054354im, 0.0020969283072005077 - 0.0377247615297004im, 0.05577846743791492 + 0.05052117398738141im, 0.03276256081976489 + 0.019999474519401046im, -0.005211971264025629 + 0.0016660050626831667im, 0.0017245915370960876 + 0.0058947627366456555im, 0.5107171457785763 + 0.5209602053342693im, 0.29525506177706773 - 0.5981966758196592im  …  0.008124008844169407 - 0.02438915993332448im, -0.08094118168860076 + 0.04530873209846931im, 3.796499925225183e-10 + 2.4378243554863076e-9im, -1.339108761081553e-6 - 1.7726335288545909e-6im, 8.033471442575608e-5 - 9.268433998022387e-5im, 0.0001938374109606708 - 0.0005862700609194589im, 0.0003978328462526798 + 0.007363117284196649im, -0.0010482438967604657 - 0.01036646363779053im, 0.01569905773937052 + 0.023198500165351313im, -0.013805574151912779 - 0.0844983598233889im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47324828987505263 + 0.4892530619817795im, 0.0016299527221981993 + 0.06507344907545685im, 0.004760696853795597 + 0.019301025055531603im, 0.012128411363748771 + 0.0068809975422923im, -5.7725194627072224e-5 + 0.0005057054121061857im, 0.0011589211235041624 + 0.001007325548297441im, 0.00042691593572135976 + 0.0001226055265675253im, 6.380496972390023e-5 + 5.966549343116368e-5im, 0.5083072310819263 + 0.5185019568388308im, 0.005627497092693326 + 0.06247087553618724im  …  1.7916310392697288e-9 - 2.5380393770197913e-8im, -4.556727500923365e-9 - 5.0577838350940055e-9im, 3.778585427847738e-10 + 2.426321023764145e-9im, -7.377239377549501e-9 - 9.420386036965709e-9im, 2.0973224009964397e-8 - 2.268550686882567e-8im, -3.4315932665234526e-9 - 5.132121496162977e-8im, 7.570849205625903e-10 + 6.50734492550423e-8im, 4.993772390019628e-8 - 3.6578813379810452e-9im, 3.827936971457055e-8 + 8.624327776209229e-9im, -6.778904159178064e-11 - 8.670020643091297e-9im], (ℂ^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.09322775385195126 + 0.2215293626529512im, 0.11749797514387661 + 0.24612498116966033im, 0.042476325445349336 + 0.2663980025316229im, 0.048876414975665604 + 0.05274330629807214im, 0.17722638427038973 + 0.2804808712104822im, 0.28357120859422 + 0.1247297762413263im, 0.01368814324511647 + 0.03905065758226029im, 0.11697315678495576 + 0.22809097258793792im, 0.160717233107481 + 0.15684778015984474im, 0.15245031764405573 + 0.17142483024642077im  …  0.2633148599688744 + 0.3136486329480135im, 0.14238400720557487 - 0.049171333288019245im, -0.05315292392443189 - 0.025364336816181388im, -0.23821422319491248 - 0.06516370014058473im, 0.137976571957643 + 0.03948944282710033im, -0.25938277866484677 + 0.1424691432089005im, 0.01794732701931781 + 0.1415866930606644im, 0.1651219317195023 - 0.18940338196238465im, 0.1836127701982691 + 0.21603784748578944im, 0.11434496370204555 - 0.22076388957055554im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5515639673498902 + 0.41072022080577164im, 0.14867900634928574 + 0.14708050485974677im, 0.06463255215844557 + 0.07752480071080002im, 0.1335215483727093 + 0.10001142595009327im, 0.025593229582370588 + 0.09731147815305272im, 0.004523496895610193 + 0.01041221307596717im, 0.0020350936263226933 + 0.05656294794290042im, 0.05648104965275415 + 0.05347220112343668im, 0.40349258501273844 + 0.44770123591038535im, 0.12607703134874415 + 0.12146168992402177im  …  -0.15494792792109127 - 0.1827129043875016im, -0.09714858349110544 - 0.08065766597741235im, 9.637541688840498e-5 - 0.12865994099358857im, 0.047253366395738544 - 0.06663415889901386im, 0.003909152764188373 + 0.0008600195780284342im, -0.1581348122035459 + 0.17103979895383634im, -0.1513257773528786 - 0.2798312893534013im, 0.22319465413785788 + 0.03731807377402727im, 0.07805045953858714 + 0.35799244830756366im, -0.4236879643892217 - 0.05055617825308496im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.6044192494606029 + 0.4829701669703084im, 0.07322879159757772 + 0.03784672772518334im, 0.0736102049174807 + 0.04601601803335781im, -0.006643264898805342 + 0.01892534606719536im, 0.007626300333130508 + 0.027883083266739567im, 0.012581574648703082 + 0.012845078910601472im, 0.00439729950522217 + 0.004958728726163328im, 0.01029597553602419 + 0.007020801620475222im, 0.42349595389035233 + 0.4403267125713952im, 0.05205945366730904 + 0.041748293831799156im  …  0.04967640089094851 - 0.0764360628941168im, -0.16792277819350465 + 0.35018706690198625im, -0.04217129524469658 + 0.04107580828855521im, -0.04219372373704902 - 0.2963643297642494im, 0.122507802578032 - 0.06527832885608643im, 0.030380225119035847 - 0.31758308723294837im, 0.305286017494824 + 0.1672640234860187im, 0.06126438535998635 - 0.4067467198493923im, 0.12261108818436242 + 0.14599073607297278im, -0.1802390828002975 + 0.27924864290013995im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.6041647062156392 + 0.37086354752519235im, 0.08017764941102246 + 0.05185218567483746im, 0.014444896026595553 + 0.009927291373618651im, 0.01125998437086521 + 0.0011929616768558812im, 0.0005269378226091619 - 4.608730073750186e-5im, 0.005461641307222405 + 7.917467464851414e-5im, 0.0020948782339210294 + 0.0017072350463551236im, 0.0012298106235273706 + 0.0003013784899409427im, 0.5627211950389017 + 0.4052630365204267im, 0.05428699917330511 + 0.060999568308396604im  …  0.09954405797923616 + 0.24903486256588545im, 0.0746964979292557 - 0.06479926563385557im, 0.009414546153598768 - 0.006224373840187508im, -0.04874304363714367 + 0.14675061948510892im, -0.12862626297491858 - 0.2955400635423958im, -0.09317458477774204 - 0.01475895931528529im, -0.5497675402207284 + 0.004560896025884872im, -0.2719956578955183 - 0.10188978414170788im, -0.026962330006928985 - 0.1530637173637078im, -0.24997107617238978 + 0.2692755240908078im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5493236633776104 + 0.5214713083141477im, -0.002925820251654023 - 0.06722477487553458im, 0.026951096681030982 + 0.008412372676402978im, 0.007199011163617564 - 0.0024382233336340295im, 0.003644156249577043 + 0.00040406994880954673im, 0.001410108552741072 + 0.002041105276542954im, 0.00023691073848383507 + 0.00022033499973407594im, 0.0004145163135801914 + 0.000304694838285186im, 0.4149847779436816 + 0.4946466054619465im, 0.0012907184548002666 - 0.0574869210673664im  …  -0.1859110444874918 + 0.0029827290712341175im, 0.1556971371908482 - 0.1012512719996416im, -0.0009902588873965303 + 0.005810413902832651im, -0.03992844969901333 + 0.07208664673434437im, 0.18649719442612955 + 0.23341518522658514im, -0.43513047142918293 - 0.1648266200705482im, -0.23465564296039515 - 0.24581797210516068im, 0.05525758580722358 - 0.0656252355248759im, 0.09269660956016747 - 0.06072543268972544im, -0.027827095001030578 - 0.017637683423733393im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5133172086510884 + 0.4357610793152971im, 0.04179277363338092 + 0.03409811574427985im, -0.00028313569303179624 - 0.000781824525032148im, -0.0022047029592851724 + 0.002895445525459118im, 0.002791200558865131 + 0.00133927121477888im, 0.0004453686986748808 + 0.00023913320352243238im, 0.00033340361754656485 + 0.000260417457100311im, 5.106413539258588e-5 + 6.739437707294451e-5im, 0.562896344348611 + 0.47233821536428866im, 0.0333343597684219 + 0.05010192322750498im  …  0.11519184231449514 - 0.0733540693387745im, 0.08208444572543172 - 0.043618414675636555im, 0.005397614104842047 - 0.01683014039269526im, -0.0355023703931982 - 0.034654501971950816im, -0.06393267048652584 + 0.08709841568798138im, -0.511840929770988 + 0.05790994924000856im, 0.2647773394770601 + 0.2288795086496535im, 0.10633625372318938 + 0.13464293762109014im, -0.03360324103492973 + 0.1193633960577652im, -0.006269211579884968 + 0.01498729095771701im], (ℂ^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.33453164874814967 + 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.3332085478916174 + 0.08130932220100928im, 0.02158703000738106 + 0.0im  …  0.0013768746786227038 + 0.0im, 0.0 - 0.0im, 0.34028053233479066 + 0.028658391488909554im, 0.02854520279454136 + 0.023239129078602143im, -0.0153266125514257 + 0.0023515740423733504im, 0.007684439657117833 - 0.008753444525428842im, 0.007572847858551784 - 0.0024815641736431106im, -0.0001333508538687405 + 0.0017452696662151753im, 0.00038447446878665445 - 0.0005392374643008749im, 0.0019008946672512254 + 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.515300079885594 + 0.44053438638729153im, 0.013453933789207673 + 0.05388539829212912im, 0.005897302285295475 + 0.012944785894373053im, 0.01146328235900452 + 0.011654478331736929im, -0.0006911958690663959 - 0.00024264614162635692im, 0.001468830136011177 + 0.0008132855700660508im, 0.00020410953788287423 + 7.779954140941385e-5im, 6.238413949955659e-5 + 2.6716628710157496e-5im, 0.4625127259184531 + 0.5622004781969973im, 0.03171267309746396 + 0.07453536185004038im  …  0.009641848923295263 - 0.1365872308428739im, -0.024522503342226054 - 0.027218990158006287im, 0.0020334850781510705 + 0.013057499137816064im, -0.039701381584854575 - 0.050696787997469586im, 0.11286958804918394 - 0.12208441648049859im, -0.018467476347977702 - 0.27619046018631643im, 0.004074331302691015 + 0.35019954046485996im, 0.26874505903580487 - 0.01968526915816884im, 0.20600441250297408 + 0.04641271760790785im, -0.0003648137832828242 - 0.046658618527066244im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47549198805441373 + 0.4915726397338829im, -0.3195899183237582 + 0.6357128849963678im, 0.05202174766321197 - 0.12096757507054354im, 0.0020969283072005077 - 0.0377247615297004im, 0.05577846743791492 + 0.05052117398738141im, 0.03276256081976489 + 0.019999474519401046im, -0.005211971264025629 + 0.0016660050626831667im, 0.0017245915370960876 + 0.0058947627366456555im, 0.5107171457785763 + 0.5209602053342693im, 0.29525506177706773 - 0.5981966758196592im  …  0.008124008844169407 - 0.02438915993332448im, -0.08094118168860076 + 0.04530873209846931im, 3.796499925225183e-10 + 2.4378243554863076e-9im, -1.339108761081553e-6 - 1.7726335288545909e-6im, 8.033471442575608e-5 - 9.268433998022387e-5im, 0.0001938374109606708 - 0.0005862700609194589im, 0.0003978328462526798 + 0.007363117284196649im, -0.0010482438967604657 - 0.01036646363779053im, 0.01569905773937052 + 0.023198500165351313im, -0.013805574151912779 - 0.0844983598233889im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9952813123339019 + 0.0im, 0.06818612041013182 + 0.05911552532900437im, 0.023608340875705604 + 0.016135160273737723im, 0.019647865281843983 - 0.005227196411996544im, 0.00035979538955660295 + 0.0005967165669827848im, 0.0022668763249048154 - 5.1608431898921315e-5im, 0.0005815842478126529 - 0.00031962642997587754im, 0.00012707217031628196 - 1.0793345486400056e-8im, 0.0 - 0.0im, 0.005420779238549433 + 0.0im  …  6.199722641901958e-7 + 0.0im, 9.546681380553173e-8 + 1.1301920148796302e-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.8581820286989198e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.47324828987505263 + 0.4892530619817795im, 0.0016299527221981993 + 0.06507344907545685im, 0.004760696853795597 + 0.019301025055531603im, 0.012128411363748771 + 0.0068809975422923im, -5.7725194627072224e-5 + 0.0005057054121061857im, 0.0011589211235041624 + 0.001007325548297441im, 0.00042691593572135976 + 0.0001226055265675253im, 6.380496972390023e-5 + 5.966549343116368e-5im, 0.5083072310819263 + 0.5185019568388308im, 0.005627497092693326 + 0.06247087553618724im  …  1.7916310392697288e-9 - 2.5380393770197913e-8im, -4.556727500923365e-9 - 5.0577838350940055e-9im, 3.778585427847738e-10 + 2.426321023764145e-9im, -7.377239377549501e-9 - 9.420386036965709e-9im, 2.0973224009964397e-8 - 2.268550686882567e-8im, -3.4315932665234526e-9 - 5.132121496162977e-8im, 7.570849205625903e-10 + 6.50734492550423e-8im, 4.993772390019628e-8 - 3.6578813379810452e-9im, 3.827936971457055e-8 + 8.624327776209229e-9im, -6.778904159178064e-11 - 8.670020643091297e-9im], (ℂ^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.5812745755434754 + 0.513920061866361im, 0.04874196365934933 - 0.05501219656409799im, 0.0242527388554711 + 0.0017191311145171497im, 0.002753433276589743 - 0.006818355659122889im, 0.005232216378487244 - 0.005875148899631217im, 0.005030630619249585 + 0.0011915792788373047im, 0.0002051632206373527 - 9.918043008441143e-5im, 0.000184756770577921 + 0.00016015536255735863im, 0.3580332761489704 + 0.5107623425368226im, 0.03789640761817377 - 0.029867661531199734im  …  0.07512769214640895 - 0.003986831596145822im, -0.036140029494008186 + 0.0030420932501088235im, 0.016770977766006903 - 0.00020576760798857174im, -0.214983847311066 - 0.05522530585479661im, -0.056211966620284236 + 0.5736855427258953im, 0.0016790200951181328 - 0.0729254719644867im, -0.1293661853174213 + 0.0862968646277922im, -0.153407585548419 - 0.18287989376197913im, 0.08934733113021849 - 0.01942356812218847im, -0.0007919756500112191 + 0.05072720915127051im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5318917815383148 + 0.478438991882345im, -0.015583174933290471 + 0.6915912202568818im, -0.028505379085557885 + 0.002197769499000322im, -0.0464563892142822 + 0.07974371422603507im, 0.009178958211444087 - 0.008880772560779026im, -0.001705286958899341 - 0.0009022298618205048im, -0.005187194309801938 - 0.01014869977241032im, 0.0022777428902223274 + 0.0017687418241246772im, 0.40811052681269605 + 0.5670884245331436im, 0.16659148615751976 - 0.6893027910482954im  …  0.012740183150530288 - 0.020824773844488564im, -0.016487128736030643 - 0.03342216812759577im, 1.2015832832928786e-8 - 1.474254640676795e-10im, -2.5573312222514987e-5 - 6.3833675007489635e-6im, -0.0003113055349049702 + 0.0026230414997375955im, 0.0014614615308626141 - 0.0005194274762846778im, -0.024870031574937106 + 0.04596938386306642im, 0.027110473453550863 - 0.03444228828202623im, 0.015471167560886971 - 0.07148694642827971im, -0.034399666191995894 + 0.04922875241143036im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9950169020449631 + 0.0im, 0.0028101330662278217 - 0.09228364525570582im, 0.027652961417806737 - 0.01912930325280926im, -0.0025550436382504385 - 0.009618741986137444im, 0.0003271968093472985 - 0.010037029659348062im, 0.0059269821154724674 - 0.0027151870610173114im, 0.0002956981688612107 - 0.0002041775845149785im, 0.0003204064312365238 + 4.354109909327748e-5im, 0.0 - 0.0im, 0.005993795605114112 + 0.0im  …  1.0643185340225787e-6 + 0.0im, 9.40191054592367e-8 + 2.7044102458898e-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, 7.128956300413857e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5292413126894302 + 0.4760548835202861im, 0.045553378520894576 - 0.04359517883413471im, 0.02220473990194469 + 0.003014252420563952im, 0.002812862363902305 - 0.005726617629410886im, 0.00443319370453271 - 0.004849325645439098im, 0.004211130531733241 + 0.0011118927166016144im, 0.00020637264831226745 - 4.513040296309518e-6im, 0.00016977429150411623 + 0.00015079717901069346im, 0.4060768720811065 + 0.5642625673645273im, 0.054478347201886095 - 0.0401998731878246im  …  5.3558203426269474e-8 - 2.842194822603279e-9im, -2.576406909584523e-8 + 2.1686949841809767e-9im, 1.1955956760907562e-8 - 1.4669082853912174e-10im, -1.5326104527754346e-7 - 3.9369879211583456e-8im, -4.007326535963287e-8 + 4.0897791642721145e-7im, 1.1969660885613886e-9 - 5.198825028218816e-8im, -9.222458818791372e-8 + 6.152065767942609e-8im, -1.0936359735266793e-7 - 1.303742770853478e-7im, 6.369532191859343e-8 - 1.3846976834119325e-8im, -5.64595979992184e-10 + 3.616320572813614e-8im], (ℂ^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.5868701513797658 + 0.515602807790729im, 0.10342263245276584 - 0.050639349158799626im, 0.008933150279326549 + 0.00633889925666885im, 0.00177420770926215 + 0.0006571220101909813im, -0.0006280771395026358 + 0.002934083030776554im, -1.5161109463744681e-5 + 0.0014283239745899782im, -0.0002721091769583546 + 0.0011247981763867826im, 0.0005675619368110861 + 0.0003230169580684336im, 0.3815714814774872 + 0.47145208145047857im, 0.09009182297018002 - 0.017189596726244274im  …  0.004161552282129763 - 0.003922444219219966im, -0.03794648738654094 - 0.03345849838591775im, 0.007146728154908799 - 0.0064969667520289875im, -0.002101761448024042 + 0.03640040983693682im, 0.11700858927812041 + 0.07770225255814722im, 0.026364625759988408 + 0.15308016065975505im, -0.04859351061269693 - 0.1601968275814839im, -0.13222199949499389 - 0.07100939548879703im, -0.1195565027495692 - 0.17607829192207267im, -0.041258412741293764 + 0.11350363471406952im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5013815048066965 + 0.5438009007429637im, 0.0602708154836927 + 0.6592038824752139im, 0.05358251964911688 + 0.08860623422721339im, -0.04794339899153892 + 0.02440677760848255im, 0.022192631525601067 - 0.017146756924734156im, 0.01232576591649801 - 0.011649373946366897im, -0.0020504112364744535 + 0.002352062572573426im, 0.002331879282578506 - 0.0021599152142030924im, 0.4985143444581198 + 0.4520624469837472im, -0.1311335527259665 - 0.7158330799544604im  …  0.08135865807237465 - 0.06930149500103525im, -0.026239132527617892 + 0.03686391367338523im, 4.568768444148954e-9 - 4.153388240878704e-9im, -2.51355839991315e-7 + 5.3202958443123835e-6im, 0.00029251337125792246 + 0.00018598090994432874im, 0.001656138265123976 + 0.002151017594307183im, -0.0009946845416318126 - 0.0040666547200576665im, -0.005839821977688864 + 0.011073302632596895im, -0.050539511225753134 - 0.03619810864847586im, -0.01892773689328141 + 0.0852240730778801im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9884700693309095 + 0.0im, 0.07526345337951748 - 0.13057293003370846im, 0.012016152170763409 + 0.00012456842540505429im, 0.005000757256818187 + 0.0006967790560596072im, 0.002314067557136095 + 0.003147410439328071im, 0.0011040094657233247 + 0.0011754417734945513im, 0.0012816125866374854 + 0.0013325919815799566im, 0.0007712782360555209 - 6.745924237668757e-5im, 0.0 - 0.0im, 0.004494289235216528 + 0.0im  …  2.1634440111003607e-6 + 0.0im, -1.0989657281625064e-7 - 3.3592097174076195e-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, 6.319102619929563e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.49560061081751106 + 0.5375309140596084im, 0.10901225495457587 - 0.02157586549369133im, 0.005720814336879323 + 0.006756524443972141im, 0.0016079872001106925 + 0.0032700015731413697im, -0.000529253374212552 + 0.0027375582778990924im, -3.335990196460652e-5 + 0.0010552008551865254im, -0.00019931079861277304 + 0.0014489412172237431im, 0.0004259580760239391 + 0.0003883856854002029im, 0.49276650862897053 + 0.4468501983119254im, 0.09595767726962826 - 0.034285858621989504im  …  2.6297275928980037e-9 - 2.4786327542200453e-9im, -2.3978774786141496e-8 - 2.114276848093619e-8im, 4.516090860760856e-9 - 4.105499962434164e-9im, -1.3281246272675676e-9 + 2.3001792516709728e-8im, 7.393892830616329e-8 + 4.910085077146167e-8im, 1.6660077571340518e-8 + 9.673292442842965e-8im, -3.070673802242682e-8 - 1.0123001928745593e-7im, -8.355243834211413e-8 - 4.487156570728718e-8im, -7.554898097544186e-8 - 1.1126567957974917e-7im, -2.6071614404764467e-8 + 7.172411154932047e-8im], (ℂ^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.581275+0.51392im      …   -0.00207685+0.0158684im
    0.048742-0.0550122im         -0.0504703-0.216111im
   0.0242527+0.00171913im         -0.521479+0.380172im
  0.00275343-0.00681836im        -0.0470344+0.0677723im
  0.00523222-0.00587515im      -0.000499462+0.0581772im
  0.00503063+0.00119158im   …     -0.193945-0.00115623im
 0.000205163-9.91804e-5im         0.0751277-0.00398683im
 0.000184757+0.000160155im         -0.03614+0.00304209im
    0.358033+0.510762im            0.016771-0.000205768im
   0.0378964-0.0298677im          -0.214984-0.0552253im
   0.0181311+0.00159558im   …     -0.056212+0.573686im
  0.00395852-0.00668331im        0.00167902-0.0729255im
  0.00606109-0.00456174im         -0.129366+0.0862969im
  0.00458843+0.00231625im         -0.153408-0.18288im
 0.000278328+0.000146833im        0.0893473-0.0194236im
  0.00010954+0.00023407im   …  -0.000791976+0.0507272im

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.45435795509309096 + 0.48209678623341895im, 0.016220489156623486 + 0.07199507668352466im, 0.0069653010658393445 - 0.0009459899981162701im, 0.009818310360426281 + 0.00012650245704727689im, -0.0018113132914894913 - 0.0007042755538538034im, 0.0002974981851811856 + 0.0008393056373692707im, 5.726407480524912e-5 + 0.00013903962770856076im, 2.7082449084227626e-5 + 0.0002061240459842836im, 0.40164997430922067 + 0.621473872441664im, -0.0033730501013362474 + 0.08872560777237473im  …  -0.019445209451486364 - 0.040320512617457345im, 0.0201913448928428 - 0.009842580000443794im, 0.011523149523125359 - 0.004509333697626782im, -0.03080353337229537 - 0.005268528882980905im, -0.31853278350423186 + 0.22139263804044634im, 0.2001759630820189 + 0.060964332784473774im, 0.11102667730360513 - 0.12302786551916295im, -0.0422161808660099 - 0.00048704647299710165im, -0.023216314814639358 - 0.018003491634299432im, -0.009708180073472145 - 0.0008818645661286895im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.45932464023421193 + 0.5190709154227149im, 0.04209286909949341 + 0.022384910396569816im, 0.05548218735521534 + 0.03327545271469061im, 0.0016279506165804403 + 0.0002820070691424155im, 0.001822168776371593 + 0.0013463583331304093im, 0.0006948700900126952 + 0.00044189033512095303im, 4.705839498563512e-5 + 0.00018235636266742837im, 0.00027657443667986655 + 0.00016583694091239928im, 0.5817182268798022 + 0.415188846424552im, 0.02804653663503537 + 0.0037354786808344344im  …  0.05195665530290327 - 0.01670299797910376im, -0.14531939151952278 + 0.0026698610531836896im, -0.005765279902843312 + 0.0008091482892638724im, -0.1478350358426059 - 0.08396605154126907im, 0.09511308533506702 + 0.0319751792722372im, -0.14360702834664274 - 0.08457599844845998im, -0.01149423681284778 - 0.18434043438041994im, 0.45164199840116726 + 0.17838791298339124im, 0.00811029170614794 + 0.16907214172994897im, 0.02476897279840285 - 0.010932223559076512im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4289003756175296 + 0.5583917357170443im, 0.47434929291361677 - 0.4903872499620619im, 0.028166801898352273 - 0.19383995149000718im, -0.0004390238252417407 + 0.00416706827610688im, -0.0014034970408507252 - 0.0041552048629197955im, -0.010816413170132788 - 0.011040757657888228im, -0.0043449308108250125 + 0.007472228697807167im, -0.005667299076941945 + 1.1622077361364905e-5im, 0.4365792407057396 + 0.5599897215078048im, -0.4678941720118571 + 0.4900864457950627im  …  0.012593295040398599 - 0.014377567225694016im, 0.022142326119497513 - 0.0049025483908273805im, 1.2513417404774061e-8 - 4.896853474180444e-9im, -1.917619671697658e-5 - 3.273916636385343e-6im, -0.0005884815425366344 + 0.000442994032635206im, 0.002534104684453534 + 0.0017213090722467679im, 0.0010645772165052973 - 0.02108107946364339im, 0.0030018401523689963 + 0.016397663449570683im, -0.019639019539368818 + 0.002022525668638716im, 0.036876876813186146 - 0.008846609685741172im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5190736919068717 + 0.47509262273736186im, 0.6863223309997399 + 0.0947079474371125im, 0.11384417558694722 - 0.09259354666498622im, 0.05232760953052254 - 0.020782787096215137im, -0.007608406600650354 - 0.005832922134816537im, 0.0021969353889611577 + 0.0007331713809489093im, -0.004044448931754483 - 0.0029451677126904347im, 0.002626538814537215 - 0.0014540231454445126im, 0.5324023313529027 + 0.47052385352698545im, -0.6811069256539347 - 0.08251364602183878im  …  -0.01280627250285256 + 0.00606719387836262im, -0.03682884041869605 - 0.01618132821724317im, -1.8060446392608958e-9 + 2.5347562561037687e-10im, -1.1450388054641645e-5 - 6.533797712062252e-6im, 0.0007433140621119397 + 0.00045268180505627406im, -0.0009331341220816744 - 0.0014408705917836396im, 0.0011932189588939688 - 0.0005715245429355413im, 0.03748534412728874 + 0.012888670685048682im, 0.01369954546290939 + 0.02219228999143063im, 0.0198357344176484 - 0.013430647843686187im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9941187929155286 + 0.0im, 0.054247110164934095 - 0.03141800650132177im, 0.07776332685240568 - 0.0408961533185616im, -0.0004086186719329942 - 0.0012570073564593797im, 0.003167744963391397 - 0.003274026895932151im, 0.0011519008488252267 - 0.0006677847361678047im, 0.0005095009385368868 + 0.00018200387683823188im, 0.0005001763145974497 + 6.194136264623979e-5im, 0.0 - 0.0im, 0.004012856465674061 + 0.0im  …  7.786115697208982e-7 + 0.0im, 1.6765577666462732e-7 + 4.967499562895802e-9im, 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.0793981299375394e-6 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9939783549062181 + 0.0im, 0.09351994011386679 + 0.05544871175212411im, 0.009016112917898705 - 0.003460357703265386im, 0.0062798077444799994 - 0.006464305278680339im, -0.001195808915606492 + 0.0015899636531980688im, 0.0009302872318786004 + 0.00019073738741218752im, 0.0003817173223106781 + 1.3289320893613315e-5im, 0.00022393677633893928 - 1.6099735854637565e-5im, 0.0 - 0.0im, 0.0018090685599772198 + 0.0im  …  2.668810620840358e-6 + 0.0im, -4.1855670302813967e-7 - 8.614343323895034e-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, 3.1141990449611433e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.42631768977497103 + 0.5550292988612555im, 0.010006765436281114 + 0.07511559082621025im, 0.006334269117308802 + 0.0026459221675014443im, 0.0069788923319644 + 0.001158746442006657im, -0.001401909918054917 - 0.00017245326459640166im, 0.0002561465056820191 + 0.0006043003260626749im, 0.00010656018238006822 + 0.0002371427920632663im, 0.000108291059295554 + 0.0001120223688218808im, 0.43395031546289686 + 0.5566176621487192im, 0.008931703157736436 + 0.07746456167540346im  …  -2.0989122718178146e-8 - 4.352188591740642e-8im, 2.1794499918258403e-8 - 1.0624062446239657e-8im, 1.2438066046252161e-8 - 4.867366360482678e-9im, -3.324927631752421e-8 - 5.686840223811502e-9im, -3.4382369083826696e-7 + 2.389707994827963e-7im, 2.160695602091771e-7 + 6.580478680045081e-8im, 1.1984198785469002e-7 - 1.3279604797159156e-7im, -4.556806667987602e-8 - 5.257170521457458e-10im, -2.5059646794962914e-8 - 1.943293520240894e-8im, -1.0478991416402717e-8 - 9.518829635374869e-10im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.516020912032666 + 0.4722985046387397im, 0.04583882386197225 + 0.009844190616409725im, 0.06388229739345008 + 0.016761376295639428im, 0.0007116306477640191 - 0.0008895252620422239im, 0.0032759364597224746 + 0.00012854977080299299im, 0.0008998698943289778 + 0.0003802867222703609im, 0.00011071134292722849 + 0.0003399498650364822im, 0.00027580187708241527 + 0.00031392235359622555im, 0.5292711629899611 + 0.46775660530620894im, 0.04093102507968071 + 0.008466423991798186im  …  1.6180336632367668e-8 - 5.201646035451284e-9im, -4.525535102844323e-8 + 8.314478742003599e-10im, -1.7954229167368316e-9 + 2.5198488296574945e-10im, -4.603877274328397e-8 - 2.6148699751897828e-8im, 2.9620107951377342e-8 + 9.957707275206242e-9im, -4.4722087052682266e-8 - 2.633864935948292e-8im, -3.579534130512777e-9 - 5.740728046952261e-8im, 1.4065030800852572e-7 + 5.555354682454885e-8im, 2.52570626856422e-9 + 5.2652430230494214e-8im, 7.71355114334547e-9 - 3.4045120166977785e-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.5305155315689536 + 0.4572378985825568im, 0.08821052296424951 + 0.05362715604946272im, 0.010442556760516275 + 0.006125137689688757im, 0.009799045939230063 - 0.0025810163261840496im, 0.002119292886583293 + 0.003046101553475409im, 0.0013789903385702947 + 0.0012608532426758334im, -1.049346518463112e-5 + 0.00013440082994099433im, 0.0002738592912419858 + 0.0002068922988837483im, 0.5956292154060713 + 0.36734604884911587im, 0.0859876113599472 + 0.03589376045679094im  …  -0.03207128406357958 - 0.16246384754905768im, -0.14044660395174846 + 0.023152766493760926im, 0.01805539022339687 - 0.0003567135408431843im, -0.11545649924729846 + 0.010170390380174844im, -0.4061277799025658 + 0.14182429602415225im, -0.2480528496452537 + 0.13797328253333913im, -0.022831158907091514 - 0.22841739013983064im, 0.06170893480154246 - 0.11154286516439978im, 0.006153247867575846 + 0.10583473221679977im, 0.07013682856435233 - 0.004573186133336158im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4877920406867795 + 0.6127933435684587im, 0.08723909181214545 + 0.048343814262793175im, -0.0009715761044028809 + 0.00934415998597752im, 0.0037388218415800997 + 0.013371333338701451im, 0.0004354966442241346 + 0.002660702000815143im, 0.0007110150517711199 + 0.00032903392803854256im, 8.847755797778876e-5 + 0.00019717921785122956im, 0.00014766534916669366 + 0.0001438302971888896im, 0.41252637700585343 + 0.44699387222851333im, 0.06924266234397823 + 0.037126744368168194im  …  -0.03579609596300934 + 0.024736668283861573im, -0.07217098526456911 + 0.04615434564335158im, 0.0028858135832853238 + 0.0022249872358817424im, -0.04011195100082712 - 0.016771685561961333im, 0.523078234180018 + 0.0011139952582969528im, -0.2277628354429562 + 0.31431533994419253im, 0.02610226250763774 + 0.20593876017108612im, 0.062499609144637834 - 0.27507397030260794im, 0.02335560216194087 - 0.07327586436751737im, -0.04504821009230849 - 0.12101155878496393im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5989813296033248 + 0.379895016363813im, -0.36822847296303346 - 0.580162210137837im, -0.11047664261677209 + 0.10910136111086106im, 0.012431703469236428 - 0.017907230892482577im, -0.00346611065300758 - 0.000863840989937685im, -0.0064466434844112335 - 0.004068445668697337im, 0.002706447177599972 + 0.003768194643184773im, -0.006302907518293889 + 0.0008039827509798375im, 0.5403270420847224 + 0.45265474660535426im, 0.2908027534150416 + 0.6286241437337451im  …  0.029908525406186853 - 0.04543210925732884im, -0.015015451377981437 - 0.0002188228149595182im, 6.592320284593156e-9 - 1.3024198768311977e-10im, -9.024689649560235e-6 + 7.989860174967281e-7im, -0.00034442673792456233 + 8.306042170143084e-5im, -0.0008598831565334344 + 0.0005616014658277647im, 0.006044218939272395 - 0.017407858922931743im, 0.009990532239521408 - 0.020935237497695238im, -0.003721968260943855 + 0.044766145308892925im, 0.0007719639588194134 + 0.03243320092235221im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.4983318650117414 + 0.5314998149484094im, -0.4311708636963831 + 0.5052867812521461im, -0.023654423451808484 - 0.16222066837425908im, -0.007090406156564455 + 0.028743317669774116im, -0.0053821065259979485 - 0.006127379763825064im, -0.005250661647574673 - 0.00661379852791924im, 0.0033756074676150037 - 0.0026365767423914177im, 0.0038674911110400324 - 0.0011921265838252151im, 0.4062501912624294 + 0.5514619840338006im, 0.5181754649904464 - 0.4787367455691721im  …  -0.12108628705649424 - 0.011336994939243939im, 0.062267167600386086 - 0.06763428385750109im, 1.8281254896629859e-9 + 1.4095005663739163e-9im, -3.5822188648077594e-6 - 1.4927098533322527e-6im, 0.001279690158196085 + 6.1919669027822686e-6im, 0.0004985153880909048 + 0.003792722761566526im, -0.019693807473930975 + 0.024881772349832996im, 0.0037233225759115457 - 0.028150217052070853im, 0.009890896047017757 - 0.08915073656625704im, -0.0037772351920888347 + 0.03194440924434171im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.9892419395958322 + 0.0im, 0.13512981600202084 - 0.05103543955133189im, 0.010323169768842868 + 0.0064807806213971406im, 0.01564728550663673 + 0.00878666893910659im, 0.003046983469389376 + 0.0014418111519804268im, 0.001235036007098829 - 0.0005308654208456019im, 0.0002854132226999096 + 6.015955328823281e-5im, 0.00027319579960451764 - 2.4845776434783285e-5im, 0.0 + 0.0im, 0.007106210974752499 + 0.0im  …  4.214858882564021e-7 + 0.0im, 5.874081817901132e-7 - 5.641871567932756e-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, 3.618342190080041e-7 + 0.0im], ℂ^8 ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 1, 1, Vector{ComplexF64}}(ComplexF64[0.99101040882918 + 0.0im, 0.131665533276687 - 0.011853821417845786im, 0.010736666577350453 - 0.00422826629279092im, 0.011493233642540276 - 0.010139330015507892im, 0.004402723154931074 + 0.0012994828379084703im, 0.0023187767117936096 + 0.0004946004981928741im, 0.00028490405404438 + 0.00014840393880675434im, 0.000280159765832941 + 5.498332024232681e-5im, 0.0 + 0.0im, 0.004725098744770794 + 0.0im  …  1.5047465442091448e-6 + 0.0im, -7.926182087209649e-7 - 1.5624682368370763e-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, 6.266719429430796e-7 + 0.0im], ℂ^8 ← ℂ^8)], TensorKit.TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}[TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.5935967323312369 + 0.3764799154788704im, 0.08162848797112054 + 0.0401775384740698im, 0.00685256087398377 + 0.0020680376343044206im, 0.011143537775722363 - 0.0024100525787860523im, 0.0020949846484799276 + 0.0024239994983873614im, 0.001280441475292657 + 0.0012157682700934629im, 0.00016618161866272554 + 0.00019150223484232625im, 0.0001306928431059118 + 0.00014016662221843007im, 0.5354697228778422 + 0.4485855654918409im, 0.07788220839523728 + 0.05616439949040138im  …  -1.1604488021729164e-8 - 5.878497939494873e-8im, -5.0818387253207364e-8 + 8.37746318214467e-9im, 6.53305802036756e-9 - 1.2907116546057336e-10im, -4.1776112234544454e-8 + 3.679995260217083e-9im, -1.469509280584995e-7 + 5.131688338825911e-8im, -8.975400912410024e-8 + 4.9923454929421455e-8im, -8.261094552195094e-9 - 8.26492279690922e-8im, 2.232840422973196e-8 - 4.03600255026757e-8im, 2.226455636526973e-9 + 3.8294627675587e-8im, 2.53779045872807e-8 - 1.6547352329339228e-9im], (ℂ^8 ⊗ ℂ^2) ← ℂ^8), TensorMap{ComplexF64, TensorKit.ComplexSpace, 2, 1, Vector{ComplexF64}}(ComplexF64[0.49297078070662204 + 0.5257819078343897im, 0.09140082878073089 + 0.04997956089610922im, 0.0016601092289434786 + 0.008275072515379473im, 0.00260556338424142 + 0.012481195134342616im, 0.0005990845432698713 + 0.0022651804520583386im, 0.0008453639837920592 + 0.00042279899968127537im, 9.812224539307418e-5 + 0.00018118398480739396im, 0.00013558237495341614 + 0.00011651012691977721im, 0.4018797271656257 + 0.5455293226989633im, 0.08672288252325534 + 0.05038379504032513im  …  -2.243240900691599e-8 + 1.5501775975385987e-8im, -4.5227531559863896e-8 + 2.89236334595856e-8im, 1.8084584052089446e-9 + 1.3943370741335637e-9im, -2.5137034268925943e-8 - 1.0510344777544705e-8im, 3.277984533248271e-7 + 6.981095729463293e-10im, -1.4273257861726228e-7 + 1.969726047796417e-7im, 1.6357555560871644e-8 + 1.2905604296370343e-7im, 3.916675149585326e-8 - 1.723811394226023e-7im, 1.4636300585429077e-8 - 4.591992829402569e-8im, -2.8230449344655012e-8 - 7.583454866234405e-8im], (ℂ^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