Expand description
Linear equation solver for Tree Tensor Networks (V_in = V_out case).
This module provides the square_linsolve function for solving linear systems
of the form (a₀ + a₁ * A) * x = b where A is a TTN operator and x, b are TTN states,
and the input and output spaces are the same (V_in = V_out).
§Algorithm
The algorithm uses alternating updates (sweeping) similar to DMRG:
- Position environments to expose a local region
- Solve the local linear problem using GMRES (via kryst)
- Factorize the result and move the orthogonality center
- Update environment caches
§Inspired By
This implementation is inspired by:
- ITensorMPS.jl - Core algorithm structure
- KrylovKit.jl - Krylov solver integration pattern
- kryst - Rust GMRES implementation
§References
- Phys. Rev. B 72, 180403 (2005) - Noise term technique (not implemented in initial version)
Structs§
- Linsolve
Verify Report - Report from SquareLinsolveUpdater::verify().
- Node
Verify Detail - Per-node verification details.
- Projected
State - ProjectedState: Manages 2-chain environments for RHS computation.
- Square
Linsolve Result - Result of square_linsolve operation.
- Square
Linsolve Updater - SquareLinsolveUpdater: Implements LocalUpdater for the square linsolve algorithm.
Functions§
- square_
linsolve - Solve the linear system
(a₀ + a₁ * H) |x⟩ = |b⟩for TreeTN.