/[ascend]/trunk/models/steam/thermalequilibrium3.a4c
ViewVC logotype

Annotation of /trunk/models/steam/thermalequilibrium3.a4c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1043 - (hide annotations) (download) (as text)
Fri Jan 5 06:24:59 2007 UTC (13 years, 7 months ago) by johnpye
File MIME type: text/x-ascend
File size: 1694 byte(s)
Fixed PyGTK GUI for case where syntax errors in command-line-specified file are found.
Fixed 'reload' behaviour for above case also.
Fixed satsteam test cases.
1 johnpye 1042 REQUIRE "ivpsystem.a4l";
2     REQUIRE "johnpye/thermo_types.a4c";
3     REQUIRE "johnpye/steam/iapwssat.a4c";
4    
5     IMPORT "johnpye/extpy/extpy";
6     IMPORT "johnpye/listnotes";
7     IMPORT "johnpye/solve";
8    
9     (*
10 johnpye 1043 Simplified version of models/johnpye/thermalequilibrium2.a4c. This one uses
11     saturated steam properties only (and is not suitable for cases where
12     properties pass outside those limits).
13 johnpye 1042
14     NOTE: set the starting step to 0.1 and the minimum step to 0.01 s, and
15     integrate from 0 to 3000 s.
16     *)
17     ADD NOTES IN thermalequilibrium3;
18     'solver' name {QRSlv}
19     'QRSlv' iterationlimit {50}
20     'QRSlv' singtol {1e-10}
21     (* following are not implemented yet *)
22     'LSODE' minstep {0.01}
23     'LSODE' firststep {0.1}
24     'LSODE' duration {3000}
25     END NOTES;
26    
27     MODEL thermalequilibrium3;
28     S[1..2] IS_A iapwssat;
29     m[1..2] IS_A mass;
30     h IS_A heat_transfer_coefficient;
31     A IS_A area;
32    
33     p ALIASES S[1].p;
34     S[2].p = S[1].p;
35    
36     Q IS_A energy_rate;
37     Q = h*A*(S[1].T - S[2].T); (* rate of heat transfer from 1 to 2 *)
38     m[1]*dhdt[1] = -Q;
39     m[2]*dhdt[2] = +Q;
40    
41     dhdt[1..2] IS_A delta_specific_power;
42    
43     t IS_A time;
44     METHODS
45     METHOD specify;
46     FIX h, A, m[1..2], S[1..2].h, p;
47     END specify;
48     METHOD values;
49     A := 1 {m^2};
50     h := 10 {W/m^2/K};
51    
52     p := 1 {bar};
53    
54     m[1] := 2 {kg};
55     S[1].h := 1000 {kJ/kg};
56     m[2] := 10 {kg};
57     S[2].h := 2000 {kJ/kg};
58     END values;
59     METHOD ode_init;
60     FOR i IN [1..2] DO
61     S[i].h.ode_id := i;
62     dhdt[i].ode_id := i;
63     S[i].h.ode_type := 1;
64     dhdt[i].ode_type := 2;
65     END FOR;
66    
67     Q.obs_id := 2;
68     S[1].h.obs_id := 3;
69     S[2].h.obs_id := 4;
70    
71     t.ode_type := -1;
72     t := 0 {s};
73     END ode_init;
74     METHOD on_load;
75     RUN reset;
76     RUN values;
77     EXTERNAL setup_solver(SELF);
78     EXTERNAL solve(SELF);
79     RUN ode_init;
80     END on_load;
81    
82     END thermalequilibrium3;
83    

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