oscillating_states_prod = np.dot(U_mom, oscillating_states) reviving_states_prod = np.dot(U_mom, reviving_states) thermalizing_states_prod = np.dot(U_mom, thermalizing_states) oscillating_entropy = np.zeros(np.size(oscillating_states, axis=1)) reviving_entropy = np.zeros(np.size(reviving_states, axis=1)) thermalizing_entropy = np.zeros(np.size(thermalizing_states, axis=1)) oscillating_energy = np.zeros(np.size(oscillating_states, axis=1)) reviving_energy = np.zeros(np.size(reviving_states, axis=1)) thermalizing_energy = np.zeros(np.size(thermalizing_states, axis=1)) pbar = ProgressBar() for n in pbar(range(0, np.size(oscillating_entropy, axis=0))): oscillating_entropy[n] = entropy(pxp).eval(oscillating_states_prod[:, n]) oscillating_energy[n] = states_energy_exp[int(oscillating_indices[n])] # oscillating_energy[n] = np.vdot(oscillating_states[:,n],np.dot(H,oscillating_states[:,n])) pbar = ProgressBar() for n in pbar(range(0, np.size(reviving_entropy, axis=0))): reviving_entropy[n] = entropy(pxp).eval(reviving_states_prod[:, n]) reviving_energy[n] = states_energy_exp[int(reviving_indices[n])] # reviving_energy[n] = np.vdot(reviving_states[:,n],np.dot(H,reviving_states[:,n])) pbar = ProgressBar() for n in pbar(range(0, np.size(thermalizing_entropy, axis=0))): thermalizing_entropy[n] = entropy(pxp).eval(thermalizing_states_prod[:, n]) thermalizing_energy[n] = states_energy_exp[int(thermalizing_indices[n])] # thermalizing_energy[n] = np.vdot(thermalizing_states[:,n],np.dot(H,thermalizing_states[:,n])) plt.scatter(oscillating_energy, oscillating_entropy, label="Oscillatory band") plt.scatter(reviving_energy, reviving_entropy, label="Reviving band")
t = np.arange(0, 10, 0.1) from Calculations import time_evolve_state z = zm_state(2, 1, pxp) # k = pxp_syms.find_k_ref(z.ref) # for n in range(0,np.size(k,axis=0)): # H.gen(k[n]) # H.sector.find_eig(k[n]) # fidelity(z,H,"use sym").plot(np.arange(0,20,0.01),z) fidelity(z, H).plot(np.arange(0, 20, 0.01), z) plt.show() states = dict() states_energy = dict() f = dict() ent = entropy(pxp) ent_vals = np.zeros(np.size(pxp.basis_refs)) pbar = ProgressBar() print("Plotting fidelity/entropy") for n in pbar(range(0, np.size(pxp.basis_refs, axis=0))): states[n] = ref_state(pxp.basis_refs[n], pxp) states_energy[n] = np.conj(u[pxp.keys[states[n].ref], :]) f[n] = np.zeros(np.size(t)) ent_vals[n] = ent.eval(u[:, n]) for m in range(0, np.size(t, axis=0)): evolved_state = time_evolve_state(states_energy[n], e, t[m]) f[n][m] = np.abs(np.vdot(states_energy[n], evolved_state))**2 plt.plot(t, f[n], alpha=0.6) plt.xlabel(r"$t$")
d = 2 system = unlocking_System([0], "periodic", d, N) system.gen_basis() #dynamics + fidelity H = Hamiltonian(system) H.site_ops[1] = np.array([[0, 1], [1, 0]]) H.site_ops[2] = np.array([[0, 0], [0, 1]]) H.model = np.array([[0, 1, 0], [2]]) H.model_coef = np.array([1, 0.325]) H.gen() H.sector.find_eig() e = H.sector.eigvalues() u = H.sector.eigvectors() ent = entropy(system) def long_time_entropy(phi2, t): #create MPs def A_up(theta, phi): return np.array([[0, 1j * np.exp(-1j * phi)], [0, 0]]) def A_down(theta, phi): return np.array([[np.cos(theta), 0], [np.sin(theta), 0]]) theta1 = 0.9 theta2 = 2.985 phi1 = 0.188 # phi2 = 1.3