# Decomposition of the Time-Evolution Operator: Translationally Invariant MPO

+1 vote

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.

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

commented by (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

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