Hi there!
I am trying to run the TEBD code in the tutorial. Instead of initializing the psi
as a product state of alternating up and down spins, I tried to evolve a intial product state with only one spin up in the central site and keep all the others spins down.
@show states_1 = [["Dn" for i in 1:49];"Up";["Dn" for i in 1:50]]
psi = productMPS(s,states_1)
The result of the expectation value of "Sz"
shows that the spin up spread out from the central site. But when I use the maxlinkdim(psi)
to get the maximum bond dimension of psi
, it is always 2 throughout the time evolution. I am confused why the bond dimension will not grow with time. Besides, the maximum value of the entanglement entropy will also not grow with time.
The code and results are shown in below.
using ITensors
function entropy_von_neumann(psi::MPS, N::Int)
SvN = zeros(N,1)
for b = 2:N-1
orthogonalize!(psi, b)
U,S,V = svd(psi[b], (linkind(psi, b-1), siteind(psi,b)))
temp = 0.0
for n=1:dim(S, 1)
p = S[n,n]^2
temp -= p * log(p)
end
SvN[b] = temp
end
return SvN
end
let
N = 100
cutoff = 1E-8
tau = 0.1
ttotal = 5.0
# Make an array of 'site' indices
s = siteinds("S=1/2", N; conserve_qns=true)
# Make gates (1,2),(2,3),(3,4),...
gates = ITensor[]
for j in 1:(N - 1)
s1 = s[j]
s2 = s[j + 1]
hj =
op("Sz", s1) * op("Sz", s2) +
1 / 2 * op("S+", s1) * op("S-", s2) +
1 / 2 * op("S-", s1) * op("S+", s2)
Gj = exp(-im * tau / 2 * hj)
push!(gates, Gj)
end
# Include gates in reverse order too
# (N,N-1),(N-1,N-2),...
append!(gates, reverse(gates))
# Initialize psi to be a product state (alternating up and down)
# psi = MPS(s, n -> isodd(n) ? "Up" : "Dn")
@show states_1 = [["Dn" for i in 1:49];"Up";["Dn" for i in 1:50]]
psi = productMPS(s,states_1)
magz = expect(psi, "Sz")
for (j,mz) in enumerate(magz)
println("$j $mz")
end
@show flux(psi)
c = div(N, 2) # center site
# Compute and print <Sz> at each time step
# then apply the gates to go to the next time
for t in 0.0:tau:ttotal
# magz = expect(psi, "Sz")
# for (j,mz) in enumerate(magz)
# println("$j $mz")
# end
Sz = expect(psi, "Sz"; sites=c)
println("$t $Sz")
tâttotal && break
psi = apply(gates, psi; cutoff)
normalize!(psi)
@show maxlinkdim(psi)
SvN_Temp = entropy_von_neumann(psi, N)
@show maximum(SvN_Temp)
end
return
end
Results:
0.0 0.5
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.01743505441971284
0.1 0.4950135149276232
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.05562015047896065
0.2 0.48016585908997045
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.10612344668695124
0.3 0.45578929774606464
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.1640676416226671
0.4 0.42242744821683054
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.2258378907679655
0.5 0.3808202162318615
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.2885714090964613
0.6 0.3318834419498602
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.3499687986794842
0.7 0.27668379236655216
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.40820988555277926
0.8 0.21640976002397497
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.46190929704093553
0.9 0.15233944868930394
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.5100863847221536
1.0 0.08580630088701748
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.5521378484330988
1.1 0.01816370509064726
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.5878071939413907
1.2 -0.049250466229190604
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6171480669471001
1.3 -0.11514827858176316
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6404802940610038
1.4 -0.17832421521588424
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6583387373556082
1.5 -0.23768471555704831
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6714160828759874
1.6 -0.29227394994377015
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6805017595578058
1.7 -0.34129513600644973
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6864200778448493
1.8 -0.38412683444907847
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.689971437723009
1.9 -0.42033383215526776
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.691880869519524
2.0 -0.449672373595029
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6927580248592464
2.1 -0.47208972979776515
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6930719345192227
2.2 -0.4877182113450301
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6931423093706478
2.3 -0.49686393891828723
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6931471805433747
2.4 -0.499990836516119
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6931445705505692
2.5 -0.49770045105008104
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6931041464878136
2.6 -0.49070832301232703
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6929437841377276
2.7 -0.47981772669898154
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.692565822350067
2.8 -0.4658916641677985
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6918884382114975
2.9 -0.4498240350816356
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6908687824084694
3.0 -0.4325109088632561
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.689515994205459
3.1 -0.4148228016586001
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6878937111980494
3.2 -0.397578806884134
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6861130255684347
3.3 -0.3815233478046553
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6843179110558146
3.4 -0.3673062216782393
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6826658997798848
3.5 -0.3554664567660881
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6813071506686422
3.6 -0.34642041167937426
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6803653668658161
3.7 -0.3404543529116656
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6799220408508695
3.8 -0.33772160874255036
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6800077045408002
3.9 -0.3382442463755545
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6806006542363314
4.0 -0.34191906567709857
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.68163191959167
4.1 -0.3485275652930903
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6829962004113923
4.2 -0.3577494181406905
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6845665608240853
4.3 -0.3691788612897342
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6862105750575804
4.4 -0.38234337991039236
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6878055872202065
4.5 -0.39672394458975574
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6892511595450802
4.6 -0.4117760590337785
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6904773499203951
4.7 -0.4269508670252502
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6914481743457457
4.8 -0.44171558284653406
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.6921603178169736
4.9 -0.45557255521829765
maxlinkdim(psi) = 2
maximum(SvN_Temp) = 0.692637780125144
5.0 -0.46807634254715635
Thanks for your time in advance.
Best,
Huang