Infinite MPS and iDMRG for thermodynamic-limit calculations
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- backend, machine-learning
Research direction
Start with tensorcircuit/tnalg/layout.py and tensorcircuit/tnalg/mps.py to understand the finite open-boundary MPS contract and available kernels. Then compare the proposed infinite-cell and environment requirements with the linked TeNPy MPS and DMRG references. Done means maintainers agree on the invariants and a scoped first milestone; implementation and validation span canonicalization, fixed points, iDMRG, and the paper's cylinder example.
Written by the indexing model from the issue text.
Description
TEP - Infinite MPS and iDMRG for thermodynamic-limit calculations
Abstract
Introduce an infinite, repeating-unit-cell MPS representation and an iDMRG workflow for one-dimensional thermodynamic-limit systems and finite-circumference infinite cylinders. The intended outputs are converged states, energy densities, local observables, correlation lengths and entanglement data.
Assessment baseline: upstream d7793995, checked on 2026-10-22. This is an idea for maintainer discussion.
Motivation and Scope
TCNG already has finite MPS/MPO and DMRG. The current MPSSpec layout explicitly describes open boundaries and requires boundary bond dimensions of one. It therefore does not directly represent an infinite repeating unit cell or its transfer-matrix fixed-point environments.
The missing workflow affects phase-diagram and topological-order calculations in the thermodynamic limit. A longer finite chain and finite-size extrapolation are useful alternatives, but are not the same numerical representation.
The first milestone would include:
- Infinite-unit-cell MPS and a compatible Hamiltonian/MPO/environment contract.
- Canonicalization, transfer fixed points, normalization and convergence diagnostics.
- iDMRG, energy density, local expectation values and entanglement spectra.
- Sufficient local reduced-density-matrix and correlation support for the selected paper example.
VUMPS, excitation algorithms, arbitrary two-dimensional PEPS and non-Abelian symmetry support are outside the first milestone. Differentiating an iterative infinite-system solution needs a separate, explicit contract; an iDMRG implementation alone would not establish it.
Usage and Impact
Illustrative API for discussion only; the proposed namespace does not exist:
from tensorcircuit.tnalg import infinite
state = infinite.product_state(unit_cell=unit_cell)
result = infinite.idmrg(
hamiltonian=hamiltonian_unit_cell,
initial_state=state,
max_bond_dimension=chi,
tolerance=tolerance,
)
energy_density = result.energy_density
spectrum = result.state.entanglement_spectrum(bond=0)
local_rdm = result.state.reduced_density_matrix(sites=selected_sites)
Paper calculation enabled: Che et al., Quantum circuit complexity and unsupervised machine learning of topological order, Nature Communications 17, 5179 (2026), use TeNPy DMRG for the extended toric-code calculation in Fig. 4. The geometry is an infinite cylinder with circumference $L_y=4$ and unit-cell width $L_x=2$.
TCNG currently lacks the infinite-state optimization workflow needed to generate those ground states, local reduced density matrices and entanglement profiles directly. Adding the proposed representation, environments and iDMRG would make this numerical data-generation stage a concrete reproduction target. The kernel/classification analysis can remain in the example rather than becoming a core feature.
The authors provide data and code and a Code Ocean capsule. Reproduction must match the Hamiltonian, chosen topological sector, field values and truncation tolerances; it is not enough to obtain any converged cylinder state.
Backward compatibility
Keep the finite open-boundary representation intact. Do not reinterpret existing boundary bonds or add an implicit infinite mode to finite routines. The implementation can reuse suitable tnalg kernels, but its existing experimental JAX-only status must remain explicit.
Related Work
- TeNPy MPS and transfer-matrix machinery support infinite boundary conditions and repeating cells.
- TeNPy TwoSiteDMRGEngine and DMRG implementation provide the algorithmic reference.
- The paper's deposited program provides model-specific construction and downstream analysis; it should not be confused with the generic library API.
Implementation
- Agree on infinite-cell and MPO/environment invariants, including energy-density normalization and fixed-point non-uniqueness.
- Implement canonicalization and fixed points; validate against product states, equivalent unit cells and independently solvable chains.
- Implement iDMRG and test energy, observables and entanglement against TeNPy with bond-dimension and environment convergence.
- Reproduce selected Fig. 4 input states and their entanglement/local-RDM data before running the downstream classification.
- Measure runtime and memory at matched accuracy. Plan bond-space changes explicitly for fixed-shape JIT execution.
- Add fixture-based tests, documentation, a reproducible example and a changelog entry; run the repository checks for the code PR.
Alternatives
Users can currently use TeNPy for infinite-system optimization and import selected observables, or use finite TCNG chains with an extrapolation study. A lightweight interchange layer may be sufficient if maintainers do not want to maintain another infinite-system solver.
Questions for maintainers: Does an infinite-state API belong in experimental tnalg? Is iDMRG the preferred first algorithm? What AD guarantees, if any, should be required before its first release?
References
- Dominant language
- Python
- Stars
- 92
- Forks
- 25
- Avg merge
- 21h 12m
- Merged PRs (30d)
- 57
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from tensorcircuit/tensorcircuit-ng
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
tensorcircuit/tensorcircuit-ng#259 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
tensorcircuit/tensorcircuit-ng#236 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
tensorcircuit/tensorcircuit-ng#175 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
tensorcircuit/tensorcircuit-ng#174 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
tensorcircuit/tensorcircuit-ng#165 · 6 comments ·
Maintainers usually reply within 1 day
All issues in tensorcircuit/tensorcircuit-ng
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
OCA/account-invoicing#2529 ·
Maintainers usually reply within 1 day
-
area/ci
Difficulty 1/5 Under an hour Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
ImageGen generate-batch aborts valid JSONL jobs containing a Unicode line separator in poster textOpenbug imagen skills
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Email validation accepts a trailing newlinePossibly taken @marcello-pichini claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day