Hi!
When running CTMRG with leading_boundary, the final convergence accuracy η is an important information, especially if the loop stopped due to reaching alg.maxiter. It would be nice if η was included into info_ctmrg, currently it cannot be accessed from outside. I can make a PR if you like the idea.
I also realized that info_ctmrg contains U_full and V_full for a total memory cost $32\chi^2D^4$ on a 2x2 unit cell. This is a lot. I understand these tensors are used in AD, where the pullback is only computed on a fully converged environment. If I am correct, it is not used in the (many) converging steps before calling AD, nor when AD is not needed at all. Would it be possible to use a dedicated function in AD that would also return U_full and V_full , but keep them out of the regular leading_boundary? The memory gain is clear but I am unsure how much code duplication this would generate, there is a tradeoff to be made.
EDIT: I realize this is only for SimultaneousCTMRG: SequentialCTMRG does not return these tensors.
Hi!
When running CTMRG with
leading_boundary, the final convergence accuracyηis an important information, especially if the loop stopped due to reachingalg.maxiter. It would be nice ifηwas included intoinfo_ctmrg, currently it cannot be accessed from outside. I can make a PR if you like the idea.I also realized that$32\chi^2D^4$ on a 2x2 unit cell. This is a lot. I understand these tensors are used in AD, where the pullback is only computed on a fully converged environment. If I am correct, it is not used in the (many) converging steps before calling AD, nor when AD is not needed at all. Would it be possible to use a dedicated function in AD that would also return
info_ctmrgcontainsU_fullandV_fullfor a total memory costU_fullandV_full, but keep them out of the regularleading_boundary? The memory gain is clear but I am unsure how much code duplication this would generate, there is a tradeoff to be made.EDIT: I realize this is only for
SimultaneousCTMRG:SequentialCTMRGdoes not return these tensors.