Пример #1
0
                    bri=bai.brad[ri]
                    for rj in range(len(baj.brad)):
                        if li==lj and ri<rj: continue #  skip symmetric part of the basis
                        brj=baj.brad[rj]

                        addHmatSmat(Hmat,Smat,bai,baj,bri,brj)
                        if self.xsym!=0: # exchange symmetric terms
                            addHmatSmat(Hmat,Smat,bai,baj.x12(),bri,brj.x12(),self.xsym)

        return Hmat,Smat

lmax=8
gaunt=GauntCoeffTable(lmax)
gaunt.test()
charg1=2
charg2=2
ax=Axis('r',20,0.,5.,order=2)
print 'axis length',ax.len()
bas=BasTwo(0,ax,0,0,2)
#print bas
set_printoptions(precision=4,suppress=False,linewidth=132)
Hmat,Smat=bas.hamiltonian()

plt.matshow(Hmat)
plt.show()

print 'solving eigenproblem...'
val=la.eigvals(Hmat,Smat)
ls = argsort(val.real)
print 'eig',val[ls[:20]].real