예제 #1
0
 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)
예제 #2
0
 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