Skip to content

Conversation

@Yue-Zhengyuan
Copy link
Member

This PR introduces the most naive algorithm to truncate the virtual space of the product of two layers of InfinitePEPOs. It is a polished version of @sanderdemeyer's work in ClusterExpansions.jl. At least it can serve as initialization for other advanced approximation methods.

The algorithm minimizes the local cost function at each virtual bond, which is the norm of

        ↓ ╱      ↓ ╱            ↓ ╱                 ↓ ╱
    ----A2---←---B2---      ----A2-←-|╲       ╱|--←-B2---
      ╱ |      ╱ |            ╱ |    | ╲     ╱ |  ╱ |
        ↓        ↓       -      ↓    |P1├-←-┤P2|    ↓
        | ╱      | ╱            | ╱  | ╱     ╲ |    | ╱
    ----A1---←---B1---      ----A1-←-|╱       ╲|--←-B1---
      ╱ ↓      ╱ ↓            ╱ ↓                 ╱ ↓

The projectors are found following steps described in Appendix A, 1905.02351 (Boundary Tensor Renormalization Group). To handle fermions, the virtual arrows are first flipped to leftwards/downwards direction with standardize_virtual_spaces.

Similar to @pbrehmer's PR #257, the function doing the truncation overloads MPSKit.approximate, and dispatches on the algorithm struct LocalApprox <: ApproximateAlgorithm.

An immediate generalization is approximate the product of an InfinitePEPO and an InfinitePEPS, but currently I don't have concrete test cases.

@Yue-Zhengyuan Yue-Zhengyuan self-assigned this Dec 5, 2025
@codecov
Copy link

codecov bot commented Dec 5, 2025

Codecov Report

❌ Patch coverage is 82.85714% with 12 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/algorithms/approximate/approx_tools.jl 50.00% 12 Missing ⚠️
Files with missing lines Coverage Δ
src/PEPSKit.jl 100.00% <ø> (ø)
src/algorithms/approximate/local_approx.jl 100.00% <100.00%> (ø)
src/algorithms/approximate/approx_tools.jl 50.00% <50.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sanderdemeyer
Copy link
Contributor

Cool!

What you could do in the PEPS-PEPO case is to construct the PEPO as $$ exp(-d\tau H) $$, and see whether many applications of this PEPO on a random initial PEPS make it converge to the ground state. That is what I have as one of the tests in my ClusterExpansions code, which you can find here. This PEPO could be made using the Trotter decomposition, or via Simple Update, like you did in the previous tests. This should also allow for a fermionic test case.

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