Add Neighborhood Tensor Update (NTU) - #144
Yue-Zhengyuan wants to merge 74 commits into
Conversation
ad4945f to
37ace4c
Compare
9258396 to
ecbbee4
Compare
85d2c44 to
ecbbee4
Compare
1a231ec to
4c5f078
Compare
7c9ea13 to
f9d029a
Compare
1d22a6c to
e3f92d1
Compare
|
@lkdvos I think all comments in the last review are addressed. Ready for another round of review! |
|
I'm now going to submit a paper for publication which says that NTU is implemented in PEPSKit. Hopefully we can finish this PR soon. |
Adapt NTU time-evolution coverage to the new TestSuite structure while preserving branch-specific finite-temperature parameters.
|
Exact contraction of |
6b79447 to
c79dce6
Compare
| The fixed ten-tensor network is independent of the MPO path and its length. | ||
| Floating-point costs avoid integer overflow; dense dimensions approximate symmetry-block costs. | ||
| """ | ||
| function _ntu_contraction_order(tensors::NamedTuple) |
There was a problem hiding this comment.
🤖 has helped introduce this contraction order selector. It thinks that @tensoropt is not sufficient because it assumes that all legs involved have more or less the same dimension. But for bond environment after applying a gate MPO, such as an L-shapes NNN gate, the dimension of bond connecting, say, Y and NE will be enlarged by a factor of D_MPO, while the others remain D.
Therefore, in determine the contraction order, we need to know where the next bond that's enlarged by the MPO gate is.
I would like some help in reviewing if 🤖's approach is recommended.
(Finally, after being delayed for over a year)
This PR adds the Neighborhood Tensor Update (NTU, arXiv 2107.06635), which works for both iPEPS and iPEPO, and supports nearest neighbor 2-site gates and arbitrary MPO gates (in particular, the next-nearest neighbor 3-site MPO).
One caveat to be emphasized is that after applying an N-site gate (N > 2), the updated bonds are truncated sequentially without going back. In other words, it does not perform an ALS optimization of all site tensors that are updated, since producing the environment surrounding a general cluster of sites is complicated, and the following ALS optimization will be extremely costly.
When truncating a bond after applying a time evolution gate, the NTU uses some neighboring tensors as the bond environment, instead of using only a few bond weights (simple update) of the full iPEPS approximated by CTM (full update), "interpolating" between the two extremes. Currently the NN, NN+ and NNN bond environments (see description in the YASTN package) are implemented.