base_name = "heis_af_sandwich_scattering_N%u_D%u" % (sim.N, hu.s.D) if __name__ == "__main__": mid = N / 2 sim.apply_op_1s(Sp, mid - 15 - 5) sim.apply_op_1s(Sm, mid - 15 + 5) sim.apply_op_1s(Sm, mid + 15 - 5) sim.apply_op_1s(Sp, mid + 15 + 5) op, en, S, OL = sw.go(sim, dt * 1.j, steps, RK4=True, op=Sz, op_every=1, autogrow=True, autogrow_amount=4 / hu.s.L) if plot_results: import matplotlib.pyplot as plt op = sp.array(op) plt.imshow(op, origin="lower", interpolation="none", aspect="auto", extent=(-10, sim.N + 9, 0, (op.shape[0] - 1) * dt)) plt.xlabel('site') plt.ylabel('t')
Sy = hu.Sy Sz = hu.Sz Sp = Sx + 1.j * Sy Sm = Sx - 1.j * Sy base_name = "heis_af_sandwich_scattering_N%u_D%u" % (sim.N, hu.s.D) if __name__ == "__main__": mid = N/2 sim.apply_op_1s(Sp, mid - 15 - 5) sim.apply_op_1s(Sm, mid - 15 + 5) sim.apply_op_1s(Sm, mid + 15 - 5) sim.apply_op_1s(Sp, mid + 15 + 5) op, en, S, OL = sw.go(sim, dt*1.j, steps, RK4=True, op=Sz, op_every=1, autogrow=True, autogrow_amount=4) if plot_results: import matplotlib.pyplot as plt op = sp.array(op) plt.imshow(op, origin="lower", interpolation="none", aspect="auto", extent=(-10, sim.N + 9, 0, (op.shape[0] - 1) * dt)) plt.xlabel('site') plt.ylabel('t') cb = plt.colorbar() cb.set_label('Sz') plt.show()
def Sp(n,s,t): return Sx(s,t) + 1.j * Sy(s,t) def Sm(n,s,t): return Sx(s,t) - 1.j * Sy(s,t) base_name = "heis_af_sandwich_impurity_N%u_m%u_D%u_lam%g" % (sim.N, imp_pos, hu.s.D, lam) if __name__ == "__main__": load_step = 0 if load_step > 0: sim.load_state("data/" + base_name + "_%u.npy" % load_step) sw.go(sim, dtau, max_steps, tol=tol, op=Sx, op_save_as=base_name + "_Sx.txt", op_every=3, append_saved=False, counter_start=load_step, csv_file=base_name + ".csv", autogrow=False) plt.plot(map(lambda n: sim.expect_1s(Sx, n).real, range(-10, sim.N + 11))) plt.plot(map(lambda n: sim.expect_1s(Sy, n).real, range(-10, sim.N + 11))) plt.plot(map(lambda n: sim.expect_1s(Sz, n).real, range(-10, sim.N + 11))) plt.show() plt.plot(map(lambda n: sim.expect_2s(sim.h_nn, n).real, range(-10, sim.N + 11))) plt.show()
sim = sw.EvoMPS_TDVP_Sandwich(N, hu.s) sim.h_nn[imp_pos] = (1 + lam) * sim.h_nn[1] Sx = hu.Sx Sy = hu.Sy Sz = hu.Sz Sp = Sx + 1.j * Sy Sm = Sx - 1.j * Sy if __name__ == "__main__": sim.add_noise() sw.go(sim, dtau, max_steps, tol=tol) if plot_results: import matplotlib.pyplot as plt plt.plot(range(-10, sim.N + 11), map(lambda n: sim.expect_1s(Sx, n).real, range(-10, sim.N + 11)), label='Sx') plt.plot(range(-10, sim.N + 11), map(lambda n: sim.expect_1s(Sy, n).real, range(-10, sim.N + 11)), label='Sy') plt.plot(range(-10, sim.N + 11), map(lambda n: sim.expect_1s(Sz, n).real, range(-10, sim.N + 11)),
sim = sw.EvoMPS_TDVP_Sandwich(N, hu.s) sim.h_nn[imp_pos] = (1 + lam) * sim.h_nn[1] Sx = hu.Sx Sy = hu.Sy Sz = hu.Sz Sp = Sx + 1.j * Sy Sm = Sx - 1.j * Sy if __name__ == "__main__": sim.add_noise() sw.go(sim, dtau, max_steps, tol=tol) if plot_results: import matplotlib.pyplot as plt plt.plot(range(-10, sim.N + 11), map(lambda n: sim.expect_1s(Sx, n).real, range(-10, sim.N + 11)), label='Sx') plt.plot(range(-10, sim.N + 11), map(lambda n: sim.expect_1s(Sy, n).real, range(-10, sim.N + 11)), label='Sy') plt.plot(range(-10, sim.N + 11), map(lambda n: sim.expect_1s(Sz, n).real, range(-10, sim.N + 11)), label='Sz') plt.xlabel('site') plt.legend() plt.figure() plt.plot(map(lambda n: sim.expect_2s(get_h_nn(n), n).real, range(-10, sim.N + 11))) plt.xlabel('site') plt.ylabel('h') plt.show()
base_name = "heis_af_sandwich_scattering_N%u_D%u" % (sim.N, hu.s.D) if __name__ == "__main__": mid = int(round(11/20. * sim.N)) sim.apply_op_1s(Sp, mid - 15 - 5) sim.apply_op_1s(Sm, mid - 15 + 5) sim.apply_op_1s(Sm, mid + 15 - 5) sim.apply_op_1s(Sp, mid + 15 + 5) load_step = 0 if load_step > 0: sim.load_state("data/" + base_name + "_%u.npy" % load_step) op, en, S = sw.go(sim, dt*1.j, steps, RK4=True, autogrow=not use_damping, autogrow_amount=4, op=Sz, op_save_as=base_name + "_Sz.txt", op_every=1, en_save_as=base_name + "_h.txt", append_saved=False, #save_as="data/" + base_name, save_every=10, counter_start=load_step, csv_file=base_name + ".csv") op = sp.array(op) plt.imshow(op, origin="lower", interpolation="none", aspect="auto", extent=(-10, sim.N + 9, 0, op.shape[0] - 1)) plt.show()