Skip to content

Add support for boundary MPS contractions - #426

Draft
leburgel wants to merge 6 commits into
mainfrom
lb/boundary_mps1
Draft

leburgel wants to merge 6 commits into
mainfrom
lb/boundary_mps1

Conversation

@leburgel

@leburgel leburgel commented Sep 2, 2026 •

Copy link
Copy Markdown
Member

Adds boundary MPS contractions of infinite square networks through leading_boundary, together with their gradient through implicit differentiation, so that they can be used in fixedpoint.

  • C4vBoundaryMPS with C4vBoundaryMPSEnv: a single boundary MPS for single-site networks with rotation and Hermitian reflection symmetry.
  • BoundaryMPS with BoundaryMPSEnv: a top and a bottom boundary MPS and their mixed environments, for any unit cell. The bottom MPS is the top MPS of the network rotated by 180 degrees, and every tensor of the environment sits at the position of the corresponding CTMRGEnv edge.
  • Both are driven by MPSKit's transfer matrix leading_boundary (VUMPS, VOMPS, and GradientGrassmann for C4vBoundaryMPS).
  • Expectation values go through the existing reduced_densitymatrix machinery: arbitrary patches through boundary_contraction_expr, and the 1x1, 2x1 and 1x2 fast paths through the CTMRG density-matrix contractions, which are split off into separate functions for this.
  • ImplicitGradient rules for both, from the characteristic equations of the boundary MPS fixed point on any unit cell. fixedpoint selects ImplicitGradient by default for boundary MPS environments; FixedPointGradient is not supported.

@leburgel
leburgel marked this pull request as draft September 2, 2026 13:57
@Yue-Zhengyuan

Copy link
Copy Markdown
Member

Shall we say C4v boundary MPS? "symmetric" feels ambiguous to me.

@codecov

codecov Bot commented Sep 2, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 63.57827% with 114 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/environments/boundarymps_environments.jl 25.00% 54 Missing ⚠️
...lgorithms/contractions/boundarymps_contractions.jl 67.52% 38 Missing ⚠️
...rc/algorithms/boundarymps/symmetric_boundarymps.jl 82.60% 8 Missing ⚠️
...lgorithms/optimization/implicit_differentiation.jl 78.94% 8 Missing ⚠️
src/algorithms/boundary_algorithm.jl 60.00% 2 Missing ⚠️
src/algorithms/boundarymps/observables.jl 81.81% 2 Missing ⚠️
src/algorithms/select_algorithm.jl 33.33% 2 Missing ⚠️
Files with missing lines Coverage Δ
src/Defaults.jl 85.71% <ø> (ø)
...algorithms/boundarymps/characteristic_equations.jl 100.00% <100.00%> (ø)
src/algorithms/ctmrg/ctmrg.jl 79.54% <ø> (ø)
src/algorithms/optimization/peps_optimization.jl 96.03% <100.00%> (ø)
src/algorithms/boundary_algorithm.jl 60.00% <60.00%> (ø)
src/algorithms/boundarymps/observables.jl 81.81% <81.81%> (ø)
src/algorithms/select_algorithm.jl 79.16% <33.33%> (-3.45%) ⬇️
...rc/algorithms/boundarymps/symmetric_boundarymps.jl 82.60% <82.60%> (ø)
...lgorithms/optimization/implicit_differentiation.jl 88.51% <78.94%> (-0.71%) ⬇️
...lgorithms/contractions/boundarymps_contractions.jl 67.52% <67.52%> (ø)
... and 1 more

... and 2 files with indirect coverage changes

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

@leburgel

leburgel commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

Shall we say C4v boundary MPS? "symmetric" feels ambiguous to me.

Sure, does C4vBoundaryMPS sound good?

@leburgel leburgel changed the title [WIP] Add support for symmetric boundary MPS contractions Add support for boundary MPS contractions Nov 2, 2026

This branch has not been deployed

No deployments
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