Repository navigation
Formalize gauge transformation for iPEPS, iPEPO and CTMRGEnv - #320
Yue-Zhengyuan wants to merge 8 commits into
Conversation
Codecov Report❌ Patch coverage is
... and 2 files with indirect coverage changes 🚀 New features to boost your workflow:
|
|
Of course, there are some immediate generalizations to handle gauge freedoms in InfiniteSquareNetwork and its CTMRGEnv. But they'd better be added when someone encounters them in concrete applications. For now the only usage in my mind is BP gauge fixing for iPEPS norm network; after the fixing it is natural to transform its CTMRGEnv accordingly. |
|
I think this would be really great to have. Looking at this though, I'm wondering if it might be good to wrap the gauge matrices |
bdddf67 to
faa2511
Compare
793fb13 to
50dab6d
Compare
|
Sorry if I missed this but this does this also test with the new |
|
Gauge fixing for C4vCTMRGEnv is already tested in |
|
So I did miss it 😅 thanks! |
|
A big source of type stability problem is rotation of unitary gauge transformations in an iPEPS. On each bond, the inverse gauge matrix is obtained as lazy AdjointTensorMaps. After a 90-degree rotation, as the bond direction changes, the AdjointTensorMaps will mix with TensorMaps. Current solution: just remove definition of the rotation functions. |
Adds
gauge_transformfor iPEPS, iPEPO, and CTMRGEnv, with separateVirtualGaugeTransformandCTMRGEnvGaugeTransformtypes for virtual bonds and environment boundary legs. Both support non-unitary matrices and inversion throughinv.Gauge fixing of CTMRG environment is refactored to use the general machinery of
CTMRGEnvGaugeTransform.Tests verify contraction invariance for PEPS, independent PEPO layers, and stacked networks.