ITensorTDVP.jl
ITensorTDVP.jl copied to clipboard
Test noise term
Just because it was simple to leave in, I left in the "DMRG noise term" feature in the tdvp function for the 2-site case. But it's unclear whether it's a good thing to turn on for TDVP. Some preliminary tests show it still gives correct results for very small noise <= 1E-11.
What's needed is to test that the noise can actually help in some tough case, and if so what size of noise is good to use.
Yeah, it would be interesting to see if the noise term helps, I haven't seen that technique used in the context of TDVP.
If you use TDVP to evolve in imaginary time to find the ground state, adding a noise-term may or may not be useful (same motivation as in DMRG in that case). But for any finite-time evolution (in the complex time plane), I don't think that adding a noise term is the right approach, since there is no notion of local minima that we want to escape (or a fixed point to reach).
What about at the beginning of the evolution, in cases that people use subspace expansion to avoid going along a bad trajectory (https://arxiv.org/abs/2005.06104)? I guess the noise may just add more errors and those cases would be better served with subspace expansion.
If you take the timestep to zero at the beginning of the evolution that may work (rescaling the noise-term so that it's still a small perturbation compared to the change per timestep). If you take a large-ish timestep, than you'll at least not be able to make up the error you made in the first few timesteps, although it may save you from pathological behaviour (like in the paper you mentioned). Any kind of subspace expansion seems more sensible than adding noise though, indeed.