def runSpectrumComparisonWithSasha(self): mu = 0.27 beta = 20 results = list() u = 3 t = -1 r = 0.3 h = Hubbard([[-mu, t, t, r], [t, -mu, r, t], [t, r, -mu, t], [r, t, t, -mu]], u, verbose=False) h.solve() energies = list(h.eigenEnergies) energiesSasha = numpy.loadtxt("spectrumSasha.dat")[:, 1] self.assertEqual(len(energies), len(energiesSasha)) for j, eS in enumerate(energiesSasha): energyFound = False for i, e in enumerate(energies): if equals(eS, e): energyFound = True del energies[i] break self.assertTrue(energyFound)
def runEigenstatesEquation(self): mu = 0.27 beta = 20 results = list() u = 3 t = -1 r = 0.3 h = Hubbard([[-mu, t, t, r], [t, -mu, r, t], [t, r, -mu, t], [r, t, t, -mu]], u, verbose=False) h.solve() hmatrix = h.matrix statesMatrix = h.eigenStates.toarray() for i in range(256): e = h.eigenEnergies[i] + h.energyShift ve = statesMatrix[:, i] eve = hmatrix.dot(ve) zeros = eve - e * ve for zero in zeros: self.assertTrue( equals(zero, 0, rtol=1e-05, atol=1e-12) ) # max abs tolerance with scipy.linalg.eigh for that system