Menu

Time-dependent variational principle

Users
2017-11-24
2018-09-07
  • Elmer Doggen

    Elmer Doggen - 2017-11-24

    I am trying to simulate time dynamics using your implementation of the time-dependent variational principle (TDVP). My Hamiltonian contains only on-site and nearest-neighbour terms, so I can compare to TEBD, also using your implementation. Surprisingly, TEBD seems to do a better job for the long-time dynamics (I simulated up to t = 100 in standard lattice units, using a timestep 0.1), in the following sense. I perform a quench of a Hamiltonian parameter instantenously, and allow the system to evolve under the new Hamiltonian with constant terms. Hence, the energy is conserved during time evolution. What I then find is that, for fixed bond dimension = 64 or 128, the TEBD algorithm gives a much smaller error in the evolution of energy as a function of time compared to the TDVP, even though the literature seems to claim that the TDVP should be especially good at conserving conserved quantities, even for small bond dimension and at long times! I guess my question is: how confident are you that your TDVP implementation is correct? I use version 2.1.

    Best regards,
    Elmer

     
  • Daniel Jaschke

    Daniel Jaschke - 2018-02-18

    Hello Elmer,

    First, thank you for pointing out this problem. I had a chance to look at the problem, and I could reproduce the behavior. It is more involved than I thought and I could not resolve it up to this point. Explanation could be that evoMPS is using the bond dimension more wisely or the truncation in openMPS has a bug. The latter is unlikely as I am down to a level without symmetry. The first is difficult to check.

    But I'll let you know if I can come up with any other ideas leading to a solution of the problem.

    Kind regards,

    Daniel

    Checklist (mostly for my record or readers interested in the technical details)
    1) There is a similar behavior for systems without symmetry and for systems with no spatial dependent behavior (with regard to the conservation of energy.)
    2) Truncation: TEBD and TDVP us the same method for truncation. So if something goes bad, it goes bad for both cases. I went to check it anyway, and I did not see an obvious error when picking out the singular values.
    3) I checked if there are any sets of degenerate singular values. Truncating some values of the set might result in strange behavior, but I could not find evidence for this as I resolved degeneracies up to 0.1 (relative difference).
    4) I was looking at the canonical form during the time evolution and before the measurements. A non-canonical form induces higher errors in truncation, but no errors from this point.
    5) I checked with v3 currently under development (not ready for using), but the behavior persists.
    6) LRK time evolution method reproduces the behavior.
    7) The MPO measured are the same at the beginning of the time evolution and at the end, so no corruption from there.
    8) I truncate the bond dimension after the last time step and before the last measurement. The second last measurement of the energy is correct and no singular value are truncated. The last energy is not correct. Therefore, TDVP seems to be working (unless it is using more bond dimension than necessary), or the truncation procedure would be wrong (even without symmetries), or the bond dimension is not sufficient. Why evoMPS is working past the same point is hard to tell.

     
  • Elmer Doggen

    Elmer Doggen - 2018-08-08

    Just to come back to this issue: it looks like the non-conservation of energy in your TDVP implementation is quite general, except when you time-evolve with unrestricted bond dimension for small systems (e.g. bond dimension 32 for L = 10 and a spin-1/2 problem). The conservation of energy in the TDVP time step requires that you stay within the same MPS manifold. If you choose an unrestricted bond dimension, then the MPS manifold cannot change (after all, it contains the entire Hilbert space of the problem) and the energy is conserved perfectly (I see changes on the order of 10^-10). On the other hand, with for example LRK there will be an error related to the size of the time step.

    What it looks like you are doing from digging through your code (correct me if I am wrong) is generating a new MPS manifold by choosing an optimal truncation at every time step. If the entanglement is small, the error from this is also quite small, as with any other MPS method. However, you can ensure that the error in the energy is zero by enforcing that you do not leave the MPS manifold at all, even if your system is strongly entangled. What you should do is choose one MPS manifold and stick with it even though it is not guaranteed that the truncation at step t1 is the optimal one at some later time t2. Of course, the result might still be wrong, and for very strongly entangled systems it usually is, but the energy will be correctly conserved. Let me know if this helps.

     
  • Elmer Doggen

    Elmer Doggen - 2018-09-06

    Just to add to this point: to stay in the same variational manifold, one must apply the one-site algorithm (this is also what evoMPS does), whereas you are using a two-site approach. See arXiv:1809.01400

     
  • Daniel Jaschke

    Daniel Jaschke - 2018-09-06

    Hello Elmer,

    Thank you for digging into the evoMPS implementation and pointing out the difference for everyone here.

    Best regards,

    Daniel

     
  • Elmer Doggen

    Elmer Doggen - 2018-09-07

    You're welcome. Do you intend to implement the one-site algorithm at any point?

     

Log in to post a comment.

Monday.com Logo