Exponential of MPO (2)

Follow up on this thread.

The main difference with the previous thread is that now, instead of having a one-body operator, I have a two-body: \sum_{i,j}S_z^iS_z^j, where i and j are site indices. I can store it as an MPO, but after that, I want to exponentiate it and act it on an arbitrary MPS. So I was wondering, what would be the most efficient way to implement it?

Thank you!

Sorry for the slow reply. For an MPO defined from an AutoMPO expression, we offer the function toExpH which can approximately exponentiate any MPO. See the documentation here: http://itensor.org/docs.cgi?vers=cppv3&page=classes/autompo

However, the approximation is a sort of Trotter approximation and is only valid for small time steps.

In general, methods to exponentite MPOs are non-trivial and are an active and technical area of research. Very recently there has been some progress in this paper: [2302.14181] Efficient higher-order matrix product operators for time evolution , but we have not implemented this newest method into ITensor yet.