@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 +17 -10
- package/dist/HS.js +112 -84
- package/dist/HS.js.map +1 -0
- package/dist/IAPWS97.js +33 -33
- package/dist/IAPWS97.js.map +1 -0
- package/dist/PH.js +85 -50
- package/dist/PH.js.map +1 -0
- package/dist/PS.js +78 -41
- package/dist/PS.js.map +1 -0
- package/dist/PT.d.ts +1 -1
- package/dist/PT.js +205 -161
- package/dist/PT.js.map +1 -0
- package/dist/base.d.ts +29 -29
- package/dist/base.js +46 -43
- package/dist/base.js.map +1 -0
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -0
- package/package.json +2 -3
- package/spec/aux.spec.js +1 -1
- package/spec/hs.spec.js +1 -1
- package/spec/ph.spec.js +1 -1
- package/spec/ps.spec.js +1 -1
- package/spec/pt.spec.js +1 -1
- package/src/HS.ts +351 -363
- package/src/IAPWS97.ts +38 -31
- package/src/PH.ts +280 -282
- package/src/PS.ts +252 -250
- package/src/PT.ts +1076 -1066
- package/src/base.ts +217 -217
- package/src/index.ts +1 -1
- package/tsconfig.json +14 -12
- package/.npmignore +0 -9
- package/.vscode/tasks.json +0 -18
- /package/{license.txt → LICENSE} +0 -0
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @neutrium/thermo.eos.iapws97
|
|
2
2
|
|
|
3
3
|
## Introduction
|
|
4
4
|
|
|
5
|
-
|
|
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
|
|
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
|
|
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
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
|
|
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
|
|
49
|
+
// Comments : Determines which IAPWS-IF97 region a enthalpy and entropy combination lie in.
|
|
8
50
|
//
|
|
9
|
-
// @param h is the
|
|
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
|
-
|
|
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('
|
|
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
|
|
36
|
-
|
|
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
|
-
|
|
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
|
-
|
|
72
|
-
for (
|
|
73
|
-
|
|
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
|
-
|
|
79
|
-
// Exported for testing
|
|
119
|
+
// @internal - Exported for unit testing only
|
|
80
120
|
function b13_S_H(s) {
|
|
81
|
-
|
|
82
|
-
for (
|
|
83
|
-
|
|
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
|
-
|
|
94
|
-
for (
|
|
95
|
-
|
|
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
|
-
|
|
111
|
-
for (
|
|
112
|
-
|
|
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
|
-
|
|
118
|
-
//
|
|
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
|
-
|
|
123
|
-
for (
|
|
124
|
-
|
|
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
|
-
|
|
137
|
-
for (
|
|
138
|
-
|
|
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
|
-
|
|
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
|
-
|
|
154
|
-
throwOutOfRange();
|
|
155
|
-
}
|
|
187
|
+
throwOutOfRange("Region 1 (h,s) : ");
|
|
156
188
|
}
|
|
157
189
|
function r1_HS_P(h, s) {
|
|
158
|
-
|
|
159
|
-
for (
|
|
160
|
-
|
|
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
|
-
|
|
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
|
-
|
|
175
|
-
throwOutOfRange();
|
|
176
|
-
}
|
|
206
|
+
throwOutOfRange("Region 2 (h,s) : ");
|
|
177
207
|
}
|
|
178
208
|
function r2_HS_P(h, s) {
|
|
179
|
-
|
|
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
|
-
|
|
195
|
-
for (
|
|
196
|
-
|
|
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
|
-
|
|
203
|
-
for (
|
|
204
|
-
|
|
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
|
-
|
|
211
|
-
for (
|
|
212
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
239
|
-
for (
|
|
240
|
-
|
|
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
|
-
|
|
248
|
-
for (
|
|
249
|
-
|
|
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
|
-
|
|
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
|
|
290
|
+
// @internal - Exported for unit testing only
|
|
263
291
|
function r4_HS_Tsat(h, s) {
|
|
264
|
-
|
|
265
|
-
for (
|
|
266
|
-
|
|
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
|
-
|
|
272
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
25
|
-
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
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"}
|