def setUp(self): basis = Basis((1,1,1,0,0,-0.5), kind = 'triclinic') kp_gamma = numpy.array((0,0,0))[numpy.newaxis,:] kp_m = numpy.array((0.5, 0.0, 0))[numpy.newaxis,:] kp_k = numpy.array((2./3, 1./3, 0))[numpy.newaxis,:] kp_path = numpy.linspace(0,1,30)[:,numpy.newaxis] kp_path = numpy.concatenate(( kp_gamma*(1-kp_path) + kp_m*kp_path, kp_m*(1-kp_path) + kp_k*kp_path, kp_k*(1-kp_path) + kp_gamma*kp_path, ), axis = 0) d = (basis.transform_to_cartesian(kp_path)**2).sum(axis = 1) self.bands = UnitCell( basis, kp_path, ([[0,0,3]] + d[...,numpy.newaxis]*[[1,2,-3]])*eV, ) self.bands.meta["Fermi"] = 1*eV self.weights = self.bands.values/self.bands.values.max() self.huge_bands = UnitCell( self.bands, kp_path, ([BandPlotTest.__pseudo_random__(0,1000,50)*10-5] + d[...,numpy.newaxis]*[BandPlotTest.__pseudo_random__(1000,2000,50)*20-10])*eV, )
def setUp(self): basis = Basis((1,1,1,0,0,-0.5), kind = 'triclinic', meta = {"Fermi": 0}) kp_gamma = numpy.array((0,0,0))[numpy.newaxis,:] kp_m = numpy.array((0.5, 0.0, 0))[numpy.newaxis,:] kp_k = numpy.array((2./3, 1./3, 0))[numpy.newaxis,:] kp_path = numpy.linspace(0,1,30)[:,numpy.newaxis] kp_path = numpy.concatenate(( kp_gamma*(1-kp_path) + kp_m*kp_path, kp_m*(1-kp_path) + kp_k*kp_path, kp_k*(1-kp_path) + kp_gamma*kp_path, ), axis = 0) k = basis.transform_to_cartesian(kp_path)*math.pi/3.**.5*2 e = (1+4*numpy.cos(k[...,1])**2 + 4*numpy.cos(k[...,1])*numpy.cos(k[...,0]*3.**.5))**.5 self.cell = UnitCell( basis, kp_path, e[:,numpy.newaxis]*eV*[[-1.,1.]], ) self.cell_weights = self.cell.values/self.cell.values.max() self.grid = Grid( basis, (numpy.linspace(0,1,30, endpoint = False)+1./60,numpy.linspace(0,1,30, endpoint = False)+1./60,(0,)), numpy.zeros((30,30,1,2), dtype = numpy.float64), ) k = self.grid.cartesian()*math.pi/3.**.5*2 e = (1+4*numpy.cos(k[...,1])**2 + 4*numpy.cos(k[...,1])*numpy.cos(k[...,0]*3.**.5))**.5*eV self.grid.values[...,0] = -e self.grid.values[...,1] = e