Infinite MPS and iDMRG for thermodynamic-limit calculations

Open
#176 1 comment 0 reactions 0 assignees View on GitHub

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

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

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

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from tensorcircuit/tensorcircuit-ng

All issues in tensorcircuit/tensorcircuit-ng

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.