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!

1 Like

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.