def my_AllRegions_ph(p, h): """ function my_AllRegions_ph = my_AllRegions_ph(p, h) """ h0 = [0.5132047, 0.3205656, 0, 0, -0.7782567, 0.1885447] h1 = [0.2151778, 0.7317883, 1.241044, 1.476783, 0, 0] h2 = [-0.2818107, -1.070786, -1.263184, 0, 0, 0] h3 = [0.1778064, 0.460504, 0.2340379, -0.4924179, 0, 0] h4 = [-0.0417661, 0, 0, 0.1600435, 0, 0] h5 = [0, -0.01578386, 0, 0, 0, 0] h6 = [0, 0, 0, -0.003629481, 0, 0] # % Calcualte density. # switch region_ph(p, h) if RegionSelection.region_ph(p, h) == 1: Ts = Region1.T1_ph(p, h) T = Ts rho = 1 / Region1.v1_pT(p, Ts) elif RegionSelection.region_ph(p, h) == 2: Ts = Region2.T2_ph(p, h) T = Ts rho = 1 / Region2.v2_pT(p, Ts) elif RegionSelection.region_ph(p, h) == 3: rho = 1 / Region3.v3_ph(p, h) T = Region3.T3_ph(p, h) elif RegionSelection.region_ph(p, h) == 4: xs = Region4.x4_ph(p, h) if p < 16.529: v4v = Region2.v2_pT(p, Region4.T4_p(p)) v4L = Region1.v1_pT(p, Region4.T4_p(p)) else: v4v = Region3.v3_ph(p, Region4.h4V_p(p)) v4L = Region3.v3_ph(p, Region4.h4L_p(p)) rho = 1 / (xs * v4v + (1 - xs) * v4L) T = Region4.T4_p(p) elif RegionSelection.region_ph(p, h) == 5: Ts = Region5.T5_ph(p, h) T = Ts rho = 1 / Region5.v5_pT(p, Ts) else: # my_AllRegions_ph = NaN; logger.warning('Region switch returned unknown value') return float("NaN") rhos = rho / 317.763 Ts = T / 647.226 # ps = p / 22.115 # % Check valid area if (T > (900 + 273.15)) or (T > (600 + 273.15) and (p > 300)) or (T > (150 + 273.15) and (p > 350)) or (p > 500): # my_AllRegions_ph = NaN; return float("NaN") my0 = Ts**0.5 / (1 + 0.978197 / Ts + 0.579829 / (Ts**2) - 0.202354 / (Ts**3)) Sum = 0 # TODO:vvvv Check for mistake vvvvv # Original Code: for i = 0 : 5 # Same Problem as in my_AllRegions_pT, see there for explanation for i in range(0, 6): # Sum = Sum + h0(i + 1) * (1 / Ts - 1) ** i + h1(i + 1) * (1 / Ts - 1) ** i * (rhos - 1) ** 1 + h2(i + 1) * (1 / Ts - 1) ** i * (rhos - 1) ** 2 + h3(i + 1) * (1 / Ts - 1) ** i * (rhos - 1) ** 3 + h4(i + 1) * (1 / Ts - 1) ** i * (rhos - 1) ** 4 + h5(i + 1) * (1 / Ts - 1) ** i * (rhos - 1) ** 5 + h6(i + 1) * (1 / Ts - 1) ** i * (rhos - 1) ** 6; Sum = Sum + h0[i] * (1 / Ts - 1) ** i + \ h1[i] * (1 / Ts - 1) ** i * (rhos - 1) ** 1 + \ h2[i] * (1 / Ts - 1) ** i * (rhos - 1) ** 2 + \ h3[i] * (1 / Ts - 1) ** i * (rhos - 1) ** 3 + \ h4[i] * (1 / Ts - 1) ** i * (rhos - 1) ** 4 + \ h5[i] * (1 / Ts - 1) ** i * (rhos - 1) ** 5 + \ h6[i] * (1 / Ts - 1) ** i * (rhos - 1) ** 6 my1 = math.exp(rhos * Sum) mys = my0 * my1 return mys * 0.000055071