/[ascend]/branches/jacob/models/johnpye/fprops/jacob_mix_test5--components.a4c
ViewVC logotype

Diff of /branches/jacob/models/johnpye/fprops/jacob_mix_test5--components.a4c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3078 by jacob, Mon Aug 17 06:38:10 2015 UTC revision 3079 by jacob, Thu Aug 20 02:17:28 2015 UTC
# Line 1  Line 1 
1  (* Outline of ASCEND multi-component ideal-solution routine *)  (* ASCEND multi-component ideal-solution routine
2  (* To perform the simulation, load the file into ASCEND and run 'setup'. *)    
3       To perform the simulation, load the file into ASCEND and run 'setup'.
4    
5       This file tests those functions which return properties for
6       individual components.
7     *)
8    
9  REQUIRE "atoms.a4l";  REQUIRE "atoms.a4l";
10  REQUIRE "johnpye/thermo_types.a4c";  REQUIRE "johnpye/thermo_types.a4c";
# Line 8  REQUIRE "johnpye/fprops/mixtures.a4l"; Line 13  REQUIRE "johnpye/fprops/mixtures.a4l";
13    
14  (* The mixture_test model *)  (* The mixture_test model *)
15  MODEL mixture_test;  MODEL mixture_test;
16      T IS_A temperature;      (* -----------------------------------------------------------------
17      p IS_A pressure;         Declare variables to hold various mixture properties *)
18        T IS_A temperature; (* mixture temperature *)
19        p IS_A pressure;    (* mixture pressure; with 'T' this sets the state *)
20    
21        rho,                         (* whole-mixture *)
22        rho_ph1,                     (* phase 1 *)
23        rho_ph2,                     (* phase 2 *)
24        rho_comp1,                   (* phase 1, component 1 *)
25        rho_comp2 IS_A mass_density; (* phase 1, component 2 *)
26    
27        (* -----------------------------------------------------------------
28           Declare enthalpy variables *)
29        h,                              (* whole-mixture *)
30        h_ph1,                          (* phase 1 *)
31        h_ph2,                          (* phase 2 *)
32        h_comp1,                        (* phase 1, component 1 *)
33        h_comp2 IS_A specific_enthalpy; (* phase 1, component 2 *)
34    
35      rho,      (* -----------------------------------------------------------------
36      rho_ph1,         Declare constant-pressure heat capacity variables *)
37      rho_ph2,      cp,       (* whole-mixture *)
38      rho_comp1,      cp_comp1, (* phase 1, component 1 *)
39      rho_comp2 IS_A mass_density;      cp_comp2, (* phase 1, component 2 *)
40    
41      h_ph1,      (* Declare constant-volume heat capacity variables *)
42      h_ph2,      cv_ph1,                               (* phase 1, component 1 *)
43      h_comp1,      cv_comp2 IS_A specific_heat_capacity; (* phase 1, component 2 *)
     h_comp2 IS_A specific_enthalpy;  
   
     cp_ph1,  
     cp_comp1,  
     cp_comp2,  
     cv_ph1,  
     cv_comp2 IS_A specific_heat_capacity;  
   
     g_ph1,  
     g_ph2,  
     g_comp1,  
     g_comp2 IS_A specific_secondary_energy;  
   
     phases,  
     comp_num[1..3],  
     ph1, ph2, ph3,  
     cmp1, cmp2 IS_A phase_count;  
44    
45      ph_frac[1..3] IS_A mass_fraction;      (* -----------------------------------------------------------------
46           Declare Gibbs energy variables *)
47        g,                                      (* whole-mixture *)
48        g_ph1,                                  (* phase 1 *)
49        g_ph2,                                  (* phase 2 *)
50        g_comp1,                                (* phase 1, component 1 *)
51        g_comp2 IS_A specific_secondary_energy; (* phase 1, component 2 *)
52    
53        (* -----------------------------------------------------------------
54           Declare variables to hold phase-accounting data *)
55        phases,                      (* number of phases *)
56        comp_num[1..3],              (* number of components in each phase *)
57        ph1, ph2, ph3,               (* phases 1, 2, 3 *)
58        cmp1, cmp2 IS_A phase_count; (* components 1, 2 *)
59        ph_frac[1..3] IS_A mass_fraction; (* mass fraction of each phase *)
60    
61        (* -----------------------------------------------------------------
62           Declare and specify a mixture with its composition *)
63      mixt IS_A mixture_spec;      mixt IS_A mixture_spec;
64      mixt.npure :== 4;      mixt.npure :== 4;
65      mixt.components[1] :== 'ammonia';      mixt.components[1] :== 'ammonia';
# Line 106  MODEL mixture_test; Line 126  MODEL mixture_test;
126    
127      (* -----------------------------------------------------------------      (* -----------------------------------------------------------------
128         Find phase and component enthalpies *)         Find phase and component enthalpies *)
129        mix_whole_enthalpy : mixture_h(
130            T, p : INPUT;
131            h : OUTPUT;
132            mixt : DATA
133        );
134      mix_phase1_enthalpy : mixture_phase_h(      mix_phase1_enthalpy : mixture_phase_h(
135          T, p, ph1 : INPUT;          T, p, ph1 : INPUT;
136          h_ph1 : OUTPUT;          h_ph1 : OUTPUT;
# Line 129  MODEL mixture_test; Line 154  MODEL mixture_test;
154    
155      (* -----------------------------------------------------------------      (* -----------------------------------------------------------------
156         Find phase and component heat capacities *)         Find phase and component heat capacities *)
157      mix_phase1_cp : mixture_phase_cp(      mix_whole_cp : mixture_cp(
158          T, p, ph1 : INPUT;          T, p : INPUT;
159          cp_ph1 : OUTPUT;          cp : OUTPUT;
         mixt : DATA  
     );  
     mix_phase1_cv : mixture_phase_cv(  
         T, p, ph1 : INPUT;  
         cv_ph1 : OUTPUT;  
160          mixt : DATA          mixt : DATA
161      );      );
162      mix_comp1_cp : mixture_comps_cp(      mix_comp1_cp : mixture_comps_cp(
# Line 149  MODEL mixture_test; Line 169  MODEL mixture_test;
169          cp_comp2 : OUTPUT;          cp_comp2 : OUTPUT;
170          mixt : DATA          mixt : DATA
171      );      );
172    
173        (* -----------------------------------------------------------------
174           Find phase and component constant-volume heat capacities *)
175        mix_phase1_cv : mixture_phase_cv(
176            T, p, ph1 : INPUT;
177            cv_ph1 : OUTPUT;
178            mixt : DATA
179        );
180      mix_comp2_cv : mixture_comps_cv(      mix_comp2_cv : mixture_comps_cv(
181          T, p, ph1, cmp2 : INPUT;          T, p, ph1, cmp2 : INPUT;
182          cv_comp2 : OUTPUT;          cv_comp2 : OUTPUT;
# Line 157  MODEL mixture_test; Line 185  MODEL mixture_test;
185    
186      (* -----------------------------------------------------------------      (* -----------------------------------------------------------------
187         Find phase and component Gibbs energy data *)         Find phase and component Gibbs energy data *)
188        mix_whole_g : mixture_g(
189            T, p : INPUT;
190            g : OUTPUT;
191            mixt : DATA
192        );
193      mix_phase1_g : mixture_phase_g(      mix_phase1_g : mixture_phase_g(
194          T, p, ph1 : INPUT;          T, p, ph1 : INPUT;
195          g_ph1 : OUTPUT;          g_ph1 : OUTPUT;
# Line 179  MODEL mixture_test; Line 212  MODEL mixture_test;
212      );      );
213    
214  METHODS  METHODS
215    (* Fix the variables that are to be fixed *)
216  METHOD specify;  METHOD specify;
217      FIX T;      FIX T;
218      FIX p;      FIX p;
# Line 188  METHOD specify; Line 222  METHOD specify;
222      FIX cmp1;      FIX cmp1;
223      FIX cmp2;      FIX cmp2;
224  END specify;  END specify;
225    (* Set values of the fixed variables *)
226  METHOD values;  METHOD values;
227      T  := 150 {K} + 273.15 {K};      T  := 150 {K} + 273.15 {K};
228      p  := 2 {bar};      p  := 2 {bar};
# Line 197  METHOD values; Line 232  METHOD values;
232      cmp1 := 1;      cmp1 := 1;
233      cmp2 := 2;      cmp2 := 2;
234  END values;  END values;
235    (* Set solver and other options *)
236  METHOD options;  METHOD options;
237      SOLVER QRSlv;      SOLVER QRSlv;
238      OPTION convopt 'RELNOM_SCALE';      OPTION convopt 'RELNOM_SCALE';
239  END options;  END options;
240    (* Quick alias for all preceeding methods; readies the model for solving *)
241  METHOD setup;  METHOD setup;
242      RUN specify;      RUN specify;
243      RUN values;      RUN values;

Legend:
Removed from v.3078  
changed lines
  Added in v.3079

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