I'm working on developing an iTDVP algorithm using TeNPy. I'm able to recycle most of the aspects from the finite TDVP code, but there are some issues when trying to insert the updated tensors to for an updated MPS. Essentially, we have a 1site and 0site effective Hamiltonian that we use to update the singular values, and the tensor with form "Th". Let's denote updated tensors Th' and s'. First, s' is no longer necessarily diagonal, and also Th' is no longer in its canonical form. To test this, I would expect that since Th = As, that Th' = A's', and so contracting Th' with Th'* from the left, should result in s' contracted with s'* from the left (essentially the test in the function "MPS.norm_test()"). However, this test fails, and the difference grows with the time evolution time dt.
I'm hoping maybe I can get help with the following question. Is this loss of canonical form actually a property of the iTDVP evolution procedure, or is it a bug in my code? Also, if it is a property of the iTDVP procedure, how do I then bring these tensors into the appropriate form to then create an updated MPS? Making s' diagonal can be done using an SVD, and absorbing U, V appropriately using the gauge freedom we have, but it's not as clear to me what to do with Th'.
Thank you for your time.
Best,
Nick
iTDVP and canonical forms

 Posts: 2
 Joined: 23 Aug 2021, 04:01
Re: iTDVP and canonical forms
What is your Th?

 Posts: 2
 Joined: 23 Aug 2021, 04:01
Re: iTDVP and canonical forms
Let AL denote the left canonical form of the iMPS, and AR denote the right canonical form. Let C be the twoleg center tensor. (C should be "s" in your notation.) Also the mixedform tensor AC = ALC = CAR. (I believe AC is your "Th"?) Then, iTDVP updates C to C' and AC to AC'. To find AL' and AR' from AC' and C', you can use Eq. 139142 in this https://arxiv.org/pdf/1810.07006.pdf.