TDVP with Penatly Terms

I am currently working on Quantum Link Models on 2D lattices using DMRG. This works pretty well so far. I am using a penalty term to make sure that gauß-law is fullfilled.

I would like to now do time evolution. For this i start with a state where gauß law is fullfilled and then do tdvp without my penalty term because (in principle) my hamiltonian only allows transitions from gauß satisfying states to other gauß satisfying states.

This works and the expectation value of the penalty term remains low as long as the linkdim remains constant. However once the truncation reaches its maximum and tdvp increases the linkdim of my state the expectation value of the penalty term instantly grows very large.

Is there a nice way to instruct the tdvp function to do a projection with some mpo every time it changes the linkdim or even better some observer construct that allows it to measure the expectation value after every step and then project?
I see that this could probably be done i a rather messy way by just executing the tdvp function once for every single step but i feel like that might take a toll on the runntime.

Sorry for the rather long and convoluted question, I would greatly appreciate any help in this.

Hi, I believe I had observed a similar issue some time ago with the same model (QLMs) (but in 1 spatial dimension)… I’d also imposed the Gauss law as a penalty term and switching it off for real-time dynamics with TDVP, after having obtained the ground state, led to unphysical results including states that violated the Gauss law !.. Unfortunately I don’t recall (it was quite some time ago, and that project had to be shelved) if this was the case only after reaching the given maxdim (bond-dims) or not but I think that was the case… I’d eventually resorted to keeping the penalty term on at the cost of slower runtimes and can only suggest you to do the same…

Also, I’d eventually gone ahead exclusively with TEBD, since the QLMs are very much amenable to TEBD (but I’d still had penalty terms kept on)… not sure if for 2d QLMs you could fruitfully do the same.

1 Like

Thank you for the advicve. I have since writing the post experimented more and if i keep the penaly term the state still becomes unphysical. I have tried just increasing the constant infront of the penatly term, however at some point TDVP being to complain that it encounters infs or nans which I have taken to mean that the numbers overflow somewhere and and the penalty term expectation value is still not zero. This happen around a penalty term constant of arount 1E5.

To clarify, the uniphysical sector gets populated in 2 ways. On one had by roundoff errors / truncation errors and such but this grows rather slowly and can even be handeled by the penalty terms rather well but then also in spontanously very large ways (order of 1 so almost maximally broken) after the subspace expansion.

I have found that switching to applyexp works slightly better and that setting both the minlinkdim and the maxlinkdim of the tdvp to a rather high value effectively prevents the problem from occouring, however this makes the code pretty slow.

I also plan to implement TEBD as soon as possible but i think that for 2d models it might perform somewhat worse because the ring exchange hamiltonian of a 3d QLM on a hex lattice decomposes into 3 sweeps of 3-site interactions which might run rather slowly. Still working on that tho.

I have also considered to perform an imaginary time evolution only with the penalty term after every TEBD step and the renormalize the state. My hope is that if I do this often enough such that this section does not really have any timeevolution of its own and if the unphysical sector is really populated mostly by rounding errors, the contributions from different energy states might be on average the same and just renormalizing might just conserve energy on average at least. However implementing that might take some time.

Similar problem in my extended-Hubbard model using U_{1charge} \times U_{1spin} quantum number.Like in your case, I add a penalty term to enforce \langle S^2\rangle=0 for the ground state. While DMRG converges nicely, TDVP in imaginary time evolution often diverges or produces unexpectedly large Krylov dimensions—even with very small time steps. (maybe post a MWE later if necessary)
Thanks for sharing about the applyexp and arguments about unphysical sector accumulation—I’ll try it and I’ve been confused for quite a long time :sweat_smile: