Skip to content

Store the fusion trees of both sides instead of every fusion tree pair - #600

Draft
leburgel wants to merge 2 commits into
mainfrom
lb/fusion_tree_pairs
Draft

leburgel wants to merge 2 commits into
mainfrom
lb/fusion_tree_pairs

Conversation

@leburgel

@leburgel leburgel commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Closes #596.

  • fusiontrees(W) is a FusionTreePairs, an AbstractIndices that stores the splitting and fusion trees of every coupled sector instead of every pair. The position of a pair follows from those of its trees, and is its (integer) token.
  • subblockstructure(W) is a FusionTreePairDict sharing those tokens.
  • fusionblocks groups the trees of each side by their uncoupled sectors, combines the groups in the order in which they first occur (the order of Construct fusion tree blocks from the shorter side, and group the cached trees in fusionblocks #581), and fills every block once at its final size.
  • degeneracystructure loops over the trees of both sides.

The transformers are identical to those of #581, block order included, on all transformers of one CTMRG iteration (554 for fℤ₂ × U(1) × SU(3), 550 for fℤ₂ × U(1) × SU(2) × U(1)).

Building those transformers, on top of main + #580 + #581 + #592 (D = 7, shared machine at load 16–29, ranges over 3 interleaved rounds):

before after
fℤ₂ × U(1) × SU(2) × U(1), serial preparation 15.6–17.3 s 9.9–11.1 s
fℤ₂ × U(1) × SU(2) × U(1), 1 thread 27.0–29.5 s 20.5–22.9 s
fℤ₂ × U(1) × SU(2) × U(1), 8 threads 18.9–20.0 s 14.1–17.9 s
fℤ₂ × U(1) × SU(3), serial preparation 4.4–4.7 s 3.4–3.7 s
fℤ₂ × U(1) × SU(3), 1 thread 10.6–10.7 s 9.5–10.3 s
fℤ₂ × U(1) × SU(3), 8 threads 4.9–5.5 s 4.2–4.6 s

Keying the groups by the integer positions of the uncoupled sectors instead makes fusionblocks about 1 s faster for SU(2), but the totals are within the noise, so this keeps the simpler version.

🤖 Generated with Claude Code

@lkdvos
lkdvos force-pushed the lb/fusiontreeblock_construction branch from 8e373fa to 3f74b72 Compare October 28, 2026 19:19
Base automatically changed from lb/fusiontreeblock_construction to main October 28, 2026 22:53
@leburgel
leburgel force-pushed the lb/fusion_tree_pairs branch from 5da53cf to dc18d84 Compare October 29, 2026 06:47
@codecov

codecov Bot commented Oct 29, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.76471% with 7 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/spaces/structure.jl 88.33% 7 Missing ⚠️
Files with missing lines Coverage Δ
src/TensorKit.jl 17.24% <ø> (+6.89%) ⬆️
src/spaces/homspace.jl 94.21% <100.00%> (+6.95%) ⬆️
src/spaces/structure.jl 91.17% <88.33%> (-4.83%) ⬇️

... and 55 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 and others added 2 commits October 30, 2026 06:30
`fusiontrees(W)` is a `FusionTreePairs`, an `AbstractIndices` holding the
splitting and fusion trees of every coupled sector; the position of a pair
follows from those of its trees, and is its token. `subblockstructure(W)`
shares these tokens. `fusionblocks` groups the trees of each side by their
uncoupled sectors, combines the groups in the order in which they first occur,
and fills every block once at its final size; `degeneracystructure` loops over
the trees of both sides.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ePairs

The units of a product sector, the block sectors of a space without indices, come with a shape,
and showing a FusionTreePairs iterates it in reverse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@leburgel
leburgel force-pushed the lb/fusion_tree_pairs branch from dc18d84 to e291962 Compare October 30, 2026 05:31

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.

Serial sectorstructure and fusionblocks dominate building transformers of product sectors

1 participant