/[ascend]/trunk/models/vessel.a4c
ViewVC logotype

Annotation of /trunk/models/vessel.a4c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 109 - (hide annotations) (download) (as text)
Wed Dec 14 00:34:09 2005 UTC (19 years, 4 months ago) by johnpye
File MIME type: text/x-ascend
File size: 4073 byte(s)
Standardising all currency amounts to ISO 4217. USdollar and dollar
replaced by USD in all models in the library.
1 aw0a 1 REQUIRE "atoms.a4l";
2     (* => atoms.a4l, measures.a4l, system.a4l, basemodel.a4l *)
3     PROVIDE "vessel.a4c";
4     (*
5     * This file is part of the ASCEND Modeling Library and is released
6     * under the GNU Public License as described at the end of this file.
7     *)
8    
9     MODEL vessel;
10    
11     (* variables *)
12     side_area, end_area IS_A area;
13     vessel_vol, wall_vol IS_A volume;
14     wall_thickness, H, D IS_A distance;
15     H_to_D_ratio IS_A factor;
16     metal_density IS_A mass_density;
17     metal_mass IS_A mass;
18    
19     (* equations *)
20     FlatEnds: end_area = 1{PI} * D^2 / 4;
21     Sides: side_area = 1{PI} * D * H;
22     Cylinder: vessel_vol = end_area * H;
23     Metal_volume: (side_area + 2 * end_area) * wall_thickness = wall_vol;
24     HD_definition: D * H_to_D_ratio = H;
25     VesselMass: metal_mass = metal_density * wall_vol;
26    
27     METHODS
28    
29     METHOD defaults;
30     H_to_D_ratio := 2;
31     END defaults;
32    
33     METHOD clear;
34     side_area.fixed := FALSE;
35     end_area.fixed := FALSE;
36     vessel_vol.fixed := FALSE;
37     wall_vol.fixed := FALSE;
38     wall_thickness.fixed := FALSE;
39     H.fixed := FALSE;
40     D.fixed := FALSE;
41     H_to_D_ratio.fixed := FALSE;
42     metal_density.fixed := FALSE;
43     metal_mass.fixed := FALSE;
44     END clear;
45    
46     METHOD specify;
47     vessel_vol.fixed := TRUE;
48     H_to_D_ratio.fixed := TRUE;
49     wall_thickness.fixed := TRUE;
50     metal_density.fixed := TRUE;
51     END specify;
52    
53     METHOD reset;
54     RUN clear;
55     RUN specify;
56     END reset;
57    
58     METHOD values;
59     vessel_vol := 250 {ft^3};
60     wall_thickness := 5 {mm};
61     metal_density := 13000 {kg/m^3};
62     END values;
63    
64     END vessel;
65    
66     MODEL vessel_optimize REFINES vessel;
67    
68     cost IS_A monetary_unit;
69     a IS_A cost_per_volume;
70    
71     obj1def: cost = a * wall_thickness * (side_area + 2*(4/1{PI})*end_area);
72    
73     obj1: MINIMIZE cost;
74    
75     METHODS
76    
77     METHOD clear;
78     side_area.fixed := FALSE;
79     end_area.fixed := FALSE;
80     vessel_vol.fixed := FALSE;
81     wall_vol.fixed := FALSE;
82     wall_thickness.fixed := FALSE;
83     H.fixed := FALSE;
84     D.fixed := FALSE;
85     H_to_D_ratio.fixed := FALSE;
86     metal_density.fixed := FALSE;
87     metal_mass.fixed := FALSE;
88     cost.fixed := FALSE;
89     a.fixed := FALSE;
90     END clear;
91    
92     METHOD specify;
93     vessel_vol.fixed := TRUE;
94     wall_thickness.fixed := TRUE;
95     metal_density.fixed := TRUE;
96     a.fixed := TRUE;
97     END specify;
98    
99     METHOD min_cost;
100     RUN clear;
101     RUN specify;
102     END min_cost;
103    
104     METHOD values;
105     vessel_vol := 250 {ft^3};
106     wall_thickness := 5 {mm};
107     metal_density := 13000 {kg/m^3};
108    
109     (* a is the cost per cubic foot of metal. rather arbitrary. *)
110 johnpye 109 a := 10 {USD};
111 aw0a 1 END values;
112    
113     END vessel_optimize;
114    
115     (*
116     * vessel.a4c
117     * by Arthur W Westerberg, Benjamin A Allan
118     * Part of the ASCEND Library
119     * $Date: 1998/06/17 19:35:43 $
120     * $Revision: 1.3 $
121     * $Author: mthomas $
122     * $Source: /afs/cs.cmu.edu/project/ascend/Repository/models/vessel.a4c,v $
123     *
124     * This file is part of the ASCEND Modeling Library.
125     *
126     * Copyright (C) 1998 Carnegie Mellon University
127     *
128     * The ASCEND Modeling Library is free software; you can redistribute
129     * it and/or modify it under the terms of the GNU General Public
130     * License as published by the Free Software Foundation; either
131     * version 2 of the License, or (at your option) any later version.
132     *
133     * The ASCEND Modeling Library is distributed in hope that it
134     * will be useful, but WITHOUT ANY WARRANTY; without even the implied
135     * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
136     * See the GNU General Public License for more details.
137     *
138     * You should have received a copy of the GNU General Public License
139     * along with the program; if not, write to the Free Software
140     * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139 USA.
141     *)

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