Decomposition of the Time-Evolution Operator: Translationally Invariant MPO

+1 vote
asked Jun 28, 2016 by Sudipto (130 points)

Hello everyone myself Sudipto. Currently I'm learning the matrix product state technique in order to simulate 1d spin system and study different properties of the system form quantum information theoretic perspective. After reading some nicely written reviews I managed to write a code of to find out the ground state using the MPS formalism, for Ising model. There I use the imaginary time evolution method, in order to get the ground state of the system. However this requires Suzuki Trotter decomposition of the propagator and in my case I am using translational invariant matrix product operator representation of the propagator rather than the even-odd decomposition (see page 42-43 http://arxiv.org/pdf/0907.2796v1.pdf). Unfortunately I got stuck at some conceptual point. My wish us to use extend the code for XY and XYZ model. But in that case what would be the exact trotter decomposition and what would be the form of Xi and Ci matrices that I'm struggling to find out. I've worked out the respective forms for XY (https://docs.google.com/document/d/1l_EzaW7qL6vRRmONnhHqGWqYDfnQvD-QyiyqH2YrB7E/edit?usp=sharing) but could not able to cross check those. So my request is to kindly go through the draft and let me know your opinion so that I can extend the code developed for Ising model , for XY as well as for XYZ.

2 Answers

0 votes
answered Jun 29, 2016 by mingpu (140 points)

You can have a look at this paper.
http://arxiv.org/abs/0804.3976v2

commented Jun 30, 2016 by Sudipto (130 points)
Hi mingpu, thanks for your reply. I actually followed the article but there also the prescription is well described for Ising model only and the authors have commented one can generalize the relevant matrices for XYZ model as well. My query is that whatever I've drived is correct or that I want to make sure before doing the code. Therefore I would like to request you to go through the draft and comment on that.  https://docs.google.com/document/d/1l_EzaW7qL6vRRmONnhHqGWqYDfnQvD-QyiyqH2YrB7E/edit
0 votes
answered Jul 5, 2016 by miles (19,400 points)

Hi Sudipto,
Glancing at the notes you posted on Google docs, I think your idea should work fine (but see my caution about time-step-error scaling below). You can develop a Trotter decomposition that breaks up the Hamiltonian terms into different groups of terms, all of which mutually commute. Then you can use the techniques from the Pirvu paper that Mingpu linked to exactly exponentiate each one. Of course the first of these two steps (splitting operators into groups and developing a Trotter approximation) will introduce some time-step error, which is unavoidable.

Another approach which could be simpler for you is to use the approach in this paper:
http://arxiv.org/abs/1407.1832
The approach in this paper works for any Hamiltonian whether or not the terms commute. It also comes with a guarantee that the Trotter error does not depend on the system size. If you do go with the approach you proposed you'd have to think about whether it has this same guarantee (it seems you have thought about this in your notes; I'm just mentioning this caution to make sure you carefully compare the two methods).

In ITensor we have already implemented the Zaletel et al. approach automatically for you (although I haven't documented it much on the website). But if you follow this code formula:
http://itensor.org/docs.cgi?page=formulas/tevol_mps_mpo
the function called toExpH takes an AutoMPO as input and generates an MPO which is the exponential of all the terms included in the AutoMPO.

Best,
Miles

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.
...