Closed snsunx closed 1 year ago
Hey @snsunx, I can't reproduce this locally but would guess its something to do with these two conditions being out of step due to floating point error here: https://github.com/jcmgray/quimb/blob/6c312f64bae50303691a5527c752d21686b13edc/quimb/tensor/tensor_1d_tebd.py#L385-L396 I.e. the second line is not initially met but after one sweep the first is, this should be changed to be more robust.
This should be fixed by https://github.com/jcmgray/quimb/commit/dcd8cbc96bc6c3ce01f24dfc6ec6fe9e8e10586b, let me know if not..
It works for me now. Thanks. I need some features from the released version v1.4.0, so I'll have to apply these changes locally. I'll close this issue.
It works for me now. Thanks. I need some features from the released version v1.4.0, so I'll have to apply these changes locally. I'll close this issue.
Glad to hear it. If there is some regression in functionality (as opposed to just api change) from 1.4 do open a separate issue/let me know.
What is your issue?
I was trying to run a simple 1D TEBD algorithm on an MPS with the following code (using Quimb v1.4.0):
Here I set
dt
tot
so that it is a single-step TEBD, which consists of a right sweep with timet/2
, a left sweep with timet
, and a right sweep with timet/2
. However, when I ran the code, theupdate_to
function only ran the first right sweep and the left sweep, and stopped there without running the last right sweep. When I setdt
to a fraction oft
(more than just a single time step), the last sweep was also left out as was in the single-step case.I understand that the last sweep is supposed to be queued and run together with the right sweep in the next time step. But at the end of the
update_to
function call, the last sweep should be run, which was not run in the code I tried.