When calculating the expectation value <A(i) B(j)> on two sites i = (0, 0), j = (r, 0) or (0, r) using expectation_value, I notice that the memory usage increases as r increases, which can reach over 100GB when D = 12, χ = 64 and r = 7. But when r = 1 or 2 it only uses ~30GB of memory.
The memory usage should be more or less the same for any r when the two sites are on the same row (or same column) of the iPEPS. I think either the internal logic of expectation_value can be improved, or some cache clearing should be added.