# Time Evolving Kagome Heisenberg AF Ground State

0 votes
asked

I'm trying to perform real-time evolution of the Heisenberg anti-ferromagnet on a Kagome lattice using fitApplyMPO. When I try to do this with a spin-half chain I don't get any errors. For the kagome lattice, the Hamiltonian I generate gives me a reasonable ground state so I think the problem isn't in the MPO itself. Furthermore, I also don't get errors (even in debug mode) when I do

auto expH = toExpH<ITensor>(aH, tau*Cplx_i);


The problem only occurs during this line:

psi = fitApplyMPO(psi, expH, args);


This is the error I get:

terminate called after throwing an instance of 'std::bad_alloc'
what():  std::bad_alloc


Any idea what is going on? I'm confused because this exact code works for a spin chain and the Hamiltonian itself, which is the only thing that is different, isn't causing issues directly.

Thanks in advance for the help!

commented by (30.7k points)
Hi, so I'm not sure a priori what the problem is, but a std::bad_alloc could mean your system is running out of RAM. This is quite possible when dealing with 2D systems. So one thing to try is to make a smaller MPS psi (by redoing the DMRG but limiting the "maxm" to something like 100) and then trying your fitApplyMPO call to see if it then works. Also of course you can take a look at the system monitor to see what the RAM usage is like.

If the above test (with a smaller MPS) still fails, then I'd need to know a bit more & perhaps you can send me a minimal sample code that reproduces the bug.