From 0f07f18d02f4c21495cf3e14d092a4ac9bb9de13 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 20 Oct 2024 11:05:48 +0200 Subject: [PATCH] start moving common coefficients from method to class --- pyXSteam/Regions.py | 2710 ++++++++----------------------------------- 1 file changed, 465 insertions(+), 2245 deletions(-) diff --git a/pyXSteam/Regions.py b/pyXSteam/Regions.py index fa2afe1..0e87a7a 100755 --- a/pyXSteam/Regions.py +++ b/pyXSteam/Regions.py @@ -24,6 +24,115 @@ class Region1: Properties of Water and Steam, September 1997 """ + I1 = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 4, + 4, + 4, + 5, + 8, + 8, + 21, + 23, + 29, + 30, + 31, + 32, + ] + J1 = [ + -2, + -1, + 0, + 1, + 2, + 3, + 4, + 5, + -9, + -7, + -1, + 0, + 1, + 3, + -3, + 0, + 1, + 3, + 17, + -4, + 0, + 6, + -5, + -2, + 10, + -8, + -11, + -6, + -29, + -31, + -38, + -39, + -40, + -41, + ] + n1 = [ + 0.14632971213167, + -0.84548187169114, + -3.756360367204, + 3.3855169168385, + -0.95791963387872, + 0.15772038513228, + -0.016616417199501, + 8.1214629983568e-04, + 2.8319080123804e-04, + -6.0706301565874e-04, + -0.018990068218419, + -0.032529748770505, + -0.021841717175414, + -5.283835796993e-05, + -4.7184321073267e-04, + -3.0001780793026e-04, + 4.7661393906987e-05, + -4.4141845330846e-06, + -7.2694996297594e-16, + -3.1679644845054e-05, + -2.8270797985312e-06, + -8.5205128120103e-10, + -2.2425281908e-06, + -6.5171222895601e-07, + -1.4341729937924e-13, + -4.0516996860117e-07, + -1.2734301741641e-09, + -1.7424871230634e-10, + -6.8762131295531e-19, + 1.4478307828521e-20, + 2.6335781662795e-23, + -1.1947622640071e-23, + 1.8228094581404e-24, + -9.3537087292458e-26, + ] + _logger = logging.getLogger(__name__) @classmethod @@ -39,114 +148,9 @@ def v1_pT(cls, p: float, T: float) -> float: :return: specific volume in [m³ / kg] """ - I1 = [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 8, - 8, - 21, - 23, - 29, - 30, - 31, - 32, - ] - J1 = [ - -2, - -1, - 0, - 1, - 2, - 3, - 4, - 5, - -9, - -7, - -1, - 0, - 1, - 3, - -3, - 0, - 1, - 3, - 17, - -4, - 0, - 6, - -5, - -2, - 10, - -8, - -11, - -6, - -29, - -31, - -38, - -39, - -40, - -41, - ] - n1 = [ - 0.14632971213167, - -0.84548187169114, - -3.756360367204, - 3.3855169168385, - -0.95791963387872, - 0.15772038513228, - -0.016616417199501, - 8.1214629983568e-04, - 2.8319080123804e-04, - -6.0706301565874e-04, - -0.018990068218419, - -0.032529748770505, - -0.021841717175414, - -5.283835796993e-05, - -4.7184321073267e-04, - -3.0001780793026e-04, - 4.7661393906987e-05, - -4.4141845330846e-06, - -7.2694996297594e-16, - -3.1679644845054e-05, - -2.8270797985312e-06, - -8.5205128120103e-10, - -2.2425281908e-06, - -6.5171222895601e-07, - -1.4341729937924e-13, - -4.0516996860117e-07, - -1.2734301741641e-09, - -1.7424871230634e-10, - -6.8762131295531e-19, - 1.4478307828521e-20, - 2.6335781662795e-23, - -1.1947622640071e-23, - 1.8228094581404e-24, - -9.3537087292458e-26, - ] + I1 = Region1.I1 + J1 = Region1.J1 + n1 = Region1.n1 R = SPECIFIC_GAS_CONSTANT Pi = p / 16.53 # 16.53 MPa tau = 1386 / T # 1386 K @@ -169,114 +173,9 @@ def h1_pT(cls, p: float, T: float) -> float: :return: enthalpy in [kJ / kg] """ - I1 = [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 8, - 8, - 21, - 23, - 29, - 30, - 31, - 32, - ] - J1 = [ - -2, - -1, - 0, - 1, - 2, - 3, - 4, - 5, - -9, - -7, - -1, - 0, - 1, - 3, - -3, - 0, - 1, - 3, - 17, - -4, - 0, - 6, - -5, - -2, - 10, - -8, - -11, - -6, - -29, - -31, - -38, - -39, - -40, - -41, - ] - n1 = [ - 0.14632971213167, - -0.84548187169114, - -3.756360367204, - 3.3855169168385, - -0.95791963387872, - 0.15772038513228, - -0.016616417199501, - 8.1214629983568e-04, - 2.8319080123804e-04, - -6.0706301565874e-04, - -0.018990068218419, - -0.032529748770505, - -0.021841717175414, - -5.283835796993e-05, - -4.7184321073267e-04, - -3.0001780793026e-04, - 4.7661393906987e-05, - -4.4141845330846e-06, - -7.2694996297594e-16, - -3.1679644845054e-05, - -2.8270797985312e-06, - -8.5205128120103e-10, - -2.2425281908e-06, - -6.5171222895601e-07, - -1.4341729937924e-13, - -4.0516996860117e-07, - -1.2734301741641e-09, - -1.7424871230634e-10, - -6.8762131295531e-19, - 1.4478307828521e-20, - 2.6335781662795e-23, - -1.1947622640071e-23, - 1.8228094581404e-24, - -9.3537087292458e-26, - ] + I1 = Region1.I1 + J1 = Region1.J1 + n1 = Region1.n1 R = SPECIFIC_GAS_CONSTANT Pi = p / 16.53 tau = 1386 / T @@ -298,114 +197,9 @@ def u1_pT(cls, p: float, T: float) -> float: :return: specific internal energy in [kJ / kg] """ - I1 = [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 8, - 8, - 21, - 23, - 29, - 30, - 31, - 32, - ] - J1 = [ - -2, - -1, - 0, - 1, - 2, - 3, - 4, - 5, - -9, - -7, - -1, - 0, - 1, - 3, - -3, - 0, - 1, - 3, - 17, - -4, - 0, - 6, - -5, - -2, - 10, - -8, - -11, - -6, - -29, - -31, - -38, - -39, - -40, - -41, - ] - n1 = [ - 0.14632971213167, - -0.84548187169114, - -3.756360367204, - 3.3855169168385, - -0.95791963387872, - 0.15772038513228, - -0.016616417199501, - 8.1214629983568e-04, - 2.8319080123804e-04, - -6.0706301565874e-04, - -0.018990068218419, - -0.032529748770505, - -0.021841717175414, - -5.283835796993e-05, - -4.7184321073267e-04, - -3.0001780793026e-04, - 4.7661393906987e-05, - -4.4141845330846e-06, - -7.2694996297594e-16, - -3.1679644845054e-05, - -2.8270797985312e-06, - -8.5205128120103e-10, - -2.2425281908e-06, - -6.5171222895601e-07, - -1.4341729937924e-13, - -4.0516996860117e-07, - -1.2734301741641e-09, - -1.7424871230634e-10, - -6.8762131295531e-19, - 1.4478307828521e-20, - 2.6335781662795e-23, - -1.1947622640071e-23, - 1.8228094581404e-24, - -9.3537087292458e-26, - ] + I1 = Region1.I1 + J1 = Region1.J1 + n1 = Region1.n1 R = SPECIFIC_GAS_CONSTANT Pi = p / 16.53 tau = 1386 / T @@ -429,114 +223,9 @@ def s1_pT(cls, p: float, T: float) -> float: :return: specific entropy in [kJ / (kg K)] """ - I1 = [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 8, - 8, - 21, - 23, - 29, - 30, - 31, - 32, - ] - J1 = [ - -2, - -1, - 0, - 1, - 2, - 3, - 4, - 5, - -9, - -7, - -1, - 0, - 1, - 3, - -3, - 0, - 1, - 3, - 17, - -4, - 0, - 6, - -5, - -2, - 10, - -8, - -11, - -6, - -29, - -31, - -38, - -39, - -40, - -41, - ] - n1 = [ - 0.14632971213167, - -0.84548187169114, - -3.756360367204, - 3.3855169168385, - -0.95791963387872, - 0.15772038513228, - -0.016616417199501, - 8.1214629983568e-04, - 2.8319080123804e-04, - -6.0706301565874e-04, - -0.018990068218419, - -0.032529748770505, - -0.021841717175414, - -5.283835796993e-05, - -4.7184321073267e-04, - -3.0001780793026e-04, - 4.7661393906987e-05, - -4.4141845330846e-06, - -7.2694996297594e-16, - -3.1679644845054e-05, - -2.8270797985312e-06, - -8.5205128120103e-10, - -2.2425281908e-06, - -6.5171222895601e-07, - -1.4341729937924e-13, - -4.0516996860117e-07, - -1.2734301741641e-09, - -1.7424871230634e-10, - -6.8762131295531e-19, - 1.4478307828521e-20, - 2.6335781662795e-23, - -1.1947622640071e-23, - 1.8228094581404e-24, - -9.3537087292458e-26, - ] + I1 = Region1.I1 + J1 = Region1.J1 + n1 = Region1.n1 R = SPECIFIC_GAS_CONSTANT Pi = p / 16.53 tau = 1386 / T @@ -560,114 +249,9 @@ def Cp1_pT(cls, p: float, T: float) -> float: :return: specific isobaric heat capacity in [kJ / (kg K)] """ - I1 = [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 8, - 8, - 21, - 23, - 29, - 30, - 31, - 32, - ] - J1 = [ - -2, - -1, - 0, - 1, - 2, - 3, - 4, - 5, - -9, - -7, - -1, - 0, - 1, - 3, - -3, - 0, - 1, - 3, - 17, - -4, - 0, - 6, - -5, - -2, - 10, - -8, - -11, - -6, - -29, - -31, - -38, - -39, - -40, - -41, - ] - n1 = [ - 0.14632971213167, - -0.84548187169114, - -3.756360367204, - 3.3855169168385, - -0.95791963387872, - 0.15772038513228, - -0.016616417199501, - 8.1214629983568e-04, - 2.8319080123804e-04, - -6.0706301565874e-04, - -0.018990068218419, - -0.032529748770505, - -0.021841717175414, - -5.283835796993e-05, - -4.7184321073267e-04, - -3.0001780793026e-04, - 4.7661393906987e-05, - -4.4141845330846e-06, - -7.2694996297594e-16, - -3.1679644845054e-05, - -2.8270797985312e-06, - -8.5205128120103e-10, - -2.2425281908e-06, - -6.5171222895601e-07, - -1.4341729937924e-13, - -4.0516996860117e-07, - -1.2734301741641e-09, - -1.7424871230634e-10, - -6.8762131295531e-19, - 1.4478307828521e-20, - 2.6335781662795e-23, - -1.1947622640071e-23, - 1.8228094581404e-24, - -9.3537087292458e-26, - ] + I1 = Region1.I1 + J1 = Region1.J1 + n1 = Region1.n1 R = SPECIFIC_GAS_CONSTANT Pi = p / 16.53 tau = 1386 / T @@ -689,114 +273,9 @@ def Cv1_pT(cls, p: float, T: float) -> float: :return: specific isochoric heat capacity in [kJ / (kg K)] """ - I1 = [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 8, - 8, - 21, - 23, - 29, - 30, - 31, - 32, - ] - J1 = [ - -2, - -1, - 0, - 1, - 2, - 3, - 4, - 5, - -9, - -7, - -1, - 0, - 1, - 3, - -3, - 0, - 1, - 3, - 17, - -4, - 0, - 6, - -5, - -2, - 10, - -8, - -11, - -6, - -29, - -31, - -38, - -39, - -40, - -41, - ] - n1 = [ - 0.14632971213167, - -0.84548187169114, - -3.756360367204, - 3.3855169168385, - -0.95791963387872, - 0.15772038513228, - -0.016616417199501, - 8.1214629983568e-04, - 2.8319080123804e-04, - -6.0706301565874e-04, - -0.018990068218419, - -0.032529748770505, - -0.021841717175414, - -5.283835796993e-05, - -4.7184321073267e-04, - -3.0001780793026e-04, - 4.7661393906987e-05, - -4.4141845330846e-06, - -7.2694996297594e-16, - -3.1679644845054e-05, - -2.8270797985312e-06, - -8.5205128120103e-10, - -2.2425281908e-06, - -6.5171222895601e-07, - -1.4341729937924e-13, - -4.0516996860117e-07, - -1.2734301741641e-09, - -1.7424871230634e-10, - -6.8762131295531e-19, - 1.4478307828521e-20, - 2.6335781662795e-23, - -1.1947622640071e-23, - 1.8228094581404e-24, - -9.3537087292458e-26, - ] + I1 = Region1.I1 + J1 = Region1.J1 + n1 = Region1.n1 R = SPECIFIC_GAS_CONSTANT Pi = p / 16.53 tau = 1386 / T @@ -824,114 +303,9 @@ def w1_pT(cls, p: float, T: float) -> float: :return: speed of sound in [m / s] """ - I1 = [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 8, - 8, - 21, - 23, - 29, - 30, - 31, - 32, - ] - J1 = [ - -2, - -1, - 0, - 1, - 2, - 3, - 4, - 5, - -9, - -7, - -1, - 0, - 1, - 3, - -3, - 0, - 1, - 3, - 17, - -4, - 0, - 6, - -5, - -2, - 10, - -8, - -11, - -6, - -29, - -31, - -38, - -39, - -40, - -41, - ] - n1 = [ - 0.14632971213167, - -0.84548187169114, - -3.756360367204, - 3.3855169168385, - -0.95791963387872, - 0.15772038513228, - -0.016616417199501, - 8.1214629983568e-04, - 2.8319080123804e-04, - -6.0706301565874e-04, - -0.018990068218419, - -0.032529748770505, - -0.021841717175414, - -5.283835796993e-05, - -4.7184321073267e-04, - -3.0001780793026e-04, - 4.7661393906987e-05, - -4.4141845330846e-06, - -7.2694996297594e-16, - -3.1679644845054e-05, - -2.8270797985312e-06, - -8.5205128120103e-10, - -2.2425281908e-06, - -6.5171222895601e-07, - -1.4341729937924e-13, - -4.0516996860117e-07, - -1.2734301741641e-09, - -1.7424871230634e-10, - -6.8762131295531e-19, - 1.4478307828521e-20, - 2.6335781662795e-23, - -1.1947622640071e-23, - 1.8228094581404e-24, - -9.3537087292458e-26, - ] + I1 = Region1.I1 + J1 = Region1.J1 + n1 = Region1.n1 R = SPECIFIC_GAS_CONSTANT Pi = p / 16.53 tau = 1386 / T @@ -945,11 +319,7 @@ def w1_pT(cls, p: float, T: float) -> float: gamma_der_pitau = gamma_der_pitau - n1[i] * I1[i] * (7.1 - Pi) ** (I1[i] - 1) * J1[i] * (tau - 1.222) ** (J1[i] - 1) gamma_der_tautau = gamma_der_tautau + n1[i] * (7.1 - Pi) ** I1[i] * J1[i] * (J1[i] - 1) * (tau - 1.222) ** (J1[i] - 2) return ( - 1000 - * R - * T - * gamma_der_pi**2 - / ((gamma_der_pi - tau * gamma_der_pitau) ** 2 / (tau**2 * gamma_der_tautau) - gamma_der_pipi) + 1000 * R * T * gamma_der_pi**2 / ((gamma_der_pi - tau * gamma_der_pitau) ** 2 / (tau**2 * gamma_der_tautau) - gamma_der_pipi) ) ** 0.5 @classmethod @@ -1133,6 +503,175 @@ class Region2: of water in Region 2 """ + J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] + n0 = [ + -9.6927686500217, + 10.086655968018, + -0.005608791128302, + 0.071452738081455, + -0.40710498223928, + 1.4240819171444, + -4.383951131945, + -0.28408632460772, + 0.021268463753307, + ] + + Ir = [ + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 5, + 6, + 6, + 6, + 7, + 7, + 7, + 8, + 8, + 9, + 10, + 10, + 10, + 16, + 16, + 18, + 20, + 20, + 20, + 21, + 22, + 23, + 24, + 24, + 24, + ] + + Jr = [ + 0, + 1, + 2, + 3, + 6, + 1, + 2, + 4, + 7, + 36, + 0, + 1, + 3, + 6, + 35, + 1, + 2, + 3, + 7, + 3, + 16, + 35, + 0, + 11, + 25, + 8, + 36, + 13, + 4, + 10, + 14, + 29, + 50, + 57, + 20, + 35, + 48, + 21, + 53, + 39, + 26, + 40, + 58, + ] + + nr = [ + -1.7731742473213e-03, + -0.017834862292358, + -0.045996013696365, + -0.057581259083432, + -0.05032527872793, + -3.3032641670203e-05, + -1.8948987516315e-04, + -3.9392777243355e-03, + -0.043797295650573, + -2.6674547914087e-05, + 2.0481737692309e-08, + 4.3870667284435e-07, + -3.227767723857e-05, + -1.5033924542148e-03, + -0.040668253562649, + -7.8847309559367e-10, + 1.2790717852285e-08, + 4.8225372718507e-07, + 2.2922076337661e-06, + -1.6714766451061e-11, + -2.1171472321355e-03, + -23.895741934104, + -5.905956432427e-18, + -1.2621808899101e-06, + -0.038946842435739, + 1.1256211360459e-11, + -8.2311340897998, + 1.9809712802088e-08, + 1.0406965210174e-19, + -1.0234747095929e-13, + -1.0018179379511e-09, + -8.0882908646985e-11, + 0.10693031879409, + -0.33662250574171, + 8.9185845355421e-25, + 3.0629316876232e-13, + -4.2002467698208e-06, + -5.9056029685639e-26, + 3.7826947613457e-06, + -1.2768608934681e-15, + 7.3087610595061e-29, + 5.5414715350778e-17, + -9.436970724121e-07, + ] + + Ir_meta = [1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5] + Jr_meta = [0, 2, 5, 11, 1, 7, 16, 4, 16, 7, 10, 9, 10] + nr_meta = [ + -0.73362260186506e-2, + -0.88223831943146e-1, + -0.72334555213245e-1, + -0.40813178534455e-2, + 0.20097803380207e-2, + -0.53045921898642e-1, + -0.76190409086970e-2, + -0.63498037657313e-2, + -0.86043093028588e-1, + 0.75321581522770e-2, + -0.79238375446139e-2, + -0.22888160778447e-3, + -0.26456501482810e-2, + ] + _logger = logging.getLogger(__name__) @classmethod @@ -1141,271 +680,24 @@ def v2_pT(cls, p: float, T: float) -> float: 6 Equations for Region 2, Section. 6.1 Basic Equation - Table 11 and 12, Page 14 and 15 - - :param p: preasure in [MPa] - :param T: temperature in [K] - - :return: specific volume in [m³ / kg] - """ - Ir = [ - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 6, - 6, - 6, - 7, - 7, - 7, - 8, - 8, - 9, - 10, - 10, - 10, - 16, - 16, - 18, - 20, - 20, - 20, - 21, - 22, - 23, - 24, - 24, - 24, - ] - Jr = [ - 0, - 1, - 2, - 3, - 6, - 1, - 2, - 4, - 7, - 36, - 0, - 1, - 3, - 6, - 35, - 1, - 2, - 3, - 7, - 3, - 16, - 35, - 0, - 11, - 25, - 8, - 36, - 13, - 4, - 10, - 14, - 29, - 50, - 57, - 20, - 35, - 48, - 21, - 53, - 39, - 26, - 40, - 58, - ] - nr = [ - -1.7731742473213e-03, - -0.017834862292358, - -0.045996013696365, - -0.057581259083432, - -0.05032527872793, - -3.3032641670203e-05, - -1.8948987516315e-04, - -3.9392777243355e-03, - -0.043797295650573, - -2.6674547914087e-05, - 2.0481737692309e-08, - 4.3870667284435e-07, - -3.227767723857e-05, - -1.5033924542148e-03, - -0.040668253562649, - -7.8847309559367e-10, - 1.2790717852285e-08, - 4.8225372718507e-07, - 2.2922076337661e-06, - -1.6714766451061e-11, - -2.1171472321355e-03, - -23.895741934104, - -5.905956432427e-18, - -1.2621808899101e-06, - -0.038946842435739, - 1.1256211360459e-11, - -8.2311340897998, - 1.9809712802088e-08, - 1.0406965210174e-19, - -1.0234747095929e-13, - -1.0018179379511e-09, - -8.0882908646985e-11, - 0.10693031879409, - -0.33662250574171, - 8.9185845355421e-25, - 3.0629316876232e-13, - -4.2002467698208e-06, - -5.9056029685639e-26, - 3.7826947613457e-06, - -1.2768608934681e-15, - 7.3087610595061e-29, - 5.5414715350778e-17, - -9.436970724121e-07, - ] - R = Constants.__SPECIFIC_GAS_CONSTANT__ # Eq 1 - Pi = p # Eq 1 - tau = 540 / T # Eq 1 - g0_pi = 1 / Pi # see table 13 - gr_pi = 0 - for i in range(0, 43): - gr_pi = ( - gr_pi + nr[i] * Ir[i] * Pi ** (Ir[i] - 1) * (tau - 0.5) ** Jr[i] - ) # see table 14 - return R * T / p * Pi * (g0_pi + gr_pi) / 1000 # see table 12 - - @staticmethod - def _meta(p, T): - """ - 6 Equations for Region 2, Section. 6.2 Supplementary Equation for the Metastable-Vapor Region - - Table 16, Page 18 - - specific volume - """ - - # J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] # table 10 - # n0 = [ - # -9.6927686500217, - # 10.086655968018, - # -0.005608791128302, - # 0.071452738081455, - # -0.40710498223928, - # 1.4240819171444, - # -4.383951131945, - # -0.28408632460772, - # 0.021268463753307, - # ] # table 10 - - Ir = [1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5] # table 16 - Jr = [0, 2, 5, 11, 1, 7, 16, 4, 16, 7, 10, 9, 10] # table 16 - nr = [ - -0.73362260186506e-2, - -0.88223831943146e-1, - -0.72334555213245e-1, - -0.40813178534455e-2, - 0.20097803380207e-2, - -0.53045921898642e-1, - -0.76190409086970e-2, - -0.63498037657313e-2, - -0.86043093028588e-1, - 0.75321581522770e-2, - -0.79238375446139e-2, - -0.22888160778447e-3, - -0.26456501482810e-2, - ] # table 16 - - R = Constants.__SPECIFIC_GAS_CONSTANT__ # Eq 1 - Pi = p # Eq 1 - tau = 540 / T # Eq 1 - - # table 13 - dimensionless gibbs free energy - gamma 0 - # g0 = math.log(Pi) - # for i, n in enumerate(n0): - # g0 += n * tau ** J0[i] - - # table 13 - dimensionless gibbs free energy - gamma 0 pi - g0_pi = 1 / Pi - - # table 13 - dimensionless gibbs free energy - gamma 0 pi pi - # g0_pipi = -1 / (Pi**2) - - # table 13 - dimensionless gibbs free energy - gamma 0 tau - # g0_tau = 0 - # for i, n in enumerate(n0): - # g0_tau += n * J0[i] * tau ** (J0[i] - 1) - - # table 13 - dimensionless gibbs free energy - gamma 0 tau tau - # g0_tautau = 0 - # for i, n in enumerate(n0): - # g0_tautau += n * J0[i] * (J0[i] - 1) * tau ** (J0[i] - 2) - - # table 13 - dimensionless gibbs free energy - gamma 0 pi tau - # g0_pitau = 0 - - # table 14 - residual dimensionless gibbs free energy - part r - # gr = 0 - # for i, n in enumerate(nr): - # gr += n * Pi ** Ir[i] * (tau - 0.5) ** Jr[i] - - # table 14 - residual dimensionless gibbs free energy - part r pi - gr_pi = 0 - for i, n in enumerate(nr): - gr_pi = gr_pi + n * Ir[i] * Pi ** (Ir[i] - 1) * (tau - 0.5) ** Jr[i] - - # table 14 - residual dimensionless gibbs free energy - part r pi pi - # gr_pipi = 0 - # for i, n in enumerate(nr): - # gr_pipi += ( - # n * Ir[i] * (Ir[i] - 1) * Pi ** (Ir[i] - 2) ** (tau - 0.5) ** Jr[i] - # ) - - # table 14 - residual dimensionless gibbs free energy - part r tau - # gr_tau = 0 - # for i, n in enumerate(nr): - # gr_tau += n * Pi ** Ir[i] * Jr[i] * (tau - 0.5) ** (Jr[i] - 1) - - # table 14 - residual dimensionless gibbs free energy - part r tau tau - # gr_tautau = 0 - # for i, n in enumerate(nr): - # gr_tautau += ( - # n * Pi ** Ir[i] * Jr[i] * (Jr[i] - 1) * (tau - 0.5) ** (Jr[i] - 2) - # ) + Table 11 and 12, Page 14 and 15 - # table 14 - residual dimensionless gibbs free energy - part r pi tau - # gr_pitau = 0 - # for i, n in enumerate(nr): - # gr_pitau += ( - # n * Ir[i] * Pi ** (Ir[i] - 1) * Jr[i] * (tau - 0.5) ** (Jr[i] - 1) - # ) + :param p: preasure in [MPa] + :param T: temperature in [K] - return R * T / p * Pi * (g0_pi + gr_pi) / 1000 # v2_pT - # return R * T * tau * (g0_tau + gr_tau) # h2_pT - # return R * T * (tau * (g0_tau + gr_tau) - Pi * (g0_pi + gr_pi)) # u2_pT - # return R * (tau * (g0_tau + gr_tau) - (g0 + gr)) # s2_pT - # return -R * tau**2 * (g0_tautau + gr_tautau) # Cp2_pT - # return R * (-(tau**2) * (g0_tautau + gr_tautau) - (1 + Pi * gr_pi - tau * Pi * gr_pitau) ** 2 / (1 - Pi**2 * gr_pipi) ) # Cv2_pT - # return ( 1000 * R * T * (1 + 2 * Pi * gr_pi + Pi**2 * gr_pi**2) / ( (1 - Pi**2 * gr_pipi) + (1 + Pi * gr_pi - tau * Pi * gr_pitau) ** 2 / (tau**2 * (g0_tautau + gr_tautau)) ) ) ** 0.5 # w2_pT + :return: specific volume in [m³ / kg] + """ + Ir = Region2.Ir + Jr = Region2.Jr + nr = Region2.nr + R = SPECIFIC_GAS_CONSTANT # Eq 1 + Pi = p # Eq 1 + tau = 540 / T # Eq 1 + g0_pi = 1 / Pi # see table 13 + gr_pi = 0 + for i in range(0, 43): + gr_pi = gr_pi + nr[i] * Ir[i] * Pi ** (Ir[i] - 1) * (tau - 0.5) ** Jr[i] # see table 14 + return R * T / p * Pi * (g0_pi + gr_pi) / 1000 # see table 12 @staticmethod def v2_pT_meta(p, T): @@ -1417,38 +709,14 @@ def v2_pT_meta(p, T): specific volume """ - # J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] # table 10 - # n0 = [ - # -9.6927686500217, - # 10.086655968018, - # -0.005608791128302, - # 0.071452738081455, - # -0.40710498223928, - # 1.4240819171444, - # -4.383951131945, - # -0.28408632460772, - # 0.021268463753307, - # ] # table 10 - - Ir = [1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5] # table 16 - Jr = [0, 2, 5, 11, 1, 7, 16, 4, 16, 7, 10, 9, 10] # table 16 - nr = [ - -0.73362260186506e-2, - -0.88223831943146e-1, - -0.72334555213245e-1, - -0.40813178534455e-2, - 0.20097803380207e-2, - -0.53045921898642e-1, - -0.76190409086970e-2, - -0.63498037657313e-2, - -0.86043093028588e-1, - 0.75321581522770e-2, - -0.79238375446139e-2, - -0.22888160778447e-3, - -0.26456501482810e-2, - ] # table 16 - - R = Constants.__SPECIFIC_GAS_CONSTANT__ # Eq 1 + # J0 = Region2.J0 # table 10 + # n0 = Region2.n0 # table 10 + + Ir = Region2.Ir_meta # table 16 + Jr = Region2.Jr_meta # table 16 + nr = Region2.nr_meta # table 16 + + R = SPECIFIC_GAS_CONSTANT # Eq 1 Pi = p # Eq 1 tau = 540 / T # Eq 1 @@ -1527,153 +795,11 @@ def h2_pT(p, T): :return: enthalpy in [kJ / kg] """ - J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] - n0 = [ - -9.6927686500217, - 10.086655968018, - -0.005608791128302, - 0.071452738081455, - -0.40710498223928, - 1.4240819171444, - -4.383951131945, - -0.28408632460772, - 0.021268463753307, - ] - Ir = [ - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 6, - 6, - 6, - 7, - 7, - 7, - 8, - 8, - 9, - 10, - 10, - 10, - 16, - 16, - 18, - 20, - 20, - 20, - 21, - 22, - 23, - 24, - 24, - 24, - ] - Jr = [ - 0, - 1, - 2, - 3, - 6, - 1, - 2, - 4, - 7, - 36, - 0, - 1, - 3, - 6, - 35, - 1, - 2, - 3, - 7, - 3, - 16, - 35, - 0, - 11, - 25, - 8, - 36, - 13, - 4, - 10, - 14, - 29, - 50, - 57, - 20, - 35, - 48, - 21, - 53, - 39, - 26, - 40, - 58, - ] - nr = [ - -1.7731742473213e-03, - -0.017834862292358, - -0.045996013696365, - -0.057581259083432, - -0.05032527872793, - -3.3032641670203e-05, - -1.8948987516315e-04, - -3.9392777243355e-03, - -0.043797295650573, - -2.6674547914087e-05, - 2.0481737692309e-08, - 4.3870667284435e-07, - -3.227767723857e-05, - -1.5033924542148e-03, - -0.040668253562649, - -7.8847309559367e-10, - 1.2790717852285e-08, - 4.8225372718507e-07, - 2.2922076337661e-06, - -1.6714766451061e-11, - -2.1171472321355e-03, - -23.895741934104, - -5.905956432427e-18, - -1.2621808899101e-06, - -0.038946842435739, - 1.1256211360459e-11, - -8.2311340897998, - 1.9809712802088e-08, - 1.0406965210174e-19, - -1.0234747095929e-13, - -1.0018179379511e-09, - -8.0882908646985e-11, - 0.10693031879409, - -0.33662250574171, - 8.9185845355421e-25, - 3.0629316876232e-13, - -4.2002467698208e-06, - -5.9056029685639e-26, - 3.7826947613457e-06, - -1.2768608934681e-15, - 7.3087610595061e-29, - 5.5414715350778e-17, - -9.436970724121e-07, - ] + J0 = Region2.J0 + n0 = Region2.n0 + Ir = Region2.Ir + Jr = Region2.Jr + nr = Region2.nr R = SPECIFIC_GAS_CONSTANT Pi = p tau = 540 / T @@ -1695,38 +821,14 @@ def h2_pT_meta(p, T): specific volume """ - J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] # table 10 - n0 = [ - -9.6927686500217, - 10.086655968018, - -0.005608791128302, - 0.071452738081455, - -0.40710498223928, - 1.4240819171444, - -4.383951131945, - -0.28408632460772, - 0.021268463753307, - ] # table 10 - - Ir = [1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5] # table 16 - Jr = [0, 2, 5, 11, 1, 7, 16, 4, 16, 7, 10, 9, 10] # table 16 - nr = [ - -0.73362260186506e-2, - -0.88223831943146e-1, - -0.72334555213245e-1, - -0.40813178534455e-2, - 0.20097803380207e-2, - -0.53045921898642e-1, - -0.76190409086970e-2, - -0.63498037657313e-2, - -0.86043093028588e-1, - 0.75321581522770e-2, - -0.79238375446139e-2, - -0.22888160778447e-3, - -0.26456501482810e-2, - ] # table 16 - - R = Constants.__SPECIFIC_GAS_CONSTANT__ # Eq 1 + J0 = Region2.J0 # table 10 + n0 = Region2.n0 # table 10 + + Ir = Region2.Ir_meta # table 16 + Jr = Region2.Jr_meta # table 16 + nr = Region2.nr_meta # table 16 + + R = SPECIFIC_GAS_CONSTANT # Eq 1 Pi = p # Eq 1 tau = 540 / T # Eq 1 @@ -1810,153 +912,11 @@ def u2_pT(p, T): :param T: temperature in [K] :return: specific internal energy in [kJ / kg] """ - J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] - n0 = [ - -9.6927686500217, - 10.086655968018, - -0.005608791128302, - 0.071452738081455, - -0.40710498223928, - 1.4240819171444, - -4.383951131945, - -0.28408632460772, - 0.021268463753307, - ] - Ir = [ - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 6, - 6, - 6, - 7, - 7, - 7, - 8, - 8, - 9, - 10, - 10, - 10, - 16, - 16, - 18, - 20, - 20, - 20, - 21, - 22, - 23, - 24, - 24, - 24, - ] - Jr = [ - 0, - 1, - 2, - 3, - 6, - 1, - 2, - 4, - 7, - 36, - 0, - 1, - 3, - 6, - 35, - 1, - 2, - 3, - 7, - 3, - 16, - 35, - 0, - 11, - 25, - 8, - 36, - 13, - 4, - 10, - 14, - 29, - 50, - 57, - 20, - 35, - 48, - 21, - 53, - 39, - 26, - 40, - 58, - ] - nr = [ - -1.7731742473213e-03, - -0.017834862292358, - -0.045996013696365, - -0.057581259083432, - -0.05032527872793, - -3.3032641670203e-05, - -1.8948987516315e-04, - -3.9392777243355e-03, - -0.043797295650573, - -2.6674547914087e-05, - 2.0481737692309e-08, - 4.3870667284435e-07, - -3.227767723857e-05, - -1.5033924542148e-03, - -0.040668253562649, - -7.8847309559367e-10, - 1.2790717852285e-08, - 4.8225372718507e-07, - 2.2922076337661e-06, - -1.6714766451061e-11, - -2.1171472321355e-03, - -23.895741934104, - -5.905956432427e-18, - -1.2621808899101e-06, - -0.038946842435739, - 1.1256211360459e-11, - -8.2311340897998, - 1.9809712802088e-08, - 1.0406965210174e-19, - -1.0234747095929e-13, - -1.0018179379511e-09, - -8.0882908646985e-11, - 0.10693031879409, - -0.33662250574171, - 8.9185845355421e-25, - 3.0629316876232e-13, - -4.2002467698208e-06, - -5.9056029685639e-26, - 3.7826947613457e-06, - -1.2768608934681e-15, - 7.3087610595061e-29, - 5.5414715350778e-17, - -9.436970724121e-07, - ] + J0 = Region2.J0 + n0 = Region2.n0 + Ir = Region2.Ir + Jr = Region2.Jr + nr = Region2.nr R = SPECIFIC_GAS_CONSTANT Pi = p tau = 540 / T @@ -1981,38 +941,14 @@ def u2_pT_meta(p, T): specific volume """ - J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] # table 10 - n0 = [ - -9.6927686500217, - 10.086655968018, - -0.005608791128302, - 0.071452738081455, - -0.40710498223928, - 1.4240819171444, - -4.383951131945, - -0.28408632460772, - 0.021268463753307, - ] # table 10 - - Ir = [1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5] # table 16 - Jr = [0, 2, 5, 11, 1, 7, 16, 4, 16, 7, 10, 9, 10] # table 16 - nr = [ - -0.73362260186506e-2, - -0.88223831943146e-1, - -0.72334555213245e-1, - -0.40813178534455e-2, - 0.20097803380207e-2, - -0.53045921898642e-1, - -0.76190409086970e-2, - -0.63498037657313e-2, - -0.86043093028588e-1, - 0.75321581522770e-2, - -0.79238375446139e-2, - -0.22888160778447e-3, - -0.26456501482810e-2, - ] # table 16 - - R = Constants.__SPECIFIC_GAS_CONSTANT__ # Eq 1 + J0 = Region2.J0 # table 10 + n0 = Region2.n0 # table 10 + + Ir = Region2.Ir_meta # table 16 + Jr = Region2.Jr_meta # table 16 + nr = Region2.nr_meta # table 16 + + R = SPECIFIC_GAS_CONSTANT # Eq 1 Pi = p # Eq 1 tau = 540 / T # Eq 1 @@ -2095,155 +1031,13 @@ def s2_pT(p, T): :param p: preasure in [MPa] :param T: temperature in [K] - :return: specific entropy in [kJ / (kg K)] - """ - J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] - n0 = [ - -9.6927686500217, - 10.086655968018, - -0.005608791128302, - 0.071452738081455, - -0.40710498223928, - 1.4240819171444, - -4.383951131945, - -0.28408632460772, - 0.021268463753307, - ] - Ir = [ - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 6, - 6, - 6, - 7, - 7, - 7, - 8, - 8, - 9, - 10, - 10, - 10, - 16, - 16, - 18, - 20, - 20, - 20, - 21, - 22, - 23, - 24, - 24, - 24, - ] - Jr = [ - 0, - 1, - 2, - 3, - 6, - 1, - 2, - 4, - 7, - 36, - 0, - 1, - 3, - 6, - 35, - 1, - 2, - 3, - 7, - 3, - 16, - 35, - 0, - 11, - 25, - 8, - 36, - 13, - 4, - 10, - 14, - 29, - 50, - 57, - 20, - 35, - 48, - 21, - 53, - 39, - 26, - 40, - 58, - ] - nr = [ - -1.7731742473213e-03, - -0.017834862292358, - -0.045996013696365, - -0.057581259083432, - -0.05032527872793, - -3.3032641670203e-05, - -1.8948987516315e-04, - -3.9392777243355e-03, - -0.043797295650573, - -2.6674547914087e-05, - 2.0481737692309e-08, - 4.3870667284435e-07, - -3.227767723857e-05, - -1.5033924542148e-03, - -0.040668253562649, - -7.8847309559367e-10, - 1.2790717852285e-08, - 4.8225372718507e-07, - 2.2922076337661e-06, - -1.6714766451061e-11, - -2.1171472321355e-03, - -23.895741934104, - -5.905956432427e-18, - -1.2621808899101e-06, - -0.038946842435739, - 1.1256211360459e-11, - -8.2311340897998, - 1.9809712802088e-08, - 1.0406965210174e-19, - -1.0234747095929e-13, - -1.0018179379511e-09, - -8.0882908646985e-11, - 0.10693031879409, - -0.33662250574171, - 8.9185845355421e-25, - 3.0629316876232e-13, - -4.2002467698208e-06, - -5.9056029685639e-26, - 3.7826947613457e-06, - -1.2768608934681e-15, - 7.3087610595061e-29, - 5.5414715350778e-17, - -9.436970724121e-07, - ] + :return: specific entropy in [kJ / (kg K)] + """ + J0 = Region2.J0 + n0 = Region2.n0 + Ir = Region2.Ir + Jr = Region2.Jr + nr = Region2.nr R = SPECIFIC_GAS_CONSTANT Pi = p tau = 540 / T @@ -2269,38 +1063,14 @@ def s2_pT_meta(p, T): specific volume """ - J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] # table 10 - n0 = [ - -9.6927686500217, - 10.086655968018, - -0.005608791128302, - 0.071452738081455, - -0.40710498223928, - 1.4240819171444, - -4.383951131945, - -0.28408632460772, - 0.021268463753307, - ] # table 10 - - Ir = [1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5] # table 16 - Jr = [0, 2, 5, 11, 1, 7, 16, 4, 16, 7, 10, 9, 10] # table 16 - nr = [ - -0.73362260186506e-2, - -0.88223831943146e-1, - -0.72334555213245e-1, - -0.40813178534455e-2, - 0.20097803380207e-2, - -0.53045921898642e-1, - -0.76190409086970e-2, - -0.63498037657313e-2, - -0.86043093028588e-1, - 0.75321581522770e-2, - -0.79238375446139e-2, - -0.22888160778447e-3, - -0.26456501482810e-2, - ] # table 16 - - R = Constants.__SPECIFIC_GAS_CONSTANT__ # Eq 1 + J0 = Region2.J0 # table 10 + n0 = Region2.n0 # table 10 + + Ir = Region2.Ir_meta # table 16 + Jr = Region2.Jr_meta # table 16 + nr = Region2.nr_meta # table 16 + + R = SPECIFIC_GAS_CONSTANT # Eq 1 Pi = p # Eq 1 tau = 540 / T # Eq 1 @@ -2385,153 +1155,11 @@ def Cp2_pT(p, T): :return: specific isobaric heat capacity in [kJ / (kg K)] """ - J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] - n0 = [ - -9.6927686500217, - 10.086655968018, - -0.005608791128302, - 0.071452738081455, - -0.40710498223928, - 1.4240819171444, - -4.383951131945, - -0.28408632460772, - 0.021268463753307, - ] - Ir = [ - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 6, - 6, - 6, - 7, - 7, - 7, - 8, - 8, - 9, - 10, - 10, - 10, - 16, - 16, - 18, - 20, - 20, - 20, - 21, - 22, - 23, - 24, - 24, - 24, - ] - Jr = [ - 0, - 1, - 2, - 3, - 6, - 1, - 2, - 4, - 7, - 36, - 0, - 1, - 3, - 6, - 35, - 1, - 2, - 3, - 7, - 3, - 16, - 35, - 0, - 11, - 25, - 8, - 36, - 13, - 4, - 10, - 14, - 29, - 50, - 57, - 20, - 35, - 48, - 21, - 53, - 39, - 26, - 40, - 58, - ] - nr = [ - -1.7731742473213e-03, - -0.017834862292358, - -0.045996013696365, - -0.057581259083432, - -0.05032527872793, - -3.3032641670203e-05, - -1.8948987516315e-04, - -3.9392777243355e-03, - -0.043797295650573, - -2.6674547914087e-05, - 2.0481737692309e-08, - 4.3870667284435e-07, - -3.227767723857e-05, - -1.5033924542148e-03, - -0.040668253562649, - -7.8847309559367e-10, - 1.2790717852285e-08, - 4.8225372718507e-07, - 2.2922076337661e-06, - -1.6714766451061e-11, - -2.1171472321355e-03, - -23.895741934104, - -5.905956432427e-18, - -1.2621808899101e-06, - -0.038946842435739, - 1.1256211360459e-11, - -8.2311340897998, - 1.9809712802088e-08, - 1.0406965210174e-19, - -1.0234747095929e-13, - -1.0018179379511e-09, - -8.0882908646985e-11, - 0.10693031879409, - -0.33662250574171, - 8.9185845355421e-25, - 3.0629316876232e-13, - -4.2002467698208e-06, - -5.9056029685639e-26, - 3.7826947613457e-06, - -1.2768608934681e-15, - 7.3087610595061e-29, - 5.5414715350778e-17, - -9.436970724121e-07, - ] + J0 = Region2.J0 + n0 = Region2.n0 + Ir = Region2.Ir + Jr = Region2.Jr + nr = Region2.nr R = SPECIFIC_GAS_CONSTANT Pi = p tau = 540 / T @@ -2553,38 +1181,14 @@ def Cp2_pT_meta(p, T): specific volume """ - J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] # table 10 - n0 = [ - -9.6927686500217, - 10.086655968018, - -0.005608791128302, - 0.071452738081455, - -0.40710498223928, - 1.4240819171444, - -4.383951131945, - -0.28408632460772, - 0.021268463753307, - ] # table 10 - - Ir = [1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5] # table 16 - Jr = [0, 2, 5, 11, 1, 7, 16, 4, 16, 7, 10, 9, 10] # table 16 - nr = [ - -0.73362260186506e-2, - -0.88223831943146e-1, - -0.72334555213245e-1, - -0.40813178534455e-2, - 0.20097803380207e-2, - -0.53045921898642e-1, - -0.76190409086970e-2, - -0.63498037657313e-2, - -0.86043093028588e-1, - 0.75321581522770e-2, - -0.79238375446139e-2, - -0.22888160778447e-3, - -0.26456501482810e-2, - ] # table 16 - - R = Constants.__SPECIFIC_GAS_CONSTANT__ # Eq 1 + J0 = Region2.J0 # table 10 + n0 = Region2.n0 # table 10 + + Ir = Region2.Ir_meta # table 16 + Jr = Region2.Jr_meta # table 16 + nr = Region2.nr_meta # table 16 + + R = SPECIFIC_GAS_CONSTANT # Eq 1 Pi = p # Eq 1 tau = 540 / T # Eq 1 @@ -2637,9 +1241,7 @@ def Cp2_pT_meta(p, T): # table 14 - residual dimensionless gibbs free energy - part r tau tau gr_tautau = 0 for i, n in enumerate(nr): - gr_tautau += ( - n * Pi ** Ir[i] * Jr[i] * (Jr[i] - 1) * (tau - 0.5) ** (Jr[i] - 2) - ) + gr_tautau += n * Pi ** Ir[i] * Jr[i] * (Jr[i] - 1) * (tau - 0.5) ** (Jr[i] - 2) # table 14 - residual dimensionless gibbs free energy - part r pi tau # gr_pitau = 0 @@ -2669,153 +1271,11 @@ def Cv2_pT(p, T): :return: specific isochoric heat capacity in [kJ / (kg K)] """ - J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] - n0 = [ - -9.6927686500217, - 10.086655968018, - -0.005608791128302, - 0.071452738081455, - -0.40710498223928, - 1.4240819171444, - -4.383951131945, - -0.28408632460772, - 0.021268463753307, - ] - Ir = [ - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 6, - 6, - 6, - 7, - 7, - 7, - 8, - 8, - 9, - 10, - 10, - 10, - 16, - 16, - 18, - 20, - 20, - 20, - 21, - 22, - 23, - 24, - 24, - 24, - ] - Jr = [ - 0, - 1, - 2, - 3, - 6, - 1, - 2, - 4, - 7, - 36, - 0, - 1, - 3, - 6, - 35, - 1, - 2, - 3, - 7, - 3, - 16, - 35, - 0, - 11, - 25, - 8, - 36, - 13, - 4, - 10, - 14, - 29, - 50, - 57, - 20, - 35, - 48, - 21, - 53, - 39, - 26, - 40, - 58, - ] - nr = [ - -1.7731742473213e-03, - -0.017834862292358, - -0.045996013696365, - -0.057581259083432, - -0.05032527872793, - -3.3032641670203e-05, - -1.8948987516315e-04, - -3.9392777243355e-03, - -0.043797295650573, - -2.6674547914087e-05, - 2.0481737692309e-08, - 4.3870667284435e-07, - -3.227767723857e-05, - -1.5033924542148e-03, - -0.040668253562649, - -7.8847309559367e-10, - 1.2790717852285e-08, - 4.8225372718507e-07, - 2.2922076337661e-06, - -1.6714766451061e-11, - -2.1171472321355e-03, - -23.895741934104, - -5.905956432427e-18, - -1.2621808899101e-06, - -0.038946842435739, - 1.1256211360459e-11, - -8.2311340897998, - 1.9809712802088e-08, - 1.0406965210174e-19, - -1.0234747095929e-13, - -1.0018179379511e-09, - -8.0882908646985e-11, - 0.10693031879409, - -0.33662250574171, - 8.9185845355421e-25, - 3.0629316876232e-13, - -4.2002467698208e-06, - -5.9056029685639e-26, - 3.7826947613457e-06, - -1.2768608934681e-15, - 7.3087610595061e-29, - 5.5414715350778e-17, - -9.436970724121e-07, - ] + J0 = Region2.J0 + n0 = Region2.n0 + Ir = Region2.Ir + Jr = Region2.Jr + nr = Region2.nr R = SPECIFIC_GAS_CONSTANT Pi = p tau = 540 / T @@ -2846,153 +1306,11 @@ def w2_pT(cls, p: float, T: float) -> float: :return: speed of sound in [m / s] """ - J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] - n0 = [ - -9.6927686500217, - 10.086655968018, - -0.005608791128302, - 0.071452738081455, - -0.40710498223928, - 1.4240819171444, - -4.383951131945, - -0.28408632460772, - 0.021268463753307, - ] - Ir = [ - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 5, - 6, - 6, - 6, - 7, - 7, - 7, - 8, - 8, - 9, - 10, - 10, - 10, - 16, - 16, - 18, - 20, - 20, - 20, - 21, - 22, - 23, - 24, - 24, - 24, - ] - Jr = [ - 0, - 1, - 2, - 3, - 6, - 1, - 2, - 4, - 7, - 36, - 0, - 1, - 3, - 6, - 35, - 1, - 2, - 3, - 7, - 3, - 16, - 35, - 0, - 11, - 25, - 8, - 36, - 13, - 4, - 10, - 14, - 29, - 50, - 57, - 20, - 35, - 48, - 21, - 53, - 39, - 26, - 40, - 58, - ] - nr = [ - -1.7731742473213e-03, - -0.017834862292358, - -0.045996013696365, - -0.057581259083432, - -0.05032527872793, - -3.3032641670203e-05, - -1.8948987516315e-04, - -3.9392777243355e-03, - -0.043797295650573, - -2.6674547914087e-05, - 2.0481737692309e-08, - 4.3870667284435e-07, - -3.227767723857e-05, - -1.5033924542148e-03, - -0.040668253562649, - -7.8847309559367e-10, - 1.2790717852285e-08, - 4.8225372718507e-07, - 2.2922076337661e-06, - -1.6714766451061e-11, - -2.1171472321355e-03, - -23.895741934104, - -5.905956432427e-18, - -1.2621808899101e-06, - -0.038946842435739, - 1.1256211360459e-11, - -8.2311340897998, - 1.9809712802088e-08, - 1.0406965210174e-19, - -1.0234747095929e-13, - -1.0018179379511e-09, - -8.0882908646985e-11, - 0.10693031879409, - -0.33662250574171, - 8.9185845355421e-25, - 3.0629316876232e-13, - -4.2002467698208e-06, - -5.9056029685639e-26, - 3.7826947613457e-06, - -1.2768608934681e-15, - 7.3087610595061e-29, - 5.5414715350778e-17, - -9.436970724121e-07, - ] + J0 = Region2.J0 + n0 = Region2.n0 + Ir = Region2.Ir + Jr = Region2.Jr + nr = Region2.nr R = SPECIFIC_GAS_CONSTANT Pi = p tau = 540 / T @@ -3026,44 +1344,20 @@ def w2_pT_meta(p, T): specific volume """ - J0 = [0, 1, -5, -4, -3, -2, -1, 2, 3] # table 10 - n0 = [ - -9.6927686500217, - 10.086655968018, - -0.005608791128302, - 0.071452738081455, - -0.40710498223928, - 1.4240819171444, - -4.383951131945, - -0.28408632460772, - 0.021268463753307, - ] # table 10 - - Ir = [1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5] # table 16 - Jr = [0, 2, 5, 11, 1, 7, 16, 4, 16, 7, 10, 9, 10] # table 16 - nr = [ - -0.73362260186506e-2, - -0.88223831943146e-1, - -0.72334555213245e-1, - -0.40813178534455e-2, - 0.20097803380207e-2, - -0.53045921898642e-1, - -0.76190409086970e-2, - -0.63498037657313e-2, - -0.86043093028588e-1, - 0.75321581522770e-2, - -0.79238375446139e-2, - -0.22888160778447e-3, - -0.26456501482810e-2, - ] # table 16 - - R = Constants.__SPECIFIC_GAS_CONSTANT__ # Eq 1 + J0 = Region2.J0 # table 10 + n0 = Region2.n0 # table 10 + + Ir = Region2.Ir_meta # table 16 + Jr = Region2.Jr_meta # table 16 + nr = Region2.nr_meta # table 16 + + R = SPECIFIC_GAS_CONSTANT # Eq 1 Pi = p # Eq 1 tau = 540 / T # Eq 1 # table 13 - dimensionless gibbs free energy - gamma 0 - #g0 = math.log(Pi) - #for i, n in enumerate(n0): + # g0 = math.log(Pi) + # for i, n in enumerate(n0): # g0 += n * tau ** J0[i] # table 13 - dimensionless gibbs free energy - gamma 0 pi @@ -3073,8 +1367,8 @@ def w2_pT_meta(p, T): # g0_pipi = -1 / (Pi**2) # table 13 - dimensionless gibbs free energy - gamma 0 tau - #g0_tau = 0 - #for i, n in enumerate(n0): + # g0_tau = 0 + # for i, n in enumerate(n0): # g0_tau += n * J0[i] * tau ** (J0[i] - 1) # table 13 - dimensionless gibbs free energy - gamma 0 tau tau @@ -3086,8 +1380,8 @@ def w2_pT_meta(p, T): # g0_pitau = 0 # table 14 - residual dimensionless gibbs free energy - part r - #gr = 0 - #for i, n in enumerate(nr): + # gr = 0 + # for i, n in enumerate(nr): # gr += n * Pi ** Ir[i] * (tau - 0.5) ** Jr[i] # table 14 - residual dimensionless gibbs free energy - part r pi @@ -3098,41 +1392,34 @@ def w2_pT_meta(p, T): # table 14 - residual dimensionless gibbs free energy - part r pi pi gr_pipi = 0 for i, n in enumerate(nr): - gr_pipi += ( - n * Ir[i] * (Ir[i] - 1) * Pi ** (Ir[i] - 2) * (tau - 0.5) ** Jr[i] - ) + gr_pipi += n * Ir[i] * (Ir[i] - 1) * Pi ** (Ir[i] - 2) * (tau - 0.5) ** Jr[i] if isinstance(gr_pipi, complex): if gr_pipi.imag != 0: raise Exception() gr_pipi = gr_pipi.real # table 14 - residual dimensionless gibbs free energy - part r tau - #gr_tau = 0 - #for i, n in enumerate(nr): + # gr_tau = 0 + # for i, n in enumerate(nr): # gr_tau += n * Pi ** Ir[i] * Jr[i] * (tau - 0.5) ** (Jr[i] - 1) # table 14 - residual dimensionless gibbs free energy - part r tau tau gr_tautau = 0 for i, n in enumerate(nr): - gr_tautau += ( - n * Pi ** Ir[i] * Jr[i] * (Jr[i] - 1) * (tau - 0.5) ** (Jr[i] - 2) - ) + gr_tautau += n * Pi ** Ir[i] * Jr[i] * (Jr[i] - 1) * (tau - 0.5) ** (Jr[i] - 2) # table 14 - residual dimensionless gibbs free energy - part r pi tau gr_pitau = 0 for i, n in enumerate(nr): - gr_pitau += ( - n * Ir[i] * Pi ** (Ir[i] - 1) * Jr[i] * (tau - 0.5) ** (Jr[i] - 1) - ) + gr_pitau += n * Ir[i] * Pi ** (Ir[i] - 1) * Jr[i] * (tau - 0.5) ** (Jr[i] - 1) part_1 = 1 + 2 * Pi * gr_pi + Pi**2 * gr_pi**2 part_2_a = 1 - Pi**2 * gr_pipi - part_2_b = (1 + Pi * gr_pi - tau * Pi * gr_pitau) ** 2 # x + part_2_b = (1 + Pi * gr_pi - tau * Pi * gr_pitau) ** 2 # x part_2_c = tau**2 * (g0_tautau + gr_tautau) # return 1.0 return math.sqrt(1000 * R * T * part_1 / (part_2_a + part_2_b / part_2_c)) - @staticmethod def T2_ph(p, h): """function T2_ph = T2_ph(p, h) @@ -7381,6 +5668,27 @@ class Region5: of water in Region 5 """ + ni0 = [ + -13.179983674201, + 6.8540841634434, + -0.024805148933466, + 0.36901534980333, + -3.1161318213925, + -0.32961626538917, + ] + + nir = [ + -1.2563183589592e-04, + 2.1774678714571e-03, + -0.004594282089991, + -3.9724828359569e-06, + 1.2919228289784e-07, + ] + + Ji0 = [0, 1, -3, -2, -1, 2] + Iir = [1, 1, 1, 2, 3] + Jir = [0, 1, 3, 9, 3] + _logger = logging.getLogger(__name__) @classmethod @@ -7396,24 +5704,11 @@ def h5_pT(cls, p: float, T: float) -> float: :return: enthalpy in [kJ / kg] """ - Ji0 = [0, 1, -3, -2, -1, 2] - ni0 = [ - -13.179983674201, - 6.8540841634434, - -0.024805148933466, - 0.36901534980333, - -3.1161318213925, - -0.32961626538917, - ] - Iir = [1, 1, 1, 2, 3] - Jir = [0, 1, 3, 9, 3] - nir = [ - -1.2563183589592e-04, - 2.1774678714571e-03, - -0.004594282089991, - -3.9724828359569e-06, - 1.2919228289784e-07, - ] + Ji0 = Region5.Ji0 + ni0 = Region5.ni0 + Iir = Region5.Iir + Jir = Region5.Jir + nir = Region5.nir R = SPECIFIC_GAS_CONSTANT tau = 1000 / T Pi = p @@ -7438,15 +5733,9 @@ def v5_pT(cls, p: float, T: float) -> float: :return: specific volume in [m³ / kg] """ - Iir = [1, 1, 1, 2, 3] - Jir = [0, 1, 3, 9, 3] - nir = [ - -1.2563183589592e-04, - 2.1774678714571e-03, - -0.004594282089991, - -3.9724828359569e-06, - 1.2919228289784e-07, - ] + Iir = Region5.Iir + Jir = Region5.Jir + nir = Region5.nir R = SPECIFIC_GAS_CONSTANT tau = 1000 / T # Pi = p # @@ -7469,24 +5758,11 @@ def u5_pT(cls, p: float, T: float) -> float: :return: specific internal energy in [kJ / kg] """ - Ji0 = [0, 1, -3, -2, -1, 2] - ni0 = [ - -13.179983674201, - 6.8540841634434, - -0.024805148933466, - 0.36901534980333, - -3.1161318213925, - -0.32961626538917, - ] - Iir = [1, 1, 1, 2, 3] - Jir = [0, 1, 3, 9, 3] - nir = [ - -1.2563183589592e-04, - 2.1774678714571e-03, - -0.004594282089991, - -3.9724828359569e-06, - 1.2919228289784e-07, - ] + Ji0 = Region5.Ji0 + ni0 = Region5.ni0 + Iir = Region5.Iir + Jir = Region5.Jir + nir = Region5.nir R = SPECIFIC_GAS_CONSTANT tau = 1000 / T Pi = p @@ -7514,24 +5790,11 @@ def Cp5_pT(cls, p: float, T: float) -> float: :return: specific isobaric heat capacity in [kJ / (kg K)] """ - Ji0 = [0, 1, -3, -2, -1, 2] - ni0 = [ - -13.179983674201, - 6.8540841634434, - -0.024805148933466, - 0.36901534980333, - -3.1161318213925, - -0.32961626538917, - ] - Iir = [1, 1, 1, 2, 3] - Jir = [0, 1, 3, 9, 3] - nir = [ - -1.2563183589592e-04, - 2.1774678714571e-03, - -0.004594282089991, - -3.9724828359569e-06, - 1.2919228289784e-07, - ] + Ji0 = Region5.Ji0 + ni0 = Region5.ni0 + Iir = Region5.Iir + Jir = Region5.Jir + nir = Region5.nir R = SPECIFIC_GAS_CONSTANT tau = 1000 / T Pi = p @@ -7556,24 +5819,11 @@ def s5_pT(cls, p: float, T: float) -> float: :return: specific entropy in [kJ / (kg K)] """ - Ji0 = [0, 1, -3, -2, -1, 2] - ni0 = [ - -13.179983674201, - 6.8540841634434, - -0.024805148933466, - 0.36901534980333, - -3.1161318213925, - -0.32961626538917, - ] - Iir = [1, 1, 1, 2, 3] - Jir = [0, 1, 3, 9, 3] - nir = [ - -1.2563183589592e-04, - 2.1774678714571e-03, - -0.004594282089991, - -3.9724828359569e-06, - 1.2919228289784e-07, - ] + Ji0 = Region5.Ji0 + ni0 = Region5.ni0 + Iir = Region5.Iir + Jir = Region5.Jir + nir = Region5.nir R = SPECIFIC_GAS_CONSTANT tau = 1000 / T Pi = p @@ -7602,24 +5852,11 @@ def Cv5_pT(cls, p: float, T: float) -> float: :return: specific isochoric heat capacity in [kJ / (kg K)] """ - Ji0 = [0, 1, -3, -2, -1, 2] - ni0 = [ - -13.179983674201, - 6.8540841634434, - -0.024805148933466, - 0.36901534980333, - -3.1161318213925, - -0.32961626538917, - ] - Iir = [1, 1, 1, 2, 3] - Jir = [0, 1, 3, 9, 3] - nir = [ - -1.2563183589592e-04, - 2.1774678714571e-03, - -0.004594282089991, - -3.9724828359569e-06, - 1.2919228289784e-07, - ] + Ji0 = Region5.Ji0 + ni0 = Region5.ni0 + Iir = Region5.Iir + Jir = Region5.Jir + nir = Region5.nir R = SPECIFIC_GAS_CONSTANT tau = 1000 / T Pi = p @@ -7636,8 +5873,7 @@ def Cv5_pT(cls, p: float, T: float) -> float: gammar_pipi = gammar_pipi + nir[i] * Iir[i] * (Iir[i] - 1) * Pi ** (Iir[i] - 2) * tau ** Jir[i] gammar_tautau = gammar_tautau + nir[i] * Pi ** Iir[i] * Jir[i] * (Jir[i] - 1) * tau ** (Jir[i] - 2) return R * ( - -(tau**2 * (gamma0_tautau + gammar_tautau)) - - (1 + Pi * gammar_pi - tau * Pi * gammar_pitau) ** 2 / (1 - Pi**2 * gammar_pipi) + -(tau**2 * (gamma0_tautau + gammar_tautau)) - (1 + Pi * gammar_pi - tau * Pi * gammar_pitau) ** 2 / (1 - Pi**2 * gammar_pipi) ) @classmethod @@ -7653,24 +5889,11 @@ def w5_pT(cls, p: float, T: float) -> float: :return: speed of sound in [m / s] """ - Ji0 = [0, 1, -3, -2, -1, 2] - ni0 = [ - -13.179983674201, - 6.8540841634434, - -0.024805148933466, - 0.36901534980333, - -3.1161318213925, - -0.32961626538917, - ] - Iir = [1, 1, 1, 2, 3] - Jir = [0, 1, 3, 9, 3] - nir = [ - -1.2563183589592e-04, - 2.1774678714571e-03, - -0.004594282089991, - -3.9724828359569e-06, - 1.2919228289784e-07, - ] + Ji0 = Region5.Ji0 + ni0 = Region5.ni0 + Iir = Region5.Iir + Jir = Region5.Jir + nir = Region5.nir R = SPECIFIC_GAS_CONSTANT tau = 1000 / T Pi = p @@ -7691,10 +5914,7 @@ def w5_pT(cls, p: float, T: float) -> float: * R * T * (1 + 2 * Pi * gammar_pi + Pi**2 * gammar_pi**2) - / ( - (1 - Pi**2 * gammar_pipi) - + (1 + Pi * gammar_pi - tau * Pi * gammar_pitau) ** 2 / (tau**2 * (gamma0_tautau + gammar_tautau)) - ) + / ((1 - Pi**2 * gammar_pipi) + (1 + Pi * gammar_pi - tau * Pi * gammar_pitau) ** 2 / (tau**2 * (gamma0_tautau + gammar_tautau))) ) ** 0.5 @classmethod