import matplotlib matplotlib.use('Qt4Agg') import numpy import CoolProp import CoolProp.CoolProp as CP import matplotlib.pyplot as plt from CoolProp.CoolProp import FluidsList print "Testing TTSE for revision "+CoolProp.__gitrevision__ def compareProperty(fluid="",p=0,what=""): global c_diff, c_unit, c_exce if p==0: p = 0.75*CP.Props(fluid,"pcrit") Delta_T = 50 T_bub = CP.Props("T","P",p,"Q",0,fluid) T_dew = CP.Props("T","P",p,"Q",1,fluid) h_bub = CP.Props("H","P",p,"Q",0,fluid) h_dew = CP.Props("H","P",p,"Q",1,fluid) T_1 = T_bub-Delta_T if T_1 < CP.Props(fluid,"Tmin"): T_1 = CP.Props(fluid,"Tmin")+0.5*(T_bub-CP.Props(fluid,"Tmin")) T_2 = T_dew+Delta_T h_1 = CP.Props("H","P",p,"T",T_1,fluid) h_2 = CP.Props("H","P",p,"T",T_2,fluid) h_liq = numpy.linspace(h_1,h_bub,num=100) h_vap = numpy.linspace(h_dew,h_2,num=100) T_liq = CP.Props("T","P",p,"H",h_liq,fluid)-T_bub T_vap = CP.Props("T","P",p,"H",h_vap,fluid)-T_dew X_liq_STDV = CP.Props(what,"P",p,"H",h_liq,fluid) X_vap_STDV = CP.Props(what,"P",p,"H",h_vap,fluid) CP.enable_TTSE_LUT(fluid) X_liq_TTSE = CP.Props(what,"P",p,"H",h_liq,fluid) X_vap_TTSE = CP.Props(what,"P",p,"H",h_vap,fluid) if numpy.max([X_liq_STDV/X_liq_TTSE,X_vap_STDV/X_vap_TTSE])>1.25 or numpy.min([X_liq_STDV/X_liq_TTSE,X_vap_STDV/X_vap_TTSE])<0.75: c_diff += 1 print "" print "There were problems with "+what+" for "+fluid print "Relative difference liquid: "+str(numpy.mean((X_liq_STDV-X_liq_TTSE)/X_liq_STDV)) print "Relative difference vapour: "+str(numpy.mean((X_vap_STDV-X_vap_TTSE)/X_vap_STDV)) print "Average factor liquid: "+str(numpy.mean(X_liq_STDV/X_liq_TTSE)) print "Average factor vapour: "+str(numpy.mean(X_vap_STDV/X_vap_TTSE)) #plt.plot(numpy.append(T_liq,T_vap),numpy.append(X_liq_STDV,X_vap_STDV),label=what+", standard") #plt.plot(numpy.append(T_liq,T_vap),numpy.append(X_liq_TTSE,X_vap_TTSE),label=what+", TTSE") ##plt.show(block=True) #plt.savefig("/home/jowr/tmp/viscosity/"+fluid+".png") #plt.clf() #toTest = ["L","V"] toTest = "V" #fluids = ["n-Pentane","R134a"] fluids = FluidsList() c_diff = 0 c_unit = 0 c_exce = 0 for fluid in fluids: try: compareProperty(fluid=fluid,what=toTest) except ValueError: c_exce += 1 print "An exception occurred for "+toTest+" with "+fluid print "Finished testing TTSE:" print "Errors occurred in "+str(c_exce)+" out of "+str(len(fluids))+" fluids" print "and differences occurred in "+str(c_diff)+" fluids."