Improve Vidal gauge conversion, CTM bondenv for PEPO#348
Improve Vidal gauge conversion, CTM bondenv for PEPO#348Yue-Zhengyuan wants to merge 2 commits intoQuantumKitHub:masterfrom
Conversation
Codecov Report❌ Patch coverage is
... and 1 file with indirect coverage changes 🚀 New features to boost your workflow:
|
leburgel
left a comment
There was a problem hiding this comment.
Looks good, no real important comments from me.
Just one question more out of curiosity: what is the reason for generalizing to MPS tensors with an arbitrary number of physical legs in the MPO application routines? When will this be necessary and/or why was it not necessary before?
| _prepare_site_tensor(t::PEPSTensor) = t | ||
| _prepare_site_tensor(t::PEPOTensor) = first(fuse_physicalspaces(t)) |
There was a problem hiding this comment.
Looks like these two are currently not used. When do you expect these to be required?
| =# | ||
| """ | ||
| Perform QR decomposition through a PEPS tensor | ||
| Perform QR decomposition through a `GenericMPSTensor` |
There was a problem hiding this comment.
It's not really clear from the diagram how this R0*M is interpreted as an MPS tensor, is it?. This isn't really an issue, I was just a bit confused myself.
This PR does the following refactorizations (sorry for packing many things together):
In
src/algorithms/contractions/bondenv/als_solve.jl: the axis order of tensors involved in the ALS optimization (in particular, theStensors and the rank-3 reduced bond tensor) is changed to more closely follow the MPS convention.In
src/algorithms/contractions/bondenv/benv_ctm.jl: CTMRG bond environment can now be constructed for an iPEPO, getting ready for finite-T FU.In
src/algorithms/time_evolution/apply_mpo.jl: The conversion of an open boundary MPS to Vidal gauge is improved by removing the constraint of the number of legs of each tensor.