ITensors.jl
ITensors.jl copied to clipboard
[ITensors] [ENHANCEMENT] Integrate with `Observers.jl`
Remove the specialized observer in ITensors.jl in favor of the more general interface provided by Observers.jl.
Yes, we were discussing that here: https://github.com/mtfishman/ITensorTDVP.jl/issues/7#issuecomment-1062470077_ in the context of TDVP.
My plan for that package is actually to make the tdvp function generic so that it can encompass both TDVP and DMRG, just by switching out the solver, with the goal that it would then supersede the DMRG function in ITensors.jl. We can start testing out the Observer type over there.
Additionally, we can also add functionality for using the Observer type in the apply function, since it has no such functionality right now.
Yeah I figured those two functions were going to be unified in some way. Yes, let's just try Observer.jl out for the tdvp function first, should not be too hard.
We are planning to put in a switch that lets the existing observer system work for backwards compatibility (easy to do that by just checking the type of the observer object) but then also make the Observers.jl kind work now too. Planning to encourage everyone to start using it since it's a better design. (The only thing it doesn't do is the "checkdone" feature for DMRG but in Julia we can now do this with a separate function and doesn't belong to the observer anymore.)