0 votes
asked by (230 points)

I am trying to calculate the optical conductivity in the 1D Hubbard model (1 px, 2 py, 2 pz, and 1 d orbital), which involves time-evolving the system, calculating the current-current correlator of time-step t with step 0.

My friend is doing Exact Diagonalization and we have reached agreement in our results on all non-time evolved ground state quantities: energy, expectation values of all creation-annihilation operator combinations, and even the current-current correlator. However, our time evolutions are giving drastically different results, and there is strong reason to believe his are correct and mine are incorrect.

I am just trying to time-evolve with the ground state Hamiltonian, and whether I use fitApplyMPO, exactApplyMPO, MPS or IQMPS, and normalize at each step or don't, my results are still quite bad. The time evolution is very evidently not smooth, even using time steps of 0.02, and supplying a cutoff of 1e-13, and allowing for max bond dimension of 100,000... First off, I get completely different results when I keep everything as IQMPS and time evolve with an IQMPO than when I convert to MPS/MPO and time evolve. These differences appear even after the first time step. Second, they occur whether I use open or periodic boundary conditions, and regardless of the quantum number sector I am in.

In all cases, my t=0 results align precisely with ED results, and my t>0 results fail to resemble anything reasonable.

Furthermore, when I evolve more than a few time steps, I start to get diagHermitian errors from my time-evolution.

Anybody have any insight into what is going on?

Thanks!

commented by (460 points)
Hi Jamarks,

From my experience time evolution on a complicated Hamiltonian usually ends up with weird results, but IQMPS/IQMPO works equally well as MPS/MPO. You could try and time-evolve a simpler Heisenberg Hamiltonian with IQMPO and compare it with MPO and here 10.1103/PhysRevB.77.134437

Yixuan
commented by (70.1k points)
One quick question (after posting my answer below). How long-ranged is your Hamiltonian? Do the terms in it extend only a finite distance apart, in terms of the MPS site ordering? Thanks!

The reason I ask is that it's likely possible that you can use Trotter gates to do the time evolution. Then I expect you would get much better results.

1 Answer

0 votes
answered by (70.1k points)
edited by

Hi, thanks for the question but basically one would need to look more deeply into each step of the calculation to find out what is going on. But my suspicion is that the MPO approach is not well-suited for the kind of Hamiltonian you are evolving with.

I presume you are using the toExpH function to approximately exponentiate an AutoMPO then using that to do the time evolution? This approach to time evolution has actually been turning out not to work too well compared to other methods, especially for Hamiltonians with further-neighbor interactions (in the sense of the ordering of the sites of an MPS). But we put it into ITensor as an option for people to try, since it can work fine in certain cases and can be useful for benchmarking other, more accurate methods such as using Trotter gates.

Most likely for your case the best approach for time evolution would be to use the TDVP method. We don't have a TDVP code available in ITensor at the moment, but one of our colleagues is working on one so we hope to make that public sometime this summer. Also you could write a TDVP code yourself if you have the time & energy to do so.

Best regards,
Miles

(Also, please see my question in the comment above about the long-rangedness of your Hamiltonian and the possibility of using Trotter gates.)

commented by (230 points)
Hi Miles,

Just saw this, thanks for the response. As for the Trotter gates method, my Hamiltonian has range - 8 interactions, it that too long-range? If not, how do I implement these interactions with Trotter gates?

And thanks for letting me know about TDVP. I'll look more closely into this.
Welcome to ITensor Support Q&A, where you can ask questions and receive answers from other members of the community.

Formatting Tips:
  • To format code, indent by four spaces
  • To format inline LaTeX, surround it by @@ on both sides
  • To format LaTeX on its own line, surround it by $$ above and below
  • For LaTeX, it may be necessary to backslash-escape underscore characters to obtain proper formatting. So for example writing \sum\_i to represent a sum over i.
If you cannot register due to firewall issues (e.g. you cannot see the capcha box) please email Miles Stoudenmire to ask for an account.

To report ITensor bugs, please use the issue tracker.

Categories

...