Remove InfiniteWeightPEPS and mirror_antidiag#239
Remove InfiniteWeightPEPS and mirror_antidiag#239Yue-Zhengyuan merged 20 commits intoQuantumKitHub:masterfrom
Conversation
|
I have only updated the source files of the examples. We can regenerate the docs after we decide to merge this PR. |
Codecov Report❌ Patch coverage is
🚀 New features to boost your workflow:
|
lkdvos
left a comment
There was a problem hiding this comment.
Looks like an overall improvement, I like this.
I will try and make some more time to go over this, are you okay with me also pushing some small changes to this branch?
As a sidenote, this is definitely a breaking change, so shall I try and register a new patch version before we try to merge this?
|
@lkdvos Sure, please go ahead to make necessary changes. We can register v0.6.1 for the current main branch. After this SU overhaul we may go to v0.7. |
lkdvos
left a comment
There was a problem hiding this comment.
Left some small remarks, otherwise I'm happy to merge this!
|
Reminder: We need to regenerate the docs before merging. |
Yue-Zhengyuan
left a comment
There was a problem hiding this comment.
I find some issues when regenerating the docs.
This PR is an overhaul of simple update, which removes
InfiniteWeightPEPSandmirror_antidiag. The related tests and examples are updated accordingly. I apologize for not planning carefully before and introducing them in the first place.Simple update now works with
InfinitePEPSandSUWeight. When awpeps::InfiniteWeightPEPSwas needed before, it is now replaced bypeps::InfinitePEPS, env::SUWeight. The tensors in the InfinitePEPS correspond to InfiniteWeightPEPS.vertices with square root of bond weights always absorbed. ThenInfiniteWeightPEPSis no longer useful, and we can get rid of its weird behaviors under lattice rotations.env::SUWeightis regarded as the environment for simple update, and hence the file defining it is moved to "environments/suweight.jl". Sometimes when CTMRG is also involved, the variable name iswts::SUWeight, withenvreserved forCTMRGEnv.Axis order of
SUWeightis no longer always (west, east) and (south, north), depending on the "dual-ness" of the Espaces and Nspaces of the PEPS. E.g. for x-weights, it is either 1 ← x ← 2 or 2 → x → 1. This makes logic inabsorb_weightsimpler.I added a
_su_ybond!to directly update vertical bonds for the 2-site SU, without the need to mirror or rotate the PEPS. Hencemirror_antidiagis no longer needed and removed.I added some tricks in the half-filling Hubbard model SU example to improve convergence of SU and CTMRG (initialize with a small D = 4, then ramp up to a large D = 12, and finally go back to D = 8).
Things deliberately left for future PRs
su_iter,simpleupdatetotimestep!andtime_evolveto match MPSKit.