Closed Chan-Sing-Hong closed 2 days ago
I believe the network optimizer using dynamic programming might have a bug. @j9263178 also encountered a similar issue. I propose to replace it with the algorithm used in Uni10 in this paper Phys. Rev. E 90, 033315 (2014) or https://joss.theoj.org/papers/10.21105/joss.00753
The algorithm is ported from uni10 tho
Uni10 implemented the algorithm in the PRE paper.
Should be fixed now
I have encountered a problem when setting the optimized network contraction order using Cytnx version 0.9.7. The attachment is a demo code demonstrating the issue: show_problem.zip
The T tensor and its dagger are rank-4 tensors with dimension chi for each bond:
Below, I use the network:
or
For this network, the optimized contraction order should be ((Tu, Tu.d), (Td, Td.d)), with
However, when using
Network.setOrder(optimal=True)
, the contraction order provided is ((Tu, Td), (Tu.d, Td.d)), withAdditionally, kernel crash happens by manually changing the contraction order by setting
Network.setOrder(optimal=False, contract_order=((Tu,Tu.d),(Td,Td.d)))
.