QN conservation in MPS time evolution

I would like to use MPS to reproduce the results of [2012.02795] Simulating hydrodynamics on noisy intermediate-scale quantum devices with random circuits.
In short, to compute the infinite-temperature autocorrelation function, I prepare the random initial state (here I will use a randomMPS), then do Trotter evolution under the Heisenberg Hamiltonian, then take the Sz expectation.

As I do the Trotter evolution under the Heisenberg Hamiltonian, I know that the total \langle Sz \rangle should be conserved. However, presumably due to insufficient bond dimension, as the evolution time progresses, if I track the total \langle Sz \rangle it begins to deviate significantly, showing the truncation of singular values is causing the QN to be non-conserved? As I am starting from a randomMPS, I am unable to use the QN conserving MPS to automatically keep this constraint.

My question is that given the initial conditions, I know what the total \langle Sz \rangle should remain at, is there a way I can ‘correct’ the MPS after each Trotter step to keep the total \langle Sz \rangle fixed, and make the MPS evolution more physical?

I think a good solution for you would be to conserve total Sz using QNs, and you can actually make a random MPS that also conserves QNs. Here is a constructor that allows you to do it:
https://itensor.github.io/ITensors.jl/dev/MPSandMPO.html#ITensors.randomMPS-Tuple{Vector{<:Index},%20Any}

I should say, though, that this constructor uses an algorithm which could be a little better. Given a state array that defines an initial product state, it generates a circuit of random, but QN-conserving, unitaries and applies them in a “brick wall” pattern for enough layers until the bond dimension meets the requested value. The reason I say it could be a little better is that this approach does impose strictly finite-range correlations due to the “light cone” property of this circuit. In the future I plan to upgrade this code to use a different type of circuit that would cover more uniformly the space of all random MPS (still constrained by the QN conservation property).

But perhaps the above kind of random MPS will be random enough for your purposes?

Finally, to answer your original question, the way to correct the MPS to keep the total Sz fixed would, I think, be to project the MPS onto some desired total Sz value. I do know of some ways to do this but they are technical and complicated and haven’t been published or described in the literature as far as I know. This capability is another thing that would nice to add to ITensor but we haven’t had a big need for it yet.

1 Like