Applying different time evolution to different subsystems with TEBD

How do I use this algorithm? What does that parameter do?
Post Reply
vmen
Posts: 4
Joined: 21 Nov 2023, 03:25

Applying different time evolution to different subsystems with TEBD

Post by vmen »

Hello,

I have an MPS for which I want to simulate time evolution, but the time evolution I seek is by evolving under two different Hamiltonians \(H_1\) and \(H_2\). I want to evolve under \(U_1=exp(-iH_1t)\) on the subsystem composed of sites 0,2,4,...L-1, and \(U_2=exp(-iH_2t)\) on the subsystem composed of sites 1,3,5...L. Is there a way I can do this with tenpy if I have H1 and H2 as model objects, using the TEBD framework? Any help is appreciated, thank you!
Jakob
Posts: 3
Joined: 30 Jan 2023, 22:57

Re: Applying different time evolution to different subsystems with TEBD

Post by Jakob »

Hi,
This can not be done out of the box.
TEBD will also be difficult, since your gates are not nearest neighbour (even if H_i are NN on their subsystem, they are NNN on the full system).

You could force TEBD by grouping sites to a nearest neighbour model.

I would go for MPO time evolution though. You have some extra structure here, where U_1 can be written as an MPO that acts only on some of the sites. This is not currently supported out of the box and doing it cleanly will be quite a lot of work and will need to be fine tuned to this situation. I also do not expect that much oerformance to be gained there. I would first see how far you can go by forgetting the extra structure and defining H_1 + H_2 as a CouplingMPOModel and doing ExpMPOTimeEvolution.
Only if you reach real performance barriers there would i think about exploiting the extra structure.
Post Reply