@neutrium/thermo.eos.iapws97 2.0.2 → 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/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
- v = (typeof v == "undefined") ? -1 : v;
14
+ v = (typeof v == "undefined") ? -1 : v;
16
15
 
17
- let region = findRegion_PT(P,T),
18
- result = null;
16
+ let region = findRegion_PT(P,T),
17
+ result : State | null = null;
19
18
 
20
- switch (region)
21
- {
22
- case 1 : result = r1(P, T); break;
23
- case 2 : result = r2(P, T); break;
24
- case 3 : result = r3(P, T, v); break;
25
- case 5 : result = r5(P, T); break;
26
- default : throw new Error('Input valves are outside the range of the IAPWS97 correlations');
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
- return result;
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
- if (P >= NS.CONST('MIN_P') && P <= NS.CONST('MAX_P') && T >= NS.CONST('MIN_T') &&
41
- (T <= NS.CONST('R5_MIN_T') || ( P <= NS.CONST('R5_MAX_P') && T <= NS.CONST('MAX_T'))))
42
- {
43
-
44
- if (T > NS.CONST('R5_MIN_T'))
45
- {
46
- if(P <= NS.CONST('R5_MAX_P'))
47
- {
48
- return 5;
49
- }
50
- else
51
- {
52
- return -1;
53
- }
54
- }
55
- else if (T > NS.CONST('R3_MIN_T'))
56
- {
57
- if (P > b23_T_P(T))
58
- {
59
- return 3;
60
- }
61
- else
62
- {
63
- return 2;
64
- }
65
- }
66
- else
67
- {
68
- if (r4_T_Psat(T) > P)
69
- {
70
- return 2;
71
- }
72
- else
73
- {
74
- return 1;
75
- }
76
- }
77
- }
78
-
79
- return -1;
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
- // Calculate the density from the specific volume
85
- r.rho = 1/r.v;
86
- // Caculate additional properties using the auxillary equations
87
-
88
- // Viscosity cP,
89
- r.mu = NS.viscosity(r.t, r.rho)/1000;
90
- // Thermal Conductivity W/m.K
91
- r.k = NS.thermal_conductivity(r.t, r.rho)/1000;
92
- // Surface Tension mN/m
93
- r.sigma = NS.surface_tension(r.t);
94
- // Dielectric constant
95
- r.epsilon = NS.dielectric_constant(r.t, r.rho);
96
- // Ionisation constant
97
- r.ic = NS.ionization_constant(r.t, r.rho);
98
-
99
- // Convert properties to the default units specified in NeutriumJs.thermo (where required)
100
- r.p = r.p*1000000; // Pressure MPa -> Pa
101
-
102
- return new State(r);
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
- // Auxillary equations for Regions 2 and 3
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
- return 348.05185628969 - 1.1671859879975*T+ 0.0010192970039326*T*T;
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
- return 572.54459862746 + Math.pow((P-13.91883977887)/0.0010192970039326, 0.5);
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
- 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],
126
- 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],
127
- 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],
128
- tau = 1386.0/T,
129
- pi = P/16.53,
130
- g = 0,
131
- g_p = 0,
132
- g_pp = 0,
133
- g_t = 0,
134
- g_tt = 0,
135
- g_pt = 0;
136
-
137
- for (let i = 0; i < 34; i++)
138
- {
139
- let I = R1_PT_I[i],
140
- J = R1_PT_J[i],
141
- N = R1_PT_N[i];
142
-
143
- g += N*Math.pow(7.1-pi, I)*Math.pow(tau-1.222, J);
144
-
145
- g_p += -N*I*Math.pow(7.1-pi, I-1)*Math.pow(tau-1.222, J);
146
- g_pp += N*I*(I-1)*Math.pow(7.1-pi, I-2)*Math.pow(tau-1.222, J);
147
-
148
- g_t += N*Math.pow(7.1-pi, I)*J*Math.pow(tau-1.222, J-1);
149
- g_tt += N*Math.pow(7.1-pi, I)*J*(J-1)*Math.pow(tau-1.222,J-2);
150
-
151
- g_pt += -N*I*Math.pow(7.1-pi, I-1)*J*Math.pow(tau-1.222, J-1);
152
- }
153
-
154
- return generateResult({
155
- p: P,
156
- t: T,
157
- v: R*T*pi*g_p/(1000*P),
158
- u: R*T*(tau*g_t-pi*g_p),
159
- s: R*(tau*g_t-g),
160
- h: R*T*tau*g_t,
161
- cp: R*(-Math.pow(tau,2)*g_tt),
162
- cv: R*(-Math.pow(tau,2)*g_tt+Math.pow(g_p-tau*g_pt,2)/g_pp),
163
- 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)
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
- let R2I_PT_N = [-9.6927686500217, 10.086655968018, -0.005608791128302, 0.071452738081455, -0.40710498223928, 1.4240819171444, -4.383951131945, -0.28408632460772, 0.021268463753307],
170
- R2I_PT_J = [0, 1, -5, -4, -3, -2, -1, 2, 3],
171
- 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],
172
- 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],
173
- 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],
174
- pi = P,
175
- tau = 540/T,
176
- gi = Math.log(pi),
177
- gi_p = 1/pi,
178
- gi_pp = -1/(pi*pi),
179
- gi_t = 0,
180
- gi_tt = 0,
181
- gi_pt = 0,
182
- N, J, I;
183
-
184
- for (let i = 0; i < 9; i++)
185
- {
186
- N = R2I_PT_N[i];
187
- J = R2I_PT_J[i];
188
-
189
- gi += N*Math.pow(tau, J);
190
- gi_t += N*J*Math.pow(tau, J-1);
191
- gi_tt += N*J*(J-1)*Math.pow(tau, J-2);
192
- }
193
-
194
- let gr = 0,
195
- gr_p = 0,
196
- gr_pp = 0,
197
- gr_t = 0,
198
- gr_tt = 0,
199
- gr_pt = 0;
200
-
201
- for (let j = 0; j < 43; j++)
202
- {
203
- N = R2R_PT_N[j];
204
- J = R2R_PT_J[j];
205
- I = R2R_PT_I[j];
206
-
207
- gr += N*Math.pow(pi, I)*Math.pow(tau-0.5, J);
208
- gr_p += N*I*Math.pow(pi, I-1)*Math.pow(tau-0.5, J);
209
- gr_pp += N*I*(I-1)*Math.pow(pi, I-2)*Math.pow(tau-0.5, J);
210
- gr_t += N*Math.pow(pi, I)*J*Math.pow(tau-0.5, J-1);
211
- gr_tt += N*Math.pow(pi, I)*J*(J-1)*Math.pow(tau-0.5, J-2);
212
- gr_pt += N*I*Math.pow(pi, I-1)*J*Math.pow(tau-0.5, J-1);
213
-
214
- }
215
-
216
- return generateResult({
217
- p: P,
218
- t: T,
219
- v: (R*T/(1000*P))*pi*(gi_p + gr_p),
220
- u: R*T*(tau*(gi_t+gr_t)-pi*(gi_p+gr_p)),
221
- s: R*(tau*(gi_t+gr_t)-(gi+gr)),
222
- h: R*T*tau*(gi_t+gr_t),
223
- cp: -R*tau*tau*(gi_tt+gr_tt),
224
- cv: R*(-tau*tau*(gi_tt+gr_tt)-Math.pow(1+pi*gr_p-tau*pi*gr_pt,2)/(1-pi*pi*gr_pp)),
225
- 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)
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
- let v = 1/rho;
237
-
238
- if (rho == -1 || typeof rho == 'undefined') // Has the density volume been set - if false then calculate it
239
- {
240
- v = r3_PT_v(P, T);
241
- rho = 1/v;
242
- }
243
-
244
- 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],
245
- 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],
246
- 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],
247
- g = rho/322,
248
- tau = 647.096/T,
249
- s = R3_PT_N[0]*Math.log(g),
250
- s_g = R3_PT_N[0]/g,
251
- s_gg = -R3_PT_N[0]/Math.pow(g,2),
252
- s_t = 0,
253
- s_tt = 0,
254
- s_gt = 0;
255
-
256
- // Need to start from i = 1 because j[0] and i[0] are NA and not used
257
- for (let i = 1; i < 40; i++)
258
- {
259
- let N = R3_PT_N[i],
260
- J = R3_PT_J[i],
261
- I = R3_PT_I[i];
262
-
263
- s += N*Math.pow(g,I)*Math.pow(tau,J);
264
- s_g += N*I*Math.pow(g,I-1.0)*Math.pow(tau,J);
265
- s_gg += N*I*(I-1.0)*Math.pow(g,I-2.0)*Math.pow(tau,J);
266
- s_t += N*Math.pow(g,I)*J*Math.pow(tau,J-1.0);
267
- s_tt += N*Math.pow(g,I)*J*(J-1.0)*Math.pow(tau,J-2.0);
268
- s_gt += N*I*Math.pow(g,I-1.0)*J*Math.pow(tau,J-1.0);
269
- }
270
-
271
- return generateResult({
272
- p: rho*R*T*g*s_g/1000,
273
- t: T,
274
- v: v,
275
- u: R*T*tau*s_t,
276
- s: R*(tau*s_t-s),
277
- h: R*T*(tau*s_t+g*s_g),
278
- 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)),
279
- cv: R*(-Math.pow(tau,2)*s_tt),
280
- 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)
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
- let Tsat = r4_P_Tsat(P),
288
- b3cd = b3cd_P_T(P);
289
-
290
- if ( 40.0 < P && P <= 100.0 )
291
- {
292
- if (T <= b3ab_P_T(P))
293
- {
294
- return r3a_PT_v(P,T);
295
- }
296
- else
297
- {
298
- return r3b_PT_v(P,T);
299
- }
300
- }
301
- else if ( 25.0 < P && P <= 40.0 )
302
- {
303
- if ( T <= b3cd )
304
- {
305
- return r3c_PT_v(P,T);
306
- }
307
- else if ( T <= b3ab_P_T(P) )
308
- {
309
- return r3d_PT_v(P,T);
310
- }
311
- else if ( T <= b3ef_P_T(P) )
312
- {
313
- return r3e_PT_v(P,T);
314
- }
315
- else
316
- {
317
- return r3f_PT_v(P,T);
318
- }
319
- }
320
- else if ( 22.5 < P && P <= 25.0)
321
- {
322
- if ( T <= b3cd )
323
- {
324
- return r3c_PT_v(P,T);
325
- }
326
- else if (T <= b3gh_P_T(P))
327
- {
328
- if ( P <= 23.5 )
329
- {
330
- return r3l_PT_v(P,T);
331
- }
332
-
333
- return r3g_PT_v(P,T);
334
- }
335
- else if ( T <= b3ef_P_T(P) )
336
- {
337
- if ( P <= 23.0 )
338
- {
339
- if(T <= b3mn_P_T(P))
340
- {
341
- return r3m_PT_v(P,T);
342
- }
343
- else
344
- {
345
- return r3n_PT_v(P,T);
346
- }
347
- }
348
-
349
- return r3h_PT_v(P,T);
350
- }
351
- else if ( T <= b3ij_P_T(P) )
352
- {
353
- if ( P <= 23.0 )
354
- {
355
- if( T <= b3op_P_T(P) )
356
- {
357
- return r3o_PT_v(P,T);
358
- }
359
- else
360
- {
361
- return r3p_PT_v(P,T);
362
- }
363
- }
364
-
365
- return r3i_PT_v(P,T);
366
- }
367
- else if ( T <= b3jk_P_T(P) )
368
- {
369
- return r3j_PT_v(P,T);
370
- }
371
- else
372
- {
373
- return r3k_PT_v(P,T);
374
- }
375
- }
376
- else if ( 21.04336732 < P && P <= 22.5) // R4_T_Psat(643.15) < P < 22.5
377
- {
378
- if ( T <= b3cd )
379
- {
380
- return r3c_PT_v(P,T);
381
- }
382
- else if ( T <= b3qu_P_T(P) )
383
- {
384
- return r3q_PT_v(P,T);
385
- }
386
- else if ( T <= b3rx_P_T(P) )
387
- {
388
- //critical region
389
- if ( P <= 22.064 )
390
- {
391
- //Subcritical pressure region
392
- if ( T <= Tsat )
393
- {
394
- if ( P <= 21.93161551 )
395
- {
396
- return r3u_PT_v(P,T);
397
- }
398
- else
399
- {
400
- if( T <= b3uv_P_T(P) )
401
- {
402
- return r3u_PT_v(P,T);
403
- }
404
- else
405
- {
406
- return r3y_PT_v(P,T);
407
- }
408
- }
409
- }
410
- else
411
- {
412
- if ( P <= 21.90096265 )
413
- {
414
- return r3x_PT_v(P,T);
415
- }
416
- else
417
- {
418
- if ( T <= b3wx_P_T(P) )
419
- {
420
- return r3z_PT_v(P,T);
421
- }
422
- else
423
- {
424
- return r3x_PT_v(P,T);
425
- }
426
- }
427
- }
428
- }
429
- else
430
- {
431
- //Supercritical pressure region
432
- if ( T <= b3uv_P_T(P) )
433
- {
434
- return r3u_PT_v(P,T);
435
- }
436
- else if ( T <= b3ef_P_T(P) )
437
- {
438
- if ( P <= 22.11)
439
- {
440
- return r3y_PT_v(P,T);
441
- }
442
- else
443
- {
444
- return r3v_PT_v(P,T);
445
- }
446
- }
447
- else if ( T <= b3wx_P_T(P) )
448
- {
449
- if ( P <= 22.11 )
450
- {
451
- return r3z_PT_v(P,T);
452
- }
453
- else
454
- {
455
- return r3w_PT_v(P,T);
456
- }
457
- }
458
- else
459
- {
460
- return r3x_PT_v(P,T);
461
- }
462
- }
463
- }
464
- else if ( T <= b3jk_P_T(P) )
465
- {
466
- return r3r_PT_v(P,T);
467
- }
468
- else
469
- {
470
- return r3k_PT_v(P,T);
471
- }
472
- }
473
- else if ( 20.5 < P && P <= 21.04336732)
474
- {
475
- if ( T <= b3cd )
476
- {
477
- return r3c_PT_v(P,T);
478
- }
479
- else if ( T <= Tsat )
480
- {
481
- return r3s_PT_v(P,T);
482
- }
483
- else if ( T <= b3jk_P_T(P) )
484
- {
485
- return r3r_PT_v(P,T);
486
- }
487
- else
488
- {
489
- return r3k_PT_v(P,T);
490
- }
491
- }
492
- else if ( 19.00881189173929 < P && P <= 20.5 )
493
- {
494
- if ( T <= b3cd )
495
- {
496
- return r3c_PT_v(P,T);
497
- }
498
- else if ( T <= Tsat )
499
- {
500
- return r3s_PT_v(P,T);
501
- }
502
- else
503
- {
504
- return r3t_PT_v(P,T);
505
- }
506
- }
507
- else if ( 16.52916427498 < P && P <= 19.00881189173929 ) // R4_T_Psat(623.15) < P < P3cd
508
- {
509
- if ( T <= Tsat )
510
- {
511
- return r3c_PT_v(P,T);
512
- }
513
- else
514
- {
515
- return r3t_PT_v(P,T);
516
- }
517
- }
518
-
519
- // Else specific volume cannot be calculated and set to -ve
520
- return -1.0;
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
- let B3ab_PT_I = [0,1,2,-1,-2],
529
- B3ab_PT_N = [1.54793642129415E3,-1.87661219490113E2,2.13144632222113E1,-1.91887498864292E3,9.18419702359447E2],
530
- T = 0;
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
- P = Math.log(P);
542
+ P = Math.log(P);
533
543
 
