def bandana(self, emin=-np.inf, emax=np.inf):
        """Cut out bands outside the range (emin,emax)"""
        bandmin = np.min(self.ebands, axis=1)
        bandmax = np.max(self.ebands, axis=1)
        ii = np.nonzero(bandmin < emax)
        nemax = ii[0][-1]
        ii = np.nonzero(bandmax > emin)
        nemin = ii[0][0]
        # BoltzTraP2.misc.info("BANDANA output")
        # for iband in range(len(self.ebands)):
        # BoltzTraP2.misc.info(iband, bandmin[iband], bandmax[iband], (
        # (bandmin[iband] < emax) & (bandmax[iband] > emin)))
        self.ebands = self.ebands[nemin:nemax]

        if isinstance(self.proj, np.ndarray):
            self.proj = self.proj[:,nemin:nemax,:,:]

        if self.mommat is not None:
            self.mommat = self.mommat[:, nemin:nemax, :]
        # Removing bands may change the number of valence electrons
        if self.nelect is not None:
            self.nelect -= self.dosweight * nemin
        return nemin, nemax
def bandana ( self , emin = - np . inf , emax = np . inf ) : bandmin = np . min ( self . ebands , axis = 1 ) bandmax = np . max ( self . ebands , axis = 1 ) ii = np . nonzero ( bandmin < emax ) nemax = ii [ 0 ] [ - 1 ] ii = np . nonzero ( bandmax > emin ) nemin = ii [ 0 ] [ 0 ] self . ebands = self . ebands [ nemin : nemax ] if isinstance ( self . proj , np . ndarray ) : self . proj = self . proj [ : , nemin : nemax , : , : ] if self . mommat is not None : self . mommat = self . mommat [ : , nemin : nemax , : ] if self . nelect is not None : self . nelect -= self . dosweight * nemin return nemin , nemax
Cut out bands outside the range (emin,emax)