+1 vote
asked by (650 points)


I was wondering if there is a way to compress an MPS without doing another operation? The context is that I want to apply an MPO to an MPS, then process the resulting MPS, and then reduce the bond dimension. So I basically want to postpone compressing the MPS until after I process, rather than after the MPO is applied.


1 Answer

0 votes
answered by (51.6k points)

Hi Nick,
The operation I believe you are looking for is .orthogonalize(). For an MPS psi you can call psi.orthogonalize({"MaxDim=",maxdim,"Cutoff=",cutoff}); to compress its bonds using the truncation parameters maxdim and cutoff. Afterward it will be in right-orthogonal form with site 1 as the orthogonality center. This operation doesn't rely on any prior assumption about whether psi is in a well-defined gauge or canonical form or not.

Here's a documentation page that mentions it:

Best regards,

commented by (650 points)
Perfect, thanks!
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.