Example #1
0
    def __init__(self,b,N):
        self.b=array(b)
        self.kmesh=meshgrid_v([arange(n) for n in N],vecs=b/array(N)[:,newaxis])
        self.groups={}
        G=zeros(self.b.shape[-1],dtype='float64')
        self.special_points={'G':G}

        #add transplation symmetry group
        tg=TranslationGroup(self.b,per=arange(self.dimension))
        self.usegroup(tg)
Example #2
0
    def __init__(self,Rs,per,k=1):
        super(TranslationGroup,self).__init__('translation')
        self.Rs=array(Rs)
        self.per=zeros(len(Rs),dtype='bool')
        self.per[array(per)]=True
        self.per=tuple(per)
        self.k=k

        #initialize the translation matrix.
        self.tmatrix=meshgrid_v([arange(-k,k+1)]*sum(self.per),vecs=self.Rs[array(self.per)])
Example #3
0
    def __init__(self,name,a,N,catoms=[(0.,0.)]):
        self.name=name
        self.catoms=array(catoms)
        self.a=array(a)
        self.N=array(N)
        
        mr=meshgrid_v([arange(n) for n in self.N],vecs=a)
        self.lmesh=(mr[...,newaxis,:]+self.catoms)

        vdim=self.a.shape[-1]
        items=self.lmesh.reshape([-1,vdim])
        super(Lattice,self).__init__(items)
Example #4
0
 def TRI(self):
     '''Time reversal invarient points.'''
     return meshgrid_v([arange(-0.5,1.,0.5)]*len(N),vecs=b).reshape([-1,vdim])
Example #5
0
 def __setattr__(self,name,value):
     super(TranslationGroup,self).__setattr__(name,value)
     if name=='per' or name=='k' or name=='Rs':
         if hasattr(self,'tmatrix'):
             self.tmatrix=meshgrid_v([arange(-self.k,self.k+1)]*sum(self.per),vecs=self.Rs[array(self.per)])