Possible issue with single-site TDVP

How do I use this algorithm? What does that parameter do?
Post Reply
elmer
Posts: 1
Joined: 26 Apr 2019, 13:43

Possible issue with single-site TDVP

Post by elmer »

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 two-site TDVP and then using single-site TDVP (the energy-conserving 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 single-site TDVP, and spin densities change dramatically at the time step of the switch.

Also, it is not true in general that single-site 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
User avatar
Johannes
Site Admin
Posts: 357
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: Possible issue with single-site TDVP

Post by Johannes »

Thanks to [mention]mpsforphysics[/mention] for fixing this!
Jyd
Posts: 1
Joined: 18 Nov 2022, 02:06

Re: Possible issue with single-site TDVP

Post by Jyd »

Sorry for reopening such an old topic, but I find some similar problems when switching from two-site TDVP to the one-site 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 two-site to one-site 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
Heisenberg_TDVP.png (19.12 KiB) Viewed 165 times
Post Reply