iDMRG package built on ITensors.jl

Dear all,

I notice a lot of people here are looking for iDMRG in ITensor (so do I). Recently, I have developed one built on ITensors.jl and ITensorMPS.jl:

iDMRG

It implements:

  • iDMRG using MPS swapping
  • VUMPS (hopefully correct โ€“ feedback is welcome)

Since I currently do not have a fully general MPO construction method (which is beyond my knowledge), I use a pragmatic approach:
For sufficiently large finite systems, the bulk MPO constructed from ITensorMPS.jl becomes effectively translation invariant (at least in the models I have tested).
Therefore, I extract the central MPO tensor from a finite-size system and reuse it as the infinite MPO in iDMRG.
Environments are initialized via power iteration starting from the same finite-size MPO.

This seems to work for the models I have tested so far.

Hopefully this is useful to others.
Any comments, tests, or suggestions are very welcome.

Best,
Zhaochen

2 Likes