from CoolProp.Plots.Plots import hs import CoolProp from CoolProp.CoolProp import Props import matplotlib.pyplot as plt import numpy as np Fluid = 'Nitrogen' fig = plt.figure() ax = fig.add_subplot(111) for Fluid in CoolProp.__fluids__: if Fluid == 'SES36': continue ax.cla() h_crit = Props('H', 'T', Props(Fluid, "Tcrit"), 'D', Props(Fluid, "rhocrit"), Fluid) s_crit = Props('S', 'T', Props(Fluid, "Tcrit"), 'D', Props(Fluid, "rhocrit"), Fluid) hL_Tmin = Props('H', 'T', Props(Fluid, "Tmin"), 'Q', 0, Fluid) hV_Tmin = Props('H', 'T', Props(Fluid, "Tmin"), 'Q', 1, Fluid) sL_Tmin = Props('S', 'T', Props(Fluid, "Tmin"), 'Q', 0, Fluid) sV_Tmin = Props('S', 'T', Props(Fluid, "Tmin"), 'Q', 1, Fluid) hs(Fluid, axis=ax) plt.plot(s_crit, h_crit, 'rd') plt.plot([sL_Tmin, sV_Tmin], [hL_Tmin, hV_Tmin], '--') plt.gca().axhline(h_crit) plt.gca().axhline(hV_Tmin) # Two-Phase for T in np.linspace(Props(Fluid, "Tmin") + 0.1, Props(Fluid, "Tcrit") - 1e-3, 30): for Q in np.linspace(0, 1, 30): try: h = Props("H", 'Q', Q, 'T', T, Fluid) s = Props("S", 'Q', Q, 'T', T, Fluid) T = Props("T", 'S', s, 'H', h, Fluid) # ax.plot(s,h,'o',mfc='none') except ValueError as VE: print(T, Q, '|||', '"T","S",', s, ',"H",', h, ',"' + Fluid + '"', '|||', VE) ax.plot(s, h, 'o', mfc='none') for h in np.linspace(hL_Tmin, hV_Tmin + 1500, 100): for s in np.linspace(sL_Tmin + 0.01, sV_Tmin, 100): try: h_pmax = Props('H', 'S', s, 'P', 6 * Props(Fluid, 'pcrit'), Fluid) except ValueError: h_pmax = 0 htriple_s = (hV_Tmin - hL_Tmin) / (sV_Tmin - sL_Tmin) * (s - sL_Tmin) + hL_Tmin if h < htriple_s or h > h_pmax: continue try: T = Props("T", 'S', s, 'H', h, Fluid) # ax.plot(s,h,'o',mfc='none',ms=6) except ValueError: ax.plot(s, h, 's', mfc='none') # if Fluid =='Propane': ## ps = Props("P",'T',300,'Q',0,Fluid); ## hL = Props("H",'Q',0,'T',300,Fluid); ## sL = Props("S",'Q',0,'T',300,Fluid); ## h = Props("H",'P',ps,'T',299.5,Fluid); ## s = Props("S",'P',ps,'T',299.5,Fluid); # print s,h,sL,hL # plt.plot(s,h,'o') # plt.plot(sL,hL,'d') # plt.gca().axvline(s) # plt.gca().axhline(268.75968916316691) fig.savefig('figs/' + Fluid + '.png', dpi=200) fig.savefig('figs/' + Fluid + '.pdf')