Use reduced bond matrix without physical leg in bond truncation #322
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR mainly "standardizes"
bond_truncatewithALSTruncationalgorithm. Previously, ALS was optimizing reduced bond tensors with a physical leg. But now, the physical legs of the reduced bond tensors are first absorbed into the bond environment before further optimization, so it is now solving the same problem asbond_truncatewithFullEnvTruncation.Besides, I also squeeze in a generalization of
bondenv_ctm(full update bond environment) for iPEPO.(Note that during Trotter gate time evolution, absorbing the physical legs from reduced bond tensors will increase the dimension of the bond env, it is still better to fix the gauge of the bond env before doing so. This is why the gauge-fixing code for bond envs is unchanged.)
Edit: see the original notes for this PR below.
Details
This PR prepares for a future change of
_qr_bond: the physical leg will not be transferred to the reduced matrix when doing the QR decomposition. More concretely, instead ofit will be changed to
I want to do this mainly because keeping the physical leg in the reduced matrix is not easily generalized to longer-range (e.g. next-nearest neighbor) gates when performing Trotter time evolution (consider how the middle site in the 3-site cluster should be treated).
In this way, the two-site gate is not directly applied to the two reduced matrices
a,b. Instead, it is also first decomposed into an MPO to avoid SVD-ing a large tensor. (I decide to follow YASTN approach this time; see also PhysRevB.106.195105)Without physical legs there, the code of ALS and FET truncation will become more similar, reducing difficulty in maintenance.