Loschmidt Echo

How do I use this algorithm? What does that parameter do?
Post Reply
Mike
Posts: 2
Joined: 15 Sep 2020, 08:16

Loschmidt Echo

Post by Mike »

Hi Johannes/everyone,
I am trying to perform some sudden quench simulations in the transverse field 1D Ising model and compute the Loschmidt echo. I am doing everything based on the nice example code "c_tebd.py" that is already provided. The procedure that I pursue is the following:
I first set the initial state of the system to the ground state of TFI chain with no coupling (J=0) by MPS:

Code: Select all

model_params = dict(L=L, bc_MPS='finite', conserve=None, verbose=verbose)
M_0 = TFIChain(model_params)
p_state = ["up"] * M_0.lat.N_sites
psi_0 = MPS.from_product_state(M_0.lat.mps_sites(), p_state, bc=M_0.lat.bc_MPS)
Now, I want to see how the initial state psi_0 evolves under the dynamics of the 1D Ising Hamiltonian with J=1. To generate the model I use

Code: Select all

model_params = dict(L=L, J=1., g=g, bc_MPS='finite', conserve=None, verbose=verbose)
M_1 = TFIChain(model_params)
Then, without changing the 'tebd_params' I set

Code: Select all

eng = tebd.Engine(psi_0, M_1, tebd_params)
l_echo = [abs(eng.psi.overlap(psi_0))/psi_0.norm/eng.psi.norm]
Nstep = int(tmax / dt_measure + 0.5)
for n in range(Nstep):
    eng.run()
    l_echo.append(abs(eng.psi.overlap(psi_0))/psi_0.norm/eng.psi.norm)
But I only get a flat line at 1, which is not what one would expect. So, am I doing anything wrong?
I would appreciate your help.
Best,
Mike
User avatar
Johannes
Site Admin
Posts: 207
Joined: 21 Jul 2018, 12:52
Location: UC Berkeley

Re: Loschmidt Echo

Post by Johannes »

Welcome!

The MPS which you pass to the TEBDEngine gets modified in place (because we want to avoid unnecessary copies of MPS in case they are large).
In other words, psi_0 and eng.epsi are the same MPS (namely the time evolved one).

The solution is to make a copy of the MPS at some point, e.g.

Code: Select all

psi_0 = MPS.from_product_state(M_0.lat.mps_sites(), p_state, bc=M_0.lat.bc_MPS)
psi_t = psi_0.copy()
...
eng = tebd.Engine(psi_t, M_1, tebd_params)
Mike
Posts: 2
Joined: 15 Sep 2020, 08:16

Re: Loschmidt Echo

Post by Mike »

Thanks Johannes!
It indeed worked.
Post Reply