Thermal TNR#172
Conversation
|
As a Physics based test. I also reproduced the diagrams 6(a) and 6(d) (roughly for smaller bond dimensions) from https://arxiv.org/pdf/2602.13124. The way to obtain them is to perform ThermalTNR on the initial PEPO/TNO of the Z2 and Z3 gauge theory tensors that represent the partition function for Lz -1 number of iterations. Then trace out the physical legs and perform LoopTNR to obtain the Universal data. |
Codecov Report❌ Patch coverage is
🚀 New features to boost your workflow:
|
Codecov Report❌ Patch coverage is
🚀 New features to boost your workflow:
|
VictorVanthilt
left a comment
There was a problem hiding this comment.
Some minor comments about a docstring and the exports.
Some major comments about the tests. Please write new tests that test the validity of the scheme.
| """ | ||
| $(TYPEDEF) | ||
|
|
||
| Minimal storage object for thermal tensor network renormalization on a square-lattice |
There was a problem hiding this comment.
This line is a stylistic break from all the other scheme's docstrings. Please fix
| export TNO, TNOTensor | ||
| export ThermalTNR, apply! |
There was a problem hiding this comment.
Rethink exports. Does the user need apply!, TNO, TNOTensor ?
| @@ -0,0 +1,74 @@ | |||
| @testset "TNO" begin | |||
There was a problem hiding this comment.
This AI slop test needs to be removed
|
|
||
| scheme_top = ThermalTNR(TNO(local_tensor; unitcell = (1, 1))) | ||
| scheme_bottom = ThermalTNR(TNO(local_tensor; unitcell = (1, 1))) | ||
| @test apply!(scheme_top, scheme_bottom, truncrank(8)) isa ThermalTNR |
| @test apply!(scheme_top, scheme_bottom, truncrank(8)) isa ThermalTNR | ||
| end | ||
|
|
||
| @testset "ThermalTNR finalize!" begin |
| @test all(norm(@tensor scheme.T[i, j][1 1; 2 3 2 3]) ≈ 1 for i in 1:2, j in 1:2) | ||
| end | ||
|
|
||
| @testset "ThermalTNR run!" begin |
There was a problem hiding this comment.
this doesn't really test the validity of the scheme. Please write new tests that test the scheme on the validity of its outcomes.
This PR adds Thermal Tensor Network Renormalization (ThermalTNR) to TNRKit, following Ueda et al. (2025).
It introduces a workflow for coarse-graining in the z-direction, centered TNO container and a custom ThermalTNR scheme. Two operator layers are composed sitewise, with virtual-bond truncation performed using the oblique projector method.
What’s included
TNO: a matrix-like container for local tensor-network-operator tensors (basically PEPOs from PEPSKit)ThermalTNR <: TNRSchemeapply!(top, bottom, trunc)for composing two TNO/PEPO-like operator layersrun!methods for evolving a target operator with an auxiliary layerfinalize!(::ThermalTNR)support with geometric-mean normalization output. (product(norms)^(1/N))-tests for container behavior,
apply!,finalize!, andrun!Implementation notes
The local tensors are treated in PEPO convention, with two physical legs and four virtual legs.
TNO composition contracts the physical output/input legs between layers.
The merged virtual bonds are compressed using oblique projectors derived from neighbouring tensors, following Wang-Verstraete.(2011).
References
Thermal TNR: https://arxiv.org/abs/2508.05406
Oblique projector method: https://arxiv.org/abs/1110.4362