u = 3 mu = u*.5 hop = [[0,t,t,tp],[t,0,tp,t],[t,tp,0,t],[tp,t,t,0]] hamiltonian = Hubbard2(hop, u) plaq = GrandcanonicalEnsemble(hamiltonian, beta, mu) plaq.calcEigensystem() e0 = plaq.hamiltonian.getGroundStateEnergy() energies = plaq.hamiltonian.eigenEnergies eigenstates = plaq.hamiltonian.eigenStates.toarray() rho_dim = RDM(beta, eigenstates, energies, 4, 4, [], [0]) rho_dim.calculate() print rho_dim.get_entanglement_spectrum() print rho_dim.get_entanglement_entropy() hamiltonian = Hubbard(hop, u) print hamiltonian.singleParticleBasis plaq = GrandcanonicalEnsemble(hamiltonian, beta, mu) plaq.calcEigensystem() e0 = plaq.hamiltonian.getGroundStateEnergy() energies = plaq.hamiltonian.eigenEnergies eigenstates = plaq.hamiltonian.eigenStates.toarray() rho_0 = RDM(beta, eigenstates, energies, 4, 4, [(3,4),(2,3),(1,2),(4,5),(3,4)], [0]) rho_0.calculate() print rho_0.get_entanglement_spectrum() print rho_0.get_entanglement_entropy() hamiltonian = Hubbard(hop, u) plaq = GrandcanonicalEnsemble(hamiltonian, beta, mu) plaq.calcEigensystem() e0 = plaq.hamiltonian.getGroundStateEnergy()
with h5py.File('intersectionstprime.h5', 'r') as data: i_tnnn = np.where(data['tnnns'][:] == tnnn)[0] phaseboundary = data['intersections'][i_tnnn, 1] return phaseboundary beta = 30 t = -1 tp = .3 hop = [[0, t, t, tp], [t, 0, tp, t], [t, tp, 0, t], [tp, t, t, 0]] umu = get_u_mu24(0.3) results = [] for u, mu in zip(umu[0, :, 0], umu[0, :, 1]): print u, mu hamiltonian = Hubbard(hop, u) # basis: [['up', 'dn'], [0, 1, 2, 3]] plaq = GrandcanonicalEnsemble(hamiltonian, beta, mu) plaq.calcEigensystem() energies = plaq.hamiltonian.eigenEnergies eigenstates = plaq.hamiltonian.eigenStates.toarray() rho_0 = RDM(beta, eigenstates, energies, 2, 6, [(3, 4), (2, 3), (1, 2)], range(9)) rho_0.calculate() rho_01 = RDM(beta, eigenstates, energies, 4, 4, [(3, 4), (2, 3), (1, 2), (4, 5), (3, 4)], range(9)) rho_01.calculate() rho_03 = RDM(beta, eigenstates, energies, 4, 4, [(3, 4), (2, 3), (1, 2), (3, 4), (2, 3), (6, 7), (5, 6), (4, 5), (3, 4)], range(9)) rho_03.calculate()