@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/PT.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {State} from '@neutrium/thermo';
|
|
1
|
+
import { State } from '@neutrium/thermo';
|
|
2
2
|
import * as NS from './base';
|
|
3
3
|
|
|
4
|
-
|
|
5
4
|
let R = NS.constants['R'];
|
|
6
5
|
|
|
7
6
|
//
|
|
@@ -12,21 +11,21 @@ let R = NS.constants['R'];
|
|
|
12
11
|
//
|
|
13
12
|
export function solve(P : number, T : number , v ?: number) : State
|
|
14
13
|
{
|
|
15
|
-
|
|
14
|
+
v = (typeof v == "undefined") ? -1 : v;
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
let region = findRegion_PT(P,T),
|
|
17
|
+
result : State | null = null;
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
19
|
+
switch (region)
|
|
20
|
+
{
|
|
21
|
+
case 1 : result = r1(P, T); break;
|
|
22
|
+
case 2 : result = r2(P, T); break;
|
|
23
|
+
case 3 : result = r3(P, T, v); break;
|
|
24
|
+
case 5 : result = r5(P, T); break;
|
|
25
|
+
default : throw new Error('(P,T) : Inputs insufficient or out of range');
|
|
26
|
+
}
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
return result;
|
|
30
29
|
}
|
|
31
30
|
|
|
32
31
|
//
|
|
@@ -37,78 +36,84 @@ export function solve(P : number, T : number , v ?: number) : State
|
|
|
37
36
|
//
|
|
38
37
|
function findRegion_PT(P : number, T : number) : number
|
|
39
38
|
{
|
|
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
|
-
|
|
39
|
+
if (
|
|
40
|
+
P >= NS.CONST('MIN_P') &&
|
|
41
|
+
P <= NS.CONST('MAX_P') &&
|
|
42
|
+
T >= NS.CONST('MIN_T') &&
|
|
43
|
+
(
|
|
44
|
+
T <= NS.CONST('R5_MIN_T') ||
|
|
45
|
+
( P <= NS.CONST('R5_MAX_P') && T <= NS.CONST('MAX_T'))
|
|
46
|
+
)
|
|
47
|
+
) {
|
|
48
|
+
|
|
49
|
+
if (T > NS.CONST('R5_MIN_T'))
|
|
50
|
+
{
|
|
51
|
+
if(P <= NS.CONST('R5_MAX_P'))
|
|
52
|
+
{
|
|
53
|
+
return 5;
|
|
54
|
+
}
|
|
55
|
+
else
|
|
56
|
+
{
|
|
57
|
+
return -1;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else if (T > NS.CONST('R3_MIN_T'))
|
|
61
|
+
{
|
|
62
|
+
if (P > b23_T_P(T))
|
|
63
|
+
{
|
|
64
|
+
return 3;
|
|
65
|
+
}
|
|
66
|
+
else
|
|
67
|
+
{
|
|
68
|
+
return 2;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else
|
|
72
|
+
{
|
|
73
|
+
if (r4_T_Psat(T) > P)
|
|
74
|
+
{
|
|
75
|
+
return 2;
|
|
76
|
+
}
|
|
77
|
+
else
|
|
78
|
+
{
|
|
79
|
+
return 1;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return -1;
|
|
80
85
|
}
|
|
81
86
|
|
|
82
87
|
function generateResult(r : any) : State
|
|
83
88
|
{
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
89
|
+
// Calculate the density from the specific volume
|
|
90
|
+
r.rho = 1/r.v;
|
|
91
|
+
// Calculate additional properties using the auxillary equations
|
|
92
|
+
|
|
93
|
+
// Viscosity cP,
|
|
94
|
+
r.mu = NS.viscosity(r.t, r.rho)/1000;
|
|
95
|
+
// Thermal Conductivity W/m.K
|
|
96
|
+
r.k = NS.thermal_conductivity(r.t, r.rho)/1000;
|
|
97
|
+
// Surface Tension mN/m
|
|
98
|
+
r.sigma = NS.surface_tension(r.t);
|
|
99
|
+
// Dielectric constant
|
|
100
|
+
r.epsilon = NS.dielectric_constant(r.t, r.rho);
|
|
101
|
+
// Ionization constant
|
|
102
|
+
r.ic = NS.ionization_constant(r.t, r.rho);
|
|
103
|
+
|
|
104
|
+
// Convert properties to the default units specified in @neutrium/thermo (where required)
|
|
105
|
+
r.p = r.p*1000000; // Pressure MPa -> Pa
|
|
106
|
+
|
|
107
|
+
return new State(r);
|
|
103
108
|
}
|
|
104
109
|
|
|
105
|
-
//
|
|
110
|
+
// Auxiliary equations for Regions 2 and 3
|
|
106
111
|
|
|
107
112
|
// Equation 5 (pp. 5) of IAPWS-97
|
|
108
113
|
// Returns the pressure for a given temperature along the region 2-3 boundary
|
|
109
114
|
export function b23_T_P(T : number) : number
|
|
110
115
|
{
|
|
111
|
-
|
|
116
|
+
return 348.05185628969 - 1.1671859879975*T+ 0.0010192970039326*T*T;
|
|
112
117
|
}
|
|
113
118
|
|
|
114
119
|
// Equation 6 (pp. 6) of IAPWS-97
|
|
@@ -116,114 +121,114 @@ export function b23_T_P(T : number) : number
|
|
|
116
121
|
// Exported for use in the PH module
|
|
117
122
|
export function b23_P_T(P : number) : number
|
|
118
123
|
{
|
|
119
|
-
|
|
124
|
+
return 572.54459862746 + Math.pow((P-13.91883977887)/0.0010192970039326, 0.5);
|
|
120
125
|
}
|
|
121
126
|
|
|
122
127
|
// Region 1 forwards equation
|
|
123
128
|
export function r1(P : number, T : number) : State
|
|
124
129
|
{
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
130
|
+
let R1_PT_N = [0.14632971213167, -0.84548187169114, -3.756360367204, 3.3855169168385, -0.95791963387872, 0.15772038513228, -0.016616417199501, 8.1214629983568E-4, 2.8319080123804E-4, -6.0706301565874E-4, -0.018990068218419, -0.032529748770505, -0.021841717175414, -5.283835796993E-5, -4.7184321073267E-4, -3.0001780793026E-4, 4.7661393906987E-5, -4.4141845330846E-6, -7.2694996297594E-16, -3.1679644845054E-5, -2.8270797985312E-6, -8.5205128120103E-10, -2.2425281908E-6, -6.5171222895601E-7, -1.4341729937924E-13, -4.0516996860117E-7, -1.2734301741641E-9, -1.7424871230634E-10, -6.8762131295531E-19, 1.4478307828521E-20, 2.6335781662795E-23, -1.1947622640071E-23, 1.8228094581404E-24, -9.3537087292458E-26],
|
|
131
|
+
R1_PT_J = [-2, -1, 0, 1, 2, 3, 4, 5, -9, -7, -1, 0, 1, 3, -3, 0, 1, 3, 17, -4, 0, 6, -5, -2, 10, -8, -11, -6, -29, -31, -38, -39, -40, -41],
|
|
132
|
+
R1_PT_I = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 8, 8, 21, 23, 29, 30, 31, 32],
|
|
133
|
+
tau = 1386.0/T,
|
|
134
|
+
pi = P/16.53,
|
|
135
|
+
g = 0,
|
|
136
|
+
g_p = 0,
|
|
137
|
+
g_pp = 0,
|
|
138
|
+
g_t = 0,
|
|
139
|
+
g_tt = 0,
|
|
140
|
+
g_pt = 0;
|
|
141
|
+
|
|
142
|
+
for (let i = 0; i < 34; i++)
|
|
143
|
+
{
|
|
144
|
+
let I = R1_PT_I[i],
|
|
145
|
+
J = R1_PT_J[i],
|
|
146
|
+
N = R1_PT_N[i];
|
|
147
|
+
|
|
148
|
+
g += N*Math.pow(7.1-pi, I)*Math.pow(tau-1.222, J);
|
|
149
|
+
|
|
150
|
+
g_p += -N*I*Math.pow(7.1-pi, I-1)*Math.pow(tau-1.222, J);
|
|
151
|
+
g_pp += N*I*(I-1)*Math.pow(7.1-pi, I-2)*Math.pow(tau-1.222, J);
|
|
152
|
+
|
|
153
|
+
g_t += N*Math.pow(7.1-pi, I)*J*Math.pow(tau-1.222, J-1);
|
|
154
|
+
g_tt += N*Math.pow(7.1-pi, I)*J*(J-1)*Math.pow(tau-1.222,J-2);
|
|
155
|
+
|
|
156
|
+
g_pt += -N*I*Math.pow(7.1-pi, I-1)*J*Math.pow(tau-1.222, J-1);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return generateResult({
|
|
160
|
+
p: P,
|
|
161
|
+
t: T,
|
|
162
|
+
v: R*T*pi*g_p/(1000*P),
|
|
163
|
+
u: R*T*(tau*g_t-pi*g_p),
|
|
164
|
+
s: R*(tau*g_t-g),
|
|
165
|
+
h: R*T*tau*g_t,
|
|
166
|
+
cp: R*(-Math.pow(tau,2)*g_tt),
|
|
167
|
+
cv: R*(-Math.pow(tau,2)*g_tt+Math.pow(g_p-tau*g_pt,2)/g_pp),
|
|
168
|
+
w: Math.pow(1000*R*T*Math.pow(g_p,2) / (Math.pow(g_p-tau*g_pt,2) / (Math.pow(tau,2)*g_tt) - g_pp), 0.5)
|
|
169
|
+
});
|
|
165
170
|
}
|
|
166
171
|
|
|
167
172
|
export function r2(P, T)
|
|
168
173
|
{
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
174
|
+
let R2I_PT_N = [-9.6927686500217, 10.086655968018, -0.005608791128302, 0.071452738081455, -0.40710498223928, 1.4240819171444, -4.383951131945, -0.28408632460772, 0.021268463753307],
|
|
175
|
+
R2I_PT_J = [0, 1, -5, -4, -3, -2, -1, 2, 3],
|
|
176
|
+
R2R_PT_N = [-1.7731742473213E-3, -0.017834862292358, -0.045996013696365, -0.057581259083432, -0.05032527872793, -3.3032641670203E-5, -1.8948987516315E-4, -3.9392777243355E-3, -0.043797295650573, -2.6674547914087E-5, 2.0481737692309E-8, 4.3870667284435E-7, -3.227767723857E-5, -1.5033924542148E-3, -0.040668253562649, -7.8847309559367E-10, 1.2790717852285E-8, 4.8225372718507E-7, 2.2922076337661E-6, -1.6714766451061E-11, -2.1171472321355E-3, -23.895741934104, -5.905956432427E-18, -1.2621808899101E-6, -0.038946842435739, 1.1256211360459E-11, -8.2311340897998, 1.9809712802088E-8, 1.0406965210174E-19, -1.0234747095929E-13, -1.0018179379511E-9, -8.0882908646985E-11, 0.10693031879409, -0.33662250574171, 8.9185845355421E-25, 3.0629316876232E-13, -4.2002467698208E-6, -5.9056029685639E-26, 3.7826947613457E-6, -1.2768608934681E-15, 7.3087610595061E-29, 5.5414715350778E-17, -9.436970724121E-7],
|
|
177
|
+
R2R_PT_J = [0, 1, 2, 3, 6, 1, 2, 4, 7, 36, 0, 1, 3, 6, 35, 1, 2, 3, 7, 3, 16, 35, 0, 11, 25, 8, 36, 13, 4, 10, 14, 29, 50, 57, 20, 35, 48, 21, 53, 39, 26, 40, 58],
|
|
178
|
+
R2R_PT_I = [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6, 7, 7, 7, 8, 8, 9, 10, 10, 10, 16, 16, 18, 20, 20, 20, 21, 22, 23, 24, 24, 24],
|
|
179
|
+
pi = P,
|
|
180
|
+
tau = 540/T,
|
|
181
|
+
gi = Math.log(pi),
|
|
182
|
+
gi_p = 1/pi,
|
|
183
|
+
gi_pp = -1/(pi*pi),
|
|
184
|
+
gi_t = 0,
|
|
185
|
+
gi_tt = 0,
|
|
186
|
+
gi_pt = 0,
|
|
187
|
+
N, J, I;
|
|
188
|
+
|
|
189
|
+
for (let i = 0; i < 9; i++)
|
|
190
|
+
{
|
|
191
|
+
N = R2I_PT_N[i];
|
|
192
|
+
J = R2I_PT_J[i];
|
|
193
|
+
|
|
194
|
+
gi += N*Math.pow(tau, J);
|
|
195
|
+
gi_t += N*J*Math.pow(tau, J-1);
|
|
196
|
+
gi_tt += N*J*(J-1)*Math.pow(tau, J-2);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
let gr = 0,
|
|
200
|
+
gr_p = 0,
|
|
201
|
+
gr_pp = 0,
|
|
202
|
+
gr_t = 0,
|
|
203
|
+
gr_tt = 0,
|
|
204
|
+
gr_pt = 0;
|
|
205
|
+
|
|
206
|
+
for (let j = 0; j < 43; j++)
|
|
207
|
+
{
|
|
208
|
+
N = R2R_PT_N[j];
|
|
209
|
+
J = R2R_PT_J[j];
|
|
210
|
+
I = R2R_PT_I[j];
|
|
211
|
+
|
|
212
|
+
gr += N*Math.pow(pi, I)*Math.pow(tau-0.5, J);
|
|
213
|
+
gr_p += N*I*Math.pow(pi, I-1)*Math.pow(tau-0.5, J);
|
|
214
|
+
gr_pp += N*I*(I-1)*Math.pow(pi, I-2)*Math.pow(tau-0.5, J);
|
|
215
|
+
gr_t += N*Math.pow(pi, I)*J*Math.pow(tau-0.5, J-1);
|
|
216
|
+
gr_tt += N*Math.pow(pi, I)*J*(J-1)*Math.pow(tau-0.5, J-2);
|
|
217
|
+
gr_pt += N*I*Math.pow(pi, I-1)*J*Math.pow(tau-0.5, J-1);
|
|
218
|
+
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return generateResult({
|
|
222
|
+
p: P,
|
|
223
|
+
t: T,
|
|
224
|
+
v: (R*T/(1000*P))*pi*(gi_p + gr_p),
|
|
225
|
+
u: R*T*(tau*(gi_t+gr_t)-pi*(gi_p+gr_p)),
|
|
226
|
+
s: R*(tau*(gi_t+gr_t)-(gi+gr)),
|
|
227
|
+
h: R*T*tau*(gi_t+gr_t),
|
|
228
|
+
cp: -R*tau*tau*(gi_tt+gr_tt),
|
|
229
|
+
cv: R*(-tau*tau*(gi_tt+gr_tt)-Math.pow(1+pi*gr_p-tau*pi*gr_pt,2)/(1-pi*pi*gr_pp)),
|
|
230
|
+
w: Math.pow(1000*R*T*(1 + 2*pi*gr_p+pi*pi*gr_p*gr_p)/((1-pi*pi*gr_pp)+Math.pow(1+pi*gr_p-tau*pi*gr_pt,2)/(tau*tau*(gi_tt+gr_tt))), 0.5)
|
|
231
|
+
});
|
|
227
232
|
}
|
|
228
233
|
|
|
229
234
|
//
|
|
@@ -233,856 +238,861 @@ export function r2(P, T)
|
|
|
233
238
|
// Use a optional argument to calculate density
|
|
234
239
|
export function r3(P : number, T : number , rho ?: number) : State
|
|
235
240
|
{
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
241
|
+
let v = 1;
|
|
242
|
+
|
|
243
|
+
if (rho == -1 || typeof rho == 'undefined')
|
|
244
|
+
{
|
|
245
|
+
// Density has not been set - calculate it
|
|
246
|
+
v = r3_PT_v(P, T);
|
|
247
|
+
rho = 1/v;
|
|
248
|
+
}
|
|
249
|
+
else
|
|
250
|
+
{
|
|
251
|
+
v = 1/rho;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
let R3_PT_N = [1.0658070028513, -15.732845290239, 20.944396974307, -7.6867707878716, 2.6185947787954, -2.808078114862, 1.2053369696517, -8.4566812812502E-03, -1.2654315477714, -1.1524407806681, 0.88521043984318, -0.64207765181607, 0.38493460186671, -0.85214708824206, 4.8972281541877, -3.0502617256965, 0.039420536879154, 0.12558408424308, -0.2799932969871, 1.389979956946, -2.018991502357, -8.2147637173963E-03, -0.47596035734923, 0.0439840744735, -0.44476435428739, 0.90572070719733, 0.70522450087967, 0.10770512626332, -0.32913623258954, -0.50871062041158, -0.022175400873096, 0.094260751665092, 0.16436278447961, -0.013503372241348, -0.014834345352472, 5.7922953628084E-04, 3.2308904703711E-03, 8.0964802996215E-05, -1.6557679795037E-04, -4.4923899061815E-05],
|
|
255
|
+
R3_PT_J = [0, 0, 1, 2, 7, 10, 12, 23, 2, 6, 15, 17, 0, 2, 6, 7, 22, 26, 0, 2, 4, 16, 26, 0, 2, 4, 26, 1, 3, 26, 0, 2, 26, 2, 26, 2, 26, 0, 1, 26],
|
|
256
|
+
R3_PT_I = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 9, 9, 10, 10, 11],
|
|
257
|
+
g = rho/322,
|
|
258
|
+
tau = 647.096/T,
|
|
259
|
+
s = R3_PT_N[0]*Math.log(g),
|
|
260
|
+
s_g = R3_PT_N[0]/g,
|
|
261
|
+
s_gg = -R3_PT_N[0]/Math.pow(g,2),
|
|
262
|
+
s_t = 0,
|
|
263
|
+
s_tt = 0,
|
|
264
|
+
s_gt = 0;
|
|
265
|
+
|
|
266
|
+
// Need to start from i = 1 because j[0] and i[0] are NA and not used
|
|
267
|
+
for (let i = 1; i < 40; i++)
|
|
268
|
+
{
|
|
269
|
+
let N = R3_PT_N[i],
|
|
270
|
+
J = R3_PT_J[i],
|
|
271
|
+
I = R3_PT_I[i];
|
|
272
|
+
|
|
273
|
+
s += N*Math.pow(g,I)*Math.pow(tau,J);
|
|
274
|
+
s_g += N*I*Math.pow(g,I-1.0)*Math.pow(tau,J);
|
|
275
|
+
s_gg += N*I*(I-1.0)*Math.pow(g,I-2.0)*Math.pow(tau,J);
|
|
276
|
+
s_t += N*Math.pow(g,I)*J*Math.pow(tau,J-1.0);
|
|
277
|
+
s_tt += N*Math.pow(g,I)*J*(J-1.0)*Math.pow(tau,J-2.0);
|
|
278
|
+
s_gt += N*I*Math.pow(g,I-1.0)*J*Math.pow(tau,J-1.0);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
return generateResult({
|
|
282
|
+
p: rho*R*T*g*s_g/1000,
|
|
283
|
+
t: T,
|
|
284
|
+
v: v,
|
|
285
|
+
u: R*T*tau*s_t,
|
|
286
|
+
s: R*(tau*s_t-s),
|
|
287
|
+
h: R*T*(tau*s_t+g*s_g),
|
|
288
|
+
cp: R*(-Math.pow(tau,2)*s_tt + Math.pow(g*s_g-g*tau*s_gt,2)/(2*g*s_g+Math.pow(g,2)*s_gg)),
|
|
289
|
+
cv: R*(-Math.pow(tau,2)*s_tt),
|
|
290
|
+
w: Math.pow(1000*R*T*(2*g*s_g + Math.pow(g,2)*s_gg - Math.pow(g*s_g-g*tau*s_gt,2)/(Math.pow(tau,2)*s_tt)),0.5)
|
|
291
|
+
});
|
|
282
292
|
}
|
|
283
293
|
|
|
284
294
|
// Selection criteria from table 2, page 10 of PT Region 3 supplementary release
|
|
285
295
|
function r3_PT_v(P : number, T : number) : number
|
|
286
296
|
{
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
297
|
+
let Tsat = r4_P_Tsat(P),
|
|
298
|
+
b3cd = b3cd_P_T(P);
|
|
299
|
+
|
|
300
|
+
if ( 40.0 < P && P <= 100.0 )
|
|
301
|
+
{
|
|
302
|
+
if (T <= b3ab_P_T(P))
|
|
303
|
+
{
|
|
304
|
+
return r3a_PT_v(P,T);
|
|
305
|
+
}
|
|
306
|
+
else
|
|
307
|
+
{
|
|
308
|
+
return r3b_PT_v(P,T);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
else if ( 25.0 < P && P <= 40.0 )
|
|
312
|
+
{
|
|
313
|
+
if ( T <= b3cd )
|
|
314
|
+
{
|
|
315
|
+
return r3c_PT_v(P,T);
|
|
316
|
+
}
|
|
317
|
+
else if ( T <= b3ab_P_T(P) )
|
|
318
|
+
{
|
|
319
|
+
return r3d_PT_v(P,T);
|
|
320
|
+
}
|
|
321
|
+
else if ( T <= b3ef_P_T(P) )
|
|
322
|
+
{
|
|
323
|
+
return r3e_PT_v(P,T);
|
|
324
|
+
}
|
|
325
|
+
else
|
|
326
|
+
{
|
|
327
|
+
return r3f_PT_v(P,T);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
else if ( 22.5 < P && P <= 25.0)
|
|
331
|
+
{
|
|
332
|
+
if ( T <= b3cd )
|
|
333
|
+
{
|
|
334
|
+
return r3c_PT_v(P,T);
|
|
335
|
+
}
|
|
336
|
+
else if (T <= b3gh_P_T(P))
|
|
337
|
+
{
|
|
338
|
+
if ( P <= 23.5 )
|
|
339
|
+
{
|
|
340
|
+
return r3l_PT_v(P,T);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
return r3g_PT_v(P,T);
|
|
344
|
+
}
|
|
345
|
+
else if ( T <= b3ef_P_T(P) )
|
|
346
|
+
{
|
|
347
|
+
if ( P <= 23.0 )
|
|
348
|
+
{
|
|
349
|
+
if(T <= b3mn_P_T(P))
|
|
350
|
+
{
|
|
351
|
+
return r3m_PT_v(P,T);
|
|
352
|
+
}
|
|
353
|
+
else
|
|
354
|
+
{
|
|
355
|
+
return r3n_PT_v(P,T);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
return r3h_PT_v(P,T);
|
|
360
|
+
}
|
|
361
|
+
else if ( T <= b3ij_P_T(P) )
|
|
362
|
+
{
|
|
363
|
+
if ( P <= 23.0 )
|
|
364
|
+
{
|
|
365
|
+
if( T <= b3op_P_T(P) )
|
|
366
|
+
{
|
|
367
|
+
return r3o_PT_v(P,T);
|
|
368
|
+
}
|
|
369
|
+
else
|
|
370
|
+
{
|
|
371
|
+
return r3p_PT_v(P,T);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
return r3i_PT_v(P,T);
|
|
376
|
+
}
|
|
377
|
+
else if ( T <= b3jk_P_T(P) )
|
|
378
|
+
{
|
|
379
|
+
return r3j_PT_v(P,T);
|
|
380
|
+
}
|
|
381
|
+
else
|
|
382
|
+
{
|
|
383
|
+
return r3k_PT_v(P,T);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
else if ( 21.04336732 < P && P <= 22.5) // R4_T_Psat(643.15) < P < 22.5
|
|
387
|
+
{
|
|
388
|
+
if ( T <= b3cd )
|
|
389
|
+
{
|
|
390
|
+
return r3c_PT_v(P,T);
|
|
391
|
+
}
|
|
392
|
+
else if ( T <= b3qu_P_T(P) )
|
|
393
|
+
{
|
|
394
|
+
return r3q_PT_v(P,T);
|
|
395
|
+
}
|
|
396
|
+
else if ( T <= b3rx_P_T(P) )
|
|
397
|
+
{
|
|
398
|
+
//critical region
|
|
399
|
+
if ( P <= 22.064 )
|
|
400
|
+
{
|
|
401
|
+
//Subcritical pressure region
|
|
402
|
+
if ( T <= Tsat )
|
|
403
|
+
{
|
|
404
|
+
if ( P <= 21.93161551 )
|
|
405
|
+
{
|
|
406
|
+
return r3u_PT_v(P,T);
|
|
407
|
+
}
|
|
408
|
+
else
|
|
409
|
+
{
|
|
410
|
+
if( T <= b3uv_P_T(P) )
|
|
411
|
+
{
|
|
412
|
+
return r3u_PT_v(P,T);
|
|
413
|
+
}
|
|
414
|
+
else
|
|
415
|
+
{
|
|
416
|
+
return r3y_PT_v(P,T);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
else
|
|
421
|
+
{
|
|
422
|
+
if ( P <= 21.90096265 )
|
|
423
|
+
{
|
|
424
|
+
return r3x_PT_v(P,T);
|
|
425
|
+
}
|
|
426
|
+
else
|
|
427
|
+
{
|
|
428
|
+
if ( T <= b3wx_P_T(P) )
|
|
429
|
+
{
|
|
430
|
+
return r3z_PT_v(P,T);
|
|
431
|
+
}
|
|
432
|
+
else
|
|
433
|
+
{
|
|
434
|
+
return r3x_PT_v(P,T);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
else
|
|
440
|
+
{
|
|
441
|
+
//Supercritical pressure region
|
|
442
|
+
if ( T <= b3uv_P_T(P) )
|
|
443
|
+
{
|
|
444
|
+
return r3u_PT_v(P,T);
|
|
445
|
+
}
|
|
446
|
+
else if ( T <= b3ef_P_T(P) )
|
|
447
|
+
{
|
|
448
|
+
if ( P <= 22.11)
|
|
449
|
+
{
|
|
450
|
+
return r3y_PT_v(P,T);
|
|
451
|
+
}
|
|
452
|
+
else
|
|
453
|
+
{
|
|
454
|
+
return r3v_PT_v(P,T);
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
else if ( T <= b3wx_P_T(P) )
|
|
458
|
+
{
|
|
459
|
+
if ( P <= 22.11 )
|
|
460
|
+
{
|
|
461
|
+
return r3z_PT_v(P,T);
|
|
462
|
+
}
|
|
463
|
+
else
|
|
464
|
+
{
|
|
465
|
+
return r3w_PT_v(P,T);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
else
|
|
469
|
+
{
|
|
470
|
+
return r3x_PT_v(P,T);
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
else if ( T <= b3jk_P_T(P) )
|
|
475
|
+
{
|
|
476
|
+
return r3r_PT_v(P,T);
|
|
477
|
+
}
|
|
478
|
+
else
|
|
479
|
+
{
|
|
480
|
+
return r3k_PT_v(P,T);
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
else if ( 20.5 < P && P <= 21.04336732)
|
|
484
|
+
{
|
|
485
|
+
if ( T <= b3cd )
|
|
486
|
+
{
|
|
487
|
+
return r3c_PT_v(P,T);
|
|
488
|
+
}
|
|
489
|
+
else if ( T <= Tsat )
|
|
490
|
+
{
|
|
491
|
+
return r3s_PT_v(P,T);
|
|
492
|
+
}
|
|
493
|
+
else if ( T <= b3jk_P_T(P) )
|
|
494
|
+
{
|
|
495
|
+
return r3r_PT_v(P,T);
|
|
496
|
+
}
|
|
497
|
+
else
|
|
498
|
+
{
|
|
499
|
+
return r3k_PT_v(P,T);
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
else if ( 19.00881189173929 < P && P <= 20.5 )
|
|
503
|
+
{
|
|
504
|
+
if ( T <= b3cd )
|
|
505
|
+
{
|
|
506
|
+
return r3c_PT_v(P,T);
|
|
507
|
+
}
|
|
508
|
+
else if ( T <= Tsat )
|
|
509
|
+
{
|
|
510
|
+
return r3s_PT_v(P,T);
|
|
511
|
+
}
|
|
512
|
+
else
|
|
513
|
+
{
|
|
514
|
+
return r3t_PT_v(P,T);
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
else if ( 16.52916427498 < P && P <= 19.00881189173929 ) // R4_T_Psat(623.15) < P < P3cd
|
|
518
|
+
{
|
|
519
|
+
if ( T <= Tsat )
|
|
520
|
+
{
|
|
521
|
+
return r3c_PT_v(P,T);
|
|
522
|
+
}
|
|
523
|
+
else
|
|
524
|
+
{
|
|
525
|
+
return r3t_PT_v(P,T);
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
// Else specific volume cannot be calculated and set to -ve
|
|
530
|
+
return -1.0;
|
|
521
531
|
}
|
|
522
532
|
|
|
523
533
|
// Subregion Boundary equations for Region 3
|
|
524
534
|
// From pp. 9 of Supplementary Release on Backward Equations for Specific Volume as a Function of Pressure and Temperature v(p,T)
|
|
525
|
-
// Exported for testing
|
|
535
|
+
// @internal - Exported for unit testing only
|
|
526
536
|
export function b3ab_P_T(P : number) : number
|
|
527
537
|
{
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
538
|
+
let B3ab_PT_I = [0,1,2,-1,-2],
|
|
539
|
+
B3ab_PT_N = [1.54793642129415E3,-1.87661219490113E2,2.13144632222113E1,-1.91887498864292E3,9.18419702359447E2],
|
|
540
|
+
T = 0;
|
|
531
541
|
|
|
532
|
-
|
|
542
|
+
P = Math.log(P);
|
|
533
543
|
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
544
|
+
for (let i = 0; i < 5; i++)
|
|
545
|
+
{
|
|
546
|
+
T += B3ab_PT_N[i]*Math.pow(P, B3ab_PT_I[i]);
|
|
547
|
+
}
|
|
538
548
|
|
|
539
|
-
|
|
549
|
+
return T;
|
|
540
550
|
}
|
|
541
551
|
|
|
542
|
-
// Exported for testing
|
|
552
|
+
// @internal - Exported for unit testing only
|
|
543
553
|
export function b3op_P_T(P : number) : number
|
|
544
554
|
{
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
555
|
+
let B3op_PT_I = [0,1,2,-1,-2],
|
|
556
|
+
B3op_PT_N = [9.69461372400213E2,-3.32500170441278E2,6.4285959846667E1,7.73845935768222E2,-1.52313732937084E3],
|
|
557
|
+
T = 0;
|
|
548
558
|
|
|
549
|
-
|
|
559
|
+
P = Math.log(P);
|
|
550
560
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
561
|
+
for (let i = 0; i < 5; i++)
|
|
562
|
+
{
|
|
563
|
+
T += B3op_PT_N[i]*Math.pow(P, B3op_PT_I[i]);
|
|
564
|
+
}
|
|
555
565
|
|
|
556
|
-
|
|
566
|
+
return T;
|
|
557
567
|
}
|
|
558
568
|
|
|
559
569
|
// Exported for testing
|
|
560
570
|
export function b3ef_P_T(P : number) : number
|
|
561
571
|
{
|
|
562
|
-
|
|
572
|
+
return 3.727888004*(P-22.064)+647.096;
|
|
563
573
|
}
|
|
564
574
|
|
|
565
|
-
// Exported for testing
|
|
575
|
+
// @internal - Exported for unit testing only
|
|
566
576
|
export function b3cd_P_T(P : number) : number
|
|
567
577
|
{
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
578
|
+
let B3cd_PT_I = [0,1,2,3],
|
|
579
|
+
B3cd_PT_N = [5.85276966696349E2,2.78233532206915,-1.27283549295878E-2,1.59090746562729E-4],
|
|
580
|
+
T = 0;
|
|
571
581
|
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
582
|
+
for (let i = 0; i < 4; i++)
|
|
583
|
+
{
|
|
584
|
+
T += B3cd_PT_N[i]*Math.pow(P, B3cd_PT_I[i]);
|
|
585
|
+
}
|
|
576
586
|
|
|
577
|
-
|
|
587
|
+
return T;
|
|
578
588
|
}
|
|
579
589
|
|
|
580
|
-
// Exported for testing
|
|
590
|
+
// @internal - Exported for unit testing only
|
|
581
591
|
export function b3gh_P_T(P : number) : number
|
|
582
592
|
{
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
593
|
+
let B3gh_PT_I = [0,1,2,3,4],
|
|
594
|
+
B3gh_PT_N = [-2.49284240900418E4,4.28143584791546E3,-2.6902917314013E2,7.51608051114157,-7.87105249910383E-2],
|
|
595
|
+
T = 0;
|
|
586
596
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
597
|
+
for (let i = 0; i < 5; i++)
|
|
598
|
+
{
|
|
599
|
+
T += B3gh_PT_N[i]*Math.pow(P, B3gh_PT_I[i]);
|
|
600
|
+
}
|
|
591
601
|
|
|
592
|
-
|
|
602
|
+
return T;
|
|
593
603
|
}
|
|
594
604
|
|
|
595
|
-
// Exported for testing
|
|
605
|
+
// @internal - Exported for unit testing only
|
|
596
606
|
export function b3ij_P_T(P : number) : number
|
|
597
607
|
{
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
608
|
+
let B3ij_PT_I = [0,1,2,3,4],
|
|
609
|
+
B3ij_PT_N = [5.84814781649163E2,-6.16179320924617E-1,2.60763050899562E-1,-5.87071076864459E-3,5.15308185433082E-5],
|
|
610
|
+
T = 0;
|
|
601
611
|
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
612
|
+
for (let i = 0; i < 5; i++)
|
|
613
|
+
{
|
|
614
|
+
T += B3ij_PT_N[i]*Math.pow(P, B3ij_PT_I[i]);
|
|
615
|
+
}
|
|
606
616
|
|
|
607
|
-
|
|
617
|
+
return T;
|
|
608
618
|
}
|
|
609
619
|
|
|
610
|
-
//
|
|
620
|
+
// @internal - Exported for unit testing only
|
|
611
621
|
export function b3jk_P_T(P : number) : number
|
|
612
622
|
{
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
623
|
+
let B3jk_PT_I = [0,1,2,3,4],
|
|
624
|
+
B3jk_PT_N = [6.17229772068439E2,-7.70600270141675,6.97072596851896E-1,-1.57391839848015E-2,1.37897492684194E-4],
|
|
625
|
+
T = 0;
|
|
616
626
|
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
627
|
+
for (let i = 0; i < 5; i++)
|
|
628
|
+
{
|
|
629
|
+
T += B3jk_PT_N[i]*Math.pow(P, B3jk_PT_I[i]);
|
|
630
|
+
}
|
|
621
631
|
|
|
622
|
-
|
|
632
|
+
return T;
|
|
623
633
|
}
|
|
624
634
|
|
|
625
|
-
// Exported for testing
|
|
635
|
+
// @internal - Exported for unit testing only
|
|
626
636
|
export function b3mn_P_T(P : number) : number
|
|
627
637
|
{
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
638
|
+
let B3mn_PT_I = [0,1,2,3],
|
|
639
|
+
B3mn_PT_N = [5.35339483742384E2,7.61978122720128,-1.58365725441648E-1,1.92871054508108E-3],
|
|
640
|
+
T = 0;
|
|
631
641
|
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
642
|
+
for (let i = 0; i < 4; i++)
|
|
643
|
+
{
|
|
644
|
+
T += B3mn_PT_N[i]*Math.pow(P, B3mn_PT_I[i]);
|
|
645
|
+
}
|
|
636
646
|
|
|
637
|
-
|
|
647
|
+
return T;
|
|
638
648
|
}
|
|
639
649
|
|
|
640
|
-
// Exported for testing
|
|
650
|
+
// @internal - Exported for unit testing only
|
|
641
651
|
export function b3qu_P_T(P : number) : number
|
|
642
652
|
{
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
653
|
+
let B3qu_PT_I = [0,1,2,3],
|
|
654
|
+
B3qu_PT_N = [5.65603648239126E2,5.29062258221222,-1.02020639611016E-1,1.22240301070145E-3],
|
|
655
|
+
T = 0;
|
|
646
656
|
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
657
|
+
for (let i = 0; i < 4; i++)
|
|
658
|
+
{
|
|
659
|
+
T += B3qu_PT_N[i]*Math.pow(P, B3qu_PT_I[i]);
|
|
660
|
+
}
|
|
651
661
|
|
|
652
|
-
|
|
662
|
+
return T;
|
|
653
663
|
}
|
|
654
664
|
|
|
655
|
-
// Exported for testing
|
|
665
|
+
// @internal - Exported for unit testing only
|
|
656
666
|
export function b3rx_P_T(P : number) : number
|
|
657
667
|
{
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
668
|
+
let B3rx_PT_I = [0,1,2,3],
|
|
669
|
+
B3rx_PT_N = [5.84561202520006E2,-1.02961025163669,2.43293362700452E-1,-2.94905044740799E-3],
|
|
670
|
+
T = 0;
|
|
661
671
|
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
672
|
+
for (let i = 0; i < 4; i++)
|
|
673
|
+
{
|
|
674
|
+
T += B3rx_PT_N[i]*Math.pow(P, B3rx_PT_I[i]);
|
|
675
|
+
}
|
|
666
676
|
|
|
667
|
-
|
|
677
|
+
return T;
|
|
668
678
|
}
|
|
669
679
|
|
|
670
680
|
function r3a_PT_v(P : number, T : number) : number
|
|
671
681
|
{
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
682
|
+
let pi = P/100,
|
|
683
|
+
sig = T/760,
|
|
684
|
+
v = 0,
|
|
685
|
+
R3a_PT_I = [-12,-12,-12,-10,-10,-10,-8,-8,-8,-6,-5,-5,-5,-4,-3,-3,-3,-3,-2,-2,-2,-1,-1,-1,0,0,1,1,2,2],
|
|
686
|
+
R3a_PT_J = [5,10,12,5,10,12,5,8,10,1,1,5,10,8,0,1,3,6,0,2,3,0,1,2,0,1,0,2,0,2],
|
|
687
|
+
R3a_PT_N = [1.10879558823853E-3,5.72616740810616E2,-7.67051948380852E4,-2.53321069529674E-2,6.28008049345689E3,2.34105654131876E5,2.16867826045856E-1,-1.56237904341963E2,-2.69893956176612E4,-1.80407100085505E-4,1.16732227668261E-3,2.6698704085604E1,2.82776617243286E4,-2.42431520029523E3,4.35217323022733E-4,-1.22494831387441E-2,1.79357604019989,4.42729521058314E1,-5.93223489018342E-3,4.53186261685774E-1,1.3582570312914,4.08748415856745E-2,4.74686397863312E-1,1.18646814997915,5.46987265727549E-1,1.95266770452643E-1,-5.02268790869663E-2,-3.69645308193377E-1,6.3382803752842E-3,7.97441793901017E-2];
|
|
688
|
+
|
|
689
|
+
for (let i = 0; i < 30; i++)
|
|
690
|
+
{
|
|
691
|
+
let N = R3a_PT_N[i],
|
|
692
|
+
I = R3a_PT_I[i],
|
|
693
|
+
J = R3a_PT_J[i];
|
|
694
|
+
|
|
695
|
+
v += N*Math.pow(pi-0.085,I)*Math.pow(sig-0.817, J);
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
return 0.0024*v;
|
|
689
699
|
}
|
|
690
700
|
|
|
691
701
|
function r3b_PT_v(P : number, T : number) : number
|
|
692
702
|
{
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
703
|
+
let pi = P/100,
|
|
704
|
+
sig = T/860,
|
|
705
|
+
v = 0,
|
|
706
|
+
R3b_PT_I = [-12,-12,-10,-10,-8,-6,-6,-6,-5,-5,-5,-4,-4,-4,-3,-3,-3,-3,-3,-2,-2,-2,-1,-1,0,0,1,1,2,3,4,4],
|
|
707
|
+
R3b_PT_J = [10,12,8,14,8,5,6,8,5,8,10,2,4,5,0,1,2,3,5,0,2,5,0,2,0,1,0,2,0,2,0,1],
|
|
708
|
+
R3b_PT_N = [-8.27670470003621E-2,4.16887126010565E1,4.83651982197059E-2,-2.91032084950276E4,-1.11422582236948E2,-2.02300083904014E-2,2.94002509338515E2,1.40244997609658E2,-3.44384158811459E2,3.61182452612149E2,-1.40699677420738E3,-2.02023902676481E-3,1.71346792457471E2,-4.25597804058632,6.91346085000334E-6,1.51140509678925E-3,-4.16375290166236E-2,-4.13754957011042E1,-5.06673295721637E1,-5.72212965569023E-4,6.08817368401785,2.39600660256161E1,1.22261479925384E-2,2.16356057692938,3.98198903368642E-1,-1.16892827834085E-1,-1.02845919373532E-1,-4.92676637589284E-1,6.5554045640679E-2,-2.4046253507853E-1,-2.69798180310075E-2,1.28369435967012E-1];
|
|
709
|
+
|
|
710
|
+
for (let i = 0; i < 32; i++)
|
|
711
|
+
{
|
|
712
|
+
let N = R3b_PT_N[i],
|
|
713
|
+
I = R3b_PT_I[i],
|
|
714
|
+
J = R3b_PT_J[i];
|
|
715
|
+
|
|
716
|
+
v += N*Math.pow(pi-0.280,I)*Math.pow(sig-0.779,J);
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
return 0.0041*v;
|
|
710
720
|
}
|
|
711
721
|
|
|
712
722
|
function r3c_PT_v(P : number, T : number)
|
|
713
723
|
{
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
724
|
+
let pi = P/40,
|
|
725
|
+
sig = T/690,
|
|
726
|
+
v = 0,
|
|
727
|
+
R3c_PT_I = [-12,-12,-12,-10,-10,-10,-8,-8,-8,-6,-5,-5,-5,-4,-4,-3,-3,-2,-2,-2,-1,-1,-1,0,0,0,1,1,2,2,2,2,3,3,8],
|
|
728
|
+
R3c_PT_J = [6,8,10,6,8,10,5,6,7,8,1,4,7,2,8,0,3,0,4,5,0,1,2,0,1,2,0,2,0,1,3,7,0,7,1],
|
|
729
|
+
R3c_PT_N = [3.1196778876303,2.76713458847564E4,3.22583103403269E7,-3.42416065095363E2,-8.99732529907377E5,-7.93892049821251E7,9.53193003217388E1,2.29784742345072E3,1.75336675322499E5,7.91214365222792E6,3.19933345844209E-5,-6.59508863555767E1,-8.33426563212851E5,6.45734680583292E-2,-3.82031020570813E6,4.06398848470079E-5,3.10327498492008E1,-8.92996718483724E-4,2.34604891591616E2,3.77515668966951E3,1.58646812591361E-2,7.07906336241843E-1,1.2601622514657E1,7.36143655772152E-1,6.76544268999101E-1,-1.78100588189137E1,-1.56531975531713E-1,1.17707430048158E1,8.40143653860447E-2,-1.86442467471949E-1,-4.40170203949645E1,1.23290423502494E6,-2.40650039730845E-2,-1.07077716660869E6,4.38319858566475E-2];
|
|
730
|
+
|
|
731
|
+
for (let i = 0; i < 35; i++)
|
|
732
|
+
{
|
|
733
|
+
let N = R3c_PT_N[i],
|
|
734
|
+
I = R3c_PT_I[i],
|
|
735
|
+
J = R3c_PT_J[i];
|
|
736
|
+
|
|
737
|
+
v += N*Math.pow(pi-0.259,I)*Math.pow(sig-0.903, J);
|
|
738
|
+
}
|
|
739
|
+
return 0.0022*v;
|
|
730
740
|
}
|
|
731
741
|
|
|
732
742
|
function r3d_PT_v(P : number, T : number) : number
|
|
733
743
|
{
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
744
|
+
let pi = P/40,
|
|
745
|
+
sig = T/690,
|
|
746
|
+
v = 0,
|
|
747
|
+
R3d_PT_I = [-12,-12,-12,-12,-12,-12,-10,-10,-10,-10,-10,-10,-10,-8,-8,-8,-8,-6,-6,-5,-5,-5,-5,-4,-4,-4,-3,-3,-2,-2,-1,-1,-1,0,0,1,1,3],
|
|
748
|
+
R3d_PT_J = [4,6,7,10,12,16,0,2,4,6,8,10,14,3,7,8,10,6,8,1,2,5,7,0,1,7,2,4,0,1,0,1,5,0,2,0,6,0],
|
|
749
|
+
R3d_PT_N = [-4.52484847171645E-10,3.15210389538801E-5,-2.14991352047545E-3,5.08058874808345E2,-1.27123036845932E7,1.15371133120497E12,-1.97805728776273E-16,2.41554806033972E-11,-1.56481703640525E-6,2.772113468366250E-3,-2.03578994462286E1,1.44369489909053E6,-4.11254217946539E10,6.23449786243773E-6,-2.21774281146038E1,-6.89315087933158E4,-1.95419525060713E7,3.16373510564015E3,2.24040754426988E6,-4.36701347922356E-6,-4.04213852833996E-4,-3.48153203414663E2,-3.85294213555289E5,1.35203700099403E-7,1.34648383271089E-4,1.25031835351736E5,9.68123678455841E-2,2.25660517512438E2,-1.90102435341872E-4,-2.99628410819229E-2,5.00833915372121E-3,3.87842482998411E-1,-1.38535367777182E3,8.70745245971773E-1,1.71946252068742,-3.26650121426383E-2,4.98044171727877E3,5.51478022765087E-3];
|
|
750
|
+
|
|
751
|
+
for (let i = 0; i < 38; i++)
|
|
752
|
+
{
|
|
753
|
+
let N = R3d_PT_N[i],
|
|
754
|
+
I = R3d_PT_I[i],
|
|
755
|
+
J = R3d_PT_J[i];
|
|
756
|
+
|
|
757
|
+
v += N*Math.pow(pi-0.559, I)*Math.pow(sig-0.939, J);
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
return 0.0029*Math.pow(v,4);
|
|
751
761
|
}
|
|
752
762
|
|
|
753
763
|
function r3e_PT_v(P : number, T : number) : number
|
|
754
764
|
{
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
765
|
+
let pi = P/40,
|
|
766
|
+
sig = T/710,
|
|
767
|
+
v = 0,
|
|
768
|
+
R3e_PT_I = [-12,-12,-10,-10,-10,-10,-10,-8,-8,-8,-6,-5,-4,-4,-3,-3,-3,-2,-2,-2,-2,-1,0,0,1,1,1,2,2],
|
|
769
|
+
R3e_PT_J = [14,16,3,6,10,14,16,7,8,10,6,6,2,4,2,6,7,0,1,3,4,0,0,1,0,4,6,0,2],
|
|
770
|
+
R3e_PT_N = [7.15815808404721E8,-1.14328360753449E11,3.7653100201572E-12,-9.03983668691157E-5,6.65695908836252E5,5.35364174960127E9,7.94977402335603E10,9.22230563421437E1,-1.42586073991215E5,-1.11796381424162E6,8.9612162964076E3,-6.69989239070491E3,4.51242538486834E-3,-3.39731325977713E1,-1.20523111552278,4.75992667717124E4,-2.66627750390341E5,-1.53314954386524E-4,3.05638404828265E-1,1.23654999499486E2,-1.04390794213011E3,-1.57496516174308E-2,6.85331118940253E-1,1.78373462873903,-5.4467412487891E-1,2.04529931318843E3,-2.28342359328752E4,4.13197481515899E-1,-3.41931835910405E1];
|
|
771
|
+
|
|
772
|
+
for (let i = 0; i < 29; i++)
|
|
773
|
+
{
|
|
774
|
+
let N = R3e_PT_N[i],
|
|
775
|
+
I = R3e_PT_I[i],
|
|
776
|
+
J = R3e_PT_J[i];
|
|
777
|
+
|
|
778
|
+
v += N*Math.pow(pi-0.587, I)*Math.pow(sig-0.918, J);
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
return 0.0032*v;
|
|
772
782
|
}
|
|
773
783
|
|
|
774
784
|
function r3f_PT_v(P : number, T : number) : number
|
|
775
785
|
{
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
786
|
+
let pi = P/40,
|
|
787
|
+
sig = T/730,
|
|
788
|
+
v = 0,
|
|
789
|
+
R3f_PT_I = [0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,4,5,5,6,7,7,10,12,12,12,14,14,14,14,14,16,16,18,18,20,20,20,22,24,24,28,32],
|
|
790
|
+
R3f_PT_J = [-3,-2,-1,0,1,2,-1,1,2,3,0,1,-5,-2,0,-3,-8,1,-6,-4,1,-6,-10,-8,-4,-12,-10,-8,-6,-4,-10,-8,-12,-10,-12,-10,-6,-12,-12,-4,-12,-12],
|
|
791
|
+
R3f_PT_N = [-2.51756547792325E-8,6.01307193668763E-6,-1.00615977450049E-3,9.99969140252192E-1,2.14107759236486,-1.65175571959086E1,-1.41987303638727E-3,2.69251915156554,3.49741815858722E1,-3.00208695771783E1,-1.31546288252539,-8.39091277286169,1.81545608337015E-10,-5.91099206478909E-4,1.52115067087106,2.52956470663225E-5,1.00726265203786E-15,-1.4977453386065,-7.93940970562969E-10,-1.50290891264717E-4,1.51205531275133,4.70942606221652E-6,1.95049710391712E-13,-9.11627886266077E-9,6.04374640201265E-4,-2.25132933900136E-16,6.10916973582981E-12,-3.03063908043404E-7,-1.37796070798409E-5,-9.19296736666106E-4,6.39288223132545E-10,7.53259479898699E-7,-4.00321478682929E-13,7.56140294351614E-9,-9.12082054034891E-12,-2.37612381140539E-08,2.69586010591874E-5,-7.32828135157839E-11,2.4199557830666E-10,-4.05735532730322E-4,1.89424143498011E-10,-4.86632965074563E-10];
|
|
792
|
+
|
|
793
|
+
for (let i = 0; i < 42; i++)
|
|
794
|
+
{
|
|
795
|
+
let N = R3f_PT_N[i],
|
|
796
|
+
I = R3f_PT_I[i],
|
|
797
|
+
J = R3f_PT_J[i];
|
|
798
|
+
|
|
799
|
+
v += N*Math.pow(pi-0.587, 0.5*I)*Math.pow(sig-0.891, J);
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
return 0.0064*Math.pow(v,4);
|
|
793
803
|
}
|
|
794
804
|
|
|
795
805
|
function r3g_PT_v(P : number, T : number) : number
|
|
796
806
|
{
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
807
|
+
let pi = P/25,
|
|
808
|
+
sig = T/660,
|
|
809
|
+
v = 0,
|
|
810
|
+
R3g_PT_I = [-12,-12,-12,-12,-12,-12,-10,-10,-10,-8,-8,-8,-8,-6,-6,-5,-5,-4,-3,-2,-2,-2,-2,-1,-1,-1,0,0,0,1,1,1,3,5,6,8,10,10],
|
|
811
|
+
R3g_PT_J = [7,12,14,18,22,24,14,20,24,7,8,10,12,8,22,7,20,22,7,3,5,14,24,2,8,18,0,1,2,0,1,3,24,22,12,3,0,6],
|
|
812
|
+
R3g_PT_N = [4.12209020652996E-5,-1.14987238280587E6,9.4818088503208E9,-1.95788865718971E17,4.962507048713E24,-1.05549884548496E28,-7.58642165988278E11,-9.22172769596101E22,7.25379072059348E29,-6.17718249205859E1,1.07555033344858E4,-3.79545802336487E7,2.28646846221831E11,-4.99741093010619E6,-2.80214310054101E30,1.04915406769586E6,6.13754229168619E27,8.02056715528378E31,-2.98617819828065E7,-9.10782540134681E1,1.35033227281565E5,-7.12949383408211E18,-1.04578785289542E36,3.04331584444093E1,5.93250797959445E9,-3.64174062110798E27,9.21791403532461E-1,-3.37693609657471E-1,-7.24644143758508E1,-1.10480239272601E-1,5.36516031875059,-2.91441872156205E3,6.16338176535305E39,-1.2088917586118E38,8.18396024524612E22,9.40781944835829E8,-3.67279669545448E4,-8.37513931798655E15];
|
|
813
|
+
|
|
814
|
+
for (let i = 0; i < 38; i++)
|
|
815
|
+
{
|
|
816
|
+
let N = R3g_PT_N[i],
|
|
817
|
+
I = R3g_PT_I[i],
|
|
818
|
+
J = R3g_PT_J[i];
|
|
819
|
+
|
|
820
|
+
v += N*Math.pow(pi-0.872, I)*Math.pow(sig-0.971, J);
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
return 0.0027*Math.pow(v,4);
|
|
814
824
|
}
|
|
815
825
|
|
|
816
826
|
function r3h_PT_v(P : number, T : number) : number
|
|
817
827
|
{
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
828
|
+
let pi = P/25,
|
|
829
|
+
sig = T/660,
|
|
830
|
+
v = 0,
|
|
831
|
+
R3h_PT_I = [-12,-12,-10,-10,-10,-10,-10,-10,-8,-8,-8,-8,-8,-6,-6,-6,-5,-5,-5,-4,-4,-3,-3,-2,-1,-1,0,1,1],
|
|
832
|
+
R3h_PT_J = [8,12,4,6,8,10,14,16,0,1,6,7,8,4,6,8,2,3,4,2,4,1,2,0,0,2,0,0,2],
|
|
833
|
+
R3h_PT_N = [5.61379678887577E-2,7.74135421587083E9,1.11482975877938E-9,-1.43987128208183E-3,1.9369655876492E3,-6.05971823585005E8,1.71951568124337E13,-1.85461154985145E16,3.8785116807801E-17,-3.95464327846105E-14,-1.70875935679023E2,-2.1201062070122E3,1.77683337348191E7,1.10177443629575E1,-2.34396091693313E5,-6.56174421999594E6,1.56362212977396E-5,-2.129462570214,1.35249306374858E1,1.77189164145813E-1,1.39499167345464E3,-7.03670932036388E-3,-1.52011044389648E-1,9.81916922991113E-5,1.47199658618076E-3,2.02618487025578E1,8.9934551894424E-1,-2.11346402240858E-1,2.49971752957491E1];
|
|
834
|
+
|
|
835
|
+
for (let i = 0; i < 29; i++)
|
|
836
|
+
{
|
|
837
|
+
let N = R3h_PT_N[i],
|
|
838
|
+
I = R3h_PT_I[i],
|
|
839
|
+
J = R3h_PT_J[i];
|
|
840
|
+
|
|
841
|
+
v += N*Math.pow(pi-0.898, I)*Math.pow(sig-0.983, J);
|
|
842
|
+
}
|
|
843
|
+
return 0.0032*Math.pow(v, 4);
|
|
834
844
|
}
|
|
835
845
|
|
|
836
846
|
function r3i_PT_v(P : number, T : number) : number
|
|
837
847
|
{
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
848
|
+
let pi = P/25,
|
|
849
|
+
sig = T/660,
|
|
850
|
+
v = 0,
|
|
851
|
+
R3i_PT_I = [0,0,0,1,1,1,1,2,3,3,4,4,4,5,5,5,7,7,8,8,10,12,12,12,14,14,14,14,18,18,18,18,18,20,20,22,24,24,32,32,36,36],
|
|
852
|
+
R3i_PT_J = [0,1,10,-4,-2,-1,0,0,-5,0,-3,-2,-1,-6,-1,12,-4,-3,-6,10,-8,-12,-6,-4,-10,-8,-4,5,-12,-10,-8,-6,2,-12,-10,-12,-12,-8,-10,-5,-10,-8],
|
|
853
|
+
R3i_PT_N = [1.06905684359136,-1.48620857922333,2.59862256980408E14,-4.46352055678749E-12,-5.66620757170032E-7,-2.35302885736849E-3,-2.69226321968839E-1,9.22024992944392,3.57633505503772E-12,-1.73942565562222E1,7.00681785556229E-6,-2.67050351075768E-4,-2.31779669675624,-7.53533046979752E-13,4.81337131452891,-2.23286270422356E21,-1.18746004987383E-5,6.46412934136496E-3,-4.10588536330937E-10,4.22739537057241E19,3.13698180473812E-13,1.6439533434504E-24,-3.39823323754373E-6,-1.35268639905021E-2,-7.232525142116250E-15,1.84386437538366E-9,-4.63959533752385E-2,-9.9226310037675E13,6.88169154439335E-17,-2.22620998452197E-11,-5.40843018624083E-8,3.45570606200257E-3,4.22275800304086E10,-1.26974478770487E-15,9.27237985153679E-10,6.126708120164890E-14,-7.22693924063497E-12,-3.83669502636822E-4,3.74684572410204E-4,-9.31976897511086E4,-2.47690616026922E-2,6.58110546759474E1];
|
|
854
|
+
|
|
855
|
+
for (let i = 0; i < 42; i++)
|
|
856
|
+
{
|
|
857
|
+
let N = R3i_PT_N[i],
|
|
858
|
+
I = R3i_PT_I[i],
|
|
859
|
+
J = R3i_PT_J[i];
|
|
860
|
+
|
|
861
|
+
v += N*Math.pow(pi-0.910, 0.5*I)*Math.pow(sig-0.984, J);
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
return 0.0041*Math.pow(v,4);
|
|
855
865
|
}
|
|
856
866
|
|
|
857
867
|
function r3j_PT_v(P : number, T : number) : number
|
|
858
868
|
{
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
869
|
+
let pi = P/25,
|
|
870
|
+
sig = T/670,
|
|
871
|
+
v = 0,
|
|
872
|
+
R3j_PT_I = [0,0,0,1,1,1,2,2,3,4,4,5,5,5,6,10,12,12,14,14,14,16,18,20,20,24,24,28,28],
|
|
873
|
+
R3j_PT_J = [-1,0,1,-2,-1,1,-1,1,-2,-2,2,-3,-2,0,3,-6,-8,-3,-10,-8,-5,-10,-12,-12,-10,-12,-6,-12,-5],
|
|
874
|
+
R3j_PT_N = [-1.1137131739554E-4,1.00342892423685,5.30615581928979,1.79058760078792E-6,-7.28541958464774E-4,-1.87576133371704E1,1.99060874071849E-3,2.4357475537729E1,-1.77040785499444E-4,-2.5968038522713E-3,-1.98704578406823E2,7.38627790224287E-5,-2.36264692844138E-3,-1.61023121314333,6.22322971786473E3,-9.60754116701669E-9,-5.10572269720488E-11,7.67373781404211E-3,6.63855469485254E-15,-7.17590735526745E-10,1.46564542926508E-5,3.09029474277013E-12,-4.64216300971708E-16,-3.90499637961161E-14,-2.36716126781431E-10,4.54652854268717E-12,-4.22271787482497E-3,2.83911742354706E-11,2.70929002720228];
|
|
875
|
+
|
|
876
|
+
for (let i = 0; i < 29; i++)
|
|
877
|
+
{
|
|
878
|
+
let N = R3j_PT_N[i],
|
|
879
|
+
I = R3j_PT_I[i],
|
|
880
|
+
J = R3j_PT_J[i];
|
|
881
|
+
|
|
882
|
+
v += N*Math.pow(pi-0.875, 0.5*I)*Math.pow(sig-0.964,J);
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
return 0.0054*Math.pow(v,4);
|
|
876
886
|
}
|
|
877
887
|
|
|
878
888
|
function r3k_PT_v(P : number, T : number) : number
|
|
879
889
|
{
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
890
|
+
let pi = P/25,
|
|
891
|
+
sig = T/680,
|
|
892
|
+
v = 0,
|
|
893
|
+
R3k_PT_I = [-2,-2,-1,-1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,2,5,5,5,6,6,6,6,8,10,12],
|
|
894
|
+
R3k_PT_J = [10,12,-5,6,-12,-6,-2,-1,0,1,2,3,14,-3,-2,0,1,2,-8,-6,-3,-2,0,4,-12,-6,-3,-12,-10,-8,-5,-12,-12,-10],
|
|
895
|
+
R3k_PT_N = [-4.01215699576099E8,4.84501478318406E10,3.94721471363678E-15,3.72629967374147E4,-3.69794374168666E-30,-3.80436407012452E-15,4.75361629970233E-7,-8.79148916140706E-4,8.44317863844331E-1,1.224331626566E1,-1.04529634830279E2,5.89702771277429E2,-2.91026851164444E13,1.7034307284185E-6,-2.77617606975748E-4,-3.44709605486686,2.21333862447095E1,-1.94646110037079E2,8.08354639772825E-16,-1.8084520914547E-11,-6.96664158132412E-6,-1.81057560300994E-3,2.55830298579027,3.28913873658481E3,-1.73270241249904E-19,-6.61876792558034E-7,-3.9568892342125E-3,6.04203299819132E-18,-4.00879935920517E-14,1.60751107464958E-9,3.83719409025556E-5,-6.49565446702457E-15,-1.49095328506E-12,5.41449377329581E-9];
|
|
896
|
+
|
|
897
|
+
for (let i = 0; i < 34; i++)
|
|
898
|
+
{
|
|
899
|
+
let N = R3k_PT_N[i],
|
|
900
|
+
I = R3k_PT_I[i],
|
|
901
|
+
J = R3k_PT_J[i];
|
|
902
|
+
|
|
903
|
+
v += N*Math.pow(pi-0.802,I)*Math.pow(sig-0.935,J);
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
return 0.0077*v;
|
|
897
907
|
}
|
|
898
908
|
|
|
899
909
|
function r3l_PT_v(P : number, T : number) : number
|
|
900
910
|
{
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
911
|
+
let pi = P/24,
|
|
912
|
+
sig = T/650,
|
|
913
|
+
v = 0,
|
|
914
|
+
R3l_PT_I = [-12,-12,-12,-12,-12,-10,-10,-8,-8,-8,-8,-8,-8,-8,-6,-5,-5,-4,-4,-3,-3,-3,-3,-2,-2,-2,-1,-1,-1,0,0,0,0,1,1,2,4,5,5,6,10,10,14],
|
|
915
|
+
R3l_PT_J = [14,16,18,20,22,14,24,6,10,12,14,18,24,36,8,4,5,7,16,1,3,18,20,2,3,10,0,1,3,0,1,2,12,0,16,1,0,0,1,14,4,12,10],
|
|
916
|
+
R3l_PT_N = [2.60702058647537E9,-1.88277213604704E14,5.54923870289667E18,-7.58966946387758E22,4.13865186848908E26,-8.1503800073806E11,-3.81458260489955E32,-1.23239564600519E-2,2.26095631437174E7,-4.9501780950672E11,5.29482996422863E15,-4.44359478746295E22,5.21635864527315E34,-4.87095672740742E54,-7.14430209937547E5,1.27868634615495E-1,-1.00752127917598E1,7.7745143796099E6,-1.08105480796471E24,-3.57578581169659E-6,-2.12857169423484,2.70706111085238E29,-6.95953622348829E32,1.1060902747228E-1,7.21559163361354E1,-3.06367307532219E14,2.6583961888553E-5,2.53392392889754E-2,-2.14443041836579E2,9.37846601489667E-1,2.231840431017,3.38401222509191E1,4.94237237179718E20,-1.98068404154428E-1,-1.4141534988114E30,-9.93862421613651E1,1.25070534142731E2,-9.96473529004439E2,4.73137909872765E4,1.16662121219322E32,-3.15874976271533E15,-4.45703369196945E32,6.42794932373694E32];
|
|
917
|
+
|
|
918
|
+
for (let i = 0; i < 43; i++)
|
|
919
|
+
{
|
|
920
|
+
let N = R3l_PT_N[i],
|
|
921
|
+
I = R3l_PT_I[i],
|
|
922
|
+
J = R3l_PT_J[i];
|
|
923
|
+
|
|
924
|
+
v += N*Math.pow(pi-0.908, I)*Math.pow(sig-0.989, J);
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
return 0.0026*Math.pow(v, 4);
|
|
918
928
|
}
|
|
919
929
|
|
|
920
930
|
function r3m_PT_v(P : number, T : number) : number
|
|
921
931
|
{
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
932
|
+
let pi = P/23,
|
|
933
|
+
sig = T/650,
|
|
934
|
+
v = 0,
|
|
935
|
+
R3m_PT_I = [0,3,8,20,1,3,4,5,1,6,2,4,14,2,5,3,0,1,1,1,28,2,16,0,5,0,3,4,12,16,1,8,14,0,2,3,4,8,14,24],
|
|
936
|
+
R3m_PT_J = [0,0,0,2,5,5,5,5,6,6,7,8,8,10,10,12,14,14,18,20,20,22,22,24,24,28,28,28,28,28,32,32,32,36,36,36,36,36,36,36],
|
|
937
|
+
R3m_PT_N = [8.11384363481847E-1,-5.68199310990094E3,-1.78657198172556E10,7.95537657613427E31,-8.14568209346872E4,-6.59774567602874E7,-1.52861148659302E10,-5.60165667510446E11,4.58384828593949E5,-3.85754000383848E13,4.53735800004273E7,9.39454935735563E11,2.66572856432938E27,-5.47578313899097E9,2.00725701112386E14,1.85007245563239E12,1.85135446828337E8,-1.70451090076385E11,1.57890366037614E14,-2.02530509748774E15,3.6819392618357E59,1.70215539458936E17,6.39234909918741E41,-8.21698160721956E14,-7.95260241872306E23,2.3341586947851E17,-6.00079934586803E22,5.94584382273384E24,1.89461279349492E39,-8.10093428842645E45,1.88813911076809E21,1.11052244098768E35,2.91133958602503E45,-3.2942192395146E21,-1.37570282536696E25,1.81508996303902E27,-3.46865122768353E29,-2.1196114877426E37,-1.28617899887675E48,4.79817895699239E64];
|
|
938
|
+
|
|
939
|
+
for (let i = 0; i < 40; i++)
|
|
940
|
+
{
|
|
941
|
+
let N = R3m_PT_N[i],
|
|
942
|
+
I = R3m_PT_I[i],
|
|
943
|
+
J = R3m_PT_J[i];
|
|
944
|
+
|
|
945
|
+
v += N*Math.pow(pi-1,I)*Math.pow(sig-0.997, 0.25*J);
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
return 0.0028*v;
|
|
939
949
|
}
|
|
940
950
|
|
|
941
951
|
function r3n_PT_v(P : number, T : number) : number
|
|
942
952
|
{
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
953
|
+
let pi = P/23,
|
|
954
|
+
sig = T/650,
|
|
955
|
+
v = 0,
|
|
956
|
+
R3n_PT_I = [0,3,4,6,7,10,12,14,18,0,3,5,6,8,12,0,3,7,12,2,3,4,2,4,7,4,3,5,6,0,0,3,1,0,1,0,1,0,1],
|
|
957
|
+
R3n_PT_J = [-12,-12,-12,-12,-12,-12,-12,-12,-12,-10,-10,-10,-10,-10,-10,-8,-8,-8,-8,-6,-6,-6,-5,-5,-5,-4,-3,-3,-3,-2,-1,-1,0,1,1,2,4,5,6],
|
|
958
|
+
R3n_PT_N = [2.80967799943151E-39,6.14869006573609E-31,5.82238667048942E-28,3.90628369238462E-23,8.21445758255119E-21,4.02137961842776E-15,6.51718171878301E-13,-2.11773355803058E-8,2.64953354380072E-3,-1.35031446451331E-32,-6.07246643970893E-24,-4.02352115234494E-19,-7.44938506925544E-17,1.89917206526237E-13,3.64975183508473E-6,1.77274872361946E-26,-3.34952758812999E-19,-4.21537726098389E-9,-3.91048167929649E-2,5.41276911564176E-14,7.05412100773699E-12,2.58585887897486E-9,-4.93111362030162E-11,-1.58649699894543E-6,-5.250374278861E-1,2.20019901729615E-3,-6.43064132636925E-3,6.29154149015048E1,1.35147318617061E2,2.40560808321713E-7,-8.90763306701305E-4,-4.40209599407714E3,-3.02807107747776E2,1.59158748314599E3,2.32534272709876E5,-7.926812071326E5,-8.69871364662769E10,3.54542769185671E11,4.00849240129329E14];
|
|
959
|
+
|
|
960
|
+
for (let i = 0; i < 39; i++)
|
|
961
|
+
{
|
|
962
|
+
let N = R3n_PT_N[i],
|
|
963
|
+
I = R3n_PT_I[i],
|
|
964
|
+
J = R3n_PT_J[i];
|
|
965
|
+
|
|
966
|
+
v += N*Math.pow(pi-0.976, I)*Math.pow(sig-0.997, J);
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
return 0.0031*Math.exp(v);
|
|
960
970
|
}
|
|
961
971
|
|
|
962
972
|
function r3o_PT_v(P : number, T : number) : number
|
|
963
973
|
{
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
974
|
+
let pi = P/23,
|
|
975
|
+
sig = T/650,
|
|
976
|
+
v = 0,
|
|
977
|
+
R3o_PT_I = [0,0,0,2,3,4,4,4,4,4,5,5,6,7,8,8,8,10,10,14,14,20,20,24],
|
|
978
|
+
R3o_PT_J = [-12,-4,-1,-1,-10,-12,-8,-5,-4,-1,-4,-3,-8,-12,-10,-8,-4,-12,-8,-12,-8,-12,-10,-12],
|
|
979
|
+
R3o_PT_N = [1.28746023979718E-35,-7.35234770382342E-12,2.8907869214915E-3,2.44482731907223E-1,1.41733492030985E-24,-3.54533853059476E-29,-5.94539202901431E-18,-5.85188401782779E-9,2.01377325411803E-6,1.38647388209306,-1.73959365084772E-5,1.37680878349369E-3,8.14897605805513E-15,4.25596631351839E-26,-3.87449113787755E-18,1.3981474793024E-13,-1.71849638951521E-3,6.41890529513296E-22,1.18960578072018E-11,-1.55282762571611E-18,2.33907907347507E-8,-1.74093247766213E-13,3.77682649089149E-9,-5.16720236575302E-11];
|
|
980
|
+
|
|
981
|
+
for (let i = 0; i < 24; i++)
|
|
982
|
+
{
|
|
983
|
+
let N = R3o_PT_N[i],
|
|
984
|
+
I = R3o_PT_I[i],
|
|
985
|
+
J = R3o_PT_J[i];
|
|
986
|
+
|
|
987
|
+
v += N*Math.pow(pi-0.974, 0.5*I)*Math.pow(sig-0.996, J);
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
return 0.0034*v;
|
|
981
991
|
}
|
|
982
992
|
|
|
983
993
|
function r3p_PT_v(P : number, T : number) : number
|
|
984
994
|
{
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
995
|
+
let pi = P/23,
|
|
996
|
+
sig = T/650,
|
|
997
|
+
v = 0,
|
|
998
|
+
R3p_PT_I = [0,0,0,0,1,2,3,3,4,6,7,7,8,10,12,12,12,14,14,14,16,18,20,22,24,24,36],
|
|
999
|
+
R3p_PT_J = [-1,0,1,2,1,-1,-3,0,-2,-2,-5,-4,-2,-3,-12,-6,-5,-10,-8,-3,-8,-8,-10,-10,-12,-8,-12],
|
|
1000
|
+
R3p_PT_N = [-9.82825342010366E-5,1.05145700850612,1.16033094095084E2,3.24664750281543E3,-1.23592348610137E3,-5.61403450013495E-2,8.56677401640869E-8,2.36313425393924E2,9.72503292350109E-3,-1.03001994531927,-1.49653706199162E-9,-2.15743778861592E-5,-8.34452198291445,5.86602660564988E-1,3.43480022104968E-26,8.16256095947021E-6,2.94985697916798E-3,7.11730466276584E-17,4.00954763806941E-10,1.07766027032853E1,-4.09449599138182E-7,-7.29121307758902E-6,6.77107970938909E-9,6.02745973022975E-8,-3.82323011855257E-11,1.79946628317437E-3,-3.45042834640005E-4];
|
|
1001
|
+
|
|
1002
|
+
for (let i = 0; i < 27; i++)
|
|
1003
|
+
{
|
|
1004
|
+
let N = R3p_PT_N[i],
|
|
1005
|
+
I = R3p_PT_I[i],
|
|
1006
|
+
J = R3p_PT_J[i];
|
|
1007
|
+
|
|
1008
|
+
v += N*Math.pow(pi-0.972, 0.5*I)*Math.pow(sig-0.997, J);
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
return 0.0041*v;
|
|
1002
1012
|
}
|
|
1003
1013
|
|
|
1004
1014
|
function r3q_PT_v(P : number, T : number) : number
|
|
1005
1015
|
{
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1016
|
+
let pi = P/23,
|
|
1017
|
+
sig = T/650,
|
|
1018
|
+
v = 0,
|
|
1019
|
+
R3q_PT_I = [-12,-12,-10,-10,-10,-10,-8,-6,-5,-5,-4,-4,-3,-2,-2,-2,-2,-1,-1,-1,0,1,1,1],
|
|
1020
|
+
R3q_PT_J = [10,12,6,7,8,10,8,6,2,5,3,4,3,0,1,2,4,0,1,2,0,0,1,3],
|
|
1021
|
+
R3q_PT_N = [-8.2043384325995E4,4.73271518461586E10,-8.05950021005413E-2,3.2860002543598E1,-3.5661702998249E3,-1.72985781433335E9,3.51769232729192E7,-7.75489259985144E5,7.10346691966018E-5,9.93499883820274E4,-6.4209417190457E-1,-6.12842816820083E3,2.32808472983776E2,-1.42808220416837E-5,-6.43596060678456E-3,-4.28577227475614,2.25689939161918E3,1.0035565172151E-3,3.33491455143516E-1,1.09697576888873,9.61917379376452E-1,-8.38165632204598E-2,2.47795908411492,-3.19114969006533E3];
|
|
1022
|
+
|
|
1023
|
+
for (let i = 0; i < 24; i++)
|
|
1024
|
+
{
|
|
1025
|
+
let N = R3q_PT_N[i],
|
|
1026
|
+
I = R3q_PT_I[i],
|
|
1027
|
+
J = R3q_PT_J[i];
|
|
1028
|
+
|
|
1029
|
+
v += N*Math.pow(pi-0.848,I)*Math.pow(sig-0.983,J);
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
return 0.0022*Math.pow(v,4);
|
|
1023
1033
|
}
|
|
1024
1034
|
|
|
1025
1035
|
function r3r_PT_v(P : number, T : number) : number
|
|
1026
1036
|
{
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1037
|
+
let pi = P/23,
|
|
1038
|
+
sig = T/650,
|
|
1039
|
+
v = 0,
|
|
1040
|
+
R3r_PT_I = [-8,-8,-3,-3,-3,-3,-3,0,0,0,0,3,3,8,8,8,8,10,10,10,10,10,10,10,10,12,14],
|
|
1041
|
+
R3r_PT_J = [6,14,-3,3,4,5,8,-1,0,1,5,-6,-2,-12,-10,-8,-5,-12,-10,-8,-6,-5,-4,-3,-2,-12,-12],
|
|
1042
|
+
R3r_PT_N = [1.44165955660863E-3,-7.01438599628258E12,-8.30946716459219E-17,2.61975135368109E-1,3.93097214706245E2,-1.04334030654021E4,4.90112654154211E8,-1.47104222772069E-4,1.03602748043408,3.05308890065089,-3.99745276971264E6,5.6923371959375E-12,-4.64923504407778E-2,-5.35400396512906E-18,3.99988795693162E-13,-5.36479560201811E-07,1.59536722411202E-2,2.70303248860217E-15,2.44247453858506E-8,-9.83430636716454E-6,6.63513144224454E-2,-9.93456957845006,5.46491323528491E2,-1.43365406393758E4,1.50764974125511E5,-3.37209709340105E-10,3.77501980025469E-9];
|
|
1043
|
+
|
|
1044
|
+
for (let i = 0; i < 27; i++)
|
|
1045
|
+
{
|
|
1046
|
+
let N = R3r_PT_N[i],
|
|
1047
|
+
I = R3r_PT_I[i],
|
|
1048
|
+
J = R3r_PT_J[i];
|
|
1049
|
+
|
|
1050
|
+
v += N*Math.pow(pi-0.874,I)*Math.pow(sig-0.982,J);
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
return 0.0054*v;
|
|
1044
1054
|
}
|
|
1045
1055
|
|
|
1046
1056
|
function r3s_PT_v(P : number, T : number) : number
|
|
1047
1057
|
{
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1058
|
+
let pi = P/21,
|
|
1059
|
+
sig = T/640,
|
|
1060
|
+
v = 0,
|
|
1061
|
+
R3s_PT_I = [-12,-12,-10,-8,-6,-5,-5,-4,-4,-3,-3,-2,-1,-1,-1,0,0,0,0,1,1,3,3,3,4,4,4,5,14],
|
|
1062
|
+
R3s_PT_J = [20,24,22,14,36,8,16,6,32,3,8,4,1,2,3,0,1,4,28,0,32,0,1,2,3,18,24,4,24],
|
|
1063
|
+
R3s_PT_N = [-5.32466612140254E22,1.00415480000824E31,-1.91540001821367E29,1.05618377808847E16,2.02281884477061E58,8.84585472596134E7,1.66540181638363E22,-3.13563197669111E5,-1.85662327545324E53,-6.24942093918942E-2,-5.0416072413259E9,1.87514491833092E4,1.21399979993217E-3,1.88317043049455,-1.6707350396206E3,9.65961650599775E-1,2.94885696802488,-6.53915627346115E4,6.04012200163444E49,-1.98339358557937E-1,-1.75984090163501E57,3.56314881403987,-5.75991255144384E2,4.56213415338071E4,-1.09174044987829E7,4.37796099975134E33,-6.16552611135792E45,1.93568768917797E9,9.50898170425042E53];
|
|
1064
|
+
|
|
1065
|
+
for (let i = 0; i < 29; i++)
|
|
1066
|
+
{
|
|
1067
|
+
let N = R3s_PT_N[i],
|
|
1068
|
+
I = R3s_PT_I[i],
|
|
1069
|
+
J = R3s_PT_J[i];
|
|
1070
|
+
|
|
1071
|
+
v += N*Math.pow(pi-0.886,I)*Math.pow(sig-0.990,J);
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1074
|
+
return 0.0022*Math.pow(v,4);
|
|
1065
1075
|
}
|
|
1066
1076
|
|
|
1067
1077
|
function r3t_PT_v(P : number, T : number) : number
|
|
1068
1078
|
{
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1079
|
+
let pi = P/20,
|
|
1080
|
+
sig = T/650,
|
|
1081
|
+
v = 0,
|
|
1082
|
+
R3t_PT_I = [0,0,0,0,1,1,2,2,2,3,3,4,4,7,7,7,7,7,10,10,10,10,10,18,20,22,22,24,28,32,32,32,36],
|
|
1083
|
+
R3t_PT_J = [0,1,4,12,0,10,0,6,14,3,8,0,10,3,4,7,20,36,10,12,14,16,22,18,32,22,36,24,28,22,32,36,36],
|
|
1084
|
+
R3t_PT_N = [1.55287249586268,6.64235115009031,-2.8936623672721E3,-3.85923202309848E12,-2.91002915783761,-8.29088246858083E11,1.76814899675218,-5.34686695713469E8,1.60464608687834E17,1.96435366560186E5,1.56637427541729E12,-1.78154560260006,-2.29746237623692E15,3.85659001648006E7,1.10554446790543E9,-6.77073830687349E13,-3.27910592086523E30,-3.41552040860644E50,-5.27251339709047E20,2.45375640937055E23,-1.68776617209269E26,3.58958955867578E28,-6.56475280339411E35,3.55286045512301E38,5.6902145441327E57,-7.00584546433113E47,-7.05772623326374E64,1.66861176200148E52,-3.00475129680486E60,-6.68481295196808E50,4.28432338620678E68,-4.44227367758304E71,-2.81396013562745E76];
|
|
1085
|
+
|
|
1086
|
+
for (let i = 0; i < 33; i++)
|
|
1087
|
+
{
|
|
1088
|
+
let N = R3t_PT_N[i],
|
|
1089
|
+
I = R3t_PT_I[i],
|
|
1090
|
+
J = R3t_PT_J[i];
|
|
1091
|
+
|
|
1092
|
+
v += N*Math.pow(pi-0.803,I)*Math.pow(sig-1.02,J);
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
return 0.0088*v;
|
|
1086
1096
|
}
|
|
1087
1097
|
|
|
1088
1098
|
// Auxillary Equations for the region very close to the critical point
|
|
@@ -1091,160 +1101,160 @@ function r3t_PT_v(P : number, T : number) : number
|
|
|
1091
1101
|
// Exported for testing
|
|
1092
1102
|
export function b3uv_P_T(P : number) : number
|
|
1093
1103
|
{
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1104
|
+
let B3uv_PT_I = [0,1,2,3],
|
|
1105
|
+
B3uv_PT_N = [5.28199646263062E2,8.90579602135307,-0.222814134903755,0.286791682263697E-2],
|
|
1106
|
+
T = 0;
|
|
1097
1107
|
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1108
|
+
for (let i = 0; i < 4; i++)
|
|
1109
|
+
{
|
|
1110
|
+
T += B3uv_PT_N[i]*Math.pow(P, B3uv_PT_I[i]);
|
|
1111
|
+
}
|
|
1102
1112
|
|
|
1103
|
-
|
|
1113
|
+
return T;
|
|
1104
1114
|
}
|
|
1105
1115
|
|
|
1106
1116
|
//T3wx ( p) approximates the isochore v = 0.00385 m3 kg-1 from 2.190096265x10 MPa to 22.5 MPa
|
|
1107
1117
|
// Exported for testing
|
|
1108
1118
|
export function b3wx_P_T(P : number) : number
|
|
1109
1119
|
{
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1120
|
+
let B3wx_PT_I = [0,1,2,-1,-2],
|
|
1121
|
+
B3wx_PT_N = [7.2805260914538,9.73505869861952E1,1.47370491183191E1,0.329196213998375E3,8.73371668682417E2],
|
|
1122
|
+
T = 0;
|
|
1113
1123
|
|
|
1114
|
-
|
|
1124
|
+
P = Math.log(P);
|
|
1115
1125
|
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1126
|
+
for (let i = 0; i < 5; i++)
|
|
1127
|
+
{
|
|
1128
|
+
T += B3wx_PT_N[i]*Math.pow(P, B3wx_PT_I[i]);
|
|
1129
|
+
}
|
|
1120
1130
|
|
|
1121
|
-
|
|
1131
|
+
return T;
|
|
1122
1132
|
}
|
|
1123
1133
|
|
|
1124
1134
|
function r3u_PT_v(P : number, T : number) : number
|
|
1125
1135
|
{
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1136
|
+
let pi = P/23,
|
|
1137
|
+
sig = T/650,
|
|
1138
|
+
v = 0,
|
|
1139
|
+
R3u_PT_I = [-12,-10,-10,-10,-8,-8,-8,-6,-6,-5,-5,-5,-3,-1,-1,-1,-1,0,0,1,2,2,3,5,5,5,6,6,8,8,10,12,12,12,14,14,14,14],
|
|
1140
|
+
R3u_PT_J = [14,10,12,14,10,12,14,8,12,4,8,12,2,-1,1,12,14,-3,1,-2,5,10,-5,-4,2,3,-5,2,-8,8,-4,-12,-4,4,-12,-10,-6,6],
|
|
1141
|
+
R3u_PT_N = [1.22088349258355E17,1.04216468608488E9,-8.82666931564652E15,2.59929510849499E19,2.22612779142211E14,-8.78473585050085E17,-3.14432577551552E21,-2.16934916996285E12,1.59079648196849E20,-3.39567617303423E2,8.84387651337836E12,-8.43405926846418E20,1.14178193518022E1,-1.22708229235641E-4,-1.06201671767107E2,9.03443213959313E24,-6.93996270370852E27,6.48916718965575E-9,7.18957567127851E3,1.05581745346187E-3,-6.51903203602581E14,-1.60116813274676E24,-5.10254294237837E-9,-1.52355388953402E-1,6.77143292290144E11,2.7637843837893E14,1.16862983141686E-2,-3.01426947980171E13,1.6971981388484E-8,1.04674840020929E26,-1.0801690456014E4,-9.90623601934295E-13,5.36116483602738E6,2.26145963747881E21,-4.8873156577621E-10,1.5100154888067E-05,-2.2770046464392E04,-7.81754507698846E27];
|
|
1142
|
+
|
|
1143
|
+
for (let i = 0; i < 38; i++)
|
|
1144
|
+
{
|
|
1145
|
+
let N = R3u_PT_N[i],
|
|
1146
|
+
I = R3u_PT_I[i],
|
|
1147
|
+
J = R3u_PT_J[i];
|
|
1148
|
+
|
|
1149
|
+
v += N*Math.pow(pi-0.902,I)*Math.pow(sig-0.988,J);
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
return 0.0026*v;
|
|
1143
1153
|
}
|
|
1144
1154
|
|
|
1145
1155
|
function r3v_PT_v(P : number, T : number) : number
|
|
1146
1156
|
{
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1157
|
+
let pi = P/23,
|
|
1158
|
+
sig = T/650,
|
|
1159
|
+
v = 0,
|
|
1160
|
+
R3v_PT_I = [-10,-8,-6,-6,-6,-6,-6,-6,-5,-5,-5,-5,-5,-5,-4,-4,-4,-4,-3,-3,-3,-2,-2,-1,-1,0,0,0,1,1,3,4,4,4,5,8,10,12,14],
|
|
1161
|
+
R3v_PT_J = [-8,-12,-12,-3,5,6,8,10,1,2,6,8,10,14,-12,-10,-6,10,-3,10,12,2,4,-2,0,-2,6,10,-12,-10,3,-6,3,10,2,-12,-2,-3,1],
|
|
1162
|
+
R3v_PT_N = [-4.15652812061591E-55,1.77441742924043E-61,-3.57078668203377E-55,3.59252213604114E-26,-2.59123736380269E1,5.9461976619346E4,-6.24184007103158E10,3.13080299915944E16,1.05006446192036E-9,-1.92824336984852E-6,6.54144373749937E5,5.13117462865044E12,-6.97595750347391E18,-1.03977184454767E28,1.19563135540666E-48,-4.36677034051655E-42,9.26990036530639E-30,5.87793105620748E20,2.80375725094731E-18,-1.92359972440634E22,7.42705723302738E26,-5.17429682450605E1,8.20612048645469E6,-1.88214882341448E-9,1.84587261114837E-2,-1.35830407782663E-6,-7.23681885626348E16,-2.23449194054124E26,-1.11526741826431E-35,2.76032601145151E-29,1.34856491567853E14,6.5244029334586E-10,5.1065511977436E16,-4.68138358908732E31,-7.60667491183279E15,-4.17247986986821E-19,3.12545677756104E13,-1.00375333864186E14,2.47761392329058E26];
|
|
1163
|
+
|
|
1164
|
+
for (let i = 0; i < 39; i++)
|
|
1165
|
+
{
|
|
1166
|
+
let N = R3v_PT_N[i],
|
|
1167
|
+
I = R3v_PT_I[i],
|
|
1168
|
+
J = R3v_PT_J[i];
|
|
1169
|
+
|
|
1170
|
+
v += N*Math.pow(pi-0.960, I)*Math.pow(sig-0.995,J);
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1173
|
+
return 0.0031*v;
|
|
1164
1174
|
}
|
|
1165
1175
|
|
|
1166
1176
|
function r3w_PT_v(P : number, T : number) : number
|
|
1167
1177
|
{
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1178
|
+
let pi = P/23,
|
|
1179
|
+
sig = T/650,
|
|
1180
|
+
v = 0,
|
|
1181
|
+
R3w_PT_I = [-12,-12,-10,-10,-8,-8,-8,-6,-6,-6,-6,-5,-4,-4,-3,-3,-2,-2,-1,-1,-1,0,0,1,2,2,3,3,5,5,5,8,8,10,10],
|
|
1182
|
+
R3w_PT_J = [8,14,-1,8,6,8,14,-4,-3,2,8,-10,-1,3,-10,3,1,2,-8,-4,1,-12,1,-1,-1,2,-12,-5,-10,-8,-6,-12,-10,-12,-8],
|
|
1183
|
+
R3w_PT_N = [-5.86219133817016E-8,-8.94460355005526E10,5.31168037519774E-31,1.09892402329239E-1,-5.75368389425212E-2,2.28276853990249E4,-1.58548609655002E18,3.29865748576503E-28,-6.34987981190669E-25,6.15762068640611E-9,-9.61109240985747E7,-4.06274286652625E-45,-4.71103725498077E-13,7.25937724828145E-1,1.87768525763682E-39,-1.03308436323771E3,-6.62552816342168E-2,5.7951404176571E2,2.37416732616644E-27,2.71700235739893E-15,-9.0788621348360E1,-1.71242509570207E-37,1.56792067854621E2,9.2326135790147E-1,-5.97865988422577,3.21988767636389E6,-3.99441390042203E-30,4.93429086046981E-08,8.12036983370565E-20,-2.07610284654137E-12,-3.40821291419719E-07,5.42000573372233E-18,-8.56711586510214E-13,2.66170454405981E-14,8.58133791857099E-6];
|
|
1184
|
+
|
|
1185
|
+
for (let i = 0; i < 35; i++)
|
|
1186
|
+
{
|
|
1187
|
+
let N = R3w_PT_N[i],
|
|
1188
|
+
I = R3w_PT_I[i],
|
|
1189
|
+
J = R3w_PT_J[i];
|
|
1190
|
+
|
|
1191
|
+
v += N*Math.pow(pi-0.959, I)*Math.pow(sig-0.995, J);
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
return 0.0039*Math.pow(v, 4);
|
|
1185
1195
|
}
|
|
1186
1196
|
|
|
1187
1197
|
function r3x_PT_v(P : number, T : number) : number
|
|
1188
1198
|
{
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1199
|
+
let pi = P/23,
|
|
1200
|
+
sig = T/650,
|
|
1201
|
+
v = 0,
|
|
1202
|
+
R3x_PT_I = [-8,-6,-5,-4,-4,-4,-3,-3,-1,0,0,0,1,1,2,3,3,3,4,5,5,5,6,8,8,8,8,10,12,12,12,12,14,14,14,14],
|
|
1203
|
+
R3x_PT_J = [14,10,10,1,2,14,-2,12,5,0,4,10,-10,-1,6,-12,0,8,3,-6,-2,1,1,-6,-3,1,8,-8,-10,-8,-5,-4,-12,-10,-8,-6],
|
|
1204
|
+
R3x_PT_N = [3.77373741298151E18,-5.07100883722913E12,-1.0336322559886E15,1.84790814320773E-6,-9.24729378390945E-4,-4.25999562292738E23,-4.62307771873973E-13,1.07319065855767E21,6.48662492280682E10,2.44200600688281,-8.51535733484258E9,1.69894481433592E21,2.1578022250902E-27,-3.20850551367334E-1,-3.8264244845861E16,-2.75386077674421E-29,-5.63199253391666E5,-3.26068646279314E20,3.97949001553184E13,1.00824008584757E-7,1.62234569738433E4,-4.32355225319745E10,-5.9287424559861E11,1.33061647281106,1.57338197797544E6,2.58189614270853E13,2.62413209706358E24,-9.20011937431142E-2,2.20213765905426E-3,-1.10433759109547E1,8.47004870612087E6,-5.92910695762536E8,-1.8302717326966E-5,1.81339603516302E-1,-1.19228759669889E3,4.30867658061468E6];
|
|
1205
|
+
|
|
1206
|
+
for (let i = 0; i < 36; i++)
|
|
1207
|
+
{
|
|
1208
|
+
let N = R3x_PT_N[i],
|
|
1209
|
+
I = R3x_PT_I[i],
|
|
1210
|
+
J = R3x_PT_J[i];
|
|
1211
|
+
|
|
1212
|
+
v += N*Math.pow(pi-0.910, I)*Math.pow(sig-0.988, J);
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
return 0.0049*v;
|
|
1206
1216
|
}
|
|
1207
1217
|
|
|
1208
1218
|
function r3y_PT_v(P : number, T : number) : number
|
|
1209
1219
|
{
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1220
|
+
let pi = P/22,
|
|
1221
|
+
sig = T/650,
|
|
1222
|
+
v = 0,
|
|
1223
|
+
R3y_PT_I = [0,0,0,0,1,2,2,2,2,3,3,3,4,4,5,5,8,8,10,12],
|
|
1224
|
+
R3y_PT_J = [-3,1,5,8,8,-4,-1,4,5,-8,4,8,-6,6,-2,1,-8,-2,-5,-8],
|
|
1225
|
+
R3y_PT_N = [-5.25597995024633E-10,5.83441305228407E3,-1.34778968457925E16,1.18973500934212E25,-1.59096490904708E26,-3.15839902302021E-7,4.96212197158239E2,3.27777227273171E18,-5.27114657850696E21,2.10017506281863E-17,7.05106224399834E20,-2.66713136106469E30,-1.45370512554562E-8,1.4933391705313E27,-1.49795620287641E7,-3.818819062711E15,7.24660165585797E-5,-9.37808169550193E13,5.14411468376383E9,-8.28198594040141E4];
|
|
1226
|
+
|
|
1227
|
+
for (let i = 0; i < 20; i++)
|
|
1228
|
+
{
|
|
1229
|
+
let N = R3y_PT_N[i],
|
|
1230
|
+
I = R3y_PT_I[i],
|
|
1231
|
+
J = R3y_PT_J[i];
|
|
1232
|
+
|
|
1233
|
+
v += N*Math.pow(pi-0.996, I)*Math.pow(sig-0.994, J);
|
|
1234
|
+
}
|
|
1235
|
+
|
|
1236
|
+
return 0.0031*Math.pow(v,4);
|
|
1227
1237
|
}
|
|
1228
1238
|
|
|
1229
1239
|
function r3z_PT_v(P : number, T : number) : number
|
|
1230
1240
|
{
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1241
|
+
let pi = P/22,
|
|
1242
|
+
sig = T/650,
|
|
1243
|
+
v = 0,
|
|
1244
|
+
R3z_PT_I = [-8,-6,-5,-5,-4,-4,-4,-3,-3,-3,-2,-1,0,1,2,3,3,6,6,6,6,8,8],
|
|
1245
|
+
R3z_PT_J = [3,6,6,8,5,6,8,-2,5,6,2,-6,3,1,6,-6,-2,-6,-5,-4,-1,-8,-4],
|
|
1246
|
+
R3z_PT_N = [2.4400789229065E-11,-4.63057430331242E6,7.28803274777712E9,3.27776302858856E15,-1.10598170118409E9,-3.23899915729957E12,9.23814007023245E15,8.42250080413712E-13,6.63221436245506E11,-1.67170186672139E14,2.53749358701391E3,-8.19731559610523E-21,3.28380587890663E11,-6.25004791171543E7,8.03197957462023E20,-2.04397011338353E-11,-3.78391047055938E3,9.7287654593862E-3,1.54355721681459E1,-3.73962862928643E3,-6.82859011374572E10,-2.48488015614543E-4,3.94536049497068E6];
|
|
1247
|
+
|
|
1248
|
+
for (let i = 0; i < 23; i++)
|
|
1249
|
+
{
|
|
1250
|
+
let N = R3z_PT_N[i],
|
|
1251
|
+
I = R3z_PT_I[i],
|
|
1252
|
+
J = R3z_PT_J[i];
|
|
1253
|
+
|
|
1254
|
+
v += N*Math.pow(pi-0.993, I)*Math.pow(sig-0.994, J);
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
return 0.0038*Math.pow(v,4);
|
|
1248
1258
|
}
|
|
1249
1259
|
|
|
1250
1260
|
//
|
|
@@ -1256,13 +1266,13 @@ function r3z_PT_v(P : number, T : number) : number
|
|
|
1256
1266
|
// Equation 30 (pp. 33)
|
|
1257
1267
|
export function r4_T_Psat(T : number) : number
|
|
1258
1268
|
{
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1269
|
+
let Tr = T,
|
|
1270
|
+
v = Tr + -0.238558557567849/(Tr-650.17534844798),
|
|
1271
|
+
A = v*v + 1167.0521452767*v + -724213.16703206,
|
|
1272
|
+
B = -17.073846940092*v*v + 12020.82470247*v + -3232555.0322333,
|
|
1273
|
+
C = 14.91510861353*v*v + -4823.2657361591*v + 405113.40542057;
|
|
1264
1274
|
|
|
1265
|
-
|
|
1275
|
+
return Math.pow(2*C/(-B+Math.pow(B*B-4*A*C,0.5)),4);
|
|
1266
1276
|
}
|
|
1267
1277
|
|
|
1268
1278
|
// The saturation temperature for given pressure along the vapour-liquid saturation line
|
|
@@ -1271,14 +1281,14 @@ export function r4_T_Psat(T : number) : number
|
|
|
1271
1281
|
export function r4_P_Tsat(P : number) : number
|
|
1272
1282
|
{
|
|
1273
1283
|
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1284
|
+
let R4_PT_N = [1167.0521452767,-724213.16703206,-17.073846940092,12020.82470247,-3232555.0322333,14.91510861353,-4823.2657361591,405113.40542057,-0.238558557567849,650.17534844798],
|
|
1285
|
+
b = Math.pow(P,0.25),
|
|
1286
|
+
E = b*b + R4_PT_N[2]*b +R4_PT_N[5],
|
|
1287
|
+
F = R4_PT_N[0]*b*b + R4_PT_N[3]*b +R4_PT_N[6],
|
|
1288
|
+
G = R4_PT_N[1]*b*b + R4_PT_N[4]*b + R4_PT_N[7],
|
|
1289
|
+
D = 2.0*G/(-F-Math.pow(F*F-4.0*E*G,0.5));
|
|
1280
1290
|
|
|
1281
|
-
|
|
1291
|
+
return (R4_PT_N[9] + D -Math.pow(Math.pow(R4_PT_N[9]+D,2)-4.0*(R4_PT_N[8]+R4_PT_N[9]*D),0.5))/2.0;
|
|
1282
1292
|
}
|
|
1283
1293
|
|
|
1284
1294
|
//
|
|
@@ -1286,64 +1296,64 @@ export function r4_P_Tsat(P : number) : number
|
|
|
1286
1296
|
//
|
|
1287
1297
|
export function r5(P : number, T : number) : State
|
|
1288
1298
|
{
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1299
|
+
let R5I_PT_N = [-13.179983674201, 6.8540841634434, -0.024805148933466, 0.36901534980333, -3.1161318213925, -0.32961626538917],
|
|
1300
|
+
R5I_PT_J = [0, 1, -3, -2, -1, 2],
|
|
1301
|
+
R5R_PT_N = [1.5736404855259E-3, 9.0153761673944E-4, -5.0270077677648E-3, 2.2440037409485E-6, -4.1163275453471E-6, 3.7919454822955E-8],
|
|
1302
|
+
R5R_PT_J = [1, 2, 3, 3, 9, 7],
|
|
1303
|
+
R5R_PT_I = [1, 1, 1, 2, 2, 3],
|
|
1304
|
+
pi = P,
|
|
1305
|
+
tau = 1000/T,
|
|
1306
|
+
gi = Math.log(pi),
|
|
1307
|
+
gi_p = 1/pi,
|
|
1308
|
+
gi_pp = -1/(pi*pi),
|
|
1309
|
+
gi_t = 0,
|
|
1310
|
+
gi_tt = 0,
|
|
1311
|
+
gi_pt = 0,
|
|
1312
|
+
N, J, I;
|
|
1313
|
+
|
|
1314
|
+
for (let i = 0; i < 6; i++)
|
|
1315
|
+
{
|
|
1316
|
+
N = R5I_PT_N[i];
|
|
1317
|
+
J = R5I_PT_J[i];
|
|
1318
|
+
|
|
1319
|
+
gi += N*Math.pow(tau,J);
|
|
1320
|
+
gi_t += N*J*Math.pow(tau,J-1);
|
|
1321
|
+
gi_tt += N*J*(J-1)*Math.pow(tau,J-2);
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
let gr = 0,
|
|
1325
|
+
gr_p = 0,
|
|
1326
|
+
gr_pp = 0,
|
|
1327
|
+
gr_t = 0,
|
|
1328
|
+
gr_tt = 0,
|
|
1329
|
+
gr_pt = 0;
|
|
1330
|
+
|
|
1331
|
+
for (let j = 0; j < 6; j++)
|
|
1332
|
+
{
|
|
1333
|
+
N = R5R_PT_N[j];
|
|
1334
|
+
J = R5R_PT_J[j];
|
|
1335
|
+
I = R5R_PT_I[j];
|
|
1336
|
+
|
|
1337
|
+
gr += N*Math.pow(pi,I)*Math.pow(tau,J);
|
|
1338
|
+
gr_p += N*I*Math.pow(pi,I-1)*Math.pow(tau,J);
|
|
1339
|
+
gr_pp += N*I*(I-1)*Math.pow(pi,I-2)*Math.pow(tau,J);
|
|
1340
|
+
gr_t += N*Math.pow(pi,I)*J*Math.pow(tau,J-1);
|
|
1341
|
+
gr_tt += N*Math.pow(pi,I)*J*(J-1)*Math.pow(tau,J-2);
|
|
1342
|
+
gr_pt += N*I*Math.pow(pi,I-1)*J*Math.pow(tau,J-1);
|
|
1343
|
+
}
|
|
1344
|
+
|
|
1345
|
+
// The pressure and temperature MPa, K
|
|
1346
|
+
return generateResult({
|
|
1347
|
+
p: P,
|
|
1348
|
+
t: T,
|
|
1349
|
+
v: R*T*pi*(gi_p+gr_p)/(1000*P),
|
|
1350
|
+
u: R*T*(tau*(gi_t+gr_t)-pi*(gi_p+gr_p)),
|
|
1351
|
+
s: R*(tau*(gi_t+gr_t)-(gi+gr)),
|
|
1352
|
+
h: R*T*tau*(gi_t+gr_t),
|
|
1353
|
+
cp: -R*tau*tau*(gi_tt+gr_tt),
|
|
1354
|
+
cv: R*(-tau*tau*(gi_tt+gr_tt)-Math.pow(1+pi*gr_p-tau*pi*gr_pt,2)/(1-pi*pi*gr_pp)),
|
|
1355
|
+
w: Math.pow(1000*R*T*((1+2*pi*gr_p+pi*pi*gr_p*gr_p) / ((1-pi*pi*gr_pp) + Math.pow(1+pi*gr_p-tau*pi*gr_pt,2)/(tau*tau*(gi_tt+gr_tt)))),0.5),
|
|
1356
|
+
});
|
|
1347
1357
|
}
|
|
1348
1358
|
|
|
1349
1359
|
|