-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improvements to VUMPS implementation #19
Comments
for 1), do you actually notice a difference? We looked at this a bit, and it was all very inconsistent, or even dependent on what kind of decomposition was used when doing the canicalization (finding AL-C = C-AR) |
By which kind of decomposition, do you mean using positive QR vs. polar in Eq. (22)? Did you find one worked better than the other? I just started to test it out now so haven't drawn any conclusions yet. I seem to recall that Valentin Zauner-Stauber said that using a polar decomposition was more accurate in practice compared to the positive QR when using Eq. (22) to update AL and AR, so far I have only used a polar decomposition. |
indeed, positive qr vs positive ql vs polar. The matlab people in our group apparantly use polar, while I have it set to positive qr. I remember that we did some benchmarking in the past and there was no clear conclusion, with results dependent on other finicky details. For example, if your input mps had an upper triangular C matrix, then it somehow mattered if you used some ql or qr decomposition in the vumps step. I was wondering if you had a clearer conclusion :) Another thing to play with is to not do what the original vumps paper suggests (extracting AL and AR from (20) ). Instead what we now typically do is only extracting AL and then finding C,AR from the consistency equation AL * C = C * AR. That's another issue with no clear consensus on which is better. |
That's interesting. I also remember having some finicky details like that when I was trying to impose reflection symmetry (explicitly imposing I remember at some point I tried to extract It would be good to share notes about best practices for implementation details like that, there are definitely a few choices to make. |
ah I actually tried to do reflection invariance too, but it's really tricky. If I remember correctly you can prove that there are two classes of solutions and only in one of the cases can you set AR = AL^T. Assuming it is indeed in the class of AR = AL^T, I think you can do it by first finding AL, then finding a gauge transform which transforms AL into AL', but this AL' can then be related to AR' = AL'^T. In the end I gave up on that primarily because it may go horribly wrong for certain models that don't allow such a solution. I'd be interested in contributing to notes like that! I think in general there is quite a lot of knowledge build up in specific groups that doesn't really get into papers, because it's not very interesting in and of itself. |
Some improvements to the VUMPS implementation:
C^T C
andC C^T
forR
andL
, which are only approximate fixed points.The text was updated successfully, but these errors were encountered: