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',\
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 --- #------------------------------------------------------------------------------