Page 1 of 1

How to improve calculation accuracy in real time evolution ?

Posted: 26 Feb 2024, 09:12
by Tholin
Hi,

I referred to the following webpage examples to write my program . But changed the algorithm_class: TimeDependentExpMPOEvolution to algorithm_class: TimeDependentTwoSiteTDVP

https://tenpy.readthedocs.io/en/latest/ ... ution.html

My model is a kind of spin model, and I want to obtain the quantum state of this system as it changes over time.

When simulating systems with a small number of particles, I observed inconsistencies between the results obtained of this program and those derived from solving the Schrödinger equation. Could this discrepancy be attributed to a small bond dimension?

But when I encountered difficulties in further increasing the bond dimension (if there are only nine particles in square lattice, the max bond dimension will stop about 16, even if I try to control it through chi_min). How do I solve the above problem?

Re: How to improve calculation accuracy in real time evolution ?

Posted: 10 Apr 2024, 15:42
by Johannes
Tenpy also tries to solve the schrlödinger equation... I guess you compared to exact evolution for a non-interacting system, or exact diagonalization?

TDVP does the time evolution with the effective Hamiltonian, i.e. H projected onto the local single-site/two-site MPO. If you have only bond dimension 16, I assume this projection is too strong - essentially, you lack the Schmidt states on the right and left that you can evolve into.

You can try to do a few steps of the initial time evolution with an alternative method, e.g. the TImeDependentExpMPOEvolution, instead, and only later switch to TDVP.
Another alterantive might be to do a subspace expansion, similar as the mixer for DMRG - we want to address this in Issue #300, but at the time of writing this, it's not yet implemented...