coef = np.array([-0.1121995, 0.10879315]) Hp_total = deepcopy(Hp[0]) for n in range(1, len(Hp)): Hp_total = H_operations.add(Hp_total, Hp[n], np.array([1, coef[n - 1]])) Hm = Hp_total.herm_conj() # Hz = 1/2 * com(Hp_total.sector.matrix(),Hm.sector.matrix()) # e,u = np.linalg.eigh(Hz) # psi = u[:,0] H = H_operations.add(Hp_total, Hm, np.array([1, 1])) # H.sector.find_eig() H.sector.find_eig(k) ls = level_stats(H.sector.eigvalues(k)) print(ls.mean()) # psi_energy = np.dot(np.conj(np.transpose(H.sector.eigvectors(k))),psi) # exact_energy = H.sector.eigvalues(k) # exact_overlap= np.log10(np.abs(psi_energy)**2) # to_del=[] # for n in range(0,np.size(exact_overlap,axis=0)): # if exact_overlap[n] <-10: # to_del = np.append(to_del,n) # for n in range(np.size(to_del,axis=0)-1,-1,-1): # exact_overlap=np.delete(exact_overlap,to_del[n]) # exact_energy=np.delete(exact_energy,to_del[n]) # plt.scatter(exact_energy,exact_overlap) # plt.show()
# psi_energy = np.conj(u[int(L/2),:]) # t = np.arange(0,10,0.01) # f = np.zeros(np.size(t)) # for n in range(0,np.size(t,axis=0)): # evolved_state = time_evolve_state(psi_energy,e,t[n]) # f[n] = np.abs(np.vdot(evolved_state,psi_energy))**2 # plt.plot(t,f,label="Pol",linewidth=1,color="green") psi_energy = np.conj(u[0, :]) t = np.arange(0, 10, 0.01) f = np.zeros(np.size(t)) for n in range(0, np.size(t, axis=0)): evolved_state = time_evolve_state(psi_energy, e, t[n]) f[n] = np.abs(np.vdot(evolved_state, psi_energy))**2 plt.plot(t, f, label="Neel", linewidth=3, color="red") plt.xlabel(r"$t$") plt.ylabel(r"$\vert \langle \psi(0) \vert \psi(t) \rangle \vert^2$") plt.title(r"Hypercube, Triangle Bath, dim(H)=" + str(np.size(H, axis=0))) plt.legend() plt.show() overlap = np.log10(np.abs(psi_energy)**2) plt.xlabel(r"$E$") plt.ylabel(r"$\log(\vert \langle \psi \vert E \rangle \vert^2)$") plt.title(r"Hypercube, Triangle Bath, dim(H)=" + str(np.size(H, axis=0))) plt.scatter(e, overlap) plt.show() print(level_stats(e).mean())