Skip to content

Improve Vidal gauge conversion, CTM bondenv for PEPO#348

Open
Yue-Zhengyuan wants to merge 2 commits intoQuantumKitHub:masterfrom
Yue-Zhengyuan:als-axis-order
Open

Improve Vidal gauge conversion, CTM bondenv for PEPO#348
Yue-Zhengyuan wants to merge 2 commits intoQuantumKitHub:masterfrom
Yue-Zhengyuan:als-axis-order

Conversation

@Yue-Zhengyuan
Copy link
Copy Markdown
Member

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, the S tensors 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.

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 6, 2026

Codecov Report

❌ Patch coverage is 96.49123% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/algorithms/contractions/bondenv/benv_tools.jl 50.00% 2 Missing ⚠️
Files with missing lines Coverage Δ
src/algorithms/contractions/bondenv/als_solve.jl 100.00% <100.00%> (ø)
src/algorithms/contractions/bondenv/benv_ctm.jl 100.00% <100.00%> (ø)
src/algorithms/contractions/bondenv/gaugefix.jl 100.00% <100.00%> (ø)
src/algorithms/time_evolution/apply_mpo.jl 100.00% <100.00%> (ø)
src/algorithms/truncation/bond_truncation.jl 94.52% <100.00%> (-0.22%) ⬇️
src/algorithms/truncation/fullenv_truncation.jl 96.77% <100.00%> (-0.15%) ⬇️
src/algorithms/contractions/bondenv/benv_tools.jl 50.00% <50.00%> (ø)

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Member

@leburgel leburgel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Comment on lines +10 to +11
_prepare_site_tensor(t::PEPSTensor) = t
_prepare_site_tensor(t::PEPOTensor) = first(fuse_physicalspaces(t))
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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`
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants