-
Notifications
You must be signed in to change notification settings - Fork 25
Add PEPS initialization based on fidelity maximization #257
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
base: master
Are you sure you want to change the base?
Conversation
Codecov Report❌ Patch coverage is
... and 2 files with indirect coverage changes 🚀 New features to boost your workflow:
|
|
@leburgel, @lkdvos I tried to recreate what you explained on Tuesday but I'm still a bit unsure about some things here:
I'll figure this out over the next days, but I'm happy about any hints/comments. |
lkdvos
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll try and go over this in a bit more detail later, just wanted to leave these small comments before I forget
|
I think it will be straightforward to do this for mixed states (PEPOs) as well? One particular application is first obtaining exp(-βH) from simple/full update, tracing out the physical axes, and putting it on a periodic lattice and contracting using TNR (when we want to extract CFT information). For TNR, afaik it is often cumbersome to work with non-trivial unit cells. Anyway, there are other ways to directly obtain the exp(-βH) PEPO with trivial unit cell (e.g. HOTRG, cluster expansion) and we don't need to do this right now. |
|
The new tests should pass once a new TensorKit version is released since we need |
…PEPSKit.jl into pb/fidelity-initialization
|
Small update on applying this to approximate a With that there are problems: One is that
will yield mostly zero entries in this symmetric case. If we then try to contract that PEPS, the For dense PEPS the algorithm does seem fine and maybe for symmetric PEPS with compatible virtual spaces it also works. But for the |
|
@pbrehmer, the vanishing value and no fusion channels sounds like you are trying a case where a 1x1 unitcell is actually forbidden by the symmetry, in which case we are not expecting this to work indeed. I think the main idea was to try this in the case where we know the state has a 1x1 unitcell, and we had to artificially enlarge it to 2x2 because the optimization algorithm (typically SU) breaks that, but using a different optimization algorithm would have produced a 1x1 unitcell without issues. Given this, we would typically expect the virtual spaces to be somewhat compatible, and the variations to be mostly due to numerical noise, rather than structural differences, such that all of the corners we are cutting are warranted. |
Ah, I see. I thought the difference in virtual spaces between different directions would just be the distribution of degeneracies, I didn't know there was just one space with halfinteger charges compared to all the rest. It's quite curious that there's just the one that is all halfintegers and the rest are integers, but they're never mixed anywhere. Just from looking at this distribution, to me this looks like something that could be better addressed by shifting the physical space through adding a uniform Would this make sense, or would you not expect a nonzero charge density for the ground state here? EDIT: missed Lukas' reply. Do we expect the ground state to have a 1x1 unit cell here physically, or does it really break translation invariance? |
Not quite sure what you mean, could you elaborate a bit more on that? How would adding a uniform
I'm not super sure about the ground state properties at |
Just for the example of the tensor you printed, if you split off an auxiliary physical leg with space
I can't say I'm entirely sure about this, but from reading the explanation here it seems like the local tensors here do have a non-trivial total U(1) charge. I think our labels are half of the ones used there (the physical space there has +1 and -1 charges, whereas we use +1/2 and -1/2), so a total U(1) charge of +1 as indicated there would be a charge shift by |
The simple update states I provided to Paul do have a nonzero staggered magnetization. This might indeed be the physical reason why 1x1 unit cell won't work. @pbrehmer Is it possible to perform the sub-lattice spin rotation on my PEPS before optimization? If not possible with U(1) (which is kind of expected if this is the case), we may try not to use any spin rotation symmetry. |
I see, and is it staggered because we didn't do a sublattice rotation to map antiferromagnetic order to ferromagnetic order at the very start? But even in that case, I think we can do a non-uniform charge shift to account for the antiferromagnetism (exactly like is done here) while still using the same virtual space everywhere. In that case, a fidelity initialization would still be possible, it just wouldn't be single-site anymore Maybe this is going a bit beyond the scope of the actual PR here, but I do think the issue can be solved with the approach here. How about we break off a discussion about fixing up the J1-J2 example somewhere, and return to this once we have figured that out? |
I think it would be possible to sublattice rotate it but applying a
Yes, precisely. (Doing a sublattice rotation at the start corresponds to changing the signs in front of the next-nearest neighbor Hamiltonian terms such that we get a ferromagnetic single-site ground state.)
Yes, very much agree, this specific test case is beyond the point of the PR. Maybe we can discuss this a bit further tomorrow. Actually I think the |
…PEPSKit.jl into pb/fidelity-initialization
|
As discussed earlier, I added an algorithm struct for I changed the method signature to match the one from MPSKit. In that process I decided that specifying the |
|
@leburgel @Yue-Zhengyuan Quick update on running SU with staggered charges on the physical spaces (as discussed yesterday): This does seem to work indeed and I obtain SU energies which are quite similar to the previous runs. Note that I first had to fix the index rotation functions to make this work, see #267. I haven't run variational optimizations on these states yet, but I'll keep you posted. |
This PR adds tools to initialize a PEPS based on maximizing the fidelity with respect to another PEPS. As we discussed on Tuesday, this would be useful e.g. to extract a single-site approximation of a SU evolved PEPS on a$2\times2$ unit cell. This would be great to have since SU/FU evolved initial PEPS can then be used for single-site variational optimization.
Note that I use TensorKit's embed branch in order to use the
embed!function: