@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/src/PS.ts
CHANGED
|
@@ -2,8 +2,6 @@ import {State} from '@neutrium/thermo';
|
|
|
2
2
|
import * as NS from './base';
|
|
3
3
|
import * as PT from './PT';
|
|
4
4
|
|
|
5
|
-
let R = NS.constants['R'];
|
|
6
|
-
|
|
7
5
|
//
|
|
8
6
|
// Comments : Determines which IAPWS-IF97 region a pressure and entropy combination lie in.
|
|
9
7
|
//
|
|
@@ -12,19 +10,19 @@ let R = NS.constants['R'];
|
|
|
12
10
|
//
|
|
13
11
|
export function solve(P : number, s: number) : State
|
|
14
12
|
{
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
13
|
+
let region = findRegion_PS(P,s),
|
|
14
|
+
result : State | null = null;
|
|
15
|
+
|
|
16
|
+
switch(region)
|
|
17
|
+
{
|
|
18
|
+
case 1 : result = r1(P, s); break;
|
|
19
|
+
case 2 : result = r2(P, s); break;
|
|
20
|
+
case 3 : result = r3(P, s); break;
|
|
21
|
+
//case 4 : result = R4_PS(P, s); break;
|
|
22
|
+
default : throw new Error('(P,s) : Inputs insufficient or out of range');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return result;
|
|
28
26
|
}
|
|
29
27
|
|
|
30
28
|
//
|
|
@@ -35,50 +33,54 @@ export function solve(P : number, s: number) : State
|
|
|
35
33
|
//
|
|
36
34
|
function findRegion_PS(P : number, s : number) : number
|
|
37
35
|
{
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
36
|
+
let r = PT.r5(P, NS.CONST('R5_MAX_T'));
|
|
37
|
+
|
|
38
|
+
if (
|
|
39
|
+
P >= NS.CONST('MIN_P') &&
|
|
40
|
+
P <= NS.CONST('MAX_P') &&
|
|
41
|
+
s >= NS.CONST('MIN_S') &&
|
|
42
|
+
s <= r.s!
|
|
43
|
+
) {
|
|
44
|
+
r = PT.r2(P, NS.CONST('R5_MIN_T'));
|
|
45
|
+
|
|
46
|
+
if (s > r.s! && P <= NS.CONST('R5_MAX_P'))
|
|
47
|
+
{
|
|
48
|
+
return 5;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (P > NS.CONST('B23_MIN_P'))
|
|
52
|
+
{
|
|
53
|
+
r = PT.r2(P, PT.b23_P_T(P));
|
|
54
|
+
|
|
55
|
+
if (s > r.s!)
|
|
56
|
+
{
|
|
57
|
+
return 2;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
r = PT.r3(P, NS.CONST('R3_MIN_T'));
|
|
61
|
+
|
|
62
|
+
if (s > r.s!)
|
|
63
|
+
{
|
|
64
|
+
return 3;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
r = PT.r1(P, PT.r4_P_Tsat(P));
|
|
69
|
+
|
|
70
|
+
if (P <= NS.CONST('B23_MIN_P') && s > r.s!)
|
|
71
|
+
{
|
|
72
|
+
return 2;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
r = PT.r1(P, NS.CONST('MIN_T'));
|
|
76
|
+
|
|
77
|
+
if (s >= r.s!)
|
|
78
|
+
{
|
|
79
|
+
return 1;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return -1;
|
|
82
84
|
}
|
|
83
85
|
|
|
84
86
|
//
|
|
@@ -86,30 +88,30 @@ function findRegion_PS(P : number, s : number) : number
|
|
|
86
88
|
//
|
|
87
89
|
function r1(P : number, s : number) : State
|
|
88
90
|
{
|
|
89
|
-
|
|
91
|
+
let T = r1_PS_T(P,s);
|
|
90
92
|
|
|
91
|
-
|
|
93
|
+
return PT.r1(P,T);
|
|
92
94
|
}
|
|
93
95
|
|
|
94
96
|
function r1_PS_T(P : number, s : number) : number
|
|
95
97
|
{
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
98
|
+
let R1_PS_I = [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 4],
|
|
99
|
+
R1_PS_J = [0, 1, 2, 3, 11, 31, 0, 1, 2, 3, 12, 31, 0, 1, 2, 9, 31, 10, 32, 32],
|
|
100
|
+
R1_PS_N = [174.78268058307, 34.806930892873, 6.5292584978455, 0.33039981775489, -1.9281382923196E-7, -2.4909197244573E-23, -0.26107636489332, 0.22592965981586, -0.064256463395226, 0.0078876289270526, 3.5672110607366E-10, 1.7332496994895E-24, 0.00056608900654837, -0.00032635483139717, 0.000044778286690632, -5.1322156908507E-10, -4.2522657042207E-26, 2.6400441360689E-13, 7.8124600459723E-29, -3.0732199903668E-31],
|
|
101
|
+
pi = P,
|
|
102
|
+
sig = s,
|
|
103
|
+
T = 0;
|
|
104
|
+
|
|
105
|
+
for (let i = 0; i < 20; i++)
|
|
106
|
+
{
|
|
107
|
+
var N = R1_PS_N[i],
|
|
108
|
+
I = R1_PS_I[i],
|
|
109
|
+
J = R1_PS_J[i];
|
|
110
|
+
|
|
111
|
+
T += N*Math.pow(pi,I)*Math.pow(sig+2,J);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return T;
|
|
113
115
|
}
|
|
114
116
|
|
|
115
117
|
//
|
|
@@ -117,95 +119,95 @@ function r1_PS_T(P : number, s : number) : number
|
|
|
117
119
|
//
|
|
118
120
|
function r2(P : number, s : number) : State
|
|
119
121
|
{
|
|
120
|
-
|
|
122
|
+
let T = r2_PS_T(P,s);
|
|
121
123
|
|
|
122
|
-
|
|
124
|
+
return PT.r2(P,T);
|
|
123
125
|
}
|
|
124
126
|
|
|
125
127
|
function r2_PS_T(P : number, s : number) : number
|
|
126
128
|
{
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
129
|
+
let T : number;
|
|
130
|
+
|
|
131
|
+
if (P <= NS.CONST('R2_CRT_P'))
|
|
132
|
+
{
|
|
133
|
+
T = r2A_PS_T(P, s);
|
|
134
|
+
}
|
|
135
|
+
else
|
|
136
|
+
{
|
|
137
|
+
if(s >= NS.CONST('R2_CRT_S'))
|
|
138
|
+
{
|
|
139
|
+
T = r2B_PS_T(P, s);
|
|
140
|
+
}
|
|
141
|
+
else
|
|
142
|
+
{
|
|
143
|
+
T = r2C_PS_T(P, s);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return T;
|
|
146
148
|
}
|
|
147
149
|
|
|
148
150
|
function r2A_PS_T(P : number, s : number) : number
|
|
149
151
|
{
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
152
|
+
let R2A_PS_I = [-1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.25, -1.25, -1.25, -1, -1, -1, -1, -1, -1, -0.75, -0.75, -0.5, -0.5, -0.5, -0.5, -0.25, -0.25, -0.25, -0.25, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.75, 0.75, 0.75, 0.75, 1, 1, 1.25, 1.25, 1.5, 1.5],
|
|
153
|
+
R2A_PS_J = [-24, -23, -19, -13, -11, -10, -19, -15, -6, -26, -21, -17, -16, -9, -8, -15, -14, -26, -13, -9, -7, -27, -25, -11, -6, 1, 4, 8, 11, 0, 1, 5, 6, 10, 14, 16, 0, 4, 9, 17, 7, 18, 3, 15, 5, 18],
|
|
154
|
+
R2A_PS_N = [-392359.83861984, 515265.7382727, 40482.443161048, -321.93790923902, 96.961424218694, -22.867846371773, -449429.14124357, -5011.8336020166, 0.35684463560015, 44235.33584819, -13673.388811708, 421632.6027864, 22516.925837475, 474.42144865646, -149.31130797647, -197811.26320452, -23554.39947076, -19070.616302076, 55375.669883164, 3829.3691437363, -603.91860580567, 1936.3102620331, 4266.064369861, -5978.0638872718, -704.01463926862, 338.36784107553, 20.862786635187, 0.033834172656196, -0.000043124428414893, 166.53791356412, -139.86292055898, -0.78849547999872, 0.072132411753872, -0.0059754839398283, -0.000012141358953904, 2.3227096733871E-7, -10.538463566194, 2.0718925496502, -0.072193155260427, 2.074988708112E-7, -0.018340657911379, 2.9036272348696E-7, 0.21037527893619, 0.00025681239729999, -0.012799002933781, -8.2198102652018E-6],
|
|
155
|
+
pi = P,
|
|
156
|
+
sig = s/2,
|
|
157
|
+
T = 0;
|
|
158
|
+
|
|
159
|
+
for (let i = 0; i < 46; i++)
|
|
160
|
+
{
|
|
161
|
+
let N = R2A_PS_N[i],
|
|
162
|
+
I = R2A_PS_I[i],
|
|
163
|
+
J = R2A_PS_J[i];
|
|
164
|
+
|
|
165
|
+
T += N*Math.pow(pi, I)*Math.pow(sig-2, J);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return T;
|
|
167
169
|
}
|
|
168
170
|
|
|
169
171
|
function r2B_PS_T(P : number, s : number) : number
|
|
170
172
|
{
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
173
|
+
let R2B_PS_I = [-6, -6, -5, -5, -4, -4, -4, -3, -3, -3, -3, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5],
|
|
174
|
+
R2B_PS_J = [0, 11, 0, 11, 0, 1, 11, 0, 1, 11, 12, 0, 1, 6, 10, 0, 1, 5, 8, 9, 0, 1, 2, 4, 5, 6, 9, 0, 1, 2, 3, 7, 8, 0, 1, 5, 0, 1, 3, 0, 1, 0, 1, 2],
|
|
175
|
+
R2B_PS_N = [316876.65083497, 20.864175881858, -398593.99803599, -21.816058518877, 223697.85194242, -2784.1703445817, 9.920743607148, -75197.512299157, 2970.8605951158, -3.4406878548526, 0.38815564249115, 17511.29508575, -1423.7112854449, 1.0943803364167, 0.89971619308495, -3375.9740098958, 471.62885818355, -1.9188241993679, 0.41078580492196, -0.33465378172097, 1387.0034777505, -406.63326195838, 41.72734715961, 2.1932549434532, -1.0320050009077, 0.35882943516703, 0.0052511453726066, 12.838916450705, -2.8642437219381, 0.56912683664855, -0.099962954584931, -0.0032632037778459, 0.00023320922576723, -0.1533480985745, 0.029072288239902, 0.00037534702741167, 0.0017296691702411, -0.00038556050844504, -0.000035017712292608, -0.000014566393631492, 5.6420857267269E-06, 4.1286150074605E-08, -2.0684671118824E-08, 1.6409393674725E-09],
|
|
176
|
+
pi = P,
|
|
177
|
+
sig = s/0.7853,
|
|
178
|
+
T = 0;
|
|
179
|
+
|
|
180
|
+
for (let i = 0; i < 44; i++)
|
|
181
|
+
{
|
|
182
|
+
let N = R2B_PS_N[i],
|
|
183
|
+
I = R2B_PS_I[i],
|
|
184
|
+
J = R2B_PS_J[i];
|
|
185
|
+
|
|
186
|
+
T += N*Math.pow(pi, I)*Math.pow(10.0-sig, J);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
return T;
|
|
188
190
|
}
|
|
189
191
|
|
|
190
192
|
function r2C_PS_T(P : number, s : number) : number
|
|
191
193
|
{
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
194
|
+
let R2C_PS_I = [-2, -2, -1, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 7, 7, 7, 7],
|
|
195
|
+
R2C_PS_J = [0, 1, 0, 0, 1, 2, 3, 0, 1, 3, 4, 0, 1, 2, 0, 1, 5, 0, 1, 4, 0, 1, 2, 0, 1, 0, 1, 3, 4, 5],
|
|
196
|
+
R2C_PS_N = [909.68501005365, 2404.566708842, -591.6232638713, 541.45404128074, -270.98308411192, 979.76525097926, -469.66772959435, 14.399274604723, -19.104204230429, 5.3299167111971, -21.252975375934, -0.3114733441376, 0.60334840894623, -0.042764839702509, 0.0058185597255259, -0.014597008284753, 0.0056631175631027, -0.000076155864584577, 0.00022440342919332, -0.000012561095013413, 6.3323132660934E-07, -2.0541989675375E-06, 3.6405370390082E-08, -2.9759897789215E-09, 1.0136618529763E-08, 5.9925719692351E-12, -2.0677870105164E-11, -2.0874278181886E-11, 1.0162166825089E-10, -1.6429828281347E-10],
|
|
197
|
+
pi = P,
|
|
198
|
+
sig = s/2.9251,
|
|
199
|
+
T = 0;
|
|
200
|
+
|
|
201
|
+
for (let i = 0; i < 30; i++)
|
|
202
|
+
{
|
|
203
|
+
let N = R2C_PS_N[i],
|
|
204
|
+
I = R2C_PS_I[i],
|
|
205
|
+
J = R2C_PS_J[i];
|
|
206
|
+
|
|
207
|
+
T += N*Math.pow(pi,I)*Math.pow(2.0-sig,J);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
return T;
|
|
209
211
|
}
|
|
210
212
|
|
|
211
213
|
//
|
|
@@ -216,105 +218,105 @@ function r2C_PS_T(P : number, s : number) : number
|
|
|
216
218
|
//
|
|
217
219
|
function r3(P : number, s : number) : State
|
|
218
220
|
{
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
221
|
+
let T, rho;
|
|
222
|
+
|
|
223
|
+
if (s <= NS.CONST('R3_CRT_S'))
|
|
224
|
+
{
|
|
225
|
+
T = r3A_PS_T(P,s);
|
|
226
|
+
rho = r3A_PS_V(P,s);
|
|
227
|
+
}
|
|
228
|
+
else
|
|
229
|
+
{
|
|
230
|
+
T = r3B_PS_T(P,s);
|
|
231
|
+
rho = r3B_PS_V(P,s);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return PT.r3(P, T, rho);
|
|
233
235
|
}
|
|
234
236
|
|
|
235
237
|
|
|
236
238
|
function r3A_PS_T(P : number, s : number) : number
|
|
237
239
|
{
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
240
|
+
let R3A_I = [-12, -12, -10, -10, -10, -10, -8, -8, -8, -8, -6, -6, -6, -5, -5, -5, -4, -4, -4, -2, -2, -1, -1, 0, 0, 0, 1, 2, 2, 3, 8, 8, 10],
|
|
241
|
+
R3A_J = [28, 32, 4, 10, 12, 14, 5, 7, 8, 28, 2, 6, 32, 0, 14, 32, 6, 10, 36, 1, 4, 1, 6, 0, 1, 4, 0, 0, 3, 2, 0, 1, 2, ],
|
|
242
|
+
R3A_N = [1500420082.63875, -159397258480.424, 5.02181140217975E-4, -67.2057767855466, 1450.58545404456, -8238.8953488889, -0.154852214233853, 11.2305046746695, -29.7000213482822, 43856513263.5495, 0.00137837838635464, -2.97478527157462, 9717779473494.13, -5.71527767052398E-5, 28830.794977842, -74442828926270.3, 12.8017324848921, -368.275545889071, 6647689047791770, 0.044935925195888, -4.22897836099655, -0.240614376434179, -4.74341365254924, 0.72409399912611, 0.923874349695897, 3.99043655281015, 0.0384066651868009, -0.00359344365571848, -0.735196448821653, 0.188367048396131, 0.000141064266818704, -0.00257418501496337, 0.00123220024851555],
|
|
243
|
+
pi = P/100,
|
|
244
|
+
sig = s/4.4,
|
|
245
|
+
T = 0;
|
|
246
|
+
|
|
247
|
+
for (let i = 0; i < 33; i++)
|
|
248
|
+
{
|
|
249
|
+
let N = R3A_N[i],
|
|
250
|
+
I = R3A_I[i],
|
|
251
|
+
J = R3A_J[i];
|
|
252
|
+
|
|
253
|
+
T += N*Math.pow(pi + 0.24, I)*Math.pow(sig - 0.703, J);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
return 760*T;
|
|
255
257
|
}
|
|
256
258
|
|
|
257
259
|
export function r3A_PS_V(P : number, s : number) : number
|
|
258
260
|
{
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
261
|
+
let R3A_I = [-12, -12, -12, -10, -10, -10, -10, -8, -8, -8, -8, -6, -5, -4, -3, -3, -2, -2, -1, -1, 0, 0, 0, 1, 2, 4, 5, 6],
|
|
262
|
+
R3A_J = [10, 12, 14, 4, 8, 10, 20, 5, 6, 14, 16, 28, 1, 5, 2, 4, 3, 8, 1, 2, 0, 1, 3, 0, 0, 2, 2, 0],
|
|
263
|
+
R3A_N = [79.5544074093975, -2382.6124298459, 17681.3100617787, -0.00110524727080379, -15.3213833655326, 297.544599376982, -35031520.6871242, 0.277513761062119, -0.523964271036888, -148011.182995403, 1600148.99374266, 1708023226634.27, 0.000246866996006494, 1.6532608479798, -0.118008384666987, 2.537986423559, 0.965127704669424, -28.2172420532826, 0.203224612353823, 1.10648186063513, 0.52612794845128, 0.277000018736321, 1.08153340501132, -0.0744127885357893, 0.0164094443541384, -0.0680468275301065, 0.025798857610164, -0.000145749861944416],
|
|
264
|
+
pi = P/100,
|
|
265
|
+
sig = s/4.4,
|
|
266
|
+
v = 0;
|
|
267
|
+
|
|
268
|
+
for (let i = 0; i < 28; i++)
|
|
269
|
+
{
|
|
270
|
+
let N = R3A_N[i],
|
|
271
|
+
I = R3A_I[i],
|
|
272
|
+
J = R3A_J[i];
|
|
273
|
+
|
|
274
|
+
v += N*Math.pow(pi+0.187,I)*Math.pow(sig-0.755,J);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
return 0.0028*v;
|
|
276
278
|
}
|
|
277
279
|
|
|
278
280
|
function r3B_PS_T(P : number, s : number) : number
|
|
279
281
|
{
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
282
|
+
let R3B_PS_I = [-12, -12, -12, -12, -8, -8, -8, -6, -6, -6, -5, -5, -5, -5, -5, -4, -3, -3, -2, 0, 2, 3, 4, 5, 6, 8, 12, 14],
|
|
283
|
+
R3B_PS_J = [1, 3, 4, 7, 0, 1, 3, 0, 2, 4, 0, 1, 2, 4, 6, 12, 1, 6, 2, 0, 1, 1, 0, 24, 0, 3, 1, 2],
|
|
284
|
+
R3B_PS_N = [0.52711170160166, -40.1317830052742, 153.020073134484, -2247.99398218827, -0.193993484669048, -1.40467557893768, 42.6799878114024, 0.752810643416743, 22.6657238616417, -622.873556909932, -0.660823667935396, 0.841267087271658, -25.3717501764397, 485.708963532948, 880.531517490555, 2650155.92794626, -0.359287150025783, -656.991567673753, 2.41768149185367, 0.856873461222588, 0.655143675313458, -0.213535213206406, 0.00562974957606348, -316955725450471.0, -0.000699997000152457, 0.0119845803210767, 1.93848122022095E-05, -2.15095749182309E-05],
|
|
285
|
+
pi = P/100,
|
|
286
|
+
sig = s/5.3,
|
|
287
|
+
T = 0;
|
|
288
|
+
|
|
289
|
+
for (let i = 0; i < 28; i++)
|
|
290
|
+
{
|
|
291
|
+
let N = R3B_PS_N[i],
|
|
292
|
+
I = R3B_PS_I[i],
|
|
293
|
+
J = R3B_PS_J[i];
|
|
294
|
+
|
|
295
|
+
T += N*Math.pow(pi+0.76,I)*Math.pow(sig-0.818,J);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
return 860*T;
|
|
297
299
|
}
|
|
298
300
|
|
|
299
301
|
export function r3B_PS_V(P : number, s : number) : number
|
|
300
302
|
{
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
303
|
+
let R3B_PS_v_I = [-12, -12, -12, -12, -12, -12, -10, -10, -10, -10, -8, -5, -5, -5, -4, -4, -4, -4, -3, -2, -2, -2, -2, -2, -2, 0, 0, 0, 1, 1, 2],
|
|
304
|
+
R3B_PS_v_J = [0, 1, 2, 3, 5, 6, 0, 1, 2, 4, 0, 1, 2, 3, 0, 1, 2, 3, 1, 0, 1, 2, 3, 4, 12, 0, 1, 2, 0, 2, 2],
|
|
305
|
+
R3B_PS_v_N = [5.91599780322238E-5, -0.00185465997137856, 0.0104190510480013, 0.0059864730203859, -0.771391189901699, 1.72549765557036, -0.000467076079846526, 0.0134533823384439, -0.0808094336805495, 0.508139374365767, 0.00128584643361683, -1.63899353915435, 5.86938199318063, -2.92466667918613, -0.00614076301499537, 5.76199014049172, -12.1613320606788, 1.67637540957944, -7.44135838773463, 0.0378168091437659, 4.01432203027688, 16.0279837479185, 3.17848779347728, -3.58362310304853, -1159952.60446827, 0.199256573577909, -0.122270624794624, -19.1449143716586, -0.0150448002905284, 14.6407900162154, -3.2747778718823],
|
|
306
|
+
pi = P/100,
|
|
307
|
+
sig = s/5.3,
|
|
308
|
+
v = 0;
|
|
309
|
+
|
|
310
|
+
for (let i = 0; i < 31; i++)
|
|
311
|
+
{
|
|
312
|
+
let N = R3B_PS_v_N[i],
|
|
313
|
+
I = R3B_PS_v_I[i],
|
|
314
|
+
J = R3B_PS_v_J[i];
|
|
315
|
+
|
|
316
|
+
v += N*Math.pow(pi+0.298, I)*Math.pow(sig-0.816, J);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
return 0.0088*v;
|
|
318
320
|
}
|
|
319
321
|
|
|
320
322
|
//
|
|
@@ -322,27 +324,27 @@ export function r3B_PS_V(P : number, s : number) : number
|
|
|
322
324
|
//
|
|
323
325
|
function r4(P : number , s : number) : State
|
|
324
326
|
{
|
|
325
|
-
|
|
327
|
+
let T = PT.r4_P_Tsat(P);
|
|
326
328
|
|
|
327
|
-
|
|
329
|
+
return PT.solve(P, T);
|
|
328
330
|
}
|
|
329
331
|
|
|
330
332
|
function r4_S_Psat(s : number) : number
|
|
331
333
|
{
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
334
|
+
let R4_I = [0, 1, 1, 4, 12, 12, 16, 24, 28, 32],
|
|
335
|
+
R4_J = [0, 1, 32, 7, 4, 14, 36, 10, 0, 18],
|
|
336
|
+
R4_N = [0.639767553612785, -1.29727445396014E1, -2.24595125848403E16, 1.77466741801846E6, 7.17079349571538E9, -3.78829107169011E17, -9.55586736431328E34, 1.87269814676188E23, 1.19254746466473E11, 1.10649277244882E36],
|
|
337
|
+
sig = s/5.2,
|
|
338
|
+
p = 0;
|
|
339
|
+
|
|
340
|
+
for(let i = 0; i < 10; i++)
|
|
341
|
+
{
|
|
342
|
+
let I = R4_I[i],
|
|
343
|
+
J = R4_J[i],
|
|
344
|
+
N = R4_N[i];
|
|
345
|
+
|
|
346
|
+
p += N*Math.pow(sig - 1.03, I)*Math.pow(sig - 0.699, J);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
return 22*p;
|
|
348
350
|
}
|