-
Notifications
You must be signed in to change notification settings - Fork 33
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
why do we need Multiline #133
Comments
Hi guochu, thanks for your kind words! The Multiline object is indeed a bit confusing, and I don't think there really is any application for 1D quantum physics related computations. In principle, we could think of computing a variance with these objects, but this is not how it's implemented and I think that would be more complicated than the current implementation. This being said, the main reason for the MultilineMps and MultilineMpo is found when considering 2D partition functions in the context of statistical mechanics, or even boundary-MPS methods for PEPS algorithms. In these cases, the mpo represents a transfer matrix, and might have a non-trivial unitcell in both horizontal and vertical directions. Finding a fixed point for this operator can be done by considering a non-trivial unitcell for the MPS as well, leading to the multiline approach. For a concrete example, this happens already for the 6 vertex model when imposing the CU1 symmetry. See this test in MPSKitModels |
Thanks for you reply Lucas! For the 2D application where the Multiline object becomes necessary, it is because there exist multiple degenerate fixed points, which belong to different symmetry sectors? |
That might be one way of thinking of it, but I would say It is more along the same lines as how the infinite quantum spin 1/2 Heisenberg model works. If you impose the symmetry, you necessarily need to break translation invariance, leading to an A-B structure in the groundstate. This clearly also means that B-A is also a groundstate, and in some sense you can label these states by their virtual space sectors: the former would have alternating integer and half-integer sectors, while the latter has alternating half-integer and integer sectors. If you then think of an MPO tensor which has half-integer charges not only on the physical (vertical) legs, but also on the virtual (horizontal legs), you would start by applying this MPO to a state of type A-B, and end up with a state of type B-A. If you would have assumed translation invariance in the vertical direction, then the overlap would have been zero because of the symmetry constraints. Nevertheless, this does not necessarily only show up for these symmetry reasons, you could just have a physical lattice with a 2x2 unit cell and different interactions, in which case the transfer matrix would be |
Really thanks for your reply! I think I roughly see the point:) |
Dear Maartenvd:
I feel MPSKit (and of course TensorKit) is a great project! Thanks for you effort to maintain it.
I have a (maybe naive) question about the Multiline object for Infinite MPO and infnite MPS, which caused a lot of confusion for me to understand your code. In 1D applications I can not think of any situation where we have to stack up several Infinite MPOs or Infinite MPSs together. Am I wrong? It is possible to give a brief comment about the design principle of using Multiline?
Thanks in advance for your time!
The text was updated successfully, but these errors were encountered: