I am studying a 1d periodic quantum chain by DMRG, and want to measure (psi, O * psi) for an operator that is a tensor product of N two-site operators, N being the number of lattice sites. While I know I how to write O as a periodic MPO, where every site is the same tensor T, I do not know how to link the leftmost site 1 to the rightmost site N. Can I add fictitious links for all neighboring pairs (1,2) (2,3) (3,4) ... (N-1,N) to connect 1 and N?

I know that ITensor is mainly designed for open chains, but for my current project it is quite important that I study the periodic chain, even if I am limited to short chains due to the much worse computational efficiency.

AutoMPO is able to construct an MPO even when there is an interaction involving sites 1 and N, so I wonder if there is some universal way to do this for any MPO. AutoMPO assumes that we have a sum of tensor products of one-site operators, but I hope to relax this assumption.

I also tried the following and failed: act twice by a right-moving translation MPO constructed out of swaps, and then setting sites 2 and 3 to be T. I surmise that the failure is because after acting translation, the physical link (N,1) is now represented by numerous links involving all sites in the open MPO representation, and setting 2 and 3 to T destroyed some of those links.

Another workaround is try to represent my MPO as a product of few-site gates, say 2-site. In this case, the leftmost and rightmost sites can be linked by a translation(+1)---gate(1,2)---translation(-1) sequence. But generally finding such a product representation for an arbitrary all-site operator may be quite difficult, so I am hoping that there is some alternative.

Thank you very much!