Hi everyone,
With the release of v0.4 of julia ITensorMPS, TimeDependentSum is no longer available following the removal of the ODE-solver helper infrastructure (see Drop OrdinaryDiffEqTsit5 dependency and ODE-solver helpers by mtfishman · Pull Request #212 · ITensor/ITensorMPS.jl · GitHub ).
I found this feature extremely useful for simulations of driven systems, for example when running TDVP with a Hamiltonian of the form H(t) = f(t)^* \hat{a} + f(t) \hat{a}^{\dagger} + H_{\mathrm{int}}.
I completely understand the motivation for removing the heavy OrdinaryDiffEqTsit5 dependency. While implementing a custom updater (ODE, Krylov, or something else) is still manageable, reproducing all of the functionality of TimeDependentSum correctly and efficiently seems significantly more involved.
From what I understand, the alternative now is to do TDVP one step at a time while rebuilding the Hamiltonian at each step. But this feels less efficient and also less convenient to write/read. So I was wondering:
-
Was there a deeper reason for removing
TimeDependentSumitself? -
Were there stability or maintenance issues associated with it?
-
Is there now a recommended approach for TDVP with explicitly time-dependent Hamiltonians?
I also have a more technical question. My understanding is that TimeDependentSum allowed TDVP to reuse/store the projMPOs associated with the different terms in the sum, reducing the amount of work required at each time step. Is that correct? If so, that would seem like a strong practical advantage over repeatedly performing one-step TDVP evolutions with rebuilt Hamiltonians.
Thank you very much for maintaining this excellent package!