/[ascend]/trunk/doc/howto-model2.lyx
ViewVC logotype

Contents of /trunk/doc/howto-model2.lyx

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1766 - (show annotations) (download) (as text)
Mon Apr 7 09:06:56 2008 UTC (12 years, 3 months ago) by jpye
File MIME type: application/x-lyx
File size: 40826 byte(s)
Fixed heading numbers in book.pdf, some tinkering to expose bug in IDA when there are derivs with out undiff vars.
1 #LyX 1.5.3 created this file. For more info see http://www.lyx.org/
2 \lyxformat 276
3 \begin_document
4 \begin_header
5 \textclass book
6 \begin_preamble
7 \usepackage[bookmarks,bookmarksnumbered=true]{hyperref}
8 \usepackage{lmodern}
9 \usepackage{color}
10 \definecolor{darkred}{rgb}{0.55,0,0}
11 \definecolor{darkgreen}{rgb}{0,0.55,0}
12
13 \usepackage{listings}
14
15 \lstdefinelanguage{ascend}{
16 morekeywords=[1]{
17 REQUIRE,IMPORT,NOTES,
18 ATOM,MODEL,METHOD,METHODS,
19 UNIVERSAL,CONSTANT,DIMENSION,DEFAULT,
20 END,FOR,CREATE,DO,EXTERNAL,
21 CONDITIONAL,SATISFIED,WHEN,CASE,OTHERWISE,TRUE,
22 FALSE,SELF,
23 },
24 morekeywords=[2]{
25 REFINES,IS_A,WILL_BE,ALIASES,INPUT,OUTPUT,DATA,
26 FIX,FREE,RUN,ARE_THE_SAME
27 },
28 morekeywords=[3]{
29 solver_var,integer_constant
30 },
31 sensitive=true,
32 morecomment=[s][\color{blue}]{(*}{*)},
33 morestring=[b][\color{darkgreen}]',
34 morestring=[b][\color{darkgreen}]",
35 morecomment=[s][\color{darkgreen}]{\{}{\}},
36 }
37
38 \lstnewenvironment{ascend}
39 {\lstset{basicstyle=\ttfamily\small, keywordstyle=\color{darkred}}}
40 {}
41
42 \lstdefinestyle{ascendlisting}{
43 style=ascendlisting,
44 basicstyle=\small\ttfamily,
45 numbers=left,
46 numbersep=5pt,
47 numberstyle=\tiny,
48 escapeinside={(*@}{@*)}
49 backgroundcolor=\color{lightgrey}
50 }
51 \end_preamble
52 \language english
53 \inputencoding auto
54 \font_roman default
55 \font_sans default
56 \font_typewriter default
57 \font_default_family default
58 \font_sc false
59 \font_osf false
60 \font_sf_scale 100
61 \font_tt_scale 100
62 \graphics default
63 \paperfontsize default
64 \spacing single
65 \papersize a4paper
66 \use_geometry false
67 \use_amsmath 2
68 \use_esint 0
69 \cite_engine basic
70 \use_bibtopic false
71 \paperorientation portrait
72 \secnumdepth 3
73 \tocdepth 3
74 \paragraph_separation indent
75 \defskip medskip
76 \quotes_language english
77 \papercolumns 1
78 \papersides 2
79 \paperpagestyle default
80 \tracking_changes false
81 \output_changes false
82 \author ""
83 \end_header
84
85 \begin_body
86
87 \begin_layout Chapter
88 Preparing a model for reuse
89 \begin_inset LatexCommand index
90 name "reuse"
91
92 \end_inset
93
94
95 \begin_inset LatexCommand label
96 name "cha:model2"
97
98 \end_inset
99
100
101 \end_layout
102
103 \begin_layout Standard
104 There are four major ways to prepare a model for reuse.
105 First, you should add comments to a model.
106 Second, you should add methods to a model definition to pass to a future
107 user your experience in creating an instance of this type which is well-posed.
108 Third, you should parameterize the model type definition to alert a future
109 user as to which parts of this model you deem to be the most likely to
110 be shared.
111 And fourth, you should prepare a script that a future user can run to solve
112 a sample problem involving an instance of the model.
113 We shall consider each of these items in turn in what follows.
114 \begin_inset Foot
115 status open
116
117 \begin_layout Standard
118 More detail on these is available in papers and reports by Allan, Zaher,
119 Chittur et al
120 \begin_inset LatexCommand cite
121 key "Allan1997d"
122
123 \end_inset
124
125 ,
126 \begin_inset LatexCommand cite
127 key "Allan1997b"
128
129 \end_inset
130
131 ,
132 \begin_inset LatexCommand cite
133 key "Allan1997"
134
135 \end_inset
136
137 ,
138 \begin_inset LatexCommand cite
139 key "Krishnan1993"
140
141 \end_inset
142
143 ,
144 \begin_inset LatexCommand cite
145 key "Zaher1991"
146
147 \end_inset
148
149 .
150 \end_layout
151
152 \end_inset
153
154
155 \end_layout
156
157 \begin_layout Section
158 Adding comments
159 \begin_inset LatexCommand index
160 name "comments"
161
162 \end_inset
163
164 and notes
165 \begin_inset LatexCommand index
166 name "notes"
167
168 \end_inset
169
170
171 \end_layout
172
173 \begin_layout Standard
174 In ASCEND we can create traditional comments for a model -- i.e., add text
175 to the code that aids anyone looking at the code to understand what is
176 there.
177 We do this by enclosing text with the delimiters
178 \family typewriter
179 (*
180 \family default
181
182 \begin_inset LatexCommand index
183 name "(*"
184
185 \end_inset
186
187 and
188 \family typewriter
189 *)
190 \family default
191
192 \begin_inset LatexCommand index
193 name "*)"
194
195 \end_inset
196
197 .
198 Thus the line
199 \end_layout
200
201 \begin_layout LyX-Code
202 \begin_inset ERT
203 status open
204
205 \begin_layout Standard
206
207
208 \backslash
209 begin{ascend}
210 \end_layout
211
212 \begin_layout Standard
213
214 (* This is a comment *)
215 \end_layout
216
217 \begin_layout Standard
218
219
220 \backslash
221 end{ascend}
222 \end_layout
223
224 \end_inset
225
226
227 \end_layout
228
229 \begin_layout Standard
230 is a comment in ASCEND.
231 Traditional comments are only visible when we display the code using the
232 Display code tool
233 \begin_inset LatexCommand index
234 name "Display code tool"
235
236 \end_inset
237
238
239 \begin_inset LatexCommand index
240 name "tool, Display code"
241
242 \end_inset
243
244 in the Library window or when we view the code in the text editor we used
245 to create it.
246
247 \end_layout
248
249 \begin_layout Standard
250 We suggest we can do more for the modeler with the concept of Notes, a form
251 of "active" comments available in ASCEND.
252 ASCEND has tools to extract notes and display them in searchable form.
253 \end_layout
254
255 \begin_layout Standard
256 \begin_inset LatexCommand index
257 name "comments, active"
258
259 \end_inset
260
261 In Figure
262 \begin_inset LatexCommand ref
263 reference "fig:model2.vesselWithNotes"
264
265 \end_inset
266
267
268 \noun off
269 we show two types of notes the modeler can add.
270
271 \series bold
272 \noun default
273 Longer notes
274 \series default
275 \noun off
276 are set off in block style starting with the keyword
277 \family sans
278 \noun default
279 NOTES
280 \family default
281 \noun off
282 and ending with
283 \family sans
284 \noun default
285 END NOTES
286 \family default
287 \noun off
288 .
289 In this model, we declare two notes in this manner: (1) to indicate who
290 the author is and (2) to indicate the creation date for this model.
291 Note that the notes are director to documenting
292 \family sans
293 \noun default
294 SELF
295 \family default
296 \noun off
297 , which is the model itself -- i.e., the vessel model as a whole object.
298 The object one documents can be any instance in the model -- any variable,
299 equation or part.
300 The tools for handling notes can sort on the terms enclosed in single quotes
301 so one could, for example, isolate the author notes for all the models.
302 \end_layout
303
304 \begin_layout Standard
305 Vessel model with
306 \family sans
307 NOTES
308 \family default
309 added (model
310 \family typewriter
311 vesselNotes.a4c
312 \family default
313
314 \begin_inset LatexCommand index
315 name "vesselNotes.a4c"
316
317 \end_inset
318
319 )
320 \begin_inset LatexCommand label
321 name "fig:model2.vesselWithNotes"
322
323 \end_inset
324
325
326 \end_layout
327
328 \begin_layout Standard
329 \begin_inset ERT
330 status open
331
332 \begin_layout Standard
333
334
335 \backslash
336 lstset{language=ASCEND}
337 \end_layout
338
339 \begin_layout Standard
340
341
342 \backslash
343 lstinputlisting[firstline=24]{../models/vesselNotes.a4c}
344 \end_layout
345
346 \begin_layout Standard
347
348 \end_layout
349
350 \end_inset
351
352
353 \end_layout
354
355 \begin_layout Standard
356 A user may use any term desired in the single quotes.
357 We have not decided yet what the better set of terms should be so we do
358 not as yet suggest any.
359 With time we expect the terms used to settle down to just a few that are
360 repeated for all the models in a library.
361 \end_layout
362
363 \begin_layout Standard
364 There are also
365 \series bold
366 short notes
367 \series default
368 we can attach to every variable in the model.
369 A "one liner
370 \begin_inset LatexCommand index
371 name "notes, one liner"
372
373 \end_inset
374
375
376 \begin_inset LatexCommand index
377 name "one liner"
378
379 \end_inset
380
381 " in double quotes just following the variable name allows the automatic
382 annotation of variables in reports.
383 \end_layout
384
385 \begin_layout Standard
386 The last few lines of Figure
387 \begin_inset LatexCommand ref
388 reference "fig:model2.vesselWithNotes"
389
390 \end_inset
391
392
393 \noun off
394 shows adding
395 \series bold
396 \noun default
397 separate notes
398 \series default
399 \noun off
400 we write using
401 \family sans
402 \noun default
403 ADD NOTES IN
404 \family default
405 \noun off
406 syntax
407 \begin_inset LatexCommand index
408 name "ADD NOTES IN object"
409
410 \end_inset
411
412 .
413 This object can appear before or after or in a different file from the
414 object it describes.
415 This style of note writing is useful as it allows another person to add
416 notes to a model without changing the code for a model.
417 Thus it allows several different sets of notes to exist for a single model,
418 with the choice of which to use being up to the person maintaining the
419 model library.
420 Finally, it allows one to eliminate the "clutter" the documentation often
421 adds to the code.
422 \end_layout
423
424 \begin_layout Section
425 Adding methods
426 \begin_inset LatexCommand index
427 name "methods, adding"
428
429 \end_inset
430
431
432 \begin_inset LatexCommand index
433 name "adding methods"
434
435 \end_inset
436
437
438 \end_layout
439
440 \begin_layout Standard
441 We would next like to pass along our experiences in getting this model to
442 be well-posed -- i.e., we would like to tell future users which variables
443 we decided to fix and which we decided to calculate.
444 We would also like to provide some typical values for the variables we
445 decided to fix.
446 ASCEND allows us to attach any number of methods to a type definition.
447 Methods are procedural code that we can request be run through the interface
448 while browsing a model instance.
449 We shall include methods as described in Table
450 \begin_inset LatexCommand ref
451 reference "tab:model2.reqdMethods"
452
453 \end_inset
454
455
456 \noun off
457 to set just the right fixed flags and variable values for an instance of
458 our vessel model to be well-posed.
459 \end_layout
460
461 \begin_layout Standard
462 The system has defaults definitions for all these methods.
463 You already saw that to be true if you went through the process of setting
464 all the fixed flags to FALSE in the previous chapter.
465 In case you did not, load and compile the vesselPlain.a4c model in ASCEND.
466 Export the compiled instance to the Browser.
467 Then in the Browser, under the Edit button, select Run method.
468 You will see a list containing these and other methods we shall be describing
469 shortly.
470 Select specify and hit the OK button.
471 Then look in the Console window.
472 A message similar to the following will appear, with all but the first
473 line being in red to signify you should pay attention to the message:
474 \end_layout
475
476 \begin_layout LyX-Code
477 Running method specify in v
478 \end_layout
479
480 \begin_layout LyX-Code
481 Found STOP
482 \begin_inset LatexCommand index
483 name "STOP"
484
485 \end_inset
486
487 statement in METHOD
488 \end_layout
489
490 \begin_layout LyX-Code
491 C:
492 \backslash
493 PROGRAM FILES
494 \backslash
495 ASCEND
496 \backslash
497 ASCEND4
498 \backslash
499 models
500 \backslash
501 basemodel.a4l:307
502 \end_layout
503
504 \begin_layout LyX-Code
505 STOP {Error
506 \begin_inset LatexCommand index
507 name "error"
508
509 \end_inset
510
511 ! Standard method "specify" called but not
512 \end_layout
513
514 \begin_layout LyX-Code
515 written in MODEL.};
516 \end_layout
517
518 \begin_layout Standard
519 This message is telling you that you have just run the default specify method
520 \begin_inset LatexCommand index
521 name "specify method, default"
522
523 \end_inset
524
525 .
526 We have to hand-craft every specify method so the default method is not
527 appropriate.
528 This message is alerting us to the fact that we did not yet write a special
529 specify method for this model type.
530 \end_layout
531
532 \begin_layout Standard
533 Try running the ClearAll
534 \begin_inset LatexCommand index
535 name "ClearAll"
536
537 \end_inset
538
539 method.
540 The default ClearAll method is always the one you will want so it does
541 not put out a message to alert you that it is the default.
542
543 \end_layout
544
545 \begin_layout Standard
546 \begin_inset Float table
547 wide false
548 sideways false
549 status open
550
551 \begin_layout Standard
552 \begin_inset Caption
553
554 \begin_layout Standard
555 \begin_inset LatexCommand label
556 name "tab:model2.reqdMethods"
557
558 \end_inset
559
560 Some of the methods
561 \begin_inset LatexCommand index
562 name "methods, required"
563
564 \end_inset
565
566 we require for putting a model into an ASCEND library
567 \end_layout
568
569 \end_inset
570
571
572 \end_layout
573
574 \begin_layout Standard
575 \begin_inset Tabular
576 <lyxtabular version="3" rows="5" columns="2">
577 <features>
578 <column alignment="center" valignment="top" leftline="true" width="1.25in">
579 <column alignment="center" valignment="top" leftline="true" rightline="true" width="3.5in">
580 <row topline="true" bottomline="true">
581 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
582 \begin_inset Text
583
584 \begin_layout Standard
585
586 \end_layout
587
588 \end_inset
589 </cell>
590 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
591 \begin_inset Text
592
593 \begin_layout Standard
594
595 \end_layout
596
597 \end_inset
598 </cell>
599 </row>
600 <row topline="true">
601 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
602 \begin_inset Text
603
604 \begin_layout Standard
605
606 \family typewriter
607 ClearAll
608 \family default
609
610 \begin_inset LatexCommand index
611 name "ClearAll"
612
613 \end_inset
614
615
616 \end_layout
617
618 \end_inset
619 </cell>
620 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
621 \begin_inset Text
622
623 \begin_layout Standard
624 a method to set all the .fixed flags for variables in the type to FALSE.
625 This puts these flags into a known standard state -- i.e., all are FALSE.
626 All models inherit this method from the base model and the need to rewrite
627 it is very, very rare.
628 \end_layout
629
630 \end_inset
631 </cell>
632 </row>
633 <row topline="true">
634 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
635 \begin_inset Text
636
637 \begin_layout Standard
638
639 \family typewriter
640 specify
641 \family default
642
643 \begin_inset LatexCommand index
644 name "specify"
645
646 \end_inset
647
648
649 \end_layout
650
651 \end_inset
652 </cell>
653 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
654 \begin_inset Text
655
656 \begin_layout Standard
657
658 \family roman
659 \series medium
660 \shape up
661 \size normal
662 \emph off
663 \bar no
664 \noun off
665 \color none
666 a method which assumes all the fixed flags are currently FALSE and which
667 then sets a suitable set of fixed flags to TRUE to make an instance of
668 this type of model well-posed.
669 A well-posed model is one that is square (n equations in n unknowns) and
670 solvable.
671 \end_layout
672
673 \end_inset
674 </cell>
675 </row>
676 <row topline="true">
677 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
678 \begin_inset Text
679
680 \begin_layout Standard
681
682 \family typewriter
683 reset
684 \family default
685
686 \begin_inset LatexCommand index
687 name "reset"
688
689 \end_inset
690
691
692 \end_layout
693
694 \end_inset
695 </cell>
696 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
697 \begin_inset Text
698
699 \begin_layout Standard
700
701 \family roman
702 \series medium
703 \shape up
704 \size normal
705 \emph off
706 \bar no
707 \noun off
708 \color none
709 a method which first runs the ClearAll method and then the specify method.
710 We include this method because it is very convenient.
711 We only have to run one method to make any simulation well-posed, no matter
712 how its fixed flags are currently set.
713 All models inherit this method from the base model, as with ClearAll .
714 It should only rarely have to be rewritten for a model.
715 \end_layout
716
717 \end_inset
718 </cell>
719 </row>
720 <row topline="true" bottomline="true">
721 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
722 \begin_inset Text
723
724 \begin_layout Standard
725
726 \family typewriter
727 values
728 \family default
729
730 \begin_inset LatexCommand index
731 name "values"
732
733 \end_inset
734
735
736 \end_layout
737
738 \end_inset
739 </cell>
740 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
741 \begin_inset Text
742
743 \begin_layout Standard
744
745 \family roman
746 \series medium
747 \shape up
748 \size normal
749 \emph off
750 \bar no
751 \noun off
752 \color none
753 a method to establish typical values for the variables we have fixed in
754 an application or test model.
755 We may also supply values for some of the variables we will be computing
756 to aid in solving a model instance of this type.
757 These values reflectiveness that we have tested for a simulation of this
758 type and found to work.
759 \end_layout
760
761 \end_inset
762 </cell>
763 </row>
764 </lyxtabular>
765
766 \end_inset
767
768
769 \end_layout
770
771 \end_inset
772
773
774 \end_layout
775
776 \begin_layout Standard
777 To write the
778 \family typewriter
779 specify
780 \family default
781 and
782 \family typewriter
783 values
784 \family default
785 methods for our vessel model, we note that we have successfully solved
786 the vessel model in at least two different ways above.
787 Thus both variations are examples of being `well-posed'.
788 We can choose which variation we shall use when creating the
789 \family typewriter
790 specify
791 \family default
792 method for our vessel type definition.
793 Let us choose the alternative where we fixed
794 \family typewriter
795 vessel_volume
796 \family default
797 ,
798 \family typewriter
799 H_to_D_ratio
800 \family default
801 ,
802 \family typewriter
803 metal_density
804 \family default
805 and
806 \family typewriter
807 wall_thickness
808 \family default
809 and provided them with the values of
810 \family typewriter
811 250 ft^3
812 \family default
813 ,
814 \family typewriter
815 3
816 \family default
817 ,
818 \family typewriter
819 5000 kg/m^3
820 \family default
821 and
822 \family typewriter
823 5 mm
824 \family default
825 respectively to be our `standard' specification.
826 Default methods
827 \family typewriter
828 ClearAll
829 \family default
830 and
831 \family typewriter
832 reset
833 \family default
834 are appropriate
835 \end_layout
836
837 \begin_layout Standard
838 As already noted, the purpose of
839 \family typewriter
840 ClearAll
841 \family default
842 is to set all the variables to
843 \family sans
844 FREE
845 \family default
846 , a well-defined state from which we can start over to set variables
847 \family sans
848 FIX
849 \family default
850 ed as we wish.
851 The method
852 \family typewriter
853 reset
854 \family default
855 simply runs
856 \family typewriter
857 ClearAll
858 \family default
859 followed by the
860 \family typewriter
861 specify
862 \family default
863 method for a model.
864 The default versions for these two methods are generally exactly what one
865 wants so one need not write these.
866 \end_layout
867
868 \begin_layout Standard
869 Figure
870 \begin_inset LatexCommand ref
871 reference "fig:model2.vesselWithMethods"
872
873 \end_inset
874
875
876 \noun off
877 illustrates our vessel model with our local versions added for
878 \family typewriter
879 \noun default
880 specify
881 \family default
882 \noun off
883 and
884 \family typewriter
885 \noun default
886 values
887 \family default
888 \noun off
889 .
890 Look only at these for the moment and note that they do what we described
891 above.
892 We show some other methods we shall explain in a moment.
893 \end_layout
894
895 \begin_layout Standard
896 Version of vessel with
897 \family sans
898 METHODS
899 \family default
900 added (
901 \family typewriter
902 vesselMethods.a4c
903 \family default
904
905 \begin_inset LatexCommand index
906 name "vesselMethods.a4c"
907
908 \end_inset
909
910 )
911 \begin_inset LatexCommand label
912 name "fig:model2.vesselWithMethods"
913
914 \end_inset
915
916
917 \end_layout
918
919 \begin_layout Standard
920 \begin_inset ERT
921 status open
922
923 \begin_layout Standard
924
925
926 \backslash
927 lstset{language=ASCEND}
928 \end_layout
929
930 \begin_layout Standard
931
932
933 \backslash
934 lstinputlisting[firstline=23]{../models/vesselMethods.a4c}
935 \end_layout
936
937 \end_inset
938
939
940 \end_layout
941
942 \begin_layout Standard
943 In Table
944 \begin_inset LatexCommand ref
945 reference "tab:model2.addedReqdMethods"
946
947 \end_inset
948
949
950 \noun off
951 we describe additional methods we require before we will put a model into
952 one of our libraries.
953 Each of these had two versions, both of which we require.
954 The designation
955 \family typewriter
956 \noun default
957 _self
958 \family default
959 \noun off
960
961 \begin_inset LatexCommand index
962 name "\\_self"
963
964 \end_inset
965
966 is for a method to do something for all the variables and/or parts we have
967 defined locally within the current model with an IS_A statement.
968 The designation
969 \family typewriter
970 \noun default
971 _all
972 \family default
973 \noun off
974
975 \begin_inset LatexCommand index
976 name "\\_all"
977
978 \end_inset
979
980 is for a method to do something for parts that are defined within an `outer'
981 model that has an instance of this model as a part.
982 The `outer' model is at a higher scope
983 \begin_inset LatexCommand index
984 name "scope"
985
986 \end_inset
987
988 .
989 It can share its parts with this model by passing them in as parameters,
990 a topic we cover shortly in
991 \noun default
992 Section
993 \noun off
994
995 \begin_inset LatexCommand ref
996 reference "sec:model2.parameterizingVessel"
997
998 \end_inset
999
1000 .
1001
1002 \noun default
1003
1004 \noun off
1005 Only the
1006 \family typewriter
1007 \noun default
1008 _self
1009 \family default
1010 \noun off
1011 versions of these methods are relevant here and are in
1012 \noun default
1013 Figure
1014 \noun off
1015
1016 \begin_inset LatexCommand ref
1017 reference "fig:model2.vesselWithMethods"
1018
1019 \end_inset
1020
1021 .
1022 \end_layout
1023
1024 \begin_layout Standard
1025 \begin_inset Float table
1026 wide false
1027 sideways false
1028 status open
1029
1030 \begin_layout Standard
1031 \begin_inset Caption
1032
1033 \begin_layout Standard
1034 Additional methods
1035 \begin_inset LatexCommand index
1036 name "methods. required"
1037
1038 \end_inset
1039
1040 required for model in ASCEND libraries
1041 \begin_inset LatexCommand label
1042 name "tab:model2.addedReqdMethods"
1043
1044 \end_inset
1045
1046
1047 \end_layout
1048
1049 \end_inset
1050
1051
1052 \end_layout
1053
1054 \begin_layout Standard
1055 \begin_inset Tabular
1056 <lyxtabular version="3" rows="5" columns="2">
1057 <features>
1058 <column alignment="center" valignment="top" leftline="true" width="1.25in">
1059 <column alignment="center" valignment="top" leftline="true" rightline="true" width="3.5in">
1060 <row topline="true" bottomline="true">
1061 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1062 \begin_inset Text
1063
1064 \begin_layout Standard
1065 method
1066 \end_layout
1067
1068 \end_inset
1069 </cell>
1070 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1071 \begin_inset Text
1072
1073 \begin_layout Standard
1074 description
1075 \end_layout
1076
1077 \end_inset
1078 </cell>
1079 </row>
1080 <row topline="true">
1081 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1082 \begin_inset Text
1083
1084 \begin_layout Standard
1085
1086 \family typewriter
1087 default_self
1088 \begin_inset LatexCommand index
1089 name "default\\_self"
1090
1091 \end_inset
1092
1093 , default_all
1094 \family default
1095
1096 \begin_inset LatexCommand index
1097 name "default\\_all"
1098
1099 \end_inset
1100
1101
1102 \end_layout
1103
1104 \end_inset
1105 </cell>
1106 <cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none" width="3.5in">
1107 \begin_inset Text
1108
1109 \begin_layout Standard
1110
1111 \family roman
1112 \series medium
1113 \shape up
1114 \size normal
1115 \emph off
1116 \bar no
1117 \noun off
1118 \color none
1119 a method called automatically when any simulation is compiled to provide
1120 default values and adjust bounds for any variables which may have unsuitable
1121 defaults in their ATOM definitions.
1122 Usually the variables selected are those for which the model becomes ill-behave
1123 d if given poor initial guesses or bounds (e.g., zero).
1124 \end_layout
1125
1126 \end_inset
1127 </cell>
1128 </row>
1129 <row topline="true">
1130 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1131 \begin_inset Text
1132
1133 \begin_layout Standard
1134
1135 \family typewriter
1136 bound_self
1137 \begin_inset LatexCommand index
1138 name "bound\\_self"
1139
1140 \end_inset
1141
1142 , bound_all
1143 \family default
1144
1145 \begin_inset LatexCommand index
1146 name "bound\\_all"
1147
1148 \end_inset
1149
1150
1151 \end_layout
1152
1153 \end_inset
1154 </cell>
1155 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1156 \begin_inset Text
1157
1158 \begin_layout Standard
1159
1160 \family roman
1161 \series medium
1162 \shape up
1163 \size normal
1164 \emph off
1165 \bar no
1166 \noun off
1167 \color none
1168 a method to update the .
1169 upper_bound and .
1170 lower_bound value for each of the variables.
1171 ASCEND solvers use these bound values to help solve the model equations.
1172 \end_layout
1173
1174 \end_inset
1175 </cell>
1176 </row>
1177 <row topline="true">
1178 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1179 \begin_inset Text
1180
1181 \begin_layout Standard
1182
1183 \family typewriter
1184 scale_self
1185 \begin_inset LatexCommand index
1186 name "scale\\_self"
1187
1188 \end_inset
1189
1190 , scale_all
1191 \family default
1192
1193 \begin_inset LatexCommand index
1194 name "scale\\_all"
1195
1196 \end_inset
1197
1198
1199 \end_layout
1200
1201 \end_inset
1202 </cell>
1203 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1204 \begin_inset Text
1205
1206 \begin_layout Standard
1207
1208 \family roman
1209 \series medium
1210 \shape up
1211 \size normal
1212 \emph off
1213 \bar no
1214 \noun off
1215 \color none
1216 a method to update the .
1217 nominal value for each of the variables.
1218 ASCEND solvers will use these nominal values to rescale the variable to
1219 have a value of about one in magnitude to help solve the model equations.
1220 \end_layout
1221
1222 \end_inset
1223 </cell>
1224 </row>
1225 <row topline="true" bottomline="true">
1226 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1227 \begin_inset Text
1228
1229 \begin_layout Standard
1230
1231 \family typewriter
1232 check_self
1233 \begin_inset LatexCommand index
1234 name "check\\_self"
1235
1236 \end_inset
1237
1238 , check_all
1239 \family default
1240
1241 \begin_inset LatexCommand index
1242 name "check\\_all"
1243
1244 \end_inset
1245
1246
1247 \end_layout
1248
1249 \end_inset
1250 </cell>
1251 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1252 \begin_inset Text
1253
1254 \begin_layout Standard
1255
1256 \family roman
1257 \series medium
1258 \shape up
1259 \size normal
1260 \emph off
1261 \bar no
1262 \noun off
1263 \color none
1264 a method to check that the computations make sense.
1265 At first this method may be empty, but, with experience, one can add statements
1266 that detect answers that appear to be wrong.
1267 As ASCEND already does bounds checking, one should not check for going
1268 past bounds here.
1269 However, there could be a rule of thumb available that suggests one computed
1270 variable should be about an order of magnitude larger than another.
1271 This check could be done in this method.
1272 \end_layout
1273
1274 \end_inset
1275 </cell>
1276 </row>
1277 </lyxtabular>
1278
1279 \end_inset
1280
1281
1282 \end_layout
1283
1284 \end_inset
1285
1286
1287 \end_layout
1288
1289 \begin_layout Standard
1290 The
1291 \family typewriter
1292 bound_self
1293 \family default
1294 and
1295 \family typewriter
1296 scale_self
1297 \family default
1298 , methods we have written are both empty.
1299 We anticipate no difficulties with variable scaling or bounding for this
1300 small model.
1301 Larger models can often give difficult problems in solving if the variables
1302 in them are not properly scaled and bounded; these issues must be taken
1303 very seriously for such models.
1304 \end_layout
1305
1306 \begin_layout Standard
1307 We have included the variables that define the geometry of the vessel in
1308
1309 \family typewriter
1310 defaults_self
1311 \family default
1312 method to avoid such things as negative initial values for vessel_volume.
1313 The compiler for ASCEND runs this method as soon as the model is compiled
1314 into an instance so the variables mentioned here start with their default
1315 values.
1316 \end_layout
1317
1318 \begin_layout Standard
1319 Exit ASCEND and repeat all the steps above to edit, load and compile this
1320 new vessel type definition.
1321 Then proceed as follows.
1322 \end_layout
1323
1324 \begin_layout Itemize
1325 In the Browser window, examine the values for those variables mentioned
1326 in the
1327 \family typewriter
1328 default_self
1329 \family default
1330 method.
1331 Note they already have their default values.
1332 \end_layout
1333
1334 \begin_layout Itemize
1335 To place the new instance
1336 \family typewriter
1337 v
1338 \family default
1339 in a solvable state, go to the Browser window.
1340 Select
1341 \series bold
1342 Run method
1343 \series default
1344 under the Edit menu.
1345 Select first the method values and hit OK.
1346 \end_layout
1347
1348 \begin_layout Itemize
1349 Repeat the last step but this time select the method reset.
1350
1351 \end_layout
1352
1353 \begin_layout Standard
1354 In the Browser, examine the values for the variables listed in the method
1355 values in Figure
1356 \begin_inset LatexCommand ref
1357 reference "fig:model2.vesselWithMethods"
1358
1359 \end_inset
1360
1361
1362 \noun off
1363 .
1364 They should be set to those stated (remember you can alter the units ASCEND
1365 uses to report the values by using the tools in the Units window).Also examine
1366 the fixed flags for these variables; they should all be TRUE (remember
1367 that you can find which variables are fixed all at once by using the By
1368 type command under the Find button).
1369
1370 \end_layout
1371
1372 \begin_layout Itemize
1373 Finally export
1374 \family typewriter
1375 v
1376 \family default
1377 to the Solver.
1378 The Eligible window should NOT appear; rather that Solver should report
1379 the model to be square.
1380
1381 \end_layout
1382
1383 \begin_layout Itemize
1384 Solve by selecting
1385 \series bold
1386 Solve
1387 \series default
1388 under the Execute menu.
1389 \end_layout
1390
1391 \begin_layout Standard
1392 The inclusion of methods has made the process of making this model much
1393 easier to get well-posed.
1394 This approach is the one that works for really large, complex models.
1395 \end_layout
1396
1397 \begin_layout Section
1398 Parameterizing the vessel model
1399 \begin_inset LatexCommand label
1400 name "sec:model2.parameterizingVessel"
1401
1402 \end_inset
1403
1404
1405 \end_layout
1406
1407 \begin_layout Standard
1408 Reuse generally implies creating a model which will have as a part an instance
1409 of a previously defined type.
1410 For example, let us compute metal_mass as a function of the H_to_D_ratio
1411 for a vessel for a fixed vessel_volume.
1412 We would like to see if there is a value for the H_to_D_ratio for which
1413 the metal_mass is minimum for a vessel with a given vessel_volume.
1414 We might wonder if metal_mass goes to infinity as this ratio goes either
1415 to zero or infinity.
1416 \end_layout
1417
1418 \begin_layout Subsection
1419 Creating a parameterized version of vessel
1420 \end_layout
1421
1422 \begin_layout Standard
1423 To use instances of our model as parts in another model, we can parameterize
1424 it.
1425 We use parameterization to tell a future user that the parameters are objects
1426 he or she is likely to share among many different parts of a model.
1427 We wish to create a table containing different values of
1428 \family typewriter
1429 H_to_D_ratio
1430 \family default
1431 vs.
1432
1433 \family typewriter
1434 metal_mass
1435 \family default
1436 .
1437 We can accomplish this by computing simultaneously several different vessels
1438 having the same
1439 \family typewriter
1440 vessel_volume
1441 \family default
1442 ,
1443 \family typewriter
1444 wall_thickness
1445 \family default
1446 and
1447 \family typewriter
1448 metal_density
1449 \family default
1450 .
1451 The objects we want to see and/or share for each instance of a vessel should
1452 include, therefore:
1453 \family typewriter
1454 H_to_D_ratio
1455 \family default
1456 ,
1457 \family typewriter
1458 metal_mass
1459 \family default
1460 ,
1461 \family typewriter
1462 metal_density
1463 \family default
1464 ,
1465 \family typewriter
1466 vessel_volume
1467 \family default
1468 and
1469 \family typewriter
1470 wall_thickness
1471 \family default
1472 .
1473 \end_layout
1474
1475 \begin_layout Standard
1476 The code in Figure
1477 \begin_inset LatexCommand ref
1478 reference "fig:model2.parameterizedVessel"
1479
1480 \end_inset
1481
1482
1483 \noun off
1484 indicates the changes we make to the model declaration statement and the
1485 statements defining the variables to parameterize our model.
1486 \end_layout
1487
1488 \begin_layout Standard
1489 \begin_inset LatexCommand label
1490 name "fig:model2.parameterizedVessel"
1491
1492 \end_inset
1493
1494 The parameterized version of vessel model (
1495 \begin_inset LatexCommand index
1496 name "1014608"
1497
1498 \end_inset
1499
1500 vesselParams.a4c)
1501 \end_layout
1502
1503 \begin_layout Standard
1504 \begin_inset ERT
1505 status open
1506
1507 \begin_layout Standard
1508
1509
1510 \backslash
1511 lstset{language=ASCEND}
1512 \end_layout
1513
1514 \begin_layout Standard
1515
1516
1517 \backslash
1518 lstinputlisting[firstline=24]{../models/vesselParams.a4c}
1519 \end_layout
1520
1521 \end_inset
1522
1523
1524 \end_layout
1525
1526 \begin_layout Standard
1527 Substitute the statements in Figure
1528 \begin_inset LatexCommand ref
1529 reference "fig:model2.parameterizedVessel"
1530
1531 \end_inset
1532
1533
1534 \noun off
1535 for lines 2 through 9 in
1536 \noun default
1537 Figure
1538 \noun off
1539
1540 \begin_inset LatexCommand ref
1541 reference "fig:model2.vesselWithMethods"
1542
1543 \end_inset
1544
1545 .
1546 Save the result in the file vesselParam.a4c.
1547 \end_layout
1548
1549 \begin_layout Standard
1550 Note the use of the
1551 \begin_inset LatexCommand index
1552 name "1014610"
1553
1554 \end_inset
1555
1556
1557 \begin_inset LatexCommand index
1558 name "1014609"
1559
1560 \end_inset
1561
1562
1563 \family typewriter
1564 WILL_BE
1565 \family default
1566 statement in the parameter list.
1567 By declaring that the type of a parameter will be compatible with the types
1568 shown, the compiler can tell immediately if a user of this model is passing
1569 the wrong type of object when defining an instance of a vessel.
1570 \end_layout
1571
1572 \begin_layout Subsection
1573 Using the parameterized vessel model
1574 \end_layout
1575
1576 \begin_layout Standard
1577 A type definition will set up our
1578 \begin_inset LatexCommand index
1579 name "1014611"
1580
1581 \end_inset
1582
1583 table of H_to_D_ratio values vs.
1584 metal_mass so we can observe approximately where it attains a minimum value.
1585 ASCEND allows us to create arrays of instances of any type.
1586 Here we shall create an array of vessels.
1587 The type definition is shown in Figure
1588 \begin_inset LatexCommand ref
1589 reference "fig:model2.tabulatedVessel"
1590
1591 \end_inset
1592
1593
1594 \noun off
1595 .
1596 Note that the line numbers are not a part of the actual code.
1597 We include them here only so we can reference them as needed later.
1598 \end_layout
1599
1600 \begin_layout Standard
1601 tabulated_vessel_values model
1602 \begin_inset LatexCommand label
1603 name "fig:model2.tabulatedVessel"
1604
1605 \end_inset
1606
1607
1608 \end_layout
1609
1610 \begin_layout Standard
1611 \begin_inset ERT
1612 status open
1613
1614 \begin_layout Standard
1615
1616
1617 \backslash
1618 lstset{language=ASCEND}
1619 \end_layout
1620
1621 \begin_layout Standard
1622
1623
1624 \backslash
1625 lstinputlisting[firstline=26]{../models/vesselTabulated.a4c}
1626 \end_layout
1627
1628 \end_inset
1629
1630
1631 \end_layout
1632
1633 \begin_layout Standard
1634 Add this model to the end of the file
1635 \family typewriter
1636 vesselParam.a4c
1637 \family default
1638
1639 \begin_inset LatexCommand index
1640 name "vesselTabulated.a4c"
1641
1642 \end_inset
1643
1644 (after the vessel model) and save the file as
1645 \family typewriter
1646 vesselTabulated.a4c
1647 \family default
1648 .
1649 Compile an instance of
1650 \family typewriter
1651 tabulated_vessel_values
1652 \family default
1653 (call it
1654 \family typewriter
1655 tvv
1656 \family default
1657 ), run the values and specify methods for it, and then solve it.
1658 You will discover that the tenth element of the
1659 \family typewriter
1660 metal_mass
1661 \family default
1662 array, corresponding to an
1663 \family typewriter
1664 H_to_D_ratio
1665 \family default
1666 of 1 has the minimum value of 510.257 kilograms.
1667 \end_layout
1668
1669 \begin_layout Section
1670 Creating a script
1671 \begin_inset LatexCommand index
1672 name "script, creating"
1673
1674 \end_inset
1675
1676 to demonstrate this model
1677 \begin_inset LatexCommand label
1678 name "sec:model2.creatingScript"
1679
1680 \end_inset
1681
1682
1683 \end_layout
1684
1685 \begin_layout Standard
1686 The last step to make the model reusable is to create a script that anyone
1687 can easily run.
1688 Running the model successfully will allow a user to demonstrate the use
1689 of the model and to explore an instance it by browsing it.
1690 \end_layout
1691
1692 \begin_layout Standard
1693 ASCEND allows one to create such a script using either an editor or the
1694 tools in the
1695 \series bold
1696 Script
1697 \series default
1698 window.
1699 \end_layout
1700
1701 \begin_layout Standard
1702 Restart the ASCEND system.
1703 You will have three windows open plus the large one which disappears by
1704 itself in a few seconds: the
1705 \series bold
1706 Script
1707 \series default
1708 , the
1709 \series bold
1710 Library
1711 \series default
1712 and the
1713 \series bold
1714 Console
1715 \series default
1716 windows.
1717 \end_layout
1718
1719 \begin_layout Standard
1720 In the
1721 \series bold
1722 Script
1723 \series default
1724 window you will see the license agreement information for ASCEND.
1725 First clear the license agreement
1726 \begin_inset LatexCommand index
1727 name "license agreement"
1728
1729 \end_inset
1730
1731 from this window by doing the following two steps:
1732 \end_layout
1733
1734 \begin_layout Itemize
1735 Click
1736 \series bold
1737 Select all
1738 \series default
1739 under the Edit menu.
1740
1741 \end_layout
1742
1743 \begin_layout Itemize
1744 Then click
1745 \series bold
1746 Delete statements
1747 \series default
1748 under the same button.
1749
1750 \end_layout
1751
1752 \begin_layout Standard
1753 With the
1754 \series bold
1755 Script
1756 \series default
1757 window now cleared of text, select
1758 \series bold
1759 Record actions
1760 \series default
1761 under the Edit menu to start recording the steps you are about to undertake.
1762 Then,
1763 \end_layout
1764
1765 \begin_layout Itemize
1766 In the
1767 \series bold
1768 Library
1769 \series default
1770 window, under the Edit menu, select
1771 \series bold
1772 Delete all types
1773 \series default
1774 .
1775 Hit
1776 \series bold
1777 Delete all
1778 \series default
1779 on the small window that appears.
1780 \end_layout
1781
1782 \begin_layout Itemize
1783 Load the file
1784 \family typewriter
1785 vesselTabulated.a4c
1786 \family default
1787 , the file containing the model called
1788 \family typewriter
1789 tabulated_vessel_values
1790 \family default
1791 .
1792 Do this by selecting the Read types from file tool under the File menu
1793 and browsing the file system to find it.
1794 If you have trouble finding it, be sure to set the
1795 \series bold
1796 Files of type
1797 \series default
1798 dropdown at the bottom of the file browsing window to allow all types of
1799 files to be seen.
1800 \end_layout
1801
1802 \begin_layout Itemize
1803 Select the type
1804 \family typewriter
1805 tabulated_vessel_value
1806 \family default
1807 s in the right
1808 \series bold
1809 Library
1810 \series default
1811 window and compile an instance of it by selecting
1812 \series bold
1813 Create simulation
1814 \series default
1815 under the Edit menu.
1816 In the small window that appears, enter the name
1817 \family typewriter
1818 tvv
1819 \family default
1820 and hit OK.
1821 \end_layout
1822
1823 \begin_layout Itemize
1824 Export the instance to the
1825 \series bold
1826 Browser
1827 \series default
1828 by selecting
1829 \series bold
1830 Simulation to Browser
1831 \series default
1832 under the Export menu.
1833 \end_layout
1834
1835 \begin_layout Itemize
1836 Initialize the variable values by running the
1837 \family typewriter
1838 values
1839 \family default
1840 method.
1841 Do this by selecting
1842 \series bold
1843 Run method
1844 \series default
1845 under the Edit menu.
1846 Select the
1847 \family typewriter
1848 values
1849 \family default
1850 method and hit
1851 \series bold
1852 OK
1853 \series default
1854 .
1855 \end_layout
1856
1857 \begin_layout Itemize
1858 Set the
1859 \family typewriter
1860 fixed
1861 \family default
1862 flags to get a well-posed problem by repeating the last step but this time
1863 select the
1864 \family typewriter
1865 reset
1866 \family default
1867 method.
1868 \end_layout
1869
1870 \begin_layout Itemize
1871 Export the instance
1872 \family typewriter
1873 tvv
1874 \family default
1875 to the Solver by selecting
1876 \series bold
1877 to Solver
1878 \series default
1879 under the Export menu.
1880 \end_layout
1881
1882 \begin_layout Itemize
1883 Solve
1884 \family typewriter
1885 tvv
1886 \family default
1887 by selecting
1888 \series bold
1889 Solve
1890 \series default
1891 under the Execute menu in the
1892 \series bold
1893 Solver
1894 \series default
1895 window.
1896 \end_layout
1897
1898 \begin_layout Itemize
1899 Return to the
1900 \series bold
1901 Script
1902 \series default
1903 window and turn off the recording by deselecting the
1904 \series bold
1905 Record actions
1906 \series default
1907 option under the Edit menu.
1908 \end_layout
1909
1910 \begin_layout Itemize
1911 Save the script you have just created by selecting
1912 \series bold
1913 Save
1914 \series default
1915 under the File menu of the
1916 \series bold
1917 Script
1918 \series default
1919 window.
1920 Name the file
1921 \family typewriter
1922 vesselTabulated.a4s
1923 \family default
1924 (note the 's' ending) to indicate it is a script file corresponding to
1925 the model file
1926 \family typewriter
1927 vesselTabulated.a4c
1928 \family default
1929 (note the 'c' ending) file.
1930 \end_layout
1931
1932 \begin_layout Itemize
1933 Exit by selecting
1934 \series bold
1935 Exit ASCEND
1936 \series default
1937 under the File menu on the
1938 \series bold
1939 Script
1940 \series default
1941 window.
1942 The contents of the
1943 \series bold
1944 Script
1945 \series default
1946 window at this point will be similar to that in Figure
1947 \begin_inset LatexCommand ref
1948 reference "fig:model2.scriptVesselTabulated"
1949
1950 \end_inset
1951
1952
1953 \noun off
1954 (although the path to the file may differ).
1955 \end_layout
1956
1957 \begin_layout Itemize
1958 Restart ASCEND.
1959 \end_layout
1960
1961 \begin_layout Itemize
1962 Open the script you just created by selecting
1963 \series bold
1964 Read file
1965 \series default
1966 under the File menu on the
1967 \series bold
1968 Script
1969 \series default
1970 window.
1971 (Be sure you are allowing the system to see files with the ending
1972 \family typewriter
1973 .a4s
1974 \family default
1975 by using the
1976 \series bold
1977 Files of type
1978 \series default
1979 dropdown at the bottom of the file-browsing window.)
1980 \end_layout
1981
1982 \begin_layout Itemize
1983 Highlight all the instructions in this script and then execute the highlighted
1984 instructions by selecting
1985 \series bold
1986 Statements selected
1987 \series default
1988 under the
1989 \series bold
1990 Execute
1991 \series default
1992 menu.
1993 \end_layout
1994
1995 \begin_layout Standard
1996 You will run the same sequence of instructions you ran to create the script.
1997 \end_layout
1998
1999 \begin_layout Standard
2000 \begin_inset LatexCommand label
2001 name "fig:model2.scriptVesselTabulated"
2002
2003 \end_inset
2004
2005 Script to run
2006 \family typewriter
2007 vesselTabulated.a4c
2008 \family default
2009 (this is the contents of the file
2010 \family typewriter
2011 vesselTabulated.a4s
2012 \family default
2013
2014 \begin_inset LatexCommand index
2015 name "vesselTabultated.a4s"
2016
2017 \end_inset
2018
2019 )
2020 \end_layout
2021
2022 \begin_layout Standard
2023 \begin_inset ERT
2024 status open
2025
2026 \begin_layout Standard
2027
2028
2029 \backslash
2030 lstinputlisting[firstline=29]{../models/vesselTabulated.a4s}
2031 \end_layout
2032
2033 \end_inset
2034
2035
2036 \end_layout
2037
2038 \begin_layout Section
2039 Discussion
2040 \end_layout
2041
2042 \begin_layout Standard
2043 In this chapter we converted the vessel model into a form where you and
2044 others in the future will have a chance to reuse it.
2045 We did this by first adding methods to make the problem well-posed and
2046 to provide values for the fixed variables for which we readily found a
2047 solution when playing with our original model as we did in the previous
2048 chapter.
2049 We then thought of a typical use for this model and developed a parameterized
2050 version based on that use.
2051 If this model were in a library, a future user of it would most often simply
2052 have to understand the parameters to create an instance of this type of
2053 model.
2054 We next added
2055 \family typewriter
2056 NOTES
2057 \family default
2058 , a form of active comments, to the model.
2059 We suggest that notes are much more useful than comments as we can provide
2060 tools that can extract them and allow us to search them, for example, to
2061 find a model with a given functionality.
2062 Finally, we showed you how to create a script by turning on a "phone" session
2063 where ASCEND records the actions one takes when loading, compiling and
2064 solving a model.
2065 One can save and play this script in the future to see a typical use of
2066 the model.
2067 \end_layout
2068
2069 \begin_layout Standard
2070 In the next chapter, we look at how we can plot the results we created in
2071 the model
2072 \family typewriter
2073 vesselTabulated.a4c
2074 \family default
2075 .
2076 We will have to reuse a model someone else has put into the library of
2077 available models.
2078 In other words, the "shoe is on the other foot," and we quickly experience
2079 the difficulties with reuse first hand.
2080 We will also learn how to run a case study from which we can extract the
2081 same information with a single vessel model run multiple times.
2082 \end_layout
2083
2084 \end_body
2085 \end_document

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