Пример #1
0
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())