534
- for (let i = 0; i < 5; i++)
535
- {
536
- T += B3ab_PT_N[i]*Math.pow(P, B3ab_PT_I[i]);
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
- return T;
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
- let B3op_PT_I = [0,1,2,-1,-2],
546
- B3op_PT_N = [9.69461372400213E2,-3.32500170441278E2,6.4285959846667E1,7.73845935768222E2,-1.52313732937084E3],
547
- T = 0;
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
- P = Math.log(P);
559
+ P = Math.log(P);
550
560
 
551
- for (let i = 0; i < 5; i++)
552
- {
553
- T += B3op_PT_N[i]*Math.pow(P, B3op_PT_I[i]);
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
- return T;
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
- return 3.727888004*(P-22.064)+647.096;
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
- let B3cd_PT_I = [0,1,2,3],
569
- B3cd_PT_N = [5.85276966696349E2,2.78233532206915,-1.27283549295878E-2,1.59090746562729E-4],
570
- T = 0;
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
- for (let i = 0; i < 4; i++)
573
- {
574
- T += B3cd_PT_N[i]*Math.pow(P, B3cd_PT_I[i]);
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
- return T;
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
- let B3gh_PT_I = [0,1,2,3,4],
584
- B3gh_PT_N = [-2.49284240900418E4,4.28143584791546E3,-2.6902917314013E2,7.51608051114157,-7.87105249910383E-2],
585
- T = 0;
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
- for (let i = 0; i < 5; i++)
588
- {
589
- T += B3gh_PT_N[i]*Math.pow(P, B3gh_PT_I[i]);
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
- return T;
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
- let B3ij_PT_I = [0,1,2,3,4],
599
- B3ij_PT_N = [5.84814781649163E2,-6.16179320924617E-1,2.60763050899562E-1,-5.87071076864459E-3,5.15308185433082E-5],
600
- T = 0;
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
- for (let i = 0; i < 5; i++)
603
- {
604
- T += B3ij_PT_N[i]*Math.pow(P, B3ij_PT_I[i]);
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
- return T;
617
+ return T;
608
618
  }
609
619
 
610
- // Export for testing
620
+ // @internal - Exported for unit testing only
611
621
  export function b3jk_P_T(P : number) : number
612
622
  {
613
- let B3jk_PT_I = [0,1,2,3,4],
614
- B3jk_PT_N = [6.17229772068439E2,-7.70600270141675,6.97072596851896E-1,-1.57391839848015E-2,1.37897492684194E-4],
615
- T = 0;
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
- for (let i = 0; i < 5; i++)
618
- {
619
- T += B3jk_PT_N[i]*Math.pow(P, B3jk_PT_I[i]);
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
- return T;
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
- let B3mn_PT_I = [0,1,2,3],
629
- B3mn_PT_N = [5.35339483742384E2,7.61978122720128,-1.58365725441648E-1,1.92871054508108E-3],
630
- T = 0;
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
- for (let i = 0; i < 4; i++)
633
- {
634
- T += B3mn_PT_N[i]*Math.pow(P, B3mn_PT_I[i]);
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
- return T;
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
- let B3qu_PT_I = [0,1,2,3],
644
- B3qu_PT_N = [5.65603648239126E2,5.29062258221222,-1.02020639611016E-1,1.22240301070145E-3],
645
- T = 0;
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
- for (let i = 0; i < 4; i++)
648
- {
649
- T += B3qu_PT_N[i]*Math.pow(P, B3qu_PT_I[i]);
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
- return T;
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
- let B3rx_PT_I = [0,1,2,3],
659
- B3rx_PT_N = [5.84561202520006E2,-1.02961025163669,2.43293362700452E-1,-2.94905044740799E-3],
660
- T = 0;
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
- for (let i = 0; i < 4; i++)
663
- {
664
- T += B3rx_PT_N[i]*Math.pow(P, B3rx_PT_I[i]);
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
- return T;
677
+ return T;
668
678
  }
669
679
 
670
680
  function r3a_PT_v(P : number, T : number) : number
671
681
  {
672
- let pi = P/100,
673
- sig = T/760,
674
- v = 0,
675
- 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],
676
- 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],
677
- 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];
678
-
679
- for (let i = 0; i < 30; i++)
680
- {
681
- let N = R3a_PT_N[i],
682
- I = R3a_PT_I[i],
683
- J = R3a_PT_J[i];
684
-
685
- v += N*Math.pow(pi-0.085,I)*Math.pow(sig-0.817, J);
686
- }
687
-
688
- return 0.0024*v;
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
- let pi = P/100,
694
- sig = T/860,
695
- v = 0,
696
- 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],
697
- 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],
698
- 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];
699
-
700
- for (let i = 0; i < 32; i++)
701
- {
702
- let N = R3b_PT_N[i],
703
- I = R3b_PT_I[i],
704
- J = R3b_PT_J[i];
705
-
706
- v += N*Math.pow(pi-0.280,I)*Math.pow(sig-0.779,J);
707
- }
708
-
709
- return 0.0041*v;
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
- let pi = P/40,
715
- sig = T/690,
716
- v = 0,
717
- 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],
718
- 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],
719
- 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];
720
-
721
- for (let i = 0; i < 35; i++)
722
- {
723
- let N = R3c_PT_N[i],
724
- I = R3c_PT_I[i],
725
- J = R3c_PT_J[i];
726
-
727
- v += N*Math.pow(pi-0.259,I)*Math.pow(sig-0.903, J);
728
- }
729
- return 0.0022*v;
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
- let pi = P/40,
735
- sig = T/690,
736
- v = 0,
737
- 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],
738
- 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],
739
- 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];
740
-
741
- for (let i = 0; i < 38; i++)
742
- {
743
- let N = R3d_PT_N[i],
744
- I = R3d_PT_I[i],
745
- J = R3d_PT_J[i];
746
-
747
- v += N*Math.pow(pi-0.559, I)*Math.pow(sig-0.939, J);
748
- }
749
-
750
- return 0.0029*Math.pow(v,4);
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
- let pi = P/40,
756
- sig = T/710,
757
- v = 0,
758
- 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],
759
- 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],
760
- 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];
761
-
762
- for (let i = 0; i < 29; i++)
763
- {
764
- let N = R3e_PT_N[i],
765
- I = R3e_PT_I[i],
766
- J = R3e_PT_J[i];
767
-
768
- v += N*Math.pow(pi-0.587, I)*Math.pow(sig-0.918, J);
769
- }
770
-
771
- return 0.0032*v;
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
- let pi = P/40,
777
- sig = T/730,
778
- v = 0,
779
- 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],
780
- 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],
781
- 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];
782
-
783
- for (let i = 0; i < 42; i++)
784
- {
785
- let N = R3f_PT_N[i],
786
- I = R3f_PT_I[i],
787
- J = R3f_PT_J[i];
788
-
789
- v += N*Math.pow(pi-0.587, 0.5*I)*Math.pow(sig-0.891, J);
790
- }
791
-
792
- return 0.0064*Math.pow(v,4);
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
- let pi = P/25,
798
- sig = T/660,
799
- v = 0,
800
- 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],
801
- 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],
802
- 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];
803
-
804
- for (let i = 0; i < 38; i++)
805
- {
806
- let N = R3g_PT_N[i],
807
- I = R3g_PT_I[i],
808
- J = R3g_PT_J[i];
809
-
810
- v += N*Math.pow(pi-0.872, I)*Math.pow(sig-0.971, J);
811
- }
812
-
813
- return 0.0027*Math.pow(v,4);
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
- let pi = P/25,
819
- sig = T/660,
820
- v = 0,
821
- 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],
822
- 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],
823
- 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];
824
-
825
- for (let i = 0; i < 29; i++)
826
- {
827
- let N = R3h_PT_N[i],
828
- I = R3h_PT_I[i],
829
- J = R3h_PT_J[i];
830
-
831
- v += N*Math.pow(pi-0.898, I)*Math.pow(sig-0.983, J);
832
- }
833
- return 0.0032*Math.pow(v, 4);
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
- let pi = P/25,
839
- sig = T/660,
840
- v = 0,
841
- 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],
842
- 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],
843
- 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];
844
-
845
- for (let i = 0; i < 42; i++)
846
- {
847
- let N = R3i_PT_N[i],
848
- I = R3i_PT_I[i],
849
- J = R3i_PT_J[i];
850
-
851
- v += N*Math.pow(pi-0.910, 0.5*I)*Math.pow(sig-0.984, J);
852
- }
853
-
854
- return 0.0041*Math.pow(v,4);
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
- let pi = P/25,
860
- sig = T/670,
861
- v = 0,
862
- 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],
863
- 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],
864
- 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];
865
-
866
- for (let i = 0; i < 29; i++)
867
- {
868
- let N = R3j_PT_N[i],
869
- I = R3j_PT_I[i],
870
- J = R3j_PT_J[i];
871
-
872
- v += N*Math.pow(pi-0.875, 0.5*I)*Math.pow(sig-0.964,J);
873
- }
874
-
875
- return 0.0054*Math.pow(v,4);
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
- let pi = P/25,
881
- sig = T/680,
882
- v = 0,
883
- 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],
884
- 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],
885
- 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];
886
-
887
- for (let i = 0; i < 34; i++)
888
- {
889
- let N = R3k_PT_N[i],
890
- I = R3k_PT_I[i],
891
- J = R3k_PT_J[i];
892
-
893
- v += N*Math.pow(pi-0.802,I)*Math.pow(sig-0.935,J);
894
- }
895
-
896
- return 0.0077*v;
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
- let pi = P/24,
902
- sig = T/650,
903
- v = 0,
904
- 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],
905
- 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],
906
- 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];
907
-
908
- for (let i = 0; i < 43; i++)
909
- {
910
- let N = R3l_PT_N[i],
911
- I = R3l_PT_I[i],
912
- J = R3l_PT_J[i];
913
-
914
- v += N*Math.pow(pi-0.908, I)*Math.pow(sig-0.989, J);
915
- }
916
-
917
- return 0.0026*Math.pow(v, 4);
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
- let pi = P/23,
923
- sig = T/650,
924
- v = 0,
925
- 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],
926
- 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],
927
- 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];
928
-
929
- for (let i = 0; i < 40; i++)
930
- {
931
- let N = R3m_PT_N[i],
932
- I = R3m_PT_I[i],
933
- J = R3m_PT_J[i];
934
-
935
- v += N*Math.pow(pi-1,I)*Math.pow(sig-0.997, 0.25*J);
936
- }
937
-
938
- return 0.0028*v;
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
- let pi = P/23,
944
- sig = T/650,
945
- v = 0,
946
- 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],
947
- 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],
948
- 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];
949
-
950
- for (let i = 0; i < 39; i++)
951
- {
952
- let N = R3n_PT_N[i],
953
- I = R3n_PT_I[i],
954
- J = R3n_PT_J[i];
955
-
956
- v += N*Math.pow(pi-0.976, I)*Math.pow(sig-0.997, J);
957
- }
958
-
959
- return 0.0031*Math.exp(v);
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
- let pi = P/23,
965
- sig = T/650,
966
- v = 0,
967
- 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],
968
- 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],
969
- 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];
970
-
971
- for (let i = 0; i < 24; i++)
972
- {
973
- let N = R3o_PT_N[i],
974
- I = R3o_PT_I[i],
975
- J = R3o_PT_J[i];
976
-
977
- v += N*Math.pow(pi-0.974, 0.5*I)*Math.pow(sig-0.996, J);
978
- }
979
-
980
- return 0.0034*v;
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
- let pi = P/23,
986
- sig = T/650,
987
- v = 0,
988
- 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],
989
- 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],
990
- 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];
991
-
992
- for (let i = 0; i < 27; i++)
993
- {
994
- let N = R3p_PT_N[i],
995
- I = R3p_PT_I[i],
996
- J = R3p_PT_J[i];
997
-
998
- v += N*Math.pow(pi-0.972, 0.5*I)*Math.pow(sig-0.997, J);
999
- }
1000
-
1001
- return 0.0041*v;
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
- let pi = P/23,
1007
- sig = T/650,
1008
- v = 0,
1009
- 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],
1010
- 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],
1011
- 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];
1012
-
1013
- for (let i = 0; i < 24; i++)
1014
- {
1015
- let N = R3q_PT_N[i],
1016
- I = R3q_PT_I[i],
1017
- J = R3q_PT_J[i];
1018
-
1019
- v += N*Math.pow(pi-0.848,I)*Math.pow(sig-0.983,J);
1020
- }
1021
-
1022
- return 0.0022*Math.pow(v,4);
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
- let pi = P/23,
1028
- sig = T/650,
1029
- v = 0,
1030
- 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],
1031
- 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],
1032
- 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];
1033
-
1034
- for (let i = 0; i < 27; i++)
1035
- {
1036
- let N = R3r_PT_N[i],
1037
- I = R3r_PT_I[i],
1038
- J = R3r_PT_J[i];
1039
-
1040
- v += N*Math.pow(pi-0.874,I)*Math.pow(sig-0.982,J);
1041
- }
1042
-
1043
- return 0.0054*v;
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
- let pi = P/21,
1049
- sig = T/640,
1050
- v = 0,
1051
- 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],
1052
- 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],
1053
- 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];
1054
-
1055
- for (let i = 0; i < 29; i++)
1056
- {
1057
- let N = R3s_PT_N[i],
1058
- I = R3s_PT_I[i],
1059
- J = R3s_PT_J[i];
1060
-
1061
- v += N*Math.pow(pi-0.886,I)*Math.pow(sig-0.990,J);
1062
- }
1063
-
1064
- return 0.0022*Math.pow(v,4);
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
- let pi = P/20,
1070
- sig = T/650,
1071
- v = 0,
1072
- 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],
1073
- 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],
1074
- 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];
1075
-
1076
- for (let i = 0; i < 33; i++)
1077
- {
1078
- let N = R3t_PT_N[i],
1079
- I = R3t_PT_I[i],
1080
- J = R3t_PT_J[i];
1081
-
1082
- v += N*Math.pow(pi-0.803,I)*Math.pow(sig-1.02,J);
1083
- }
1084
-
1085
- return 0.0088*v;
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
- let B3uv_PT_I = [0,1,2,3],
1095
- B3uv_PT_N = [5.28199646263062E2,8.90579602135307,-0.222814134903755,0.286791682263697E-2],
1096
- T = 0;
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
- for (let i = 0; i < 4; i++)
1099
- {
1100
- T += B3uv_PT_N[i]*Math.pow(P, B3uv_PT_I[i]);
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
- return T;
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
- let B3wx_PT_I = [0,1,2,-1,-2],
1111
- B3wx_PT_N = [7.2805260914538,9.73505869861952E1,1.47370491183191E1,0.329196213998375E3,8.73371668682417E2],
1112
- T = 0;
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
- P = Math.log(P);
1124
+ P = Math.log(P);
1115
1125
 
1116
- for (let i = 0; i < 5; i++)
1117
- {
1118
- T += B3wx_PT_N[i]*Math.pow(P, B3wx_PT_I[i]);
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
- return T;
1131
+ return T;
1122
1132
  }
1123
1133
 
1124
1134
  function r3u_PT_v(P : number, T : number) : number
1125
1135
  {
1126
- let pi = P/23,
1127
- sig = T/650,
1128
- v = 0,
1129
- 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],
1130
- 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],
1131
- 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];
1132
-
1133
- for (let i = 0; i < 38; i++)
1134
- {
1135
- let N = R3u_PT_N[i],
1136
- I = R3u_PT_I[i],
1137
- J = R3u_PT_J[i];
1138
-
1139
- v += N*Math.pow(pi-0.902,I)*Math.pow(sig-0.988,J);
1140
- }
1141
-
1142
- return 0.0026*v;
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
- let pi = P/23,
1148
- sig = T/650,
1149
- v = 0,
1150
- 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],
1151
- 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],
1152
- 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];
1153
-
1154
- for (let i = 0; i < 39; i++)
1155
- {
1156
- let N = R3v_PT_N[i],
1157
- I = R3v_PT_I[i],
1158
- J = R3v_PT_J[i];
1159
-
1160
- v += N*Math.pow(pi-0.960, I)*Math.pow(sig-0.995,J);
1161
- }
1162
-
1163
- return 0.0031*v;
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
- let pi = P/23,
1169
- sig = T/650,
1170
- v = 0,
1171
- 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],
1172
- 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],
1173
- 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];
1174
-
1175
- for (let i = 0; i < 35; i++)
1176
- {
1177
- let N = R3w_PT_N[i],
1178
- I = R3w_PT_I[i],
1179
- J = R3w_PT_J[i];
1180
-
1181
- v += N*Math.pow(pi-0.959, I)*Math.pow(sig-0.995, J);
1182
- }
1183
-
1184
- return 0.0039*Math.pow(v, 4);
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
- let pi = P/23,
1190
- sig = T/650,
1191
- v = 0,
1192
- 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],
1193
- 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],
1194
- 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];
1195
-
1196
- for (let i = 0; i < 36; i++)
1197
- {
1198
- let N = R3x_PT_N[i],
1199
- I = R3x_PT_I[i],
1200
- J = R3x_PT_J[i];
1201
-
1202
- v += N*Math.pow(pi-0.910, I)*Math.pow(sig-0.988, J);
1203
- }
1204
-
1205
- return 0.0049*v;
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
- let pi = P/22,
1211
- sig = T/650,
1212
- v = 0,
1213
- R3y_PT_I = [0,0,0,0,1,2,2,2,2,3,3,3,4,4,5,5,8,8,10,12],
1214
- R3y_PT_J = [-3,1,5,8,8,-4,-1,4,5,-8,4,8,-6,6,-2,1,-8,-2,-5,-8],
1215
- 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];
1216
-
1217
- for (let i = 0; i < 20; i++)
1218
- {
1219
- let N = R3y_PT_N[i],
1220
- I = R3y_PT_I[i],
1221
- J = R3y_PT_J[i];
1222
-
1223
- v += N*Math.pow(pi-0.996, I)*Math.pow(sig-0.994, J);
1224
- }
1225
-
1226
- return 0.0031*Math.pow(v,4);
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
- let pi = P/22,
1232
- sig = T/650,
1233
- v = 0,
1234
- 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],
1235
- 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],
1236
- 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];
1237
-
1238
- for (let i = 0; i < 23; i++)
1239
- {
1240
- let N = R3z_PT_N[i],
1241
- I = R3z_PT_I[i],
1242
- J = R3z_PT_J[i];
1243
-
1244
- v += N*Math.pow(pi-0.993, I)*Math.pow(sig-0.994, J);
1245
- }
1246
-
1247
- return 0.0038*Math.pow(v,4);
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
- let Tr = T,
1260
- v = Tr + -0.238558557567849/(Tr-650.17534844798),
1261
- A = v*v + 1167.0521452767*v + -724213.16703206,
1262
- B = -17.073846940092*v*v + 12020.82470247*v + -3232555.0322333,
1263
- C = 14.91510861353*v*v + -4823.2657361591*v + 405113.40542057;
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
- return Math.pow(2*C/(-B+Math.pow(B*B-4*A*C,0.5)),4);
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
- let R4_PT_N = [1167.0521452767,-724213.16703206,-17.073846940092,12020.82470247,-3232555.0322333,14.91510861353,-4823.2657361591,405113.40542057,-0.238558557567849,650.17534844798],
1275
- b = Math.pow(P,0.25),
1276
- E = b*b + R4_PT_N[2]*b +R4_PT_N[5],
1277
- F = R4_PT_N[0]*b*b + R4_PT_N[3]*b +R4_PT_N[6],
1278
- G = R4_PT_N[1]*b*b + R4_PT_N[4]*b + R4_PT_N[7],
1279
- D = 2.0*G/(-F-Math.pow(F*F-4.0*E*G,0.5));
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
- 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;
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
- let R5I_PT_N = [-13.179983674201, 6.8540841634434, -0.024805148933466, 0.36901534980333, -3.1161318213925, -0.32961626538917],
1290
- R5I_PT_J = [0, 1, -3, -2, -1, 2],
1291
- R5R_PT_N = [1.5736404855259E-3, 9.0153761673944E-4, -5.0270077677648E-3, 2.2440037409485E-6, -4.1163275453471E-6, 3.7919454822955E-8],
1292
- R5R_PT_J = [1, 2, 3, 3, 9, 7],
1293
- R5R_PT_I = [1, 1, 1, 2, 2, 3],
1294
- pi = P,
1295
- tau = 1000/T,
1296
- gi = Math.log(pi),
1297
- gi_p = 1/pi,
1298
- gi_pp = -1/(pi*pi),
1299
- gi_t = 0,
1300
- gi_tt = 0,
1301
- gi_pt = 0,
1302
- N, J, I;
1303
-
1304
- for (let i = 0; i < 6; i++)
1305
- {
1306
- N = R5I_PT_N[i];
1307
- J = R5I_PT_J[i];
1308
-
1309
- gi += N*Math.pow(tau,J);
1310
- gi_t += N*J*Math.pow(tau,J-1);
1311
- gi_tt += N*J*(J-1)*Math.pow(tau,J-2);
1312
- }
1313
-
1314
- let gr = 0,
1315
- gr_p = 0,
1316
- gr_pp = 0,
1317
- gr_t = 0,
1318
- gr_tt = 0,
1319
- gr_pt = 0;
1320
-
1321
- for (let j = 0; j < 6; j++)
1322
- {
1323
- N = R5R_PT_N[j];
1324
- J = R5R_PT_J[j];
1325
- I = R5R_PT_I[j];
1326
-
1327
- gr += N*Math.pow(pi,I)*Math.pow(tau,J);
1328
- gr_p += N*I*Math.pow(pi,I-1)*Math.pow(tau,J);
1329
- gr_pp += N*I*(I-1)*Math.pow(pi,I-2)*Math.pow(tau,J);
1330
- gr_t += N*Math.pow(pi,I)*J*Math.pow(tau,J-1);
1331
- gr_tt += N*Math.pow(pi,I)*J*(J-1)*Math.pow(tau,J-2);
1332
- gr_pt += N*I*Math.pow(pi,I-1)*J*Math.pow(tau,J-1);
1333
- }
1334
-
1335
- // The pressure and temperature MPa, K
1336
- return generateResult({
1337
- p: P,
1338
- t: T,
1339
- v: R*T*pi*(gi_p+gr_p)/(1000*P),
1340
- u: R*T*(tau*(gi_t+gr_t)-pi*(gi_p+gr_p)),
1341
- s: R*(tau*(gi_t+gr_t)-(gi+gr)),
1342
- h: R*T*tau*(gi_t+gr_t),
1343
- cp: -R*tau*tau*(gi_tt+gr_tt),
1344
- cv: R*(-tau*tau*(gi_tt+gr_tt)-Math.pow(1+pi*gr_p-tau*pi*gr_pt,2)/(1-pi*pi*gr_pp)),
1345
- 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),
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