Hi guys, once again, thanks for the great package!
We are currently looking into using ITensors (julia) for some open quantum systems (1D) work and trying to figure out what the best way forward for defining super operators and their interaction with density matrices is.
We are working on this currently with the aim to open source the results, so we would be interested in developing this externally / potentially merging parts in the future. Either way, your input would be greatly appreciated!
There seem to be two options: defining “matrix product super operators” (MPSO) and how they interact with MPOs, or defining doubled hilbert spaces so that the current MPS/MPO code can be reused for superoperator-operator modeling.
Firstly, I’m curious which of these would be recommended performance wise. I suppose the MPSO-MPO setup may introduce some reshaping overhead in order to fundamentally perform the same operations, but since the internal data and indices are fairly seperated, with appropriate initial shaping of the internal data this could probably be equivalent to the MPO-MPS interaction in the doubled hilbert space (perhaps with some minor additional index manipulation)?
Secondly, regarding doubled hilbert spaces, I’m curious whether you guys have any ideas for how to go about programmatically defining these by reusing the current SiteTypes and ops. Or indeed, defining product spaces in general in terms of the current SiteTypes, as I imagine these could potentially be useful more broadly. Perhaps some sort of predefined symbol in the strings so that “S=1/2 x S=1/2” or “S=1/2 \otimes S=1/2” is interpreted as a product space and “Sz x Sz” or “Sz \otimes Sz” is interpreted as a tensor product of Sz with itself acting on the product hilbert space and constructed accordingly?
We have defined a doubled S=1/2 space manually, which works great, but is not ideal in terms of duplicated work for defining other spaces in the future.
Perhaps both of the above options may be beneficial to have for distinct reasons, i.e. MPSOs for effective abstraction and doubled/product spaces for more complex local hilbert spaces.
We look forward to your input!