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?
How to improve calculation accuracy in real time evolution ?
Re: How to improve calculation accuracy in real time evolution ?
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...
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...