Skip to content

Subspace-Iteration CTMRG - #422

Draft
Yue-Zhengyuan wants to merge 1 commit into
QuantumKitHub:mainfrom
Yue-Zhengyuan:si-ctmrg
Draft

Subspace-Iteration CTMRG#422
Yue-Zhengyuan wants to merge 1 commit into
QuantumKitHub:mainfrom
Yue-Zhengyuan:si-ctmrg

Conversation

@Yue-Zhengyuan

Copy link
Copy Markdown
Member

This PR adds one more CTMRG projector algorithm SubspaceIterationProjector, introduced in https://arxiv.org/abs/2607.15158.

The basic idea is that, after constructing the full-infinite environment M, one use QR/LQ to obtain "rangefinder" tensors X, Y to project it to Y M X which lives in a much smaller "oversampling" space. This space is intentionally chosen to be still larger than the target environment space χ. It then greatly reduces the cost to do SVD, resulting in significant speed up especially on GPU.

According to the paper, one can achieve over 100x speedup for D = 6, χ = 144 on GPU. So it appears to be quite a worthwhile addition.

The rangefinders X, Y may be reused during CTMRG iterations, thus a caching mechanism has to be introduced.

TODO

Since SubspaceIterationProjector contains parameters beyond trunc, it is a bit difficult to just specify it with a symbol. We need to introduce more API flexibility in defining an CTMRG / projector algorithm.

The initial implementation is restricted to fixed-space truncation, trivial symmetry sectors (it is not straightforward to efficiently determine the charges in the oversampling space) and non-differentiated forward CTMRG contractions. Missing features will be gradually added back in follow-up commits.

@codecov

codecov Bot commented Aug 27, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.81437% with 24 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/algorithms/ctmrg/projectors/projectors.jl 93.33% 4 Missing ⚠️
src/algorithms/ctmrg/sequential.jl 94.02% 4 Missing ⚠️
...lgorithms/optimization/implicit_differentiation.jl 50.00% 4 Missing ⚠️
src/algorithms/ctmrg/simultaneous.jl 92.30% 3 Missing ⚠️
src/algorithms/ctmrg/projectors/cache.jl 94.11% 2 Missing ⚠️
src/algorithms/ctmrg/projectors/fullinfinite.jl 87.50% 2 Missing ⚠️
src/algorithms/ctmrg/projectors/halfinfinite.jl 85.71% 2 Missing ⚠️
src/algorithms/ctmrg/ctmrg.jl 90.90% 1 Missing ⚠️
src/algorithms/ctmrg/projectors/subspaceiter.jl 98.70% 1 Missing ⚠️
src/utility/qr.jl 50.00% 1 Missing ⚠️
Files with missing lines Coverage Δ
src/Defaults.jl 85.71% <ø> (ø)
src/PEPSKit.jl 100.00% <ø> (ø)
src/algorithms/ctmrg/sparse_environments.jl 80.50% <100.00%> (+1.04%) ⬆️
src/algorithms/ctmrg/ctmrg.jl 82.29% <90.90%> (+1.60%) ⬆️
src/algorithms/ctmrg/projectors/subspaceiter.jl 98.70% <98.70%> (ø)
src/utility/qr.jl 80.00% <50.00%> (-2.15%) ⬇️
src/algorithms/ctmrg/projectors/cache.jl 94.11% <94.11%> (ø)
src/algorithms/ctmrg/projectors/fullinfinite.jl 87.50% <87.50%> (ø)
src/algorithms/ctmrg/projectors/halfinfinite.jl 85.71% <85.71%> (ø)
src/algorithms/ctmrg/simultaneous.jl 95.65% <92.30%> (-4.35%) ⬇️
... and 3 more

... and 3 files with indirect coverage changes

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

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.

1 participant