+1 vote
asked by (430 points)

Dear ITensor team,
Thanks for the reply. Recently, I want to calculate string operator in Haldane phase., e.g. <s^{z}{I}exp(I\pi\sum{k}{i=<k<j}s^{z}{k})s^{z}_{j}>, but in ITensor doc, I just find time evolution exponential operation (for t must be small) but not find exponential the ordinary autoMPO. So I want to ask how do we calculate the string operator in the simple way ? Many thanks !
Best regards,

1 Answer

0 votes
answered by (70.1k points)

Hi, good question. So I think in this case because the operators inside and outside the exponential are all commuting, you can just write the exponential of the sum as a product of exponentials and then just locally exponentiate each Sz_k operator (this can just be done on paper even, ahead of time). So then to measure such a string operator which is now a product of local operators, you can either make an MPO which just has a bond dimension of 1 (product MPO) or just apply each operator to one of the MPS in the expectation value and finally compute the overlap with the other MPS.

Hope that helps you find the answer you need - if not please comment below.


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.