@neutrium/thermo.eos.iapws97 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # Neutrium.thermo.IAPWS97
1
+ # @neutrium/thermo.eos.iapws97
2
2
 
3
3
  ## Introduction
4
4
 
5
- Neutrium.thermo.IAPWS97 is a javascript implementation of the [IAPWS](http://www.iapws.org/) formulations of the thermodynamic properties of water and steam. The IAPWS papers implemented in Neutrium.thermo.IAPWS97 are as follows:
5
+ @neutrium/thermo.eos.iapws97 is a javascript implementation of the [IAPWS](http://www.iapws.org/) formulations of the thermodynamic properties of water and steam. The IAPWS papers implemented in Neutrium.thermo.IAPWS97 are as follows:
6
6
 
7
7
  - [Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam 2007](http://www.iapws.org/relguide/IF97-Rev.html)
8
8
  - [Revised Supplementary Release on Backward Equations for Pressure as a Function of Enthalpy and Entropy p(h,s) for Regions 1 and 2 of the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam](http://www.iapws.org/relguide/Supp-PHS12-2014.pdf)
@@ -30,7 +30,7 @@ You can install the Neutrium implementation of the IAPWS97 equation of state pac
30
30
 
31
31
  In typescript you can include the package as follows:
32
32
 
33
- import {IAPWS97_EoS} from "@neutrium/thermo.eos.iapws97"
33
+ import { IAPWS97_EoS } from "@neutrium/thermo.eos.iapws97"
34
34
 
35
35
  let EoS = new IAPWS97_EOS();
36
36
 
@@ -56,7 +56,7 @@ This package makes use of utf8 characters for variable names and therefore shoul
56
56
 
57
57
  Steam and water properties can be calculated using the solve method and a supported combination of pressure (Pa), temperature (K), enthalpy (kJ/kg.K) and entropy (kJ/K.kg). For example (in typescript):
58
58
 
59
- import {IAPWS97_EOS} from "@neutrium/thermo.eos.iapws97"
59
+ import { IAPWS97_EOS } from "@neutrium/thermo.eos.iapws97"
60
60
 
61
61
  let EoS = new IAPWS97_EOS();
62
62
  let inputs = {
@@ -110,15 +110,12 @@ This will allow you to easily convert each property as required:
110
110
 
111
111
  var psi = result.p.to('psi');
112
112
 
113
- See the NeutriumJS.Quantity [readme](https://github.com/neutrium/quantity/blob/master/README.md) for more info.
113
+ See the @neutrium/quantity [readme](https://github.com/neutrium/quantity/blob/master/README.md) for more info.
114
114
 
115
115
  ## Testing
116
116
 
117
- This pacakge is currently tested using all applicable tests provided in the IAWPS papers listed above. To run the tests, after cloning and installing package dependences via npm and run `npm task build` at the terminal.
117
+ This package is currently tested using all applicable tests provided in the IAWPS papers listed above. To run the tests, after cloning and installing package dependencies via npm run the tests via `npm run build` at the terminal.
118
118
 
119
- ## Donations
120
-
121
- NeutriumJS is free software, but you can support the developers by [donating here](https://neutrium.net/donate/).
122
119
 
123
120
  ## Release Notes
124
121
 
@@ -132,7 +129,17 @@ NeutriumJS is free software, but you can support the developers by [donating her
132
129
  | 1.1.3 | Bug fixes for exception throwing logic |
133
130
  | 1.2.0 | Renamed package to NeutriumJS.thermo.IAPWS97 |
134
131
  | 2.0.0 | Rename package, switch to Typescript and convert to npm module |
132
+ | 2.1.0 | Updated @thermo/thermo package fix mode finding bug and improved typing |
135
133
 
136
134
  ## License
137
135
 
138
- [Creative Commons Attribution 4.0 International](http://creativecommons.org/licenses/by/4.0/legalcode)
136
+ This work is licensed under the [Creative Commons Attribution 4.0 International](http://creativecommons.org/licenses/by/4.0/legalcode) License.
137
+
138
+ You are free to:
139
+
140
+ - Share — copy and redistribute the material in any medium or format.
141
+ - Adapt — remix, transform, and build upon the material for any purpose, including commercially.
142
+
143
+ Under the following terms:
144
+
145
+ - Attribution — you must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the original author endorses you or your use.
package/dist/HS.js CHANGED
@@ -1,16 +1,58 @@
1
1
  "use strict";
2
- var NS = require('./base');
3
- var PT = require('./PT');
4
- var PH = require('./PH');
5
- var R = NS.constants['R'];
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.solve = solve;
37
+ exports.b14_S_H = b14_S_H;
38
+ exports.b13_S_H = b13_S_H;
39
+ exports.b23_HS_T = b23_HS_T;
40
+ exports.b2ab_S_H = b2ab_S_H;
41
+ exports.b2ab_S_Hsat = b2ab_S_Hsat;
42
+ exports.b2c3b_S_H = b2c3b_S_H;
43
+ exports.b3A_S_H = b3A_S_H;
44
+ exports.r4_HS_Tsat = r4_HS_Tsat;
45
+ const NS = __importStar(require("./base"));
46
+ const PT = __importStar(require("./PT"));
47
+ const PH = __importStar(require("./PH"));
6
48
  //
7
- // Comments : Determines which IAPWS-IF97 region a entalphy and entropy combination lie in.
49
+ // Comments : Determines which IAPWS-IF97 region a enthalpy and entropy combination lie in.
8
50
  //
9
- // @param h is the enthalphy in kJ/kg
51
+ // @param h is the enthalpy in kJ/kg
10
52
  // @param s is the entropy in kJ . K^-1 . kg^1
11
53
  //
12
54
  function solve(h, s) {
13
- var region = findRegion_HS(h, s), result = null;
55
+ let region = findRegion_HS(h, s), result = null;
14
56
  switch (region) {
15
57
  case 1:
16
58
  result = r1(h, s);
@@ -24,16 +66,15 @@ function solve(h, s) {
24
66
  case 4:
25
67
  result = r4(h, s);
26
68
  break;
27
- default: throw new Error('Insufficent inputs provided');
69
+ default: throw new Error('(h,s) : Inputs insufficient or out of range');
28
70
  }
29
71
  return result;
30
72
  }
31
- exports.solve = solve;
32
73
  function findRegion_HS(h, s) {
33
74
  // Interpolate across the saturation curve to test if below P = 0.000611 MPa line
34
75
  // Refer to Figure 3 in IAPWS HS document for graphical depiction
35
- // dG = dH - T*dS where dG = 0 for equillibrium reactions like phase change
36
- var B23_S = 5.260578707, B3_S = 4.41202148223476, B13_S = 3.778281340, B23_H = 2812.942061, hcheck = 273.15 * (s - NS.CONST('MIN_S')) + NS.CONST('MIN_H');
76
+ // dG = dH - T*dS where dG = 0 for equilibrium reactions like phase change
77
+ let B23_S = 5.260578707, B3_S = 4.41202148223476, B13_S = 3.778281340, B23_H = 2812.942061, hcheck = 273.15 * (s - NS.CONST('MIN_S')) + NS.CONST('MIN_H');
37
78
  if ((s <= 9.155759395 && h < hcheck) || s < NS.CONST('MIN_S') || h < NS.CONST('MIN_H')) {
38
79
  return -1;
39
80
  }
@@ -44,7 +85,7 @@ function findRegion_HS(h, s) {
44
85
  // Region 2 or 3 interface
45
86
  if (5.048096828 <= s && s <= B23_S && 2563.592004 <= h && h <= B23_H) {
46
87
  // Do check using the PB23
47
- var T = b23_HS_T(h, s), P = r2C_HS_P(h, s), Pcheck = PT.b23_T_P(T);
88
+ let T = b23_HS_T(h, s), P = r2C_HS_P(h, s), Pcheck = PT.b23_T_P(T);
48
89
  if (Pcheck > P) {
49
90
  return 2;
50
91
  }
@@ -66,98 +107,89 @@ function findRegion_HS(h, s) {
66
107
  // Region Identification Equations
67
108
  //
68
109
  // h'_1 Equation 3 in HS Region 3 & 4 Supplementary release
69
- // Exported for testing
110
+ // @internal - Exported for unit testing only
70
111
  function b14_S_H(s) {
71
- var R4_HS_I = [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 7, 8, 12, 12, 14, 14, 16, 20, 20, 22, 24, 28, 32, 32], R4_HS_J = [14, 36, 3, 16, 0, 5, 4, 36, 4, 16, 24, 18, 24, 1, 4, 2, 4, 1, 22, 10, 12, 28, 8, 3, 0, 6, 8], R4_HS_N = [3.32171191705237E-1, 6.112177063234960E-4, -8.82092478906822, -4.5562819254325E-1, -2.63483840850452E-5, -2.23949661148062E1, -4.28398660164013, -6.16679338856916E-1, -1.468230311044E1, 2.84523138727299E2, -1.13398503195444E2, 1.15671380760859E3, 3.95551267359325E2, -1.54891257229285, 1.94486637751291E1, -3.57915139457043, -3.35369414148819, -6.6442679633246E-1, 3.23321885383934E4, 3.31766744667084E3, -2.23501257931087E4, 5.73953875852936E6, 1.73226193407919E2, -3.63968822121321E-2, 8.34596332878346E-7, 5.03611916682674, 6.55444787064505E1], sig = s / 3.8, h = 0;
72
- for (var i = 0; i < 27; i++) {
73
- var N = R4_HS_N[i], I = R4_HS_I[i], J = R4_HS_J[i];
112
+ let R4_HS_I = [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 7, 8, 12, 12, 14, 14, 16, 20, 20, 22, 24, 28, 32, 32], R4_HS_J = [14, 36, 3, 16, 0, 5, 4, 36, 4, 16, 24, 18, 24, 1, 4, 2, 4, 1, 22, 10, 12, 28, 8, 3, 0, 6, 8], R4_HS_N = [3.32171191705237E-1, 6.112177063234960E-4, -8.82092478906822, -4.5562819254325E-1, -2.63483840850452E-5, -2.23949661148062E1, -4.28398660164013, -6.16679338856916E-1, -1.468230311044E1, 2.84523138727299E2, -1.13398503195444E2, 1.15671380760859E3, 3.95551267359325E2, -1.54891257229285, 1.94486637751291E1, -3.57915139457043, -3.35369414148819, -6.6442679633246E-1, 3.23321885383934E4, 3.31766744667084E3, -2.23501257931087E4, 5.73953875852936E6, 1.73226193407919E2, -3.63968822121321E-2, 8.34596332878346E-7, 5.03611916682674, 6.55444787064505E1], sig = s / 3.8, h = 0;
113
+ for (let i = 0; i < 27; i++) {
114
+ let N = R4_HS_N[i], I = R4_HS_I[i], J = R4_HS_J[i];
74
115
  h += N * Math.pow(sig - 1.09, I) * Math.pow(sig + 0.0000366, J);
75
116
  }
76
117
  return 1700 * h;
77
118
  }
78
- exports.b14_S_H = b14_S_H;
79
- // Exported for testing
119
+ // @internal - Exported for unit testing only
80
120
  function b13_S_H(s) {
81
- var B13_HS_I = [0, 1, 1, 3, 5, 6], B13_HS_J = [0, -2, 2, -12, -4, -3], B13_HS_N = [0.913965547600543, -0.0000430944856041991, 60.3235694765419, 1.17518273082168E-18, 0.220000904781292, -69.0815545851641], sig = s / 3.8, h = 0;
82
- for (var i = 0; i < 6; i++) {
83
- var N = B13_HS_N[i], I = B13_HS_I[i], J = B13_HS_J[i];
121
+ let B13_HS_I = [0, 1, 1, 3, 5, 6], B13_HS_J = [0, -2, 2, -12, -4, -3], B13_HS_N = [0.913965547600543, -0.0000430944856041991, 60.3235694765419, 1.17518273082168E-18, 0.220000904781292, -69.0815545851641], sig = s / 3.8, h = 0;
122
+ for (let i = 0; i < 6; i++) {
123
+ let N = B13_HS_N[i], I = B13_HS_I[i], J = B13_HS_J[i];
84
124
  h += N * Math.pow(sig - 0.884, I) * Math.pow(sig - 0.864, J);
85
125
  }
86
126
  return 1700 * h;
87
127
  }
88
- exports.b13_S_H = b13_S_H;
89
128
  // Calculates the temperature on the region 2-3 boundary S-curve
90
129
  // T_B23(h,s) Equation 8 in HS Region 3 & 4 in suplementry
91
- // Exported for testing
130
+ // @internal - Exported for unit testing only
92
131
  function b23_HS_T(h, s) {
93
- var B23_HS_I = [-12, -10, -8, -4, -3, -2, -2, -2, -2, 0, 1, 1, 1, 3, 3, 5, 6, 6, 8, 8, 8, 12, 12, 14, 14], B23_HS_J = [10, 8, 3, 4, 3, -6, 2, 3, 4, 0, -3, -2, 10, -2, -1, -5, -6, -3, -8, -2, -1, -12, -1, -12, 1], B23_HS_N = [6.2909626082981E-4, -8.23453502583165E-4, 5.15446951519474E-8, -1.17565945784945, 3.48519684726192, -5.07837382408313E-12, -2.84637670005479, -2.36092263939673, 6.01492324973779, 1.48039650824546, 3.60075182221907E-4, -1.26700045009952E-2, -1.22184332521413E6, 1.49276502463272E-1, 6.98733471798484E-1, -2.52207040114321E-2, 1.47151930985213E-2, -1.08618917681849, -9.36875039816322E-4, 8.19877897570217E1, -1.82041861521835E2, 2.61907376402688E-6, -2.91626417025961E4, 1.40660774926165E-5, 7.83237062349385E6], m = h / 3000, sig = s / 5.3, T = 0;
94
- for (var i = 0; i < 25; i++) {
95
- var N = B23_HS_N[i], I = B23_HS_I[i], J = B23_HS_J[i];
132
+ let B23_HS_I = [-12, -10, -8, -4, -3, -2, -2, -2, -2, 0, 1, 1, 1, 3, 3, 5, 6, 6, 8, 8, 8, 12, 12, 14, 14], B23_HS_J = [10, 8, 3, 4, 3, -6, 2, 3, 4, 0, -3, -2, 10, -2, -1, -5, -6, -3, -8, -2, -1, -12, -1, -12, 1], B23_HS_N = [6.2909626082981E-4, -8.23453502583165E-4, 5.15446951519474E-8, -1.17565945784945, 3.48519684726192, -5.07837382408313E-12, -2.84637670005479, -2.36092263939673, 6.01492324973779, 1.48039650824546, 3.60075182221907E-4, -1.26700045009952E-2, -1.22184332521413E6, 1.49276502463272E-1, 6.98733471798484E-1, -2.52207040114321E-2, 1.47151930985213E-2, -1.08618917681849, -9.36875039816322E-4, 8.19877897570217E1, -1.82041861521835E2, 2.61907376402688E-6, -2.91626417025961E4, 1.40660774926165E-5, 7.83237062349385E6], m = h / 3000, sig = s / 5.3, T = 0;
133
+ for (let i = 0; i < 25; i++) {
134
+ let N = B23_HS_N[i], I = B23_HS_I[i], J = B23_HS_J[i];
96
135
  T += N * Math.pow(m - 0.727, I) * Math.pow(sig - 0.864, J);
97
136
  }
98
137
  return 900 * T;
99
138
  }
100
- exports.b23_HS_T = b23_HS_T;
101
139
  // The boundary equation for HS regions 2A and 2b (Equation 2 in supplementary release for HS)
102
- // Exported for testing
140
+ // @internal - Exported for unit testing only
103
141
  function b2ab_S_H(s) {
104
142
  return (-3498.98083432139 + 2575.60716905876 * s + -421.073558227969 * s * s + 27.6349063799944 * s * s * s);
105
143
  }
106
- exports.b2ab_S_H = b2ab_S_H;
107
144
  // Equation 5 in the region 3 & 4 HS suplementary release
108
- // Exported for testing
145
+ // @internal - Exported for unit testing only
109
146
  function b2ab_S_Hsat(s) {
110
- var B2ab_I = [1, 1, 2, 2, 4, 4, 7, 8, 8, 10, 12, 12, 18, 20, 24, 28, 28, 28, 28, 28, 32, 32, 32, 32, 32, 36, 36, 36, 36, 36], B2ab_J = [8, 24, 4, 32, 1, 2, 7, 5, 12, 1, 0, 7, 10, 12, 32, 8, 12, 20, 22, 24, 2, 7, 12, 14, 24, 10, 12, 20, 22, 28], B2ab_N = [-0.524581170928788E3, -0.926947218142218E7, -0.237385107491666E3, 0.210770155812776E11, -0.239494562010986E2, 0.221802480294197E3, -0.510472533393438E7, 0.124981396109147E7, 0.200008436996201E10, -0.815158509791035E3, -0.157612685637523E3, -0.114200422332791E11, 0.662364680776872E16, -0.227622818296144E19, -0.171048081348406E32, 6.60788766938091E15, 1.66320055886021E22, -2.18003784381501E29, -7.87276140295618E29, 1.51062329700346E31, 7.95732170300541E6, 1.31957647355347E15, -3.2509706829914E23, -4.18600611419248E25, 2.97478906557467E34, -9.53588761745473E19, 1.66957699620939E24, -1.75407764869978E32, 3.47581490626396E34, -7.10971318427851E38], sig1 = s / 5.21, sig2 = s / 9.2, Hsat = 0;
111
- for (var i = 0; i < 30; i++) {
112
- var I = B2ab_I[i], J = B2ab_J[i], N = B2ab_N[i];
147
+ let B2ab_I = [1, 1, 2, 2, 4, 4, 7, 8, 8, 10, 12, 12, 18, 20, 24, 28, 28, 28, 28, 28, 32, 32, 32, 32, 32, 36, 36, 36, 36, 36], B2ab_J = [8, 24, 4, 32, 1, 2, 7, 5, 12, 1, 0, 7, 10, 12, 32, 8, 12, 20, 22, 24, 2, 7, 12, 14, 24, 10, 12, 20, 22, 28], B2ab_N = [-0.524581170928788E3, -0.926947218142218E7, -0.237385107491666E3, 0.210770155812776E11, -0.239494562010986E2, 0.221802480294197E3, -0.510472533393438E7, 0.124981396109147E7, 0.200008436996201E10, -0.815158509791035E3, -0.157612685637523E3, -0.114200422332791E11, 0.662364680776872E16, -0.227622818296144E19, -0.171048081348406E32, 6.60788766938091E15, 1.66320055886021E22, -2.18003784381501E29, -7.87276140295618E29, 1.51062329700346E31, 7.95732170300541E6, 1.31957647355347E15, -3.2509706829914E23, -4.18600611419248E25, 2.97478906557467E34, -9.53588761745473E19, 1.66957699620939E24, -1.75407764869978E32, 3.47581490626396E34, -7.10971318427851E38], sig1 = s / 5.21, sig2 = s / 9.2, Hsat = 0;
148
+ for (let i = 0; i < 30; i++) {
149
+ let I = B2ab_I[i], J = B2ab_J[i], N = B2ab_N[i];
113
150
  Hsat += N * Math.pow(1 / sig1 - 0.513, I) * Math.pow(sig2 - 0.524, J);
114
151
  }
115
152
  return 2800 * Math.exp(Hsat);
116
153
  }
117
- exports.b2ab_S_Hsat = b2ab_S_Hsat;
118
- // h"_2c3b(s) Equation 6 in HS region 3 and 4 suplementary release
119
- // Exported for testing
154
+ // h"_2c3b(s) Equation 6 in HS region 3 and 4 supplementary release
155
+ // @internal - Exported for unit testing only
120
156
  function b2c3b_S_H(s) {
121
157
  // Table 17 in in IAPWS-97 HS region 3 and 4
122
- var B2c3b_HS_I = [0, 0, 0, 1, 1, 5, 6, 7, 8, 8, 12, 16, 22, 22, 24, 36], B2c3b_HS_J = [0, 3, 4, 0, 12, 36, 12, 16, 2, 20, 32, 36, 2, 32, 7, 20], B2c3b_HS_N = [1.04351280732769, -2.27807912708513, 1.80535256723202, 0.420440834792042, -1.0572124483466E5, 4.36911607493884E24, -3.28032702839753E11, -6.7868676080427E15, 7.43957464645363E3, -3.56896445355761E19, 1.67590585186801E31, -3.55028625419105E37, 3.96611982166538E11, -4.14716268484468E40, 3.59080103867382E18, -1.16994334851995E40], h = 0, sigma = s / 5.9;
123
- for (var i = 0; i < 16; i++) {
124
- var I = B2c3b_HS_I[i], J = B2c3b_HS_J[i], N = B2c3b_HS_N[i];
158
+ let B2c3b_HS_I = [0, 0, 0, 1, 1, 5, 6, 7, 8, 8, 12, 16, 22, 22, 24, 36], B2c3b_HS_J = [0, 3, 4, 0, 12, 36, 12, 16, 2, 20, 32, 36, 2, 32, 7, 20], B2c3b_HS_N = [1.04351280732769, -2.27807912708513, 1.80535256723202, 0.420440834792042, -1.0572124483466E5, 4.36911607493884E24, -3.28032702839753E11, -6.7868676080427E15, 7.43957464645363E3, -3.56896445355761E19, 1.67590585186801E31, -3.55028625419105E37, 3.96611982166538E11, -4.14716268484468E40, 3.59080103867382E18, -1.16994334851995E40], h = 0, sigma = s / 5.9;
159
+ for (let i = 0; i < 16; i++) {
160
+ let I = B2c3b_HS_I[i], J = B2c3b_HS_J[i], N = B2c3b_HS_N[i];
125
161
  h += N * Math.pow(sigma - 1.02, I) * Math.pow(sigma - 0.726, J);
126
162
  }
127
163
  return 2800 * Math.pow(h, 4);
128
164
  }
129
- exports.b2c3b_S_H = b2c3b_S_H;
130
165
  // h'_3a Equation 4 in HS Region 3 and 4
131
166
  // Used as a boundary check between 3a and 3b when P < Pc
132
167
  // Function to work out the backwards (h,s) boundry for region 3A
133
- // Exported for testing
168
+ // @internal - Exported for unit testing only
134
169
  function b3A_S_H(s) {
135
170
  // Table 10 in IAPWS-97 HS region 3 and 4
136
- var B3A_HS_I = [0, 0, 0, 0, 2, 3, 4, 4, 5, 5, 6, 7, 7, 7, 10, 10, 10, 32, 32], B3A_HS_J = [1, 4, 10, 16, 1, 36, 3, 16, 20, 36, 4, 2, 28, 32, 14, 32, 36, 0, 6], B3A_HS_N = [0.822673364673336, 0.181977213534479, -0.0112000260313624, -0.000746778287048033, -0.179046263257381, 0.0424220110836657, -0.341355823438768, -2.09881740853565, -8.22477343323596, -4.99684082076008, 0.191413958471069, 0.0581062241093136, -1655.05498701029, 1588.70443421201, -85.0623535172818, -31771.4386511207, -94589.0406632871, -1.3927384708869E-6, 0.63105253224098], sig = s / 3.8, hdash = 0;
137
- for (var i = 0; i < 19; i++) {
138
- var N = B3A_HS_N[i], I = B3A_HS_I[i], J = B3A_HS_J[i];
171
+ let B3A_HS_I = [0, 0, 0, 0, 2, 3, 4, 4, 5, 5, 6, 7, 7, 7, 10, 10, 10, 32, 32], B3A_HS_J = [1, 4, 10, 16, 1, 36, 3, 16, 20, 36, 4, 2, 28, 32, 14, 32, 36, 0, 6], B3A_HS_N = [0.822673364673336, 0.181977213534479, -0.0112000260313624, -0.000746778287048033, -0.179046263257381, 0.0424220110836657, -0.341355823438768, -2.09881740853565, -8.22477343323596, -4.99684082076008, 0.191413958471069, 0.0581062241093136, -1655.05498701029, 1588.70443421201, -85.0623535172818, -31771.4386511207, -94589.0406632871, -1.3927384708869E-6, 0.63105253224098], sig = s / 3.8, hdash = 0;
172
+ for (let i = 0; i < 19; i++) {
173
+ let N = B3A_HS_N[i], I = B3A_HS_I[i], J = B3A_HS_J[i];
139
174
  hdash += N * Math.pow(sig - 1.09, I) * Math.pow(sig + 0.0000366, J);
140
175
  }
141
176
  return 1700 * hdash;
142
177
  }
143
- exports.b3A_S_H = b3A_S_H;
144
178
  //
145
179
  // Backwards equation for region 1 (h and s given)
146
180
  // Calculates P and uses it in the forwards equations
147
181
  //
148
182
  function r1(h, s) {
149
- var P = r1_HS_P(h, s), T = PH.r1_PH_T(P, h);
183
+ let P = r1_HS_P(h, s), T = PH.r1_PH_T(P, h);
150
184
  if (P >= NS.CONST('MIN_P') && P <= NS.CONST('MAX_P')) {
151
185
  return PT.r1(P, T);
152
186
  }
153
- else {
154
- throwOutOfRange();
155
- }
187
+ throwOutOfRange("Region 1 (h,s) : ");
156
188
  }
157
189
  function r1_HS_P(h, s) {
158
- var R1_HS_I = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 5], R1_HS_J = [0, 1, 2, 4, 5, 6, 8, 14, 0, 1, 4, 6, 0, 1, 10, 4, 1, 4, 0], R1_HS_N = [-0.691997014660582, -18.361254878756, -9.28332409297335, 65.9639569909906, -16.2060388912024, 450.620017338667, 854.68067822417, 6075.23214001161, 32.6487682621856, -26.9408844582931, -319.9478483343, -928.35430704332, 30.3634537455249, -65.0540422444146, -4309.9131651613, -747.512324096068, 730.000345529245, 1142.84032569021, -436.407041874559], m = h / 3400, sig = s / 7.6, P = 0;
159
- for (var i = 0; i < 19; i++) {
160
- var N = R1_HS_N[i], I = R1_HS_I[i], J = R1_HS_J[i];
190
+ let R1_HS_I = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 5], R1_HS_J = [0, 1, 2, 4, 5, 6, 8, 14, 0, 1, 4, 6, 0, 1, 10, 4, 1, 4, 0], R1_HS_N = [-0.691997014660582, -18.361254878756, -9.28332409297335, 65.9639569909906, -16.2060388912024, 450.620017338667, 854.68067822417, 6075.23214001161, 32.6487682621856, -26.9408844582931, -319.9478483343, -928.35430704332, 30.3634537455249, -65.0540422444146, -4309.9131651613, -747.512324096068, 730.000345529245, 1142.84032569021, -436.407041874559], m = h / 3400, sig = s / 7.6, P = 0;
191
+ for (let i = 0; i < 19; i++) {
192
+ let N = R1_HS_N[i], I = R1_HS_I[i], J = R1_HS_J[i];
161
193
  P += N * Math.pow(m + 0.05, I) * Math.pow(sig + 0.05, J);
162
194
  }
163
195
  return 100 * P;
@@ -167,16 +199,14 @@ function r1_HS_P(h, s) {
167
199
  // Calculates P and uses it in the forwards equations
168
200
  //
169
201
  function r2(h, s) {
170
- var P = r2_HS_P(h, s);
202
+ let P = r2_HS_P(h, s);
171
203
  if (P >= NS.CONST('MIN_P') && P <= NS.CONST('MAX_P')) {
172
204
  return PH.r2(P, h);
173
205
  }
174
- else {
175
- throwOutOfRange();
176
- }
206
+ throwOutOfRange("Region 2 (h,s) : ");
177
207
  }
178
208
  function r2_HS_P(h, s) {
179
- var P;
209
+ let P;
180
210
  if (h <= b2ab_S_H(s)) {
181
211
  P = r2A_HS_P(h, s);
182
212
  }
@@ -191,25 +221,25 @@ function r2_HS_P(h, s) {
191
221
  return P;
192
222
  }
193
223
  function r2A_HS_P(h, s) {
194
- var R2A_HS_I = [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 5, 5, 6, 7], R2A_HS_J = [1, 3, 6, 16, 20, 22, 0, 1, 2, 3, 5, 6, 10, 16, 20, 22, 3, 16, 20, 0, 2, 3, 6, 16, 16, 3, 16, 3, 1], R2A_HS_N = [-0.0182575361923032, -0.125229548799536, 0.592290437320145, 6.04769706185122, 238.624965444474, -298.639090222922, 0.051225081304075, -0.437266515606486, 0.413336902999504, -5.16468254574773, -5.57014838445711, 12.8555037824478, 11.414410895329, -119.504225652714, -2847.7798596156, 4317.57846408006, 1.1289404080265, 1974.09186206319, 1516.12444706087, 0.0141324451421235, 0.585501282219601, -2.97258075863012, 5.94567314847319, -6236.56565798905, 9659.86235133332, 6.81500934948134, -6332.07286824489, -5.5891922446576, 0.0400645798472063], m = h / 4200, sig = s / 12, P = 0;
195
- for (var i = 0; i < 29; i++) {
196
- var N = R2A_HS_N[i], I = R2A_HS_I[i], J = R2A_HS_J[i];
224
+ let R2A_HS_I = [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 5, 5, 6, 7], R2A_HS_J = [1, 3, 6, 16, 20, 22, 0, 1, 2, 3, 5, 6, 10, 16, 20, 22, 3, 16, 20, 0, 2, 3, 6, 16, 16, 3, 16, 3, 1], R2A_HS_N = [-0.0182575361923032, -0.125229548799536, 0.592290437320145, 6.04769706185122, 238.624965444474, -298.639090222922, 0.051225081304075, -0.437266515606486, 0.413336902999504, -5.16468254574773, -5.57014838445711, 12.8555037824478, 11.414410895329, -119.504225652714, -2847.7798596156, 4317.57846408006, 1.1289404080265, 1974.09186206319, 1516.12444706087, 0.0141324451421235, 0.585501282219601, -2.97258075863012, 5.94567314847319, -6236.56565798905, 9659.86235133332, 6.81500934948134, -6332.07286824489, -5.5891922446576, 0.0400645798472063], m = h / 4200, sig = s / 12, P = 0;
225
+ for (let i = 0; i < 29; i++) {
226
+ let N = R2A_HS_N[i], I = R2A_HS_I[i], J = R2A_HS_J[i];
197
227
  P += N * Math.pow(m - 0.5, I) * Math.pow(sig - 1.2, J);
198
228
  }
199
229
  return 4 * Math.pow(P, 4); // Corresponding pressure for h, s
200
230
  }
201
231
  function r2B_HS_P(h, s) {
202
- var R2B_HS_I = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 8, 12, 14], R2B_HS_J = [0, 1, 2, 4, 8, 0, 1, 2, 3, 5, 12, 1, 6, 18, 0, 1, 7, 12, 1, 16, 1, 12, 1, 8, 18, 1, 16, 1, 3, 14, 18, 10, 16], R2B_HS_N = [0.0801496989929495, -0.543862807146111, 0.337455597421283, 8.9055545115745, 313.840736431485, 0.797367065977789, -1.2161697355624, 8.72803386937477, -16.9769781757602, -186.552827328416, 95115.9274344237, -18.9168510120494, -4334.0703719484, 543212633.012715, 0.144793408386013, 128.024559637516, -67230.9534071268, 33697238.0095287, -586.63419676272, -22140322476.9889, 1716.06668708389, -570817595.806302, -3121.09693178482, -2078413.8463301, 3056059461577.86, 3221.57004314333, 326810259797.295, -1441.04158934487, 410.694867802691, 109077066873.024, -24796465425889.3, 1888019068.65134, -123651009018773], m = h / 4100, sig = s / 7.9, P = 0;
203
- for (var i = 0; i < 33; i++) {
204
- var N = R2B_HS_N[i], I = R2B_HS_I[i], J = R2B_HS_J[i];
232
+ let R2B_HS_I = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 8, 12, 14], R2B_HS_J = [0, 1, 2, 4, 8, 0, 1, 2, 3, 5, 12, 1, 6, 18, 0, 1, 7, 12, 1, 16, 1, 12, 1, 8, 18, 1, 16, 1, 3, 14, 18, 10, 16], R2B_HS_N = [0.0801496989929495, -0.543862807146111, 0.337455597421283, 8.9055545115745, 313.840736431485, 0.797367065977789, -1.2161697355624, 8.72803386937477, -16.9769781757602, -186.552827328416, 95115.9274344237, -18.9168510120494, -4334.0703719484, 543212633.012715, 0.144793408386013, 128.024559637516, -67230.9534071268, 33697238.0095287, -586.63419676272, -22140322476.9889, 1716.06668708389, -570817595.806302, -3121.09693178482, -2078413.8463301, 3056059461577.86, 3221.57004314333, 326810259797.295, -1441.04158934487, 410.694867802691, 109077066873.024, -24796465425889.3, 1888019068.65134, -123651009018773], m = h / 4100, sig = s / 7.9, P = 0;
233
+ for (let i = 0; i < 33; i++) {
234
+ let N = R2B_HS_N[i], I = R2B_HS_I[i], J = R2B_HS_J[i];
205
235
  P += N * Math.pow(m - 0.6, I) * Math.pow(sig - 1.01, J);
206
236
  }
207
237
  return 100 * Math.pow(P, 4);
208
238
  }
209
239
  function r2C_HS_P(h, s) {
210
- var R2C_HS_I = [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 5, 5, 5, 5, 6, 6, 10, 12, 16], R2C_HS_J = [0, 1, 2, 3, 4, 8, 0, 2, 5, 8, 14, 2, 3, 7, 10, 18, 0, 5, 8, 16, 18, 18, 1, 4, 6, 14, 8, 18, 7, 7, 10], R2C_HS_N = [0.112225607199012, -3.39005953606712, -32.0503911730094, -197.5973051049, -407.693861553446, 13294.3775222331, 1.70846839774007, 37.3694198142245, 3581.44365815434, 423014.446424664, -751071025.760063, 52.3446127607898, -228.351290812417, -960652.417056937, -80705929.2526074, 1626980172256.69, 0.772465073604171, 46392.9973837746, -13731788.5134128, 1704703926305.12, -25110462818730.8, 31774883083552.0, 53.8685623675312, -55308.9094625169, -1028615.22421405, 2042494187562.34, 273918446.626977, -2639631463126850.0, -1078908541.08088, -29649262098.0124, -1117549073234240.0], m = h / 3500, sig = s / 5.9, P = 0;
211
- for (var i = 0; i < 31; i++) {
212
- var N = R2C_HS_N[i], I = R2C_HS_I[i], J = R2C_HS_J[i];
240
+ let R2C_HS_I = [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 5, 5, 5, 5, 6, 6, 10, 12, 16], R2C_HS_J = [0, 1, 2, 3, 4, 8, 0, 2, 5, 8, 14, 2, 3, 7, 10, 18, 0, 5, 8, 16, 18, 18, 1, 4, 6, 14, 8, 18, 7, 7, 10], R2C_HS_N = [0.112225607199012, -3.39005953606712, -32.0503911730094, -197.5973051049, -407.693861553446, 13294.3775222331, 1.70846839774007, 37.3694198142245, 3581.44365815434, 423014.446424664, -751071025.760063, 52.3446127607898, -228.351290812417, -960652.417056937, -80705929.2526074, 1626980172256.69, 0.772465073604171, 46392.9973837746, -13731788.5134128, 1704703926305.12, -25110462818730.8, 31774883083552.0, 53.8685623675312, -55308.9094625169, -1028615.22421405, 2042494187562.34, 273918446.626977, -2639631463126850.0, -1078908541.08088, -29649262098.0124, -1117549073234240.0], m = h / 3500, sig = s / 5.9, P = 0;
241
+ for (let i = 0; i < 31; i++) {
242
+ let N = R2C_HS_N[i], I = R2C_HS_I[i], J = R2C_HS_J[i];
213
243
  P += N * Math.pow(m - 0.7, I) * Math.pow(sig - 1.1, J);
214
244
  }
215
245
  return 100 * Math.pow(P, 4);
@@ -218,13 +248,11 @@ function r2C_HS_P(h, s) {
218
248
  // Region 3
219
249
  //
220
250
  function r3(h, s) {
221
- var P = r3_HS_P(h, s);
251
+ let P = r3_HS_P(h, s);
222
252
  if (P >= NS.CONST('MIN_P') && P <= NS.CONST('MAX_P')) {
223
253
  return PH.r2(P, h);
224
254
  }
225
- else {
226
- throwOutOfRange();
227
- }
255
+ throwOutOfRange("Region 3 (h,s) : ");
228
256
  }
229
257
  function r3_HS_P(h, s) {
230
258
  if (s <= NS.CONST('R3_CRT_S')) {
@@ -235,18 +263,18 @@ function r3_HS_P(h, s) {
235
263
  }
236
264
  }
237
265
  function r3A_HS_P(h, s) {
238
- var R3A_HS_I = [0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 6, 7, 8, 10, 10, 14, 18, 20, 22, 22, 24, 28, 28, 32, 32], R3A_HS_J = [0, 1, 5, 0, 3, 4, 8, 14, 6, 16, 0, 2, 3, 0, 1, 4, 5, 28, 28, 24, 1, 32, 36, 22, 28, 36, 16, 28, 36, 16, 36, 10, 28,], R3A_HS_N = [7.70889828326934, -26.0835009128688, 267.416218930389, 17.2221089496844, -293.54233214597, 614.135601882478, -61056.2757725674, -65127225.1118219, 73591.9313521937, -11664650591.4191, 35.5267086434461, -596.144543825955, -475.842430145708, 69.6781965359503, 335.674250377312, 25052.6809130882, 146997.380630766, 53806931509153400000.0, 1.43619827291346E+21, 36498586616599400000.0, -2547.41561156775, 2.40120197096563E+27, -3.93847464679496E+29, 1.47073407024852E+24, -4.26391250432059E+31, 1.94509340621077E+38, 6.66212132114896E+23, 7.06777016552858E+33, 1.75563621975576E+41, 1.08408607429124E+28, 7.30872705175151E+43, 1.5914584739887E+24, 3.77121605943324E+40], m = h / 2300, sig = s / 4.4, P = 0;
239
- for (var i = 0; i < 33; i++) {
240
- var N = R3A_HS_N[i], I = R3A_HS_I[i], J = R3A_HS_J[i];
266
+ let R3A_HS_I = [0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 6, 7, 8, 10, 10, 14, 18, 20, 22, 22, 24, 28, 28, 32, 32], R3A_HS_J = [0, 1, 5, 0, 3, 4, 8, 14, 6, 16, 0, 2, 3, 0, 1, 4, 5, 28, 28, 24, 1, 32, 36, 22, 28, 36, 16, 28, 36, 16, 36, 10, 28,], R3A_HS_N = [7.70889828326934, -26.0835009128688, 267.416218930389, 17.2221089496844, -293.54233214597, 614.135601882478, -61056.2757725674, -65127225.1118219, 73591.9313521937, -11664650591.4191, 35.5267086434461, -596.144543825955, -475.842430145708, 69.6781965359503, 335.674250377312, 25052.6809130882, 146997.380630766, 53806931509153400000.0, 1.43619827291346E+21, 36498586616599400000.0, -2547.41561156775, 2.40120197096563E+27, -3.93847464679496E+29, 1.47073407024852E+24, -4.26391250432059E+31, 1.94509340621077E+38, 6.66212132114896E+23, 7.06777016552858E+33, 1.75563621975576E+41, 1.08408607429124E+28, 7.30872705175151E+43, 1.5914584739887E+24, 3.77121605943324E+40], m = h / 2300, sig = s / 4.4, P = 0;
267
+ for (let i = 0; i < 33; i++) {
268
+ let N = R3A_HS_N[i], I = R3A_HS_I[i], J = R3A_HS_J[i];
241
269
  P += N * Math.pow(m - 1.01, I) * Math.pow(sig - 0.75, J);
242
270
  }
243
271
  return 99 * P;
244
272
  }
245
273
  function r3B_HS_P(h, s) {
246
274
  // Table X data from IAPWS-97
247
- var R3B_HS_I = [-12, -12, -12, -12, -12, -10, -10, -10, -10, -8, -8, -6, -6, -6, -6, -5, -4, -4, -4, -3, -3, -3, -3, -2, -2, -1, 0, 2, 2, 5, 6, 8, 10, 14, 14], R3B_HS_J = [2, 10, 12, 14, 20, 2, 10, 14, 18, 2, 8, 2, 6, 7, 8, 10, 4, 5, 8, 1, 3, 5, 6, 0, 1, 0, 3, 0, 1, 0, 1, 1, 1, 3, 7], R3B_HS_N = [1.25244360717979E-13, -0.0126599322553713, 5.06878030140626, 31.7847171154202, -391041.161399932, -9.75733406392044E-11, -18.6312419488279, 510.973543414101, 373847.005822362, 2.99804024666572E-8, 20.0544393820342, -4.98030487662829E-6, -10.230180636003, 55.2819126990325, -206.211367510878, -7940.12232324823, 7.82248472028153, -58.6544326902468, 3550.73647696481, -0.000115303107290162, -1.75092403171802, 257.98168774816, -727.048374179467, 0.000121644822609198, 0.0393137871762692, 0.00704181005909296, -82.910820069811, -0.26517881813125, 13.7531682453991, -52.2394090753046, 2405.56298941048, -22736.1631268929, 89074.6343932567, -23923456.5822486, 5687958081.29714], m = h / 2800, sig = s / 5.3, P = 0;
248
- for (var i = 0; i < 35; i++) {
249
- var N = R3B_HS_N[i], I = R3B_HS_I[i], J = R3B_HS_J[i];
275
+ let R3B_HS_I = [-12, -12, -12, -12, -12, -10, -10, -10, -10, -8, -8, -6, -6, -6, -6, -5, -4, -4, -4, -3, -3, -3, -3, -2, -2, -1, 0, 2, 2, 5, 6, 8, 10, 14, 14], R3B_HS_J = [2, 10, 12, 14, 20, 2, 10, 14, 18, 2, 8, 2, 6, 7, 8, 10, 4, 5, 8, 1, 3, 5, 6, 0, 1, 0, 3, 0, 1, 0, 1, 1, 1, 3, 7], R3B_HS_N = [1.25244360717979E-13, -0.0126599322553713, 5.06878030140626, 31.7847171154202, -391041.161399932, -9.75733406392044E-11, -18.6312419488279, 510.973543414101, 373847.005822362, 2.99804024666572E-8, 20.0544393820342, -4.98030487662829E-6, -10.230180636003, 55.2819126990325, -206.211367510878, -7940.12232324823, 7.82248472028153, -58.6544326902468, 3550.73647696481, -0.000115303107290162, -1.75092403171802, 257.98168774816, -727.048374179467, 0.000121644822609198, 0.0393137871762692, 0.00704181005909296, -82.910820069811, -0.26517881813125, 13.7531682453991, -52.2394090753046, 2405.56298941048, -22736.1631268929, 89074.6343932567, -23923456.5822486, 5687958081.29714], m = h / 2800, sig = s / 5.3, P = 0;
276
+ for (let i = 0; i < 35; i++) {
277
+ let N = R3B_HS_N[i], I = R3B_HS_I[i], J = R3B_HS_J[i];
250
278
  P += N * Math.pow(m - 0.681, I) * Math.pow(sig - 0.792, J);
251
279
  }
252
280
  return 16.6 / P;
@@ -255,20 +283,20 @@ function r3B_HS_P(h, s) {
255
283
  // Region 4
256
284
  //
257
285
  function r4(h, s) {
258
- var T = r4_HS_Tsat(h, s), P = PT.r4_T_Psat(T);
286
+ let T = r4_HS_Tsat(h, s), P = PT.r4_T_Psat(T);
259
287
  return PT.solve(P, T);
260
288
  }
261
289
  // Tsat(h,s) Equation 9 in the HS Region 3 & 4 Supplementary release
262
- // Exported for texting
290
+ // @internal - Exported for unit testing only
263
291
  function r4_HS_Tsat(h, s) {
264
- var R4_I = [0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 8, 10, 10, 12, 14, 14, 16, 16, 18, 18, 18, 20, 28], R4_J = [0, 3, 12, 0, 1, 2, 5, 0, 5, 8, 0, 2, 3, 4, 0, 1, 1, 2, 4, 16, 6, 8, 22, 1, 20, 36, 24, 1, 28, 12, 32, 14, 22, 36, 24, 36], R4_N = [0.179882673606601, -0.267507455199603, 0.11627672261266E1, 0.147545428713616, -0.512871635973248, 0.421333567697984, 0.56374952218987, 0.429274443819153, -0.33570455214214E1, 0.108890916499278E2, -0.248483390456012, 0.30415322190639, -0.494819763939905, 0.107551674933261E1, 0.733888415457688E-1, 0.140170545411085E-1, -0.106110975998808, 0.168324361811875E-1, 0.125028363714877E1, 0.101316840309509E4, -0.151791558000712E1, 0.524277865990866E2, 0.230495545563912E5, 0.249459806365456E-1, 0.210796467412137E7, 0.366836848613065E9, -0.144814105365163E9, -0.17927637300359E-2, 0.489955602100459E10, 0.471262212070518E3, -0.829294390198652E11, -0.171545662263191E4, 0.355777682973575E7, 0.586062760258436E12, -0.129887635078195E8, 0.317247449371057057E11], mu = h / 2800, sig = s / 9.2, T = 0;
265
- for (var i = 0; i < 36; i++) {
266
- var I = R4_I[i], J = R4_J[i], N = R4_N[i];
292
+ let R4_I = [0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 8, 10, 10, 12, 14, 14, 16, 16, 18, 18, 18, 20, 28], R4_J = [0, 3, 12, 0, 1, 2, 5, 0, 5, 8, 0, 2, 3, 4, 0, 1, 1, 2, 4, 16, 6, 8, 22, 1, 20, 36, 24, 1, 28, 12, 32, 14, 22, 36, 24, 36], R4_N = [0.179882673606601, -0.267507455199603, 0.11627672261266E1, 0.147545428713616, -0.512871635973248, 0.421333567697984, 0.56374952218987, 0.429274443819153, -0.33570455214214E1, 0.108890916499278E2, -0.248483390456012, 0.30415322190639, -0.494819763939905, 0.107551674933261E1, 0.733888415457688E-1, 0.140170545411085E-1, -0.106110975998808, 0.168324361811875E-1, 0.125028363714877E1, 0.101316840309509E4, -0.151791558000712E1, 0.524277865990866E2, 0.230495545563912E5, 0.249459806365456E-1, 0.210796467412137E7, 0.366836848613065E9, -0.144814105365163E9, -0.17927637300359E-2, 0.489955602100459E10, 0.471262212070518E3, -0.829294390198652E11, -0.171545662263191E4, 0.355777682973575E7, 0.586062760258436E12, -0.129887635078195E8, 0.317247449371057057E11], mu = h / 2800, sig = s / 9.2, T = 0;
293
+ for (let i = 0; i < 36; i++) {
294
+ let I = R4_I[i], J = R4_J[i], N = R4_N[i];
267
295
  T += N * Math.pow(mu - 0.119, I) * Math.pow(sig - 1.07, J);
268
296
  }
269
297
  return 550 * T;
270
298
  }
271
- exports.r4_HS_Tsat = r4_HS_Tsat;
272
- function throwOutOfRange() {
273
- throw new Error("Input values out of range");
299
+ function throwOutOfRange(prefix_msg = "") {
300
+ throw new Error(`${prefix_msg}Input values out of range`);
274
301
  }
302
+ //# sourceMappingURL=HS.js.map
package/dist/HS.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HS.js","sourceRoot":"","sources":["../src/HS.ts"],"names":[],"mappings":"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"}
package/dist/IAPWS97.js CHANGED
@@ -1,18 +1,14 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || function (d, b) {
3
- for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
4
- function __() { this.constructor = d; }
5
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
6
- };
7
- var thermo_1 = require("@neutrium/thermo");
8
- var PT_1 = require('./PT');
9
- var PH_1 = require('./PH');
10
- var PS_1 = require('./PS');
11
- var HS_1 = require('./HS');
12
- var IAPWS97_EoS = (function (_super) {
13
- __extends(IAPWS97_EoS, _super);
14
- function IAPWS97_EoS() {
15
- _super.apply(this, arguments);
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IAPWS97_EoS = void 0;
4
+ const thermo_1 = require("@neutrium/thermo");
5
+ const PT_1 = require("./PT");
6
+ const PH_1 = require("./PH");
7
+ const PS_1 = require("./PS");
8
+ const HS_1 = require("./HS");
9
+ class IAPWS97_EoS extends thermo_1.EquationOfState {
10
+ constructor() {
11
+ super(...arguments);
16
12
  this.modes = [
17
13
  ['p', 't'],
18
14
  ['p', 'h'],
@@ -21,28 +17,32 @@ var IAPWS97_EoS = (function (_super) {
21
17
  ];
22
18
  this.name = "IAPWS97 formulations of the thermodynamic properties of water and steam";
23
19
  }
24
- IAPWS97_EoS.prototype.solve = function (inputs) {
25
- var mode = this.findModeIndex(inputs), r, p;
20
+ solve(inputs) {
21
+ let mode = this.findModeIndex(inputs), r = null, p = null;
26
22
  if (0 <= mode && mode <= 2) {
27
23
  p = inputs.p / 1000000; // Convert Pa to MPa for the calculation
28
24
  }
29
- switch (mode) {
30
- case 0:
31
- r = PT_1.solve(p, inputs.t);
32
- break; // P-T mode
33
- case 1:
34
- r = PH_1.solve(p, inputs.h);
35
- break; // P-H mode
36
- case 2:
37
- r = PS_1.solve(p, inputs.s);
38
- break; // P-S mode
39
- case 3:
40
- r = HS_1.solve(inputs.h, inputs.s);
41
- break; // H-S mode
42
- default: throw new Error('Insufficent inputs provided.');
25
+ if (p !== null) {
26
+ switch (mode) {
27
+ case 0:
28
+ r = (0, PT_1.solve)(p, inputs.t);
29
+ break; // P-T mode
30
+ case 1:
31
+ r = (0, PH_1.solve)(p, inputs.h);
32
+ break; // P-H mode
33
+ case 2:
34
+ r = (0, PS_1.solve)(p, inputs.s);
35
+ break; // P-S mode
36
+ case 3:
37
+ r = (0, HS_1.solve)(inputs.h, inputs.s);
38
+ break; // H-S mode
39
+ }
40
+ }
41
+ if (!r) {
42
+ throw new Error('Failed to solve for the given inputs.');
43
43
  }
44
44
  return r;
45
- };
46
- return IAPWS97_EoS;
47
- }(thermo_1.EquationOfState));
45
+ }
46
+ }
48
47
  exports.IAPWS97_EoS = IAPWS97_EoS;
48
+ //# sourceMappingURL=IAPWS97.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAPWS97.js","sourceRoot":"","sources":["../src/IAPWS97.ts"],"names":[],"mappings":";;;AAAA,6CAA0D;AAC1D,6BAAmC;AACnC,6BAAmC;AACnC,6BAAmC;AACnC,6BAAmC;AAEnC,MAAa,WAAY,SAAQ,wBAAe;IAAhD;;QAEC,UAAK,GAAG;YACP,CAAC,GAAG,EAAC,GAAG,CAAC;YACT,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;YACV,CAAC,GAAG,EAAE,GAAG,CAAC;SACV,CAAC;QACF,SAAI,GAAG,yEAAyE,CAAC;IA+BlF,CAAC;IA7BO,KAAK,CAAC,MAAY;QAExB,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EACpC,CAAC,GAAkB,IAAI,EACvB,CAAC,GAAmB,IAAI,CAAC;QAE1B,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAC1B,CAAC;YACA,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,OAAO,CAAC,CAAG,wCAAwC;QACjE,CAAC;QAED,IAAG,CAAC,KAAK,IAAI,EACb,CAAC;YACA,QAAO,IAAI,EACX,CAAC;gBACA,KAAK,CAAC;oBAAG,CAAC,GAAG,IAAA,UAAE,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;oBAAC,MAAM,CAAW,WAAW;gBAC1D,KAAK,CAAC;oBAAG,CAAC,GAAG,IAAA,UAAE,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;oBAAC,MAAM,CAAW,WAAW;gBAC1D,KAAK,CAAC;oBAAG,CAAC,GAAG,IAAA,UAAE,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;oBAAC,MAAM,CAAW,WAAW;gBAC1D,KAAK,CAAC;oBAAG,CAAC,GAAG,IAAA,UAAE,EAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;oBAAC,MAAM,CAAG,WAAW;YAC1D,CAAC;QACF,CAAC;QAED,IAAI,CAAC,CAAC,EACN,CAAC;YACA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,CAAC,CAAC;IACV,CAAC;CACD;AAvCD,kCAuCC"}