def table_es(nstate,nparticle,spinz,dtype=np.int64):
'''
This function generates the table of binary representations of a particle-conserved and spin-conserved basis.
'''
n,nup,ndw=nstate/2,(nparticle+int(2*spinz))/2,(nparticle-int(2*spinz))/2
result=np.zeros(factorial(n)/factorial(nup)/factorial(n-nup)*factorial(n)/factorial(ndw)/factorial(n-ndw),dtype=dtype)
buff_up=list(combinations(xrange(1,2*n,2),nup))
buff_dw=list(combinations(xrange(0,2*n,2),ndw))
count=0
for vup in buff_up:
buff=0
for num in vup:
buff+=(1<<num)
for vdw in buff_dw:
basis=buff
for num in vdw:
basis+=(1<<num)
result[count]=basis
count+=1
result.sort()
return result
评论列表
文章目录