When running your example script for TDVP (e_tdvp.py), then if I understand correctly the script performs brief time evolution of the isotropic Heisenberg chain with conserved Sz, first using twosite TDVP and then using singlesite TDVP (the energyconserving version). I obtain some confusing results from the second part (the first part looks sensible). Something appears to be wrong if you look at the time evolution of the spins, for example by just looking at each time step for:
print(psi.expectation_value("Sz"))
The summed expectation value of Sz is correctly conserved (to good approximation) in the first part, but is lost when switching to singlesite TDVP, and spin densities change dramatically at the time step of the switch.
Also, it is not true in general that singlesite TDVP conserves the entropy. The bond dimension sets a maximum for the possible von Neumann entropy, which is proportional to the log of the bond dimension, but that maximum is far higher than the value reached in just the few small time steps of the example script. The maximum entropy is a feature of the cutoff in the entanglement spectrum; the maximum is reached when all values of the entanglement spectrum are equal. Hence, this is not specific to TDVP.
Python version: 3.5.3 + latest Numpy/Scipy
Tenpy version: 0.4.0
Possible issue with singlesite TDVP
Re: Possible issue with singlesite TDVP
Thanks to [mention]mpsforphysics[/mention] for fixing this!
Re: Possible issue with singlesite TDVP
Sorry for reopening such an old topic, but I find some similar problems when switching from twosite TDVP to the onesite version.
This happens in the TDVP example script (e_TDVP.py) for the total Sz expectation value np.sum(psi.expectation_value("Sz")). While the error on this conserved quantity does not really get out of control, it still jumps from 10^6 to 5*10^4 when the switch from twosite to onesite TDVP is made (see plot attached).
I also get a similar sudden growth of error for other models where Sz is not conserved when comparing the TDVP results to exact diagonalisation data.
Is this an expected behaviour? I am using Tenpy 0.10.0 and python 3.11.0.
This happens in the TDVP example script (e_TDVP.py) for the total Sz expectation value np.sum(psi.expectation_value("Sz")). While the error on this conserved quantity does not really get out of control, it still jumps from 10^6 to 5*10^4 when the switch from twosite to onesite TDVP is made (see plot attached).
I also get a similar sudden growth of error for other models where Sz is not conserved when comparing the TDVP results to exact diagonalisation data.
Is this an expected behaviour? I am using Tenpy 0.10.0 and python 3.11.0.
 Attachments

 Heisenberg_TDVP.png (19.12 KiB) Viewed 165 times