diff --git a/python/sumk_lda.py b/python/sumk_lda.py index 8401e478..549eed81 100644 --- a/python/sumk_lda.py +++ b/python/sumk_lda.py @@ -651,17 +651,17 @@ class SumkLDA: use_dc_formula=0: LDA+U FLL double counting, use_dc_formula=1: Held's formula. use_dc_formula=2: AMF Be sure that you use the correct interaction Hamiltonian!""" - + #if (not hasattr(self,"dc_imp")): self.__init_dc() - - - dm = [ {} for i in xrange(self.n_corr_shells)] - for i in xrange(self.n_corr_shells): - l = self.corr_shells[i][3] #*(1+self.corr_shells[i][4]) - for j in xrange(len(self.gf_struct_corr[i])): - dm[i]['%s'%self.gf_struct_corr[i][j][0]] = numpy.zeros([l,l],numpy.float_) - + + + #dm = [ {} for i in xrange(self.n_corr_shells)] + #for i in xrange(self.n_corr_shells): + # l = self.corr_shells[i][3] #*(1+self.corr_shells[i][4]) + # for j in xrange(len(self.gf_struct_corr[i])): + # dm[i]['%s'%self.gf_struct_corr[i][j][0]] = numpy.zeros([l,l],numpy.float_) + for icrsh in xrange(self.n_corr_shells): @@ -676,10 +676,14 @@ class SumkLDA: self.dc_imp[icrsh]['%s'%self.gf_struct_corr[icrsh][j][0]] = numpy.identity(l,numpy.float_) blname = self.gf_struct_corr[icrsh][j][0] Ncr[blname] = 0.0 - for bl in self.map[iorb][blname]: - Ncr[blname] += dens_mat[bl].real.trace() - + for a,al in self.gf_struct_solver[iorb]: + #for bl in self.map[iorb][blname]: + bl = self.map_inv[iorb][a] + #print 'bl, valiue = ',bl,dens_mat[a].real.trace() + Ncr[bl] += dens_mat[a].real.trace() + + #print 'Ncr=',Ncr M = self.corr_shells[icrsh][3] Ncrtot = 0.0 @@ -780,10 +784,11 @@ class SumkLDA: # init self.Sigma_imp: - if type(Sigma_imp[0]) == GfReFreq: + if Sigma_imp[0].note == 'ReFreq': # Real frequency Sigma: self.Sigma_imp = [ BlockGf( name_block_generator = [ (a,GfReFreq(indices = al, mesh = Sigma_imp[0].mesh)) for a,al in self.gf_struct_corr[i] ], make_copies = False) for i in xrange(self.n_corr_shells) ] + for i in xrange(self.n_corr_shells): self.Sigma_imp[i].note='ReFreq' else: # Imaginary frequency Sigma: self.Sigma_imp = [ BlockGf( name_block_generator = [ (a,GfImFreq(indices = al, mesh = Sigma_imp[0].mesh)) for a,al in self.gf_struct_corr[i] ],