The process of. creating a TEBD state seems complex, so I chose an alternative workaround. (Because it is 2D system). I created a finite MPS with quantum numbers at random and attempted to convert it to an infinite MPS, increasing the initial bond dimension for the calculation. However, an issue arises in the infinitemps_approx
function. The error message is as follows.
function initstate(n; N_a1=1, N_a2=2)
x = div(n-1, 2*N_a2) + 1
y = (n-1) % (2*N_a2) + 1
return iseven(x + y) ? "↑" : "↓"
end
SiteType="Electron"
N_site=8
s = siteinds(SiteType, 3*N_site, conserve_qns=true)
linkdims = [ 50 for n = 1:3*N_site-1 ]
st = [ initstate(n) for n = 1:3*N_site ]
autoMPS = random_mps(s, st ; linkdims = linkdims)
NR = [ N_site + n for n = 1:N_site]
ψ = infinitemps_approx(autoMPS; nrange=NR, nsites=N_site, nsweeps=2)
ERROR: LoadError: Attempting to contract IndexSet:
…
with IndexSet:
…
QN indices must have opposite direction to contract, but indices:
…
do not have opposite directions.