Hi Jin,

Someone else may answer who knows more about this than I do, but I don't think there is a nice MPS algorithm that does what you want. There is an older paper by Verstraete and Cirac that discusses optimizing periodic MPS; you could look at that for some ideas.

Also you could do the "poor man's periodic" approach where you actually use an open-boundary MPS (the regular kind used in ITensor) and just apply a two-site gate that acts on sites 1 and N, using a sequence of swap gates to swap site N all the way to site 2 and then back every time. This would be pretty slow of course. But it might work ok.

There is a paper by Zaletel and Pollmann about constructing MPOs that are the exponential of certain local Hamiltonians. Their construction might straightforwardly work for periodic Hamiltonians. Then if you can find an algorithm to apply a periodic MPO to a periodic MPS that is another possible route. (But there may not be such a nice algorithm for that either.)

Finally, please think hard about whether you really need periodic boundary conditions. One of the strengths of MPS techniques is their scalability to very long 1d systems. So often it's better to just study really long open systems than to use PBC to attempt to reduce finite-size effects. And for some quantities and systems, PBC actually gives worse finite-size scaling than OBC!

Miles