Example #1
0
res = getCorrectedScatter(sqe,C_ms,N,Tol,maxIter,interactive,vd=viewDirectory)
sqeCalc,dosCalc,cmsCalc,res,C_ms,lsqSc,lsqMu,lsqSl,LSQ \
                                                    = getBestSol(sqe0,res,C_ms)

dosCalc.plotDOS(viewDirectory)

#--- Output to file and pickle ------------------------------------------------
cp.dump((sqe0,C_ms,res,lsqSc,lsqMu,lsqSl,LSQ),\
         open( os.path.join( outputDir,"all.pkl") ,'wb'),-1)
cp.dump((sqe0,sqeCalc,dosCalc,cmsCalc),\
         open( os.path.join( outputDir,"sol.pkl") ,'wb'),-1)

f = open( os.path.join( outputDir,"C_ms" ),'w')
f.write( "C_ms = %lf\n" % (C_ms[numpy.argmin( numpy.array(LSQ)**2 )]-1.0) )
f.close()
io.write(dosCalc.e,dosCalc.g,         os.path.join( outputDir,"Dos"      ) )
io.write(dosCalc.e,dosCalc.gz,        os.path.join( outputDir,"Dos.z"    ) )
io.write(sqe0.e,sqe0.se,              os.path.join( outputDir,"Se.exp"   ) )
io.write(sqe0.e,nar(nar(sqeCalc)),    os.path.join( outputDir,"Se.clc"   ) )
io.write(sqe0.e,nar(nar(sqeCalc[1:])),os.path.join( outputDir,"Multi.clc") )
io.write(sqe0.e,nar(nar(sqeCalc[1:]))/(cmsCalc),\
                                      os.path.join( outputDir,"Mph.clc"  ) )
io.write(sqe0.e,(cmsCalc-1.0)*nar(nar(sqeCalc[1:]))/cmsCalc\
                                     ,os.path.join( outputDir,"Msc.clc"  ) )

#--- `Interactive` Output -----------------------------------------------------
SQE = expSqe(sqe0.q,sqe0.e,nar(sqeCalc),sqe0.sqerr,sqe0.T,sqe0.M,cutRange=cutRange)

plotComp(sqe0,sqeCalc,viewDirectory)
plotLSQ(C_ms,lsqSc,lsqMu,lsqSl,LSQ,viewDirectory)
plotSQE(SQE,viewDirectory,'sqeCalc.png',title='S(Q,E) Calculated',\
Example #2
0
ANE = multiphonon.AthroughN(sqe,dos,N)
SNQ = multiphonon.SthroughN(sqe,dos,N)

SN = []
for i in range(len(SNQ)):
  SN.append( numpy.outer(SNQ[i],ANE[i]) )

SN = numpy.array(SN)
S = nar(SN)
#------------------------------------------------------------------------------

#---- Write to file -----------------------------------------------------------
cp.dump((Q,E,S,S),open("tmp/sqe.pkl",'w'))
sum = 0
for i in range(len(ANE)):
  io.write(E,ANE[i],"tmp/ane."+str(i+1))
  io.write(E,nar(SN[i]),"tmp/se."+str(i+1))

io.write(E, nar(S),"tmp/se.in")
#------------------------------------------------------------------------------

#---- Plot --------------------------------------------------------------------
for i in range(len(ANE)):
  G.replot(Gd(E,nar(SN[i]),with='l lw 5'))

raw_input("Press <Enter> to continue...")
#------------------------------------------------------------------------------

#==============================================================================
# --- Notes ---
#------------------------------------------------------------------------------