I use dmrg to get the ground state, then evolve it with gates created by
function genGate(tau,sites,N,ene,t)
gates = ITensor[]
for i in 1:(N-1)
s1 = sites[i]
s2 = sites[i+1]
hj =
-t * op("Cdagup", s1) * op("Cup", s2) +
-t * op("Cdagup", s2) * op("Cup", s1) +
-t * op("Cdagdn", s1) * op("Cdn", s2) +
-t * op("Cdagdn", s2) * op("Cdn", s1)
if i == 1
hj += ene * op("Ntot", s1) * op("I", s2)
end
Gj = exp(-im * tau / 2 * hj )
push!(gates, Gj)
end
return gates
end
The ground state is obtained with t=1,\epsilon=0.6. For time evolution, I use \tau=0.01.
If the gates are created with t=2,\epsilon=0, \langle n_{1\uparrow}(t)\rangle from TEBD matches with my ED benchmark.
If the gates are created with t=0,\epsilon=1.2, \langle n_{1\uparrow}(t)\rangle also matches.
If the gates are created with t=1,\epsilon=1.2, the results don’t match. I would expect \langle n_{1\uparrow}(t)\rangle decreases in time since the onsite energy is higher, but the TEBD result of it increases with time.
Following the discussion in the forum https://itensor.discourse.group/t/proper-way-to-construct-fermion-gates/172, I think since I use OpSum() and apply methods, the Jordan-Wigner string issue should be handled automatically. Or should I do it by hand since I mixed fermionic operator c with bosonic operator n in the gates?
Again, many thanks for developing and maintaining such good package!
Best,
Zhen
Yes, if you use apply and OpSum, the Jordan-Wigner string should be handled for you. The only exception is if you measure operators like c^\dagger in a “manual” way i.e. by contracting tensors then you have to use the string, but functions like correlation_matrix also put in the string for you.
If you are getting correct results for cases 1 and 2 above, then I think the problem is unlikely to be about the J-W string. Perhaps the problem is an accuracy/convergence sort of issue? How well did the DMRG part of the calculation work? What if you run DMRG for more sweeps? Also please try adjusting the cutoff you use in both DMRG and TEBD to be smaller to see if that may give different results.
Thanks for the reply. The DMRG part worked very well. The ground state energy and expectation values from DMRG are almost the same as those from ED. I used cutoff = 1e-8 originally and I tried to use cutoff = 1e-12, which gave the same result. I will also use TDVP for the same system and see what will happen.
Sorry for the late reply. I used TDVP instead to time-evolve fermionic systems, which works well.
For the J-W string, I think this page is quite helpful. Also, since my original post was almost one year ago, I should have taken Miles’ reply as the solution. My apologies.