Benchmarking TDVP results

Hello ITensor community,

I am doing 2-site TDVP time evolutions to a 2d system wrapped to a cylinder. According to this article: Tensor Network, TDVP2 has 4 sources of error, two of them increase with number of time steps and two of them decrease with time steps. Therefore I wonder what I should do to benchmark my results. Should I use WII MPO time evolution with very small time steps to do the benchmarking? My impression is that WII MPO has an error that scales linearly in system size, so I don’t know whether that would be a potential issue in benchmarking.

What about comparing to TEBD or exact diagonalization/full state simulation?

I think Matt’s answer is the right one. As a small addition to it, you could try to make a plot similar to Fig. 4 in this paper on time-evolving PEPS, where the goal is to determine a good choice of time step that balances between time-step errors and truncation errors.

TDVP of course works differently than the TEBD used in that paper, but it still can have some similar types of errors so you can do a study to confirm this and to understand the relative amount of each error source (by comparing to exact results as Matt said).

Finally, if your system happens to have an analytically solvable limit, like free fermions, then you can even use that to directly benchmark on much larger systems.

Thank you Matt and Miles for your suggestions! I will try to adjust the time-steps and try to plot sth similar to fig. 4 in the isometric TN paper.

Unfortunately I am studying a 2d model that is not exactly solvable, so I don’t know how to use TEBD or exact solutions as a reference.

And I am wondering the following: suppose I first study a small system with both TDVP2 and ED to get optimal values of cutoff and time-steps for TDVP2. Then is it justified to use the same set of cutoff and time-steps for larger system size?

Yes, that’s the idea (the last thing you said). You could just benchmark on a small 1D system or a small 2x2 cluster with the same degrees of freedom and a similar Hamiltonian and then your findings about step size and truncation ought to generalize well to your larger 2D system.

Apart from that, a general thing in numerics is that you can always just do your larger calculations with multiple parameters and see if you get the same answer each time. If you do, then it is basically converged as a rule of thumb, or if not, then it is depending too much on your perimeters.

Thank you. These advice are really helpful!

Note that you can use our apply function for performing TEBD of 2D models. You can follow the tutorial here: MPS Time Evolution · ITensors.jl, the only difference for 2D is that the gates would be long range based on mapping the 2D lattice to the 1D snake pattern used by the MPS (similar to how in DMRG you handle 2D systems by mapping to a long-range Hamiltonian on a 1D lattice). The apply function handles the long range gates automatically by inserting swap gates, though that can be quite expensive since it increases the entanglement so you will be more limited in the system sizes and times you can reach compared to TDVP (which is one of the reasons why TDVP was proposed as an MPS time evolution method in the first place).

Thanks! It’s good to know that. I’ll try the TEBD out.