/[ascend]/trunk/models/johnpye/iapws95-failing.a4c
ViewVC logotype

Contents of /trunk/models/johnpye/iapws95-failing.a4c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 123 - (show annotations) (download) (as text)
Mon Dec 19 06:59:40 2005 UTC (13 years, 11 months ago) by johnpye
File MIME type: text/x-ascend
File size: 16054 byte(s)
Changing 'log' function to 'log10'
1 REQUIRE "system.a4l";
2 REQUIRE "atoms.a4l";
3 REQUIRE "johnpye/thermo_types.a4c";
4
5 (*************************************************************************
6
7 The thermodynamic properties of water calculated with the
8 IAPWS95 equations. Variables and units:
9
10 T Temperature, K
11 rho Density, kg/m^3
12 p Pressure, MPa
13 u Specific internal energy, kJ/kg
14 h Specific enthalpy, kJ/kg
15 s Specific entropy, kJ/(kg*K)
16 cv Isochoric specific heat, kJ/(kg*K)
17 cp Isobaric specific heat, kJ/(kg*K)
18 w Speed of sound, m/s
19
20 References:
21
22 [1] The International Association for the Properties of
23 Water and Steam, "Release on the IAPWS Formulation 1995
24 for the Thermodynamic Properties of Ordinary Water
25 Substance for General and Scientific Use", dated
26 September 1996, Fredericia, Denmark. See the "Releases"
27 section of the website http://www.iapws.org/.
28
29 [2] NIST Chemistry Webbook:
30 http://webbook.nist.gov/chemistry/fluid/
31
32 ----------------------------------------------------------------------
33
34 freesteam-ascend - IAPWS-95 steam library for ASCEND
35 Copyright (C) John Pye 2005
36 derived from work by Don Peterson for freesteam, (C) 2004.
37
38 This program is free software; you can redistribute it
39 and/or modify it under the terms of the GNU General Public
40 License as published by the Free Software Foundation; either
41 version 2 of the License, or (at your option) any later
42 version.
43
44 This program is distributed in the hope that it will be
45 useful, but WITHOUT ANY WARRANTY; without even the implied
46 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
47 PURPOSE. See the GNU General Public License for more
48 details.
49
50 You should have received a copy of the GNU General Public
51 License along with this program; if not, write to the Free
52 Software Foundation, Inc., 59 Temple Place, Suite 330,
53 Boston, MA 02111-1307 USA
54
55 *)
56
57 MODEL steam_state;
58
59 delta IS_A factor;
60 tau IS_A factor;
61
62 rho IS_A mass_density;
63 T IS_A temperature;
64
65 (*-------------- CONSTANTS ---------------*)
66 rhoc IS_A mass_density_constant;
67 Tc IS_A temperature_constant;
68
69 rhoc "density of water at the critical point"
70 :== 322 {kg/m^3};
71
72 Tc "temperature of water at the critical point"
73 :== 647.096 {K};
74
75 tau = Tc / T;
76 delta = rho / rhoc;
77
78
79 range_0 IS_A set OF integer_constant;
80 range_0 :== [1..8];
81
82 range_01 IS_A set OF integer_constant;
83 range_01 :== [4..8];
84
85 range_r1 IS_A set OF integer_constant;
86 range_r1 :== [1..7];
87
88 range_r2 IS_A set OF integer_constant;
89 range_r2 :== [8..51];
90
91 range_r3 IS_A set OF integer_constant;
92 range_r3 :== [52..54];
93
94 range_r4 IS_A set OF integer_constant;
95 range_r4 :== [55..56];
96
97 n0[range_0] IS_A real_constant;
98 n0[1] :== -8.32044648201;
99
100 n0[2] :== 6.6832105268;
101 n0[3] :== 3.00632;
102 n0[4] :== 0.012436;
103
104 n0[5] :== 0.97315;
105 n0[6] :== 1.27950;
106 n0[7] :== 0.96956;
107 n0[8] :== 0.24873;
108
109 gamma0[range_01] IS_A real_constant;
110 gamma0[4] :== 1.28728967;
111 gamma0[5] :== 3.53734222;
112 gamma0[6] :== 7.74073708;
113 gamma0[7] :== 9.24437796;
114 gamma0[8] :== 27.5075105;
115
116 n[1..56] IS_A real_constant;
117 n[1] :== 0.12533547935523e-1; n[2] :== 0.78957634722828e+1; n[3] :== -0.87803203303561e+1; n[4] :== 0.31802509345418e+0;
118 n[5] :== -0.26145533859358e+0; n[6] :== -0.78199751687981e-2; n[7] :== 0.88089493102134e-2;
119 n[8] :== -0.66856572307965e+0; n[9] :== 0.20433810950965e+0; n[10] :== -0.66212605039687e-4;
120 n[11] :== -0.19232721156002e+0; n[12] :== -0.25709043003438e+0; n[13] :== 0.16074868486251e+0; n[14] :== -0.40092828925807e-1;
121 n[15] :== 0.39343422603254e-6; n[16] :== -0.75941377088144e-5; n[17] :== 0.56250979351888e-3;
122 n[18] :== -0.15608652257135e-4; n[19] :== 0.11537996422951e-8; n[20] :== 0.36582165144204e-6;
123 n[21] :== -0.13251180074668e-11; n[22] :== -0.62639586912454e-9; n[23] :== -0.10793600908932e+0; n[24] :== 0.17611491008752e-1;
124 n[25] :== 0.22132295167546e+0; n[26] :== -0.40247669763528e+0; n[27] :== 0.58083399985759e+0;
125 n[28] :== 0.49969146990806e-2; n[29] :== -0.31358700712549e-1; n[30] :== -0.74315929710341e+0;
126 n[31] :== 0.47807329915480e+0; n[32] :== 0.20527940895948e-1; n[33] :== -0.13636435110343e+0; n[34] :== 0.14180634400617e-1;
127 n[35] :== 0.83326504880713e-2; n[36] :== -0.29052336009585e-1; n[37] :== 0.38615085574206e-1;
128 n[38] :== -0.20393486513704e-1; n[39] :== -0.16554050063734e-2; n[40] :== 0.19955571979541e-2;
129 n[41] :== 0.15870308324157e-3; n[42] :== -0.16388568342530e-4; n[43] :== 0.43613615723811e-1; n[44] :== 0.34994005463765e-1;
130 n[45] :== -0.76788197844621e-1; n[46] :== 0.22446277332006e-1; n[47] :== -0.62689710414685e-4;
131 n[48] :== -0.55711118565645e-9; n[49] :== -0.19905718354408e+0; n[50] :== 0.31777497330738e+0;
132 n[51] :== -0.11841182425981e+0; n[52] :== -0.31306260323435e+2; n[53] :== 0.31546140237781e+2; n[54] :== -0.25213154341695e+4;
133 n[55] :== -0.14874640856724e+0; n[56] :== 0.31806110878444e+0;
134
135 c[1..51] IS_A integer_constant;
136 c[1] :== 0; c[2] :== 0; c[3] :== 0; c[4] :== 0; c[5] :== 0;
137 c[6] :== 0; c[7] :== 0; c[8] :== 1; c[9] :== 1; c[10] :== 1;
138 c[11] :== 1; c[12] :== 1; c[13] :== 1; c[14] :== 1; c[15] :== 1;
139 c[16] :== 1; c[17] :== 1; c[18] :== 1; c[19] :== 1; c[20] :== 1;
140 c[21] :== 1; c[22] :== 1; c[23] :== 2; c[24] :== 2; c[25] :== 2;
141 c[26] :== 2; c[27] :== 2; c[28] :== 2; c[29] :== 2; c[30] :== 2;
142 c[31] :== 2; c[32] :== 2; c[33] :== 2; c[34] :== 2; c[35] :== 2;
143 c[36] :== 2; c[37] :== 2; c[38] :== 2; c[39] :== 2; c[40] :== 2;
144 c[41] :== 2; c[42] :== 2; c[43] :== 3; c[44] :== 3; c[45] :== 3;
145 c[46] :== 3; c[47] :== 4; c[48] :== 6; c[49] :== 6; c[50] :== 6;
146 c[51] :== 6;
147
148 d[1..54] IS_A integer_constant;
149 d[1] :== 1; d[2] :== 1; d[3] :== 1; d[4] :== 2; d[5] :== 2;
150 d[6] :== 3; d[7] :== 4; d[8] :== 1; d[9] :== 1; d[10] :== 1;
151 d[11] :== 2; d[12] :== 2; d[13] :== 3; d[14] :== 4; d[15] :== 4;
152 d[16] :== 5; d[17] :== 7; d[18] :== 9; d[19] :== 10; d[20] :== 11;
153 d[21] :== 13; d[22] :== 15; d[23] :== 1; d[24] :== 2; d[25] :== 2;
154 d[26] :== 2; d[27] :== 3; d[28] :== 4; d[29] :== 4; d[30] :== 4;
155 d[31] :== 5; d[32] :== 6; d[33] :== 6; d[34] :== 7; d[35] :== 9;
156 d[36] :== 9; d[37] :== 9; d[38] :== 9; d[39] :== 9; d[40] :== 10;
157 d[41] :== 10; d[42] :== 12; d[43] :== 3; d[44] :== 4; d[45] :== 4;
158 d[46] :== 5; d[47] :== 14; d[48] :== 3; d[49] :== 6; d[50] :== 6;
159 d[51] :== 6; d[52] :== 3; d[53] :== 3; d[54] :== 3;
160
161 t[1..54] IS_A real_constant;
162 t[1] :== -0.5; t[2] :== 0.875; t[3] :== 1; t[4] :== 0.5; t[5] :== 0.75;
163 t[6] :== 0.375; t[7] :== 1; t[8] :== 4; t[9] :== 6; t[10] :== 12;
164 t[11] :== 1; t[12] :== 5; t[13] :== 4; t[14] :== 2; t[15] :== 13;
165 t[16] :== 9; t[17] :== 3; t[18] :== 4; t[19] :== 11; t[20] :== 4;
166 t[21] :== 13; t[22] :== 1; t[23] :== 7; t[24] :== 1; t[25] :== 9;
167 t[26] :== 10; t[27] :== 10; t[28] :== 3; t[29] :== 7; t[30] :== 10;
168 t[31] :== 10; t[32] :== 6; t[33] :== 10; t[34] :== 10; t[35] :== 1;
169 t[36] :== 2; t[37] :== 3; t[38] :== 4; t[39] :== 8; t[40] :== 6;
170 t[41] :== 9; t[42] :== 8; t[43] :== 16; t[44] :== 22; t[45] :== 23;
171 t[46] :== 23; t[47] :== 10; t[48] :== 50; t[49] :== 44; t[50] :== 46;
172 t[51] :== 50; t[52] :== 0; t[53] :== 1; t[54] :== 4;
173
174 (* Correlation parameters *)
175
176 (* TODO convert from C to ASCEND arrays? Note trickiness with 0- and 1-based array indices. *)
177
178 a[range_r4] IS_A real_constant;
179 a[55]:==3.5;
180 a[56]:==3.5;
181
182 b[range_r4] IS_A real_constant;
183 b[55]:== 0.85;
184 b[56]:== 0.95;
185
186 A[range_r4] IS_A real_constant;
187 A[55]:==0.32;
188 A[56]:==0.32;
189
190 B[range_r4] IS_A real_constant;
191 B[55]:==0.2;
192 B[56]:==0.2;
193
194 C[range_r4] IS_A real_constant;
195 C[55]:==28;
196 C[56]:==32;
197
198 D[range_r4] IS_A real_constant;
199 D[55]:==700;
200 D[56]:==800;
201
202 beta_r4[range_r4] IS_A real_constant;
203 beta_r4[55]:==0.3;
204 beta_r4[56]:==0.3;
205
206 alpha[range_r3] IS_A integer_constant;
207 alpha[52]:==20;
208 alpha[53]:==20;
209 alpha[54]:==20;
210
211 beta[range_r3] IS_A real_constant;
212 beta[52]:==150;
213 beta[53]:==150;
214 beta[54]:==250;
215
216 gamma[range_r3] IS_A real_constant;
217 gamma[52]:==1.21;
218 gamma[53]:==1.21;
219 gamma[54]:==1.25;
220
221 (*--------------- DIMENSIONLESS PARTIAL DERIVATIVES ---------------- *)
222
223 (*------------ IDEAL PARTS ------------*)
224
225 phi0 IS_A factor;
226 phi0 =
227 SUM[ n0[i]*ln(1-exp(-tau*gamma0[i])) | i IN [range_01] ]
228 + ln(delta) + n0[1] + n0[2]*tau + n0[3]*ln(tau);
229
230 phi0delta IS_A factor;
231 phi0delta = 1.0/delta;
232
233 phi0deltadelta IS_A factor;
234 phi0deltadelta =
235 -1.0/(delta*delta);
236
237
238 phi0tau IS_A factor;
239 phi0tau =
240 n0[2] + n0[3]/tau
241 + SUM[ n0[i]*gamma0[i]*(1/(1-exp(-tau*gamma0[i])) - 1) | i IN [range_01] ];
242
243 phi0deltatau IS_A real_constant;
244 phi0deltatau :== 0.0;
245
246 phi0tautau IS_A factor;
247 phi0tautau
248 = -n0[3]/(tau*tau)
249 - SUM [ n0[i] * gamma0[i]^2 * exp(-tau*gamma0[i]) / ( 1 - exp(-tau*gamma0[i]) )^2 | i IN range_01 ];
250
251 (*----------- 'REAL' PARTS -- CLOSE YOUR EYES -----------*)
252
253 d1 IS_A factor;
254 d1 = delta - 1;
255
256 t1 IS_A factor;
257 t1 = tau -1;
258
259 r3_b1[range_r3] IS_A factor;
260 FOR i IN range_r3 CREATE
261 r3_b1[i] = -alpha[i]*d1^2 - beta[i]* (tau - gamma[i])^2;
262 END FOR;
263
264 PSI[range_r4] IS_A factor;
265 theta[range_r4] IS_A factor;
266 DELTA[range_r4] IS_A factor;
267 dDELTA_ddelta[range_r4] IS_A factor;
268 dPSI_ddelta[range_r4] IS_A factor;
269 dDELTAbi_ddelta[range_r4] IS_A factor;
270 dDELTAbi_dtau[range_r4] IS_A factor;
271 dPSI_dtau[range_r4] IS_A factor;
272 d2DELTA_ddelta2[range_r4] IS_A factor;
273 d2DELTAbi_ddelta2[range_r4] IS_A factor;
274 d2PSI_ddelta2[range_r4] IS_A factor;
275 d2DELTAbi_dtau2[range_r4] IS_A factor;
276 d2PSI_dtau2[range_r4] IS_A factor;
277 d2PSI_ddeltadtau[range_r4] IS_A factor;
278 d2DELTAbi_ddeltadtau[range_r4] IS_A factor;
279
280 FOR i IN range_r4 CREATE
281 PSI[i] = exp(-C[i]*d1^2 - D[i]*t1^2);
282 theta[i] = 1 - tau + A[i] * (d1^2)^( 1/(2 * beta_r4[i]) );
283 DELTA[i] = theta[i]^2 + B[i] * (d1^2)^a[i];
284
285 dDELTA_ddelta[i] = d1*(A[i]*theta[i]*2/beta_r4[i]*
286 (d1^2)^(1/(2*beta_r4[i]) - 1) + 2*B[i]*a[i]*
287 (d1^2)^(a[i] - 1) );
288
289 dPSI_ddelta[i] = -2*C[i]*d1*PSI[i];
290
291 dDELTAbi_ddelta[i] = b[i] * DELTA[i]^(b[i]-1) * dDELTA_ddelta[i];
292
293 dDELTAbi_dtau[i] = -2 * theta[i] * b[i] * DELTA[i]^(b[i]-1);
294 dPSI_dtau[i] = -2 * D[i] * t1 * PSI[i];
295
296 d2PSI_ddelta2[i] = (2 * C[i] * d1^2 - 1) * 2 * C[i] * PSI[i];
297
298 d2DELTA_ddelta2[i] = 1/d1*dDELTA_ddelta[i] + d1^2*(4*B[i]*a[i]*
299 (a[i]-1)*(d1^2)^(a[i]-2) + 2*A[i]^2*
300 (1/(beta_r4[i]^2))*((d1^2) ^ (1/(2*beta_r4[i])-1))^2) +
301 A[i]*theta[i]*4/beta_r4[i]*(1/(2*beta_r4[i]) - 1)*
302 (d1^2)^(1/(2*beta_r4[i]) - 2);
303
304 d2DELTAbi_ddelta2[i] =b[i]*(DELTA[i]^(b[i]-1) *
305 d2DELTA_ddelta2[i] + (b[i]-1)*DELTA[i]^(b[i]-2)*
306 dDELTA_ddelta[i]^2);
307
308 d2DELTAbi_dtau2[i] = 2*b[i] * DELTA[i]^(b[i]-1) +
309 4*theta[i]^2 * b[i]*(b[i]-1) * DELTA[i]^(b[i]-2);
310
311 d2PSI_dtau2[i] = (2 * D[i] * t1^2 - 1) * 2 * D[i] * PSI[i];
312
313 d2PSI_ddeltadtau[i] = 4 * C[i] * D[i] * d1 * t1 * PSI[i];
314
315 d2DELTAbi_ddeltadtau[i] = -A[i] * b[i]*2/beta_r4[i] *
316 DELTA[i]^(b[i]-1) * d1 * (d1^2)^(1/(2*beta_r4[i])-1) -
317 2 * theta[i] * b[i] *(b[i]-1) * DELTA[i]^(b[i]-2) *
318 dDELTA_ddelta[i];
319
320 END FOR;
321
322 phir IS_A factor;
323 phir "phir expr"
324 =
325 SUM[ n[i] * delta^d[i] * tau^t[i] | i IN [range_r1] ]
326 +
327 SUM[ n[i] * delta^d[i] * tau^t[i] *
328 exp(-delta^c[i]) | i IN [range_r2] ]
329 +
330 SUM[ n[i] * delta^d[i] * tau^t[i] * exp(
331 -alpha[i]*d1^2 - beta[i]*
332 (tau - gamma[i])*(tau - gamma[i])
333 ) | i IN [range_r3] ]
334 +
335 SUM[ n[i] * DELTA[i]^b[i] * delta * PSI[i] | i IN [range_r4] ];
336
337
338 phirdelta IS_A factor;
339 phirdelta =
340 SUM[ n[i] * d[i] * delta^(d[i] - 1) * tau^t[i] | i IN range_r1 ]
341 + SUM[ n[i] * exp(-delta^c[i]) * (delta^(d[i]-1) *
342 tau^t[i] * (d[i] - c[i] * delta^c[i]) ) | i IN range_r2 ]
343 + SUM[ n[i]*delta^d[i] * tau^t[i] * exp( r3_b1[i] ) *
344 (d[i]/delta - 2*alpha[i]*d1) | i IN range_r3 ]
345 + SUM[ n[i] * (
346 DELTA[i]^b[i] * (PSI[i] + delta * dPSI_ddelta[i] )
347 + dDELTAbi_ddelta[i] * delta * PSI[i] ) | i IN range_r4 ];
348
349 phirtau IS_A factor;
350 phirtau =
351 SUM[ n[i] * t[i] * delta^d[i] * tau^(t[i]-1) | i IN range_r1 ]
352 + SUM[ n[i]*t[i]*delta^d[i]*tau^(t[i]-1) * exp(-delta^c[i]) | i IN range_r2 ]
353 + SUM[ n[i] * delta^d[i] * tau^t[i] * exp( r3_b1[i] )*
354 (t[i]/tau - 2*beta[i]*(tau - gamma[i])) | i IN range_r3 ]
355 + SUM[ n[i]*delta*(dDELTAbi_dtau[i] * PSI[i] +
356 DELTA[i]^b[i]*dPSI_dtau[i]) | i IN range_r4 ];
357
358
359 phirdeltadelta IS_A factor;
360 phirdeltadelta =
361 SUM[ n[i] * d[i] * (d[i] - 1) * delta^(d[i]-2) * tau^t[i] | i IN range_r1 ]
362 + SUM[ n[i]*exp(-(delta^c[i]))*((delta^(d[i]-2))*
363 (tau^t[i])*((d[i] - c[i]*(delta^c[i]))*
364 (d[i]-1-c[i]*(delta^c[i])) -
365 c[i]*c[i]*(delta^c[i]))) | i IN range_r2 ]
366 + SUM[ n[i]*(tau^t[i])*exp( r3_b1[i] )*
367 (-2*alpha[i]*(delta^d[i]) +
368 4*alpha[i]*alpha[i]*(delta^d[i])*d1^2 -
369 4*d[i]*alpha[i]*(delta^(d[i]-1))*d1 +
370 d[i]*(d[i]-1)*(delta^(d[i]-1))) | i IN range_r3 ]
371 + SUM[ n[i]*(
372 DELTA[i]^b[i] * (2*dPSI_ddelta[i] + delta*d2PSI_ddelta2[i] )
373 + 2*dDELTAbi_ddelta[i] * (PSI[i] + delta*dPSI_ddelta[i])
374 + d2DELTAbi_ddelta2[i] * delta * PSI[i] ) | i IN range_r4 ];
375
376 phirtautau IS_A factor;
377 phirtautau =
378 SUM[ n[i] * t[i] * (t[i]-1) * delta^d[i] *
379 tau^(t[i]-2) | i IN range_r1 ]
380 + SUM[ n[i]*t[i]*(t[i]-1)* delta^d[i] *
381 tau^(t[i]-2) * exp(- delta^c[i] ) | i IN range_r2 ]
382 + SUM[ n[i] * delta^d[i] * tau^t[i] * exp( r3_b1[i] ) *
383 ( (t[i]/tau - 2*beta[i]* (tau - gamma[i]) )^2 -
384 t[i]/tau^2 - 2*beta[i] ) | i IN range_r3 ]
385 + SUM[ n[i] * delta * (d2DELTAbi_dtau2[i] * PSI[i] +
386 2 * dDELTAbi_dtau[i] * dPSI_dtau[i] + DELTA[i]^b[i] * d2PSI_dtau2[i] ) | i IN range_r4 ];
387
388 phirdeltatau IS_A factor;
389 phirdeltatau =
390 SUM[ n[i]*d[i]*t[i] * delta^(d[i]-1) * tau^(t[i]-1) | i IN range_r1 ]
391
392 + SUM[ n[i]*t[i] * delta^(d[i]-1) * tau^(t[i]-1)
393 * (d[i] - c[i] * delta^c[i] * exp(-delta^c[i]) ) | i IN range_r2 ]
394 + SUM[ n[i] * delta^d[i] * tau^t[i] * exp( r3_b1[i] ) *
395 (d[i]/delta - 2*alpha[i]*d1) * (t[i]/tau - 2*beta[i]* (tau - gamma[i]) ) | i IN range_r3 ]
396 + SUM[ n[i]*( DELTA[i]^b[i] * (dPSI_dtau[i] + delta *
397 d2PSI_ddeltadtau[i] ) + delta * dDELTAbi_ddelta[i] * dPSI_dtau[i] +
398 dDELTAbi_dtau[i] * (PSI[i] + delta * dPSI_ddelta[i] ) +
399 d2DELTAbi_ddeltadtau[i] * delta * PSI[i] ) | i IN range_r4 ];
400
401 (*--------- THERMO PROPERTY RELATIONS ----------- *)
402
403 p IS_A pressure;
404 u IS_A specific_energy;
405 h IS_A specific_enthalpy;
406 s IS_A specific_entropy;
407 cp IS_A specific_heat_capacity;
408 cv IS_A specific_heat_capacity;
409 w IS_A speed;
410
411 pressure: p
412 = rho*(1{GAS_C})*T*(1 + delta*phirdelta);
413
414 internal_energy: u
415 = (1{GAS_C})*T*tau*(phi0tau + phirtau);
416
417 enthalpy: h
418 = (1{GAS_C})*T*(1 + tau*(phi0tau + phirtau) + delta*phirdelta);
419
420 entropy: s
421 = (1{GAS_C})*(tau*(phi0tau + phirtau) - phi0 - phir);
422
423 c_isochoric: cv
424 = -(1{GAS_C})*tau*tau*(phi0tautau + phirtautau);
425
426 c_isobaric: cp
427 = (1{GAS_C})*( -tau*tau*(phi0tautau + phirtautau) +
428 ( 1 + delta*phirdelta - delta*tau*phirdeltatau )^2
429 / ( 1 + 2*delta*phirdelta + delta*delta*phirdeltadelta)
430 );
431
432 spd_sound: w
433 = sqrt((1{GAS_C})*T* ( 1 + 2*delta*phirdelta + delta*delta*phirdeltadelta -
434 ( 1 + delta*phirdelta - delta*tau*phirdeltatau )^2
435 / ( tau*tau*(phi0tautau + phirtautau) )
436 ));
437
438
439 METHODS
440 METHOD default_self;
441 (* nothing here *)
442 END default_self;
443
444 METHOD specify;
445 T.fixed := TRUE;
446 rho.fixed := TRUE;
447 END specify;
448
449 METHOD values;
450 T := 290 {K};
451 rho := 997 {kg/m^3};
452 END values;
453
454 END steam_state;

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22