Hi,
I’m trying to use the TDVP package in ITensors and I have a few questions
- I’m trying to do the time evolution with a hamiltonian H, and look at the results at each time step from t_i to t_f in time step = \tau, I have two implementations:
for dt in start:τ:fin
ψ1 = tdvp(H, -im * dt, ψ; cutoff, nsite=2, time_step= -im * τ/2, normalize=true)
end
And
for dt in start:τ:fin
ψ1 = tdvp(H, -im * τ, ψ1; cutoff, nsite=2, time_step= -im * τ/2, normalize=true)
end
I assume that the two achieve the same goal, except for the fact that the second one will be O( t_{total}/\tau) faster because I’m repeating every step in the first code? (I was not sure if the time_step== t_total will cause an issue so I just divide the time step by 2)
- It seems that the TDVP results have much ‘less’ dynamics than the TEBD approach for my system.
By looking at |\langle \psi_{init} | \psi_{res}\rangle |, the TEBD results at t=5.0 with \tau =0.1, gives |\langle \psi_{init} | \psi_{res} \rangle |\approx 0.1, where the TDVP with the same parameters gives around 0.95, i.e. the wavefunction changes a lot more in the TEBD calculation than TDVP.
I know this is a very rough metric, but I’m still curious if I did something wrong in the calculation, or that there are way to improve the results of the TDVP by adjust the local krylov dimension, say.