from ensembles import MicrocanonicalEnsemble, CanonicalEnsemble, GrandcanonicalEnsemble from hamiltonians import Hubbard from util import report dimerHamilton = Hubbard([[0, -1], [-1, 0]], 1, verbose = True) report('') isolatedDimer = MicrocanonicalEnsemble(dimerHamilton) isolatedDimer.calcOccupation() report('n_micro: '+str(isolatedDimer.getTotalOccupation())) report('') heatedDimer = CanonicalEnsemble(dimerHamilton, 1) heatedDimer.calcOccupation() report('n_canonical: '+str(heatedDimer.getTotalOccupation())) report('') heatedStuffedDimer = GrandcanonicalEnsemble(dimerHamilton, 1, .5) heatedStuffedDimer.calcOccupation() report('n_grand: '+str(heatedStuffedDimer.getTotalOccupation())) report('') heatedStuffedDimer.setMuByFilling(2, 0, 2) report('Numerical Mu for half-filling is '+str(heatedStuffedDimer.mu))
from matplotlib import pyplot as plt from ensembles import GrandcanonicalEnsemble from hamiltonians import Hubbard dimerHamilton = Hubbard([[0, -1], [-1, 0]], 4, verbose = True) print dimer = GrandcanonicalEnsemble(dimerHamilton, 1, 2) statePair = (('up', 1),('up', 1)) dimer.calcG1([statePair]) dimer.g1.setMesh(500, -6, 6) dimer.g1.setRetarded() fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.plot(dimer.g1.getMesh(), dimer.g1.getSpectralFunction(statePair)) plt.tight_layout() plt.savefig('testRetarded.pdf', dpi=300) plt.close() dimer.g1.setMatsubaraMesh(20, 1) dimer.g1.setMatsubara() fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.plot(dimer.g1.getMatsubaraMesh().imag, dimer.g1.getMatsubara(statePair).real, label = 'Re') ax.plot(dimer.g1.getMatsubaraMesh().imag, dimer.g1.getMatsubara(statePair).imag, label = 'Im') plt.legend() plt.tight_layout() plt.savefig('testMatsubara.pdf', dpi=300) plt.close()