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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1766 - (show annotations) (download) (as text)
Mon Apr 7 09:06:56 2008 UTC (16 years, 7 months ago) by jpye
File MIME type: application/x-lyx
File size: 83859 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 Vessel Model for Beginners
89 \begin_inset LatexCommand label
90 name "cha:model1"
91
92 \end_inset
93
94
95 \end_layout
96
97 \begin_layout Standard
98 You read our propaganda about the ASCEND system in which we said it was
99 to help technical people create hard models.
100 We said you can tackle really large models -- 100,000 equations, compiling
101 and solving them in minutes on a PC.
102 We also pointed out that you can readily solve the small problems many
103 currently solve using a spreadsheet, only once posed you can solve them
104 inside out, upside down and backwards.
105
106 \end_layout
107
108 \begin_layout Standard
109 This sounded intriguing so you downloaded the system and installed it.
110 Hopefully, this proved quite straight forward.
111 You double-clicked the ASCEND icon on your desktop and started it up for
112 the first time.
113 Four windows opened up.
114 You panicked.
115
116 \end_layout
117
118 \begin_layout Standard
119 Who wouldn't?
120 \end_layout
121
122 \begin_layout Standard
123 To use this system properly requires that you learn how to use it.
124 If you pay the price to do so - and we hope it is not a large price, then
125 we believe you will find the tools we have provided to help you create
126 and debug models will pay you back handsomely.
127
128 \end_layout
129
130 \begin_layout Standard
131 This chapter
132 \noun off
133 and the next two chapters (
134 \noun default
135 Chapter
136 \noun off
137
138 \begin_inset LatexCommand ref
139 reference "cha:model2"
140
141 \end_inset
142
143 and
144 \noun default
145 Chapter
146 \noun off
147
148 \begin_inset LatexCommand ref
149 reference "cha:model3"
150
151 \end_inset
152
153 )
154 \noun default
155
156 \noun off
157 are meant to be a good first step along the path to learning how to use
158 ASCEND.
159 We
160 \noun default
161 will
162 \noun off
163 lead you through the steps for creating and testing a simple model.
164 You will also learn how to improve this model so it may be more readily
165 shared with others.
166 We will present our reasons for the steps we take.
167 We
168 \noun default
169 will
170 \noun off
171 show you all the buttons you should push as you proceed.
172 \end_layout
173
174 \begin_layout Standard
175 We strongly suggest you put time aside and go through all three of these
176 early chapters to introduce yourself to ASCEND.
177 It should take you about two to three hours.
178 The second chapter is particularly important if you wish to understand
179 our approach to good modeling practices.
180 \end_layout
181
182 \begin_layout Standard
183 \begin_inset Marginal
184 status collapsed
185
186 \begin_layout Standard
187 the problem
188 \end_layout
189
190 \end_inset
191
192 Step 1:
193 \emph on
194 We are going to create and test an ASCEND model to compute, the mass of
195 the metal in the sides and ends of the thin-walled cylindrical vessel
196 \emph default
197
198 \begin_inset LatexCommand index
199 name "vessel"
200
201 \end_inset
202
203
204 \emph on
205 shown in Figure
206 \begin_inset LatexCommand ref
207 reference "fig:model1.thinWalledVessel"
208
209 \end_inset
210
211 .
212
213 \end_layout
214
215 \begin_layout Standard
216 \begin_inset Float figure
217 wide false
218 sideways false
219 status open
220
221 \begin_layout Standard
222
223 \noun off
224 \InsetSpace ~
225 \InsetSpace ~
226 \InsetSpace ~
227 \InsetSpace ~
228 \InsetSpace ~
229 \InsetSpace ~
230 \InsetSpace ~
231 \InsetSpace ~
232 \InsetSpace ~
233 \InsetSpace ~
234 \InsetSpace ~
235 \InsetSpace ~
236 \InsetSpace ~
237 \InsetSpace ~
238 \InsetSpace ~
239 \InsetSpace ~
240 \InsetSpace ~
241 \InsetSpace ~
242 \InsetSpace ~
243 \InsetSpace ~
244 \InsetSpace ~
245 \InsetSpace ~
246 \InsetSpace ~
247 \InsetSpace ~
248 \InsetSpace ~
249 \InsetSpace ~
250 \InsetSpace ~
251 \InsetSpace ~
252 \InsetSpace ~
253 \InsetSpace ~
254 \InsetSpace ~
255 \InsetSpace ~
256
257 \begin_inset Graphics
258 filename howto-model1Fig1.eps
259 BoundingBox 0bp 0bp 280bp 260bp
260
261 \end_inset
262
263
264 \end_layout
265
266 \begin_layout Standard
267 \begin_inset Caption
268
269 \begin_layout Standard
270 A thin-walled cylindrical vessel with flat ends
271 \begin_inset LatexCommand label
272 name "fig:model1.thinWalledVessel"
273
274 \end_inset
275
276
277 \end_layout
278
279 \end_inset
280
281
282 \end_layout
283
284 \end_inset
285
286
287 \end_layout
288
289 \begin_layout Standard
290 Step 2:
291 \emph on
292 This model is to become a part of a library of models which others can use
293 in the future.
294 You must document it.
295 You must add methods to it to make it easy for others to make it well-posed.
296 You should probably parameterize it, and finally you must create a script
297 which anyone can easily run that solves an example problem to illustrate
298 its use.
299 \end_layout
300
301 \begin_layout Standard
302 \begin_inset Marginal
303 status collapsed
304
305 \begin_layout Standard
306 topics covered
307 \end_layout
308
309 \end_inset
310
311 Topics covered in this and the following two chapters are:
312 \end_layout
313
314 \begin_layout Itemize
315 \begin_inset Marginal
316 status collapsed
317
318 \begin_layout Standard
319 T
320 \noun off
321 his chapter)
322 \end_layout
323
324 \end_inset
325
326 Converting the word description to an ASCEND model.
327 \end_layout
328
329 \begin_layout Itemize
330 Loading the model into ASCEND, dealing with the error messages.
331 \end_layout
332
333 \begin_layout Itemize
334 Compiling the model.
335 \end_layout
336
337 \begin_layout Itemize
338 Browsing the model to see if it looks right
339 \end_layout
340
341 \begin_layout Itemize
342 Solving the model.
343 \end_layout
344
345 \begin_layout Itemize
346 Examining the results.
347 \end_layout
348
349 \begin_layout Itemize
350 More thoroughly testing the model.
351 \end_layout
352
353 \begin_layout Itemize
354 \begin_inset Marginal
355 status collapsed
356
357 \begin_layout Standard
358 Chapter\InsetSpace ~
359
360 \begin_inset LatexCommand vref
361 reference "cha:model2"
362
363 \end_inset
364
365
366 \end_layout
367
368 \end_inset
369
370 Converting the model to a more reusable form by adding methods to it and
371 by parameterizing it.
372 \end_layout
373
374 \begin_layout Itemize
375 Creating a script to load and execute an instance of the model.
376 \end_layout
377
378 \begin_layout Itemize
379 \begin_inset Marginal
380 status collapsed
381
382 \begin_layout Standard
383 Chapter\InsetSpace ~
384
385 \begin_inset LatexCommand vref
386 reference "cha:model3"
387
388 \end_inset
389
390
391 \end_layout
392
393 \end_inset
394
395 Creating an array of models.
396 \end_layout
397
398 \begin_layout Itemize
399 Using an existing library model for plotting.
400 \end_layout
401
402 \begin_layout Itemize
403 Creating a case study using the model.
404 \end_layout
405
406 \begin_layout Standard
407 We shall introduce many of the features of the modeling language as well
408 as the use of the interactive interface you use when compiling, debugging,
409 solving and exploring your model.
410 Language features include units conversion, arrays and sets.
411 \end_layout
412
413 \begin_layout Section
414 Converting the word description into an ASCEND model
415 \begin_inset LatexCommand label
416 name "sec:model1.converting-the-word"
417
418 \end_inset
419
420
421 \end_layout
422
423 \begin_layout Standard
424 \begin_inset Marginal
425 status collapsed
426
427 \begin_layout Standard
428 an ASCEND model is a type
429 \begin_inset LatexCommand index
430 name "type"
431
432 \end_inset
433
434 definition
435 \end_layout
436
437 \end_inset
438
439 Every ASCEND model is, in fact, a type definition.
440 To "solve a model," we make an instance
441 \begin_inset LatexCommand index
442 name "instance"
443
444 \end_inset
445
446 of a type and solve the instance.
447 So we shall start by creating a vessel type definition.
448 We will have to create our type definition as a text file using a text
449 editor.
450 (Some simple text editors
451 \begin_inset LatexCommand index
452 name "text editors"
453
454 \end_inset
455
456 include
457 \family typewriter
458 emacs
459 \family default
460
461 \begin_inset LatexCommand index
462 name "emacs"
463
464 \end_inset
465
466 and
467 \family typewriter
468 gedit
469 \begin_inset LatexCommand index
470 name "gedit"
471
472 \end_inset
473
474
475 \family default
476 on Linux, and Notepad
477 \begin_inset LatexCommand index
478 name "Notepad"
479
480 \end_inset
481
482 and TextPad
483 \begin_inset LatexCommand index
484 name "TextPad"
485
486 \end_inset
487
488 on Windows.
489 We shall discuss editors shortly.)
490 \end_layout
491
492 \begin_layout Standard
493 We need first to decide the parts to our model.
494 In this case we know that we need the variables
495 \begin_inset LatexCommand index
496 name "variables, vessel"
497
498 \end_inset
499
500 listed in Table
501 \begin_inset LatexCommand ref
502 reference "tab:model1.variablesVesselModel"
503
504 \end_inset
505
506
507 \noun off
508 .
509 We readily fill in the first three columns in this table.
510 We shall discuss the entry in the last column in a moment.
511 \end_layout
512
513 \begin_layout Standard
514 \begin_inset Float table
515 wide false
516 sideways false
517 status open
518
519 \begin_layout Standard
520 \begin_inset Caption
521
522 \begin_layout Standard
523 Variables required for model
524 \begin_inset LatexCommand label
525 name "tab:model1.variablesVesselModel"
526
527 \end_inset
528
529
530 \end_layout
531
532 \end_inset
533
534
535 \end_layout
536
537 \begin_layout Standard
538 \begin_inset Tabular
539 <lyxtabular version="3" rows="5" columns="4">
540 <features>
541 <column alignment="center" valignment="top" leftline="true" width="0">
542 <column alignment="center" valignment="top" leftline="true" width="0">
543 <column alignment="center" valignment="top" leftline="true" width="0">
544 <column alignment="center" valignment="top" leftline="true" rightline="true" width="1in">
545 <row topline="true" bottomline="true">
546 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
547 \begin_inset Text
548
549 \begin_layout Standard
550 Symbol
551 \end_layout
552
553 \end_inset
554 </cell>
555 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
556 \begin_inset Text
557
558 \begin_layout Standard
559 Meaning
560 \end_layout
561
562 \end_inset
563 </cell>
564 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
565 \begin_inset Text
566
567 \begin_layout Standard
568 Typical Units
569 \end_layout
570
571 \end_inset
572 </cell>
573 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
574 \begin_inset Text
575
576 \begin_layout Standard
577 ASCEND variable type
578 \end_layout
579
580 \end_inset
581 </cell>
582 </row>
583 <row topline="true">
584 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
585 \begin_inset Text
586
587 \begin_layout Standard
588
589 \family typewriter
590 D
591 \end_layout
592
593 \end_inset
594 </cell>
595 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
596 \begin_inset Text
597
598 \begin_layout Standard
599 vessel diameter
600 \end_layout
601
602 \end_inset
603 </cell>
604 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
605 \begin_inset Text
606
607 \begin_layout Standard
608 m, ft
609 \end_layout
610
611 \end_inset
612 </cell>
613 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
614 \begin_inset Text
615
616 \begin_layout Standard
617
618 \family typewriter
619 length
620 \end_layout
621
622 \end_inset
623 </cell>
624 </row>
625 <row topline="true">
626 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
627 \begin_inset Text
628
629 \begin_layout Standard
630
631 \family typewriter
632 H
633 \end_layout
634
635 \end_inset
636 </cell>
637 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
638 \begin_inset Text
639
640 \begin_layout Standard
641 vessel height
642 \end_layout
643
644 \end_inset
645 </cell>
646 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
647 \begin_inset Text
648
649 \begin_layout Standard
650 m, ft
651 \end_layout
652
653 \end_inset
654 </cell>
655 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
656 \begin_inset Text
657
658 \begin_layout Standard
659
660 \family typewriter
661 length
662 \end_layout
663
664 \end_inset
665 </cell>
666 </row>
667 <row topline="true">
668 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
669 \begin_inset Text
670
671 \begin_layout Standard
672
673 \family typewriter
674 wall_thickness
675 \end_layout
676
677 \end_inset
678 </cell>
679 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
680 \begin_inset Text
681
682 \begin_layout Standard
683 wall thickness
684 \end_layout
685
686 \end_inset
687 </cell>
688 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
689 \begin_inset Text
690
691 \begin_layout Standard
692 mm, in
693 \end_layout
694
695 \end_inset
696 </cell>
697 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
698 \begin_inset Text
699
700 \begin_layout Standard
701
702 \family typewriter
703 length
704 \end_layout
705
706 \end_inset
707 </cell>
708 </row>
709 <row topline="true" bottomline="true">
710 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
711 \begin_inset Text
712
713 \begin_layout Standard
714
715 \family typewriter
716 metal_density
717 \end_layout
718
719 \end_inset
720 </cell>
721 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
722 \begin_inset Text
723
724 \begin_layout Standard
725 metal density
726 \end_layout
727
728 \end_inset
729 </cell>
730 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
731 \begin_inset Text
732
733 \begin_layout Standard
734 kg/m
735 \begin_inset Formula $^{\textrm{3}}$
736 \end_inset
737
738 , lbm/ft
739 \begin_inset Formula $^{\textrm{3}}$
740 \end_inset
741
742
743 \end_layout
744
745 \end_inset
746 </cell>
747 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
748 \begin_inset Text
749
750 \begin_layout Standard
751
752 \family typewriter
753 mass_density
754 \end_layout
755
756 \end_inset
757 </cell>
758 </row>
759 </lyxtabular>
760
761 \end_inset
762
763
764 \end_layout
765
766 \end_inset
767
768
769 \end_layout
770
771 \begin_layout Standard
772 We will be computing the masses for the metal in the side wall and in the
773 ends for this vessel.
774 As this is a thin-walled vessel, we shall compute the volume of metal as
775 the area of the walls times the wall thickness.
776 The following equations allow us to compute the required areas
777 \end_layout
778
779 \begin_layout Standard
780 \begin_inset Formula \begin{equation}
781 \mathrm{side\, wall\, area}=\pi DH\label{eq:model1.side-wall-area}\end{equation}
782
783 \end_inset
784
785
786 \end_layout
787
788 \begin_layout Standard
789 \begin_inset Formula \begin{equation}
790 \mathrm{single\, end\, area}=\frac{\pi D^{2}}{4}\label{eq:model1.single-end-area}\end{equation}
791
792 \end_inset
793
794
795 \end_layout
796
797 \begin_layout Standard
798 We should be interested in the volume of the vessel, which we compute as:
799 \end_layout
800
801 \begin_layout Standard
802 \begin_inset Formula \begin{equation}
803 \mathrm{vessel\, volume}=\mathrm{single\, end\, area}\times H\label{eq:model1.vessel-volume}\end{equation}
804
805 \end_inset
806
807
808 \end_layout
809
810 \begin_layout Standard
811 We add the variables in Table
812 \begin_inset LatexCommand ref
813 reference "tab:model1.moreVariablesVessel"
814
815 \end_inset
816
817
818 \noun off
819 to our list.
820 \end_layout
821
822 \begin_layout Standard
823 \begin_inset Float table
824 wide false
825 sideways false
826 status open
827
828 \begin_layout Standard
829 \begin_inset Caption
830
831 \begin_layout Standard
832 Some more variables
833 \begin_inset LatexCommand index
834 name "variables, vessel"
835
836 \end_inset
837
838 required for vessel model
839 \begin_inset LatexCommand label
840 name "tab:model1.moreVariablesVessel"
841
842 \end_inset
843
844
845 \end_layout
846
847 \end_inset
848
849
850 \end_layout
851
852 \begin_layout Standard
853 \begin_inset Tabular
854 <lyxtabular version="3" rows="6" columns="4">
855 <features>
856 <column alignment="center" valignment="top" leftline="true" width="0">
857 <column alignment="center" valignment="top" leftline="true" width="1.5in">
858 <column alignment="center" valignment="top" leftline="true" width="0">
859 <column alignment="center" valignment="top" leftline="true" rightline="true" width="1in">
860 <row topline="true" bottomline="true">
861 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
862 \begin_inset Text
863
864 \begin_layout Standard
865 Symbol
866 \end_layout
867
868 \end_inset
869 </cell>
870 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
871 \begin_inset Text
872
873 \begin_layout Standard
874 Meaning
875 \end_layout
876
877 \end_inset
878 </cell>
879 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
880 \begin_inset Text
881
882 \begin_layout Standard
883 Typical Units
884 \end_layout
885
886 \end_inset
887 </cell>
888 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
889 \begin_inset Text
890
891 \begin_layout Standard
892 ASCEND variable type
893 \end_layout
894
895 \end_inset
896 </cell>
897 </row>
898 <row topline="true">
899 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
900 \begin_inset Text
901
902 \begin_layout Standard
903
904 \family typewriter
905 side_area
906 \end_layout
907
908 \end_inset
909 </cell>
910 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
911 \begin_inset Text
912
913 \begin_layout Standard
914 area in the sidewall of the vessel
915 \end_layout
916
917 \end_inset
918 </cell>
919 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
920 \begin_inset Text
921
922 \begin_layout Standard
923 m
924 \begin_inset Formula $^{\textrm{2}}$
925 \end_inset
926
927 , ft
928 \begin_inset Formula $^{\textrm{2}}$
929 \end_inset
930
931
932 \end_layout
933
934 \end_inset
935 </cell>
936 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
937 \begin_inset Text
938
939 \begin_layout Standard
940
941 \family typewriter
942 area
943 \end_layout
944
945 \end_inset
946 </cell>
947 </row>
948 <row topline="true">
949 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
950 \begin_inset Text
951
952 \begin_layout Standard
953
954 \family typewriter
955 end_area
956 \end_layout
957
958 \end_inset
959 </cell>
960 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
961 \begin_inset Text
962
963 \begin_layout Standard
964 total area iin the ends of the vessel
965 \end_layout
966
967 \end_inset
968 </cell>
969 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
970 \begin_inset Text
971
972 \begin_layout Standard
973 m
974 \begin_inset Formula $^{\textrm{2}}$
975 \end_inset
976
977 , ft
978 \begin_inset Formula $^{\textrm{2}}$
979 \end_inset
980
981
982 \end_layout
983
984 \end_inset
985 </cell>
986 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
987 \begin_inset Text
988
989 \begin_layout Standard
990
991 \family typewriter
992 area
993 \end_layout
994
995 \end_inset
996 </cell>
997 </row>
998 <row topline="true">
999 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1000 \begin_inset Text
1001
1002 \begin_layout Standard
1003
1004 \family typewriter
1005 vessel_volume
1006 \end_layout
1007
1008 \end_inset
1009 </cell>
1010 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1011 \begin_inset Text
1012
1013 \begin_layout Standard
1014 volume of the vessel
1015 \end_layout
1016
1017 \end_inset
1018 </cell>
1019 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1020 \begin_inset Text
1021
1022 \begin_layout Standard
1023 m
1024 \begin_inset Formula $^{3}$
1025 \end_inset
1026
1027 , ft
1028 \begin_inset Formula $^{\textrm{3}}$
1029 \end_inset
1030
1031
1032 \end_layout
1033
1034 \end_inset
1035 </cell>
1036 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1037 \begin_inset Text
1038
1039 \begin_layout Standard
1040
1041 \family typewriter
1042 volume
1043 \end_layout
1044
1045 \end_inset
1046 </cell>
1047 </row>
1048 <row topline="true">
1049 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1050 \begin_inset Text
1051
1052 \begin_layout Standard
1053
1054 \family typewriter
1055 metal_volume
1056 \end_layout
1057
1058 \end_inset
1059 </cell>
1060 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1061 \begin_inset Text
1062
1063 \begin_layout Standard
1064 total volume of metal in the walls
1065 \end_layout
1066
1067 \end_inset
1068 </cell>
1069 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1070 \begin_inset Text
1071
1072 \begin_layout Standard
1073 m
1074 \begin_inset Formula $^{3}$
1075 \end_inset
1076
1077 , ft
1078 \begin_inset Formula $^{\textrm{3}}$
1079 \end_inset
1080
1081
1082 \end_layout
1083
1084 \end_inset
1085 </cell>
1086 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1087 \begin_inset Text
1088
1089 \begin_layout Standard
1090
1091 \family typewriter
1092 volume
1093 \end_layout
1094
1095 \end_inset
1096 </cell>
1097 </row>
1098 <row topline="true" bottomline="true">
1099 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1100 \begin_inset Text
1101
1102 \begin_layout Standard
1103
1104 \family typewriter
1105 metal_mass
1106 \end_layout
1107
1108 \end_inset
1109 </cell>
1110 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1111 \begin_inset Text
1112
1113 \begin_layout Standard
1114 total mass of the metal in the walls of the vessel
1115 \end_layout
1116
1117 \end_inset
1118 </cell>
1119 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1120 \begin_inset Text
1121
1122 \begin_layout Standard
1123 kg, lbm
1124 \end_layout
1125
1126 \end_inset
1127 </cell>
1128 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1129 \begin_inset Text
1130
1131 \begin_layout Standard
1132
1133 \family typewriter
1134 mass
1135 \end_layout
1136
1137 \end_inset
1138 </cell>
1139 </row>
1140 </lyxtabular>
1141
1142 \end_inset
1143
1144
1145 \end_layout
1146
1147 \end_inset
1148
1149
1150 \end_layout
1151
1152 \begin_layout Standard
1153 We believe that no one should create a model of any consequence without
1154 worrying about the units for expressing the variables within it.
1155 We consider that to be a commandment handed down from somewhere on high;
1156 however, we know that others do not believe as we do.
1157 Grant us our beliefs.
1158 We have created in the ASCEND system a library of variable and constant
1159 types called atoms.a4l
1160 \begin_inset LatexCommand index
1161 name "atoms.a4l"
1162
1163 \end_inset
1164
1165 .
1166 \end_layout
1167
1168 \begin_layout Standard
1169 The file type "
1170 \family typewriter
1171 .a4l
1172 \begin_inset LatexCommand index
1173 name "a4l"
1174
1175 \end_inset
1176
1177
1178 \family default
1179 " designates it to be an ASCEND IV library file
1180 \begin_inset LatexCommand index
1181 name "library file"
1182
1183 \end_inset
1184
1185 .
1186 Double-click on this link to see the approximately 150 different types
1187 ranging from universal constants
1188 \begin_inset LatexCommand index
1189 name "universal constants"
1190
1191 \end_inset
1192
1193 such as
1194 \begin_inset Formula $\pi$
1195 \end_inset
1196
1197 (=3.14159...) and
1198 \begin_inset Formula $e$
1199 \end_inset
1200
1201 (=2.718...) to
1202 \family typewriter
1203 length
1204 \family default
1205 ,
1206 \family typewriter
1207 mass
1208 \family default
1209 and
1210 \family typewriter
1211 angle
1212 \family default
1213 .
1214 If we have not created one that you need, you can use this library of types
1215 to see how to construct one for yourself and add it to your file of type
1216 definitions.
1217 You will find detailed instructions for how to make your own variable type
1218 library in Chapter\InsetSpace ~
1219
1220 \begin_inset LatexCommand vref
1221 reference "cha:atoms"
1222
1223 \end_inset
1224
1225 .
1226 \end_layout
1227
1228 \begin_layout Standard
1229 \begin_inset Marginal
1230 status collapsed
1231
1232 \begin_layout Standard
1233 type definition library for variables and constants
1234 \end_layout
1235
1236 \end_inset
1237
1238 ASCEND considers variable and constant types to be elementary or "atomic"
1239 to the system.
1240 These type definitions can contain only attributes for variables and constants.
1241 They cannot contain equations, for example.
1242 Thus ASCEND calls such a type definition an atom rather than a model.
1243 Figure
1244 \begin_inset LatexCommand ref
1245 reference "fig:model1.atomVolume"
1246
1247 \end_inset
1248
1249
1250 \noun off
1251 illustrates the definition for the type volume.
1252
1253 \end_layout
1254
1255 \begin_layout Standard
1256 \begin_inset Float figure
1257 wide false
1258 sideways false
1259 status open
1260
1261 \begin_layout Standard
1262 \begin_inset LatexCommand index
1263 name "ATOM"
1264
1265 \end_inset
1266
1267
1268 \begin_inset ERT
1269 status open
1270
1271 \begin_layout Standard
1272
1273
1274 \backslash
1275 lstset{language=ASCEND}
1276 \end_layout
1277
1278 \begin_layout Standard
1279
1280
1281 \backslash
1282 begin{lstlisting}
1283 \end_layout
1284
1285 \begin_layout Standard
1286
1287 ATOM volume REFINES solver_var
1288 \end_layout
1289
1290 \begin_layout Standard
1291
1292 DIMENSION L^3
1293 \end_layout
1294
1295 \begin_layout Standard
1296
1297 DEFAULT 100.0{ft^3};
1298 \end_layout
1299
1300 \begin_layout Standard
1301
1302 lower_bound := 0.0{ft^3};
1303 \end_layout
1304
1305 \begin_layout Standard
1306
1307 upper_bound := 1e50{ft^3};
1308 \end_layout
1309
1310 \begin_layout Standard
1311
1312 nominal := 100.0{ft^3};
1313 \end_layout
1314
1315 \begin_layout Standard
1316
1317 END volume;
1318 \end_layout
1319
1320 \begin_layout Standard
1321
1322
1323 \backslash
1324 end{lstlisting}
1325 \end_layout
1326
1327 \begin_layout Standard
1328
1329 \end_layout
1330
1331 \end_inset
1332
1333
1334 \end_layout
1335
1336 \begin_layout Standard
1337 \begin_inset Caption
1338
1339 \begin_layout Standard
1340 A typical type definition, called an atom, used to define variable and constant
1341 types
1342 \begin_inset LatexCommand label
1343 name "fig:model1.atomVolume"
1344
1345 \end_inset
1346
1347
1348 \end_layout
1349
1350 \end_inset
1351
1352
1353 \end_layout
1354
1355 \end_inset
1356
1357
1358 \end_layout
1359
1360 \begin_layout Standard
1361 The definition starts by stating that volume is a specialization of
1362 \begin_inset LatexCommand index
1363 name "solver\\_var"
1364
1365 \end_inset
1366
1367
1368 \family typewriter
1369 solver_var
1370 \family default
1371 .
1372 The type
1373 \family typewriter
1374 solver_var
1375 \family default
1376 refines a base type in the system known as
1377 \family typewriter
1378 real
1379 \family default
1380
1381 \begin_inset LatexCommand index
1382 name "real"
1383
1384 \end_inset
1385
1386 and adds several attributes to it that a nonlinear equation solver may
1387 need, such as a lower and upper bounds, a 'fixed' flag, and so forth.
1388
1389 \end_layout
1390
1391 \begin_layout Standard
1392 \begin_inset Marginal
1393 status collapsed
1394
1395 \begin_layout Standard
1396 dimensions
1397 \begin_inset LatexCommand index
1398 name "dimensions"
1399
1400 \end_inset
1401
1402 and units
1403 \begin_inset LatexCommand index
1404 name "units"
1405
1406 \end_inset
1407
1408 in ASCEND.
1409
1410 \end_layout
1411
1412 \end_inset
1413
1414 The type definition for volume states that volume has dimensionality of
1415 length to the power 3 (
1416 \family typewriter
1417 L^3
1418 \family default
1419 ) where L is one of the 10 dimensions supported by ASCEND (see
1420 \noun off
1421 in ASCEND Syntax document for the 10 dimensions defined within the ASCEND
1422 language).
1423 \end_layout
1424
1425 \begin_layout Standard
1426 One may express the value for a volume using any units which are consistent
1427 with the dimensionality of
1428 \family typewriter
1429 L^3
1430 \family default
1431 , such as
1432 \family typewriter
1433 {ft^3}
1434 \family default
1435 ,
1436 \family typewriter
1437 {m^3}
1438 \family default
1439 ,
1440 \family typewriter
1441 {gal}
1442 \family default
1443 , or even
1444 \family typewriter
1445 {mile^4/mm}
1446 \family default
1447 .
1448 Setting the lower bound to
1449 \family typewriter
1450 0 {ft^3}
1451 \family default
1452 says volume must be a nonnegative number.
1453 ASCEND used the nominal value for scaling a variable of type volume when
1454 solving, here
1455 \begin_inset Formula $100\,\mathrm{ft}^{3}$
1456 \end_inset
1457
1458 .
1459 \end_layout
1460
1461 \begin_layout Standard
1462 One may change the values for the bounds, default and nominal values at
1463 any time.
1464 \end_layout
1465
1466 \begin_layout Standard
1467 We now can understand the last column in Table
1468 \begin_inset LatexCommand ref
1469 reference "tab:model1.variablesVesselModel"
1470
1471 \end_inset
1472
1473
1474 \noun off
1475 and
1476 \noun default
1477 Table
1478 \noun off
1479
1480 \begin_inset LatexCommand ref
1481 reference "tab:model1.moreVariablesVessel"
1482
1483 \end_inset
1484
1485 .
1486 For each variable or constant in the system, we have identified its type
1487 in the file
1488 \family typewriter
1489 \noun default
1490 atoms.a4l
1491 \family default
1492 \noun off
1493 .
1494 That is, we looked in this file for the type definition that corresponded
1495 to the variable we were defining and listed that type here.
1496 This task is not as onerous as it seems.
1497 As we shall see later, we provide a tool to find for you all atom types
1498 that correspond to a particular set of units, e.g,
1499 \family typewriter
1500 \noun default
1501 ft^3
1502 \family default
1503 \noun off
1504 -- i.e., the computer will do the searching for you.
1505 \end_layout
1506
1507 \begin_layout Standard
1508 In Figure
1509 \begin_inset LatexCommand ref
1510 reference "fig:model1.universalConstant"
1511
1512 \end_inset
1513
1514
1515 \noun off
1516 we see the definition of one of the universal constants contained in
1517 \family typewriter
1518 \noun default
1519 atoms.a4l
1520 \family default
1521 \noun off
1522 .
1523 This definition is very short; it gives the name of the type
1524 \family typewriter
1525 \noun default
1526 circle_constant
1527 \family default
1528 \noun off
1529
1530 \begin_inset LatexCommand index
1531 name "circle\\_constant"
1532
1533 \end_inset
1534
1535 , that it refines
1536 \family typewriter
1537 \noun default
1538 real_constant
1539 \family default
1540 \noun off
1541
1542 \begin_inset LatexCommand index
1543 name "real\\_constant"
1544
1545 \end_inset
1546
1547 and that it has the value
1548 \family typewriter
1549 \noun default
1550 1 {PI
1551 \begin_inset LatexCommand index
1552 name "PI"
1553
1554 \end_inset
1555
1556 }
1557 \family default
1558 \noun off
1559
1560 \begin_inset LatexCommand index
1561 name "\\{PI\\}"
1562
1563 \end_inset
1564
1565 where the internal conversion needed for
1566 \family typewriter
1567 \noun default
1568 {PI}
1569 \family default
1570 \noun off
1571 is defined in the file defining the built-in units in ASCEND.
1572 One can add more units if desired at any time to ASCEND by defining one
1573 or more personal units files (
1574 \noun default
1575 Chapter
1576 \noun off
1577
1578 \begin_inset LatexCommand vref
1579 reference "cha:units"
1580
1581 \end_inset
1582
1583
1584 \noun default
1585
1586 \noun off
1587 tells you how to do this).
1588 \end_layout
1589
1590 \begin_layout Standard
1591 \begin_inset Marginal
1592 status collapsed
1593
1594 \begin_layout Standard
1595 universal constant
1596 \begin_inset LatexCommand index
1597 name "universal constant"
1598
1599 \end_inset
1600
1601 definition
1602 \end_layout
1603
1604 \end_inset
1605
1606
1607 \begin_inset Float figure
1608 wide false
1609 sideways false
1610 status open
1611
1612 \begin_layout LyX-Code
1613 \begin_inset ERT
1614 status open
1615
1616 \begin_layout Standard
1617
1618
1619 \backslash
1620 begin{ascend}
1621 \end_layout
1622
1623 \begin_layout Standard
1624
1625 UNIVERSAL CONSTANT circle_constant
1626 \end_layout
1627
1628 \begin_layout Standard
1629
1630 REFINES real_constant :== 1{PI};
1631 \end_layout
1632
1633 \begin_layout Standard
1634
1635
1636 \backslash
1637 end{ascend}
1638 \end_layout
1639
1640 \end_inset
1641
1642
1643 \end_layout
1644
1645 \begin_layout Standard
1646 \begin_inset Caption
1647
1648 \begin_layout Standard
1649 \begin_inset LatexCommand label
1650 name "fig:model1.universalConstant"
1651
1652 \end_inset
1653
1654 Type definition for
1655 \family typewriter
1656 circle_constant;
1657 \family default
1658 has value of
1659 \family typewriter
1660 1 {PI}
1661 \family default
1662 or 3.1415927
1663 \end_layout
1664
1665 \end_inset
1666
1667
1668 \end_layout
1669
1670 \end_inset
1671
1672
1673 \end_layout
1674
1675 \begin_layout Standard
1676 We shall in fact find this constant useful in our program, and we can either
1677 introduce a constant with this value or simply use the value
1678 \family typewriter
1679 1{PI}
1680 \family default
1681 in our program.
1682 We shall choose to do the latter.
1683 \end_layout
1684
1685 \begin_layout Standard
1686 It is time to write our first version for the model, which we do in Figure
1687
1688 \begin_inset LatexCommand ref
1689 reference "fig:model1.modelVessel"
1690
1691 \end_inset
1692
1693
1694 \noun off
1695 (
1696 \noun default
1697 available as
1698 \begin_inset LatexCommand index
1699 name "vesselPlain.a4c"
1700
1701 \end_inset
1702
1703
1704 \family typewriter
1705 vesselPlain.a4c
1706 \family default
1707 in the ASCEND model library).
1708
1709 \noun off
1710 We first list any other files containing type definitions which this model
1711 will use; here we list
1712 \family typewriter
1713 \noun default
1714 "atoms.a4l"
1715 \family default
1716 \noun off
1717 following the keyword
1718 \family typewriter
1719 \noun default
1720 REQUIRE
1721 \family default
1722 \noun off
1723
1724 \begin_inset LatexCommand index
1725 name "REQUIRE"
1726
1727 \end_inset
1728
1729 .
1730 ASCEND is sensitive to case so pay attention to where we use and do not
1731 use capital letters.
1732 Keywords are always capitalized.
1733 Often for clarification we use capital letters in a name we use for a variable
1734 or label (e.g., we use
1735 \family typewriter
1736 \noun default
1737 D
1738 \family default
1739 \noun off
1740 for diameter rather than
1741 \family typewriter
1742 \noun default
1743 d
1744 \family default
1745 \noun off
1746 ).
1747 Note that all ASCEND statements end with a semicolon (i.e., with
1748 \noun default
1749 '
1750 \family typewriter
1751 ;
1752 \family default
1753 '
1754 \noun off
1755 ) and not at the end of a line and that blank lines have no impact.
1756 Comments are between opening and closing parenthesis/asterisk pairs, i.e.,
1757 '
1758 \family typewriter
1759 \noun default
1760 (*
1761 \family default
1762 \noun off
1763 ' and '
1764 \family typewriter
1765 \noun default
1766 *)
1767 \family default
1768 \noun off
1769 '.
1770 \end_layout
1771
1772 \begin_layout Standard
1773 \begin_inset Marginal
1774 status collapsed
1775
1776 \begin_layout Standard
1777 the first version of the code for vessel
1778 \end_layout
1779
1780 \end_inset
1781
1782
1783 \begin_inset Float figure
1784 wide false
1785 sideways false
1786 status open
1787
1788 \begin_layout LyX-Code
1789 \begin_inset ERT
1790 status open
1791
1792 \begin_layout Standard
1793
1794
1795 \backslash
1796 begin{ascend}
1797 \end_layout
1798
1799 \begin_layout Standard
1800
1801 REQUIRE "atoms.a4l";
1802 \end_layout
1803
1804 \begin_layout Standard
1805
1806 MODEL vessel;
1807 \end_layout
1808
1809 \begin_layout Standard
1810
1811 (* variables *)
1812 \end_layout
1813
1814 \begin_layout Standard
1815
1816 side_area, end_area IS_A area;
1817 \end_layout
1818
1819 \begin_layout Standard
1820
1821 vessel_vol, wall_vol IS_A volume;
1822 \end_layout
1823
1824 \begin_layout Standard
1825
1826 wall_thickness, H, D IS_A distance;
1827 \end_layout
1828
1829 \begin_layout Standard
1830
1831 H_to_D_ratio IS_A factor;
1832 \end_layout
1833
1834 \begin_layout Standard
1835
1836 metal_density IS_A mass_density;
1837 \end_layout
1838
1839 \begin_layout Standard
1840
1841 metal_mass IS_A mass;
1842 \end_layout
1843
1844 \begin_layout Standard
1845
1846 \end_layout
1847
1848 \begin_layout Standard
1849
1850 (* equations *)
1851 \end_layout
1852
1853 \begin_layout Standard
1854
1855 FlatEnds:end_area = 1{PI} * D^2 / 4;
1856 \end_layout
1857
1858 \begin_layout Standard
1859
1860 Sides:side_area = 1{PI} * D * H;
1861 \end_layout
1862
1863 \begin_layout Standard
1864
1865 Cylinder:vessel_vol = end_area * H;
1866 \end_layout
1867
1868 \begin_layout Standard
1869
1870 Metal_volume:(side_area + 2 * end_area) *
1871 \end_layout
1872
1873 \begin_layout Standard
1874
1875 wall_thickness = wall_vol;
1876 \end_layout
1877
1878 \begin_layout Standard
1879
1880 HD_definition:D * H_to_D_ratio = H;
1881 \end_layout
1882
1883 \begin_layout Standard
1884
1885 VesselMass:metal_mass = metal_density * wall_vol;
1886 \end_layout
1887
1888 \begin_layout Standard
1889
1890 END vessel;
1891 \end_layout
1892
1893 \begin_layout Standard
1894
1895
1896 \backslash
1897 end{ascend}
1898 \end_layout
1899
1900 \end_inset
1901
1902
1903 \end_layout
1904
1905 \begin_layout Standard
1906 \begin_inset Caption
1907
1908 \begin_layout Standard
1909 \begin_inset LatexCommand label
1910 name "fig:model1.modelVessel"
1911
1912 \end_inset
1913
1914 First version of the type definition for
1915 \family typewriter
1916 vessel
1917 \family default
1918 .
1919
1920 \end_layout
1921
1922 \end_inset
1923
1924
1925 \end_layout
1926
1927 \end_inset
1928
1929
1930 \end_layout
1931
1932 \begin_layout Standard
1933 Our model definition has the following structure for it so far:
1934 \end_layout
1935
1936 \begin_layout Itemize
1937
1938 \family typewriter
1939 MODEL
1940 \family default
1941
1942 \begin_inset LatexCommand index
1943 name "MODEL"
1944
1945 \end_inset
1946
1947 statement
1948 \end_layout
1949
1950 \begin_layout Itemize
1951 list of variable we intend to use in the type definition
1952 \end_layout
1953
1954 \begin_layout Itemize
1955 equations
1956 \end_layout
1957
1958 \begin_layout Itemize
1959
1960 \family typewriter
1961 END
1962 \family default
1963
1964 \begin_inset LatexCommand index
1965 name "END"
1966
1967 \end_inset
1968
1969 statement
1970 \end_layout
1971
1972 \begin_layout Standard
1973 While we have put the statements in this order, we could mix up and intermix
1974 the middle two types of statements, even going to the extreme of defining
1975 the variables after we first use them.
1976 The
1977 \family typewriter
1978 MODEL
1979 \family default
1980 and
1981 \family typewriter
1982 END
1983 \family default
1984 statements begin and end the type definition.
1985 \end_layout
1986
1987 \begin_layout Standard
1988 You should see little that surprises you in the syntax here.
1989 However, you may have noted that we have created a definition that says
1990 absolutely nothing about how to use the variables and equations listed.
1991 There is no solution procedure buried in this type definition.
1992 In ASCEND the idea of solving is separate from saying what we intend to
1993 solve.
1994 Also note that we have not said anything about the values for any of the
1995 variables nor what we intend to calculate and what variables we intend
1996 to treat as fixed input.
1997 \end_layout
1998
1999 \begin_layout Section
2000 Editing, compiling and browsing an ASCEND model
2001 \end_layout
2002
2003 \begin_layout Standard
2004 Could we compile an instance of a vessel given this definition? If there
2005 had been some arrays in our definition for which we did not say how many
2006 items were in the arrays, we could not.
2007 However, here we could compile an instance, putting aside storage space
2008 for each of the variables and somehow capturing the equations relating
2009 them.
2010 \end_layout
2011
2012 \begin_layout Standard
2013 \begin_inset Marginal
2014 status open
2015
2016 \begin_layout Standard
2017 Do not alter the models subdirectory
2018 \end_layout
2019
2020 \end_inset
2021
2022 When we compile new models, we need a place to store them.
2023 One possibility would be to put them into the
2024 \family typewriter
2025 models
2026 \family default
2027
2028 \begin_inset LatexCommand index
2029 name "models"
2030
2031 \end_inset
2032
2033 subdirectory of the ASCEND installation
2034 \begin_inset Foot
2035 status collapsed
2036
2037 \begin_layout Standard
2038 On windows this might be
2039 \family typewriter
2040 c:
2041 \backslash
2042 Program File
2043 \backslash
2044 ASCEND
2045 \backslash
2046 models
2047 \family default
2048 .
2049 On Linux, this might be
2050 \family typewriter
2051 /usr/share/ascend/models
2052 \family default
2053 .
2054 The location can vary depending on how you went about installing ASCEND.
2055 \end_layout
2056
2057 \end_inset
2058
2059 .
2060 However, you really should leave the contents of this subdirectory untouched
2061 -- always.
2062 Hopefully the files will be read-only from your user account.
2063 We count on being able to replace the model library totally every time
2064 you install a new version of ASCEND.
2065 Whenever we add new model libraries or corrected versions of previously
2066 existing model libraries, we put them in this subdirectory.
2067 This subdirectory belongs to us (the developers of the system): hands off,
2068 please.
2069 \end_layout
2070
2071 \begin_layout Standard
2072 \begin_inset Marginal
2073 status open
2074
2075 \begin_layout Standard
2076 rather put your things into the ascdata
2077 \begin_inset LatexCommand index
2078 name "ascdata"
2079
2080 \end_inset
2081
2082 subdirectory (you own it)
2083 \end_layout
2084
2085 \end_inset
2086
2087 To avoid this problem, ASCEND also creates a subdirectory called
2088 \family typewriter
2089 ascdata
2090 \family default
2091 that it will not touch when you install a new version of ASCEND.
2092 It will look in this subdirectory first when looking for a file to load
2093 when you have not given a full path name for finding that file.
2094 The install process for ASCEND will place
2095 \family typewriter
2096 ascdata
2097 \family default
2098 into your home directory
2099 \begin_inset LatexCommand ref
2100 reference "id:#id(pgfId-1007944)"
2101
2102 \end_inset
2103
2104
2105 \begin_inset Foot
2106 status collapsed
2107
2108 \begin_layout Standard
2109 On Windows, your home directory will normally be the My Documents folder.
2110 On Linux, it will normally be
2111 \family typewriter
2112 /home/
2113 \emph on
2114 username
2115 \family default
2116 \emph default
2117 .
2118 Note that in both systems, you can set an
2119 \begin_inset Quotes eld
2120 \end_inset
2121
2122 environment
2123 \begin_inset Quotes erd
2124 \end_inset
2125
2126 variable to designate your home directory.
2127 \end_layout
2128
2129 \end_inset
2130
2131
2132 \noun off
2133 .
2134 ASCEND tells you where it has placed this subdirectory when you install
2135 it.
2136 However, if you did not note where that was, then you will have to search
2137 for it (using a tool like "FIND file or folder").
2138 \end_layout
2139
2140 \begin_layout Standard
2141 It is within the folder
2142 \family typewriter
2143 ascdata
2144 \family default
2145 that you should place any ASCEND models you create.
2146 When running a script (which we shall talk about later), ASCEND first looks
2147 in this subdirectory for files, and then it looks in the models subdirectory.
2148 It stops looking when it finds the first available version of the file.
2149 \end_layout
2150
2151 \begin_layout Standard
2152 \begin_inset Marginal
2153 status collapsed
2154
2155 \begin_layout Standard
2156 create a text file containing the model definition
2157 \end_layout
2158
2159 \end_inset
2160
2161 Next open an editor
2162 \begin_inset LatexCommand index
2163 name "text editors"
2164
2165 \end_inset
2166
2167 , such as
2168 \family typewriter
2169 emacs
2170 \family default
2171
2172 \begin_inset LatexCommand index
2173 name "emacs"
2174
2175 \end_inset
2176
2177 ,
2178 \family typewriter
2179 gedit
2180 \family default
2181
2182 \begin_inset LatexCommand index
2183 name "gedit"
2184
2185 \end_inset
2186
2187 ,
2188 \family typewriter
2189 vi
2190 \family default
2191
2192 \begin_inset LatexCommand index
2193 name "vi"
2194
2195 \end_inset
2196
2197 ,
2198 \family typewriter
2199 vim
2200 \family default
2201
2202 \begin_inset LatexCommand index
2203 name "vim"
2204
2205 \end_inset
2206
2207 , Notepad
2208 \begin_inset LatexCommand index
2209 name "Notepad"
2210
2211 \end_inset
2212
2213 or TextPad
2214 \begin_inset LatexCommand index
2215 name "TextPad"
2216
2217 \end_inset
2218
2219 .
2220 Now type in or, better yet, cut-and-paste the statements in Figure
2221 \begin_inset LatexCommand ref
2222 reference "fig:model1.modelVessel"
2223
2224 \end_inset
2225
2226
2227 \noun off
2228 .
2229 Be very careful to match the use of capital and small letters.
2230 Do not worry about blanks between symbols but do not embed blanks within
2231 symbols.
2232 In other words, do not put a blank in the middle of the symbol
2233 \family typewriter
2234 \noun default
2235 side_wall
2236 \family default
2237 \noun off
2238 but do not worry about putting zero or more blanks between
2239 \family typewriter
2240 \noun default
2241 side_wall
2242 \family default
2243 \noun off
2244 and
2245 \family typewriter
2246 \noun default
2247 =
2248 \family default
2249 \noun off
2250 in an equation.
2251 \end_layout
2252
2253 \begin_layout Standard
2254 When you are finished, be sure to save the file as a text file.
2255 Call it
2256 \family typewriter
2257 vesselPlain.a4c
2258 \family default
2259 .
2260 The "
2261 \family typewriter
2262 .a4c
2263 \family default
2264 " stands for "ASCEND 4 Code".
2265 Many Windows editors will append "
2266 \family typewriter
2267 .txt
2268 \family default
2269 " to the file name.
2270 Remove the
2271 \family typewriter
2272 .txt
2273 \family default
2274 ending off the file name -- do not let Microsoft bully you into thinking
2275 you should not -- and change it to "
2276 \family typewriter
2277 .a4c
2278 \begin_inset LatexCommand index
2279 name "a4c"
2280
2281 \end_inset
2282
2283
2284 \family default
2285 ".
2286
2287 \end_layout
2288
2289 \begin_layout Standard
2290 (This model is also available as
2291 \family typewriter
2292 vesselPlain.a4c
2293 \family default
2294 in the ASCEND models library, but we suggest it would be better for you
2295 to go through the exercise of creating your own version here.
2296 At the least copy the library file to your ASCEND space so you can play
2297 with your own version at this time.)
2298 \end_layout
2299
2300 \begin_layout Standard
2301 When you are done, you should have a text file called
2302 \family typewriter
2303 vesselPlain.a4c
2304 \family default
2305 stored in your ASCEND/models/vessel subdirectory.
2306 It should contain precisely the statements in Figure
2307 \begin_inset LatexCommand ref
2308 reference "fig:model1.modelVessel"
2309
2310 \end_inset
2311
2312
2313 \noun off
2314 with care having been taken to match capital and lower case letters as
2315 shown there.
2316 \end_layout
2317
2318 \begin_layout Standard
2319 \begin_inset Marginal
2320 status collapsed
2321
2322 \begin_layout Standard
2323 start the ASCEND system.
2324 Move and resize the windows to make yourself comfortable.
2325 \end_layout
2326
2327 \end_inset
2328
2329 Start the ASCEND system by double clicking on the ASCEND icon if you are
2330 on Windows or typing
2331 \family typewriter
2332 ascend
2333 \family default
2334 at the command line if you are using a Linux machine
2335 \begin_inset Foot
2336 status collapsed
2337
2338 \begin_layout Standard
2339 Depending on the Linux version you have installed, you might find that the
2340 command is
2341 \family typewriter
2342 ascend4
2343 \family default
2344 or that you have an ASCEND option in your GNOME 'Applications' menu.
2345 \end_layout
2346
2347 \end_inset
2348
2349 .
2350 Four windows will appear, three smaller ones and one larger one that will,
2351 if left unattended, disappear by itself in a few seconds.
2352 Move the three smaller ones around on your screen so they do not overlap
2353 or so they overlap very little.
2354 Resize them if you want to.
2355 You might start by putting the one called Script
2356 \begin_inset LatexCommand index
2357 name "Script window"
2358
2359 \end_inset
2360
2361 in the upper left, the one called Library
2362 \begin_inset LatexCommand index
2363 name "Library window"
2364
2365 \end_inset
2366
2367 in the upper right and the one called Console
2368 \begin_inset LatexCommand index
2369 name "Console"
2370
2371 \end_inset
2372
2373 in the lower right.
2374 We shall assume you have placed them in these positions in the following
2375 so, even if that is not your favorite placement, it might be useful to
2376 use it for now.
2377 \end_layout
2378
2379 \begin_layout Standard
2380 \begin_inset Marginal
2381 status collapsed
2382
2383 \begin_layout Standard
2384 note that each window by itself looks pretty nonthreatening
2385 \end_layout
2386
2387 \end_inset
2388
2389 As you can see, each window by itself looks like a pretty normal window.
2390 Each has buttons across the top under which one will find different tools
2391 to run.
2392 Each also has one to three sub-windows for displaying things.
2393 Each has a Help button that you can push at any time that you want to read
2394 all kinds of detailed things about the window
2395 \begin_inset Foot
2396 status collapsed
2397
2398 \begin_layout Standard
2399 assuming you have got the help files installed on your system, which you
2400 may not find you have.
2401 \end_layout
2402
2403 \end_inset
2404
2405 .
2406 For the moment we will provide you with the "just-in-time" details here
2407 so you do not need to be sidetracked just yet by pushing these Help buttons.
2408 \end_layout
2409
2410 \begin_layout Standard
2411 \begin_inset Marginal
2412 status collapsed
2413
2414 \begin_layout Standard
2415 hey, where did that window go? I want it back NOW!
2416 \end_layout
2417
2418 \end_inset
2419
2420 If you ever lose a window, open the Script window and under the Tools
2421 \begin_inset LatexCommand index
2422 name "Tools"
2423
2424 \end_inset
2425
2426 button, select the window you wish to open.
2427 You cannot lose the Script window unless you shut down ASCEND.
2428 For other windows in ASCEND, you can close them and re-open them as required.
2429 Any window that you closed can usually be restored by going back to the
2430 Script window and selected it from the Tools menu there.
2431 \end_layout
2432
2433 \begin_layout Standard
2434 \begin_inset Marginal
2435 status collapsed
2436
2437 \begin_layout Standard
2438 How do I quit
2439 \begin_inset LatexCommand index
2440 name "quit ASCEND"
2441
2442 \end_inset
2443
2444 ASCEND?
2445 \end_layout
2446
2447 \end_inset
2448
2449 To exit
2450 \begin_inset LatexCommand index
2451 name "exit ASCEND"
2452
2453 \end_inset
2454
2455 ASCEND, close the Script window.
2456 You will be asked to confirm that you want to exit ASCEND.
2457 If you have simulations in memory this will stop you from losing your results.
2458 \end_layout
2459
2460 \begin_layout Standard
2461 \begin_inset Marginal
2462 status collapsed
2463
2464 \begin_layout Standard
2465 saving
2466 \begin_inset LatexCommand index
2467 name "saving window position"
2468
2469 \end_inset
2470
2471 window positions
2472 \begin_inset LatexCommand index
2473 name "window position"
2474
2475 \end_inset
2476
2477
2478 \end_layout
2479
2480 \end_inset
2481
2482 ASCEND will not remember your window locations automatically.
2483 If you like where you have placed the windows for ASCEND on your display,
2484 go to the Script window and select 'Save all appearances
2485 \begin_inset LatexCommand index
2486 name "window locations, save"
2487
2488 \end_inset
2489
2490
2491 \begin_inset LatexCommand index
2492 name "appearances, save all"
2493
2494 \end_inset
2495
2496 ' under the View
2497 \begin_inset LatexCommand index
2498 name "View"
2499
2500 \end_inset
2501
2502 menu.
2503 A similar tool exists for each window for saving only its position.
2504 \end_layout
2505
2506 \begin_layout Standard
2507 \begin_inset Marginal
2508 status collapsed
2509
2510 \begin_layout Standard
2511 start by loading and compiling using tools in the Library window
2512 \end_layout
2513
2514 \end_inset
2515
2516 We shall start with the Library window in the upper right.
2517 This window provides you with the tools to load and compile files containing
2518 type definitions.
2519 You can also display
2520 \begin_inset LatexCommand index
2521 name "display"
2522
2523 \end_inset
2524
2525 the code for the different types you have loaded.
2526 \end_layout
2527
2528 \begin_layout Standard
2529 \begin_inset Marginal
2530 status collapsed
2531
2532 \begin_layout Standard
2533 use the left mouse button unless we tell you otherwise (however, on you
2534 own explore using the right mouse button in any of the windows)
2535 \end_layout
2536
2537 \end_inset
2538
2539 Let's load your file.
2540 Under the File button select the 'Read types from File
2541 \begin_inset LatexCommand index
2542 name "Read Types from File"
2543
2544 \end_inset
2545
2546 ' tool.
2547 You select this tool by clicking on it using the left mouse button - i.e.,
2548 the button you should have expected to use.
2549 A window will appear asking you to find the file you want to read into
2550 ASCEND.
2551 Navigate to where you stored
2552 \family typewriter
2553 vesselPlain.a4c
2554 \family default
2555 (in the subdirectory
2556 \family typewriter
2557 ascdata
2558 \family default
2559 ) and select that file.
2560 If you have the wrong ending on the file (you left
2561 \family typewriter
2562 .txt
2563 \family default
2564 or you forgot to put
2565 \family typewriter
2566 .a4c
2567 \family default
2568 as the ending), tell the system to list all files and pick the one you
2569 want.
2570 The
2571 \family typewriter
2572 .a4c
2573 \family default
2574 is used by the system to list only the files it thinks you might want to
2575 load, but ASCEND isn't fussy.
2576 It will attempt to load any file you pick.
2577 \end_layout
2578
2579 \begin_layout Standard
2580 Look in the Console window at the lower right, and, if the file loads without
2581 any errors being listed there, you can skip past the next bit to where
2582 you should start to compile an instance.
2583 The next bit has some useful hints on how to debug your models.
2584 If you want some debugging experience, put a known error into your
2585 \family typewriter
2586 vesselPlain.a4c
2587 \family default
2588 file and see what happens.
2589 This move will give you a reason to read the following section.
2590 \end_layout
2591
2592 \begin_layout Standard
2593 \begin_inset Marginal
2594 status open
2595
2596 \begin_layout Standard
2597 Do not ignore the diagnostics
2598 \begin_inset LatexCommand index
2599 name "diagnostics"
2600
2601 \end_inset
2602
2603 that might appear in the Console window
2604 \end_layout
2605
2606 \end_inset
2607
2608 If the Console window in the lower right starts filling with several tens
2609 of lines of diagnostics, look to see if you included the
2610 \family typewriter
2611 REQUIRE
2612 \family default
2613
2614 \begin_inset LatexCommand index
2615 name "REQUIRE"
2616
2617 \end_inset
2618
2619 statement at the beginning of your model file.
2620 Without that statement, ASCEND is missing all the definitions for the types
2621 of variables in your model, and it will go wild telling you so
2622 \begin_inset Foot
2623 status collapsed
2624
2625 \begin_layout Standard
2626 It might also be choking on a Word document because you forgot to save
2627 it as a text file.
2628 \end_layout
2629
2630 \end_inset
2631
2632 .
2633 \end_layout
2634
2635 \begin_layout Standard
2636 While loading the files containing these types, ASCEND will look very closely
2637 at the syntax and will give you all kinds of diagnostic messages in the
2638 Console window (lower right) if you have done something wrong.
2639 It will also at times spew out some warning messages
2640 \begin_inset LatexCommand index
2641 name "warning messages"
2642
2643 \end_inset
2644
2645 if you have done something thought to be poor modeling style.
2646 You must heed the error messages as the file will not load if there are
2647 any.
2648 ASCEND will tell you if it did not load the file.
2649
2650 \end_layout
2651
2652 \begin_layout Standard
2653 You should consider heeding the warnings if you get any.
2654 If you ignore them now, they may come back and haunt you later.
2655 However, there are times when we issue a warning but everything will work,
2656 and you will think we were not too clever.
2657 Our response: better modeling style
2658 \begin_inset LatexCommand index
2659 name "modeling style"
2660
2661 \end_inset
2662
2663 can eliminate these warnings.
2664 (It's been our system so we get to have the last word.)
2665 \end_layout
2666
2667 \begin_layout Standard
2668 \begin_inset Marginal
2669 status collapsed
2670
2671 \begin_layout Standard
2672 how do I jump
2673 \begin_inset LatexCommand index
2674 name "jump to line"
2675
2676 \end_inset
2677
2678
2679 \begin_inset LatexCommand index
2680 name "line numbers"
2681
2682 \end_inset
2683
2684 to line 100 of a file when using some of the standard editors?
2685 \end_layout
2686
2687 \end_inset
2688
2689 The error and warning messages will contain a line number in the file where
2690 the error has occurred.
2691 This will be the line number as counted by an editor with the first line
2692 being line 1 in the file.
2693 Editors always provide you with a means to get directly to a line number
2694 in a file.
2695 Find out how to do that or you will not be too happy with debugging a large
2696 file.
2697 \end_layout
2698
2699 \begin_layout Standard
2700 You will be in the debug mode for a new system so do not expect it to be
2701 totally obvious the first few times you make an error.
2702 We have tried to use language that should be meaningful, but we may have
2703 failed or the error may be pretty subtle and not possible for us to anticipate
2704 how to describe it in your terms.
2705 (Send us a bug report if you have any good ideas on language.)
2706 \end_layout
2707
2708 \begin_layout Standard
2709 \begin_inset Marginal
2710 status collapsed
2711
2712 \begin_layout Standard
2713 reloading a file
2714 \begin_inset LatexCommand index
2715 name "reloading a file"
2716
2717 \end_inset
2718
2719
2720 \begin_inset LatexCommand index
2721 name "file, reloading"
2722
2723 \end_inset
2724
2725 overwrites the previous version
2726 \end_layout
2727
2728 \end_inset
2729
2730 You can reload any file your have corrected using the Read types from file
2731 tool under the File menu.
2732 It will overwrite the previous version of the file only if the file has
2733 changed since it was last loaded (note that we do not reload those big
2734 files unless you make a change even if you tell us to).
2735 \end_layout
2736
2737 \begin_layout Standard
2738 \begin_inset Marginal
2739 status collapsed
2740
2741 \begin_layout Standard
2742 displaying the code
2743 \end_layout
2744
2745 \end_inset
2746
2747 You can display the code you have written.
2748 Select the model vessel in the right window of the Library.
2749 Then under the Display
2750 \begin_inset LatexCommand index
2751 name "Display window"
2752
2753 \end_inset
2754
2755 menu at the top, select the tool Code.
2756 The Display window will open displaying the code for this model.
2757 \end_layout
2758
2759 \begin_layout Standard
2760 \begin_inset Marginal
2761 status collapsed
2762
2763 \begin_layout Standard
2764 now compile as "
2765 \family typewriter
2766 v
2767 \family default
2768 "
2769 \end_layout
2770
2771 \end_inset
2772
2773 Okay, you have your file loaded without getting any diagnostics.
2774 You are ready to compile
2775 \begin_inset LatexCommand index
2776 name "compile"
2777
2778 \end_inset
2779
2780 .
2781 In the Library window, look in the left window and select the file
2782 \family typewriter
2783 vesselPlain.a4c
2784 \family default
2785 .
2786 It contains the type definition you wish to compile.
2787 You should see the type vessel appear in the right window.
2788 Select vessel.
2789 Under the Edit button, select Create simulation.
2790 A small window opens and asks you to name the simulation.
2791 Call it
2792 \family typewriter
2793 v
2794 \family default
2795 -- yes, just the letter "v", and select "OK".
2796 Short names for instances often seem to be preferable.
2797
2798 \end_layout
2799
2800 \begin_layout Standard
2801 Look again in the Console window for diagnostics.
2802 If everything worked without error, you will see some statistics telling
2803 you how many models, relations and so forth you have created during the
2804 compile step.
2805 \end_layout
2806
2807 \begin_layout Standard
2808 \begin_inset Marginal
2809 status collapsed
2810
2811 \begin_layout Standard
2812 and pass the instance
2813 \begin_inset LatexCommand index
2814 name "instance"
2815
2816 \end_inset
2817
2818 to the Browser
2819 \begin_inset LatexCommand index
2820 name "Browser"
2821
2822 \end_inset
2823
2824
2825 \end_layout
2826
2827 \end_inset
2828
2829 Select
2830 \family typewriter
2831 v IS A vessel
2832 \family default
2833 in the bottom of the Library window.
2834 Then under the Export
2835 \begin_inset LatexCommand index
2836 name "Export"
2837
2838 \end_inset
2839
2840 button, select 'Simulation to Browser
2841 \begin_inset LatexCommand index
2842 name "Export Simulation to Browser"
2843
2844 \end_inset
2845
2846 ' to export
2847 \family typewriter
2848 v
2849 \family default
2850 to the Browser tool set.
2851 The Browser window will open and contain
2852 \family typewriter
2853 v
2854 \family default
2855 .
2856 It might be useful to enlarge this window and move it down a bit, placing
2857 it a bit to the right of the center of your screen.
2858 (Remember you can save this positioning and sizing of the Browser window
2859 by going under the View menu and picking 'Save appearance'.)
2860 \end_layout
2861
2862 \begin_layout Standard
2863 \begin_inset Marginal
2864 status collapsed
2865
2866 \begin_layout Standard
2867 examine
2868 \family typewriter
2869 v
2870 \family default
2871 by playing with it in the Browser
2872 \end_layout
2873
2874 \end_inset
2875
2876 In the left upper window of the Browser, you will find
2877 \family typewriter
2878 v
2879 \family default
2880 to be the current object.
2881 Listed in the right window are all the parts of the current object.
2882 You will see the variables listed here along with an indication of their
2883 type.
2884 For example, you will find
2885 \family typewriter
2886 Cylinder IS A relation
2887 \family default
2888 and
2889 \family typewriter
2890 D IS A distance
2891 \family default
2892 listed, among many others.
2893
2894 \family typewriter
2895 Cylinder
2896 \family default
2897 is one of the equations you wrote describing the model while
2898 \family typewriter
2899 D
2900 \family default
2901 was the diameter of the vessel.
2902
2903 \end_layout
2904
2905 \begin_layout Standard
2906 \begin_inset Marginal
2907 status collapsed
2908
2909 \begin_layout Standard
2910 included flags
2911 \begin_inset LatexCommand index
2912 name "included flags"
2913
2914 \end_inset
2915
2916
2917 \begin_inset LatexCommand index
2918 name "flag, included"
2919
2920 \end_inset
2921
2922 for relations
2923 \end_layout
2924
2925 \end_inset
2926
2927 If you pick any of the parts in the right or bottom windows, it becomes
2928 the current object; its parts then show in the right window.
2929 For example, a relation has a boolean part (a flag that takes the value
2930
2931 \family typewriter
2932 TRUE
2933 \family default
2934 or
2935 \family typewriter
2936 FALSE
2937 \family default
2938 ) indicating whether or not it is to be included when ASCEND solves the
2939 equations you defined for the model.
2940 \end_layout
2941
2942 \begin_layout Standard
2943 If you wish to display the current value for this flag, pick 'Display Atom
2944 Values
2945 \begin_inset LatexCommand index
2946 name "Display Atom Values"
2947
2948 \end_inset
2949
2950 ' under the View menu.
2951 This tool toggles a switch that causes either the value or the type to
2952 show for a variable, a constant or a relation in the upper right window
2953 of the Browser.
2954 Try toggling it back and forth and looking at different things in the Browser.
2955 \end_layout
2956
2957 \begin_layout Standard
2958 Pick each of the tools under View and note what happens to the displaying
2959 of things in the Browser.
2960 \end_layout
2961
2962 \begin_layout Standard
2963 Across the bottom of the Browser window note the buttons you can select
2964 labeled
2965 \family typewriter
2966 RV
2967 \family default
2968 ,
2969 \family typewriter
2970 DV
2971 \family default
2972 and so forth.
2973 If you have made the Browser window large enough, you will see to the right
2974 of these buttons the type of objects whose value you want to appear or
2975 not in the lower Browser window as you toggle each button.
2976 Toggle each of these buttons and see if the lower display changes.
2977 If it does not, then this type of part is not in the current object.
2978 \end_layout
2979
2980 \begin_layout Section
2981 Solving
2982 \begin_inset LatexCommand index
2983 name "Solving"
2984
2985 \end_inset
2986
2987 an ASCEND instance
2988 \end_layout
2989
2990 \begin_layout Standard
2991 Well, you have been patient.
2992 While there are lots of interesting tools left to explore in the Browser,
2993 perhaps it is time to try to solve this model.
2994 To solve
2995 \family typewriter
2996 v
2997 \family default
2998 , make it the current object (it alone should be listed in the upper left
2999 window of the Browser).
3000 Then, under the Export
3001 \begin_inset LatexCommand index
3002 name "Export to Solver"
3003
3004 \end_inset
3005
3006 menu, select 'to Solver'.
3007 The Solver window will open, along with a smaller window labeled Eligible
3008 \begin_inset LatexCommand index
3009 name "window, Eligible"
3010
3011 \end_inset
3012
3013
3014 \begin_inset LatexCommand index
3015 name "Eligible window"
3016
3017 \end_inset
3018
3019 .
3020 Move the Eligible window up a bit so it does not cover any or very little
3021 of the Solver window.
3022 Move the Solver window to the lower left and enlarge it so you can see
3023 all of its contents.
3024
3025 \end_layout
3026
3027 \begin_layout Standard
3028 \begin_inset Marginal
3029 status collapsed
3030
3031 \begin_layout Standard
3032 if ASCEND stops responding
3033 \begin_inset LatexCommand index
3034 name "responding, ASCEND stops"
3035
3036 \end_inset
3037
3038 , hunt down one of those "nasty" windows with a "yellow lock
3039 \begin_inset LatexCommand index
3040 name "yellow lock"
3041
3042 \end_inset
3043
3044 " and close it properly
3045 \end_layout
3046
3047 \end_inset
3048
3049 This Eligible window is 'modal': if it is open and you do not do something
3050 to make it happy and go away, it will stop you from doing anything else
3051 in the ASCEND system.
3052 Such windows appear with a black lock icon in a yellow field -- we shall
3053 call it a "yellow lock." They demand you attend to them
3054 \emph on
3055 now
3056 \emph default
3057 .
3058 A good solution would be for such a window to stay open and on top of all
3059 the other open windows.
3060 Unfortunately we have not been able under all window managers to stop it
3061 from ducking under another window.
3062 If you ever find ASCEND unwilling to respond, iconify the other windows
3063 to get them out of the way, until you find one of these windows.
3064 On the PC you can go to the icon bar at the bottom of your screen and,
3065 by clicking on the window, bring it to the top.
3066 Then do whatever it takes to make it happy and close properly -- such as
3067 cancel it.
3068 If you are not careful here, for example, this window will hide under the
3069 Solver window before you are through with it.
3070 \end_layout
3071
3072 \begin_layout Standard
3073 \begin_inset Marginal
3074 status open
3075
3076 \begin_layout Standard
3077 is our problem well-posed
3078 \begin_inset LatexCommand index
3079 name "well-posed"
3080
3081 \end_inset
3082
3083 ?
3084 \end_layout
3085
3086 \end_inset
3087
3088 The Solver window contains the information we need to see to explain why
3089 the Eligible window opened in the first place.
3090 Examine the information the Solver displays.
3091 It tells you that
3092 \family typewriter
3093 v
3094 \family default
3095 has 6 relations defining it and that all are equalities and included.
3096 It has no inequalities.
3097 On the right side we see there are 10 variables and all are 'free
3098 \begin_inset LatexCommand index
3099 name "free variables"
3100
3101 \end_inset
3102
3103 .' A free variable is one for which you want the system to compute a value.
3104 Hmm, 6 equations in 10 variables.
3105 Something is wrong here.
3106 For a well-posed problem, you want 6 equations in 6 variables (i.e., square
3107 \begin_inset LatexCommand index
3108 name "square"
3109
3110 \end_inset
3111
3112 ).
3113 ASCEND reports that the system is underspecified
3114 \begin_inset LatexCommand index
3115 name "underspecified"
3116
3117 \end_inset
3118
3119 by 4.
3120 This means you need to pick four of the variables and declare them to be
3121 fixed
3122 \begin_inset LatexCommand index
3123 name "fixed"
3124
3125 \end_inset
3126
3127 .
3128 You will also have to pick values for these fixed variables before you
3129 can solve for the remaining 6.
3130 For such a small problem as this one, this task is not formidable.
3131 For a model with 50,000 equations and 60,000 variables, one would quit
3132 and go home.
3133 We have exposed a need here.
3134 We certainly would like ASCEND to help us here for this small problem.
3135 But we insist that it help us in major ways to make the 50,000 equation,
3136 60,000 variable problem possible.
3137 \end_layout
3138
3139 \begin_layout Standard
3140 \begin_inset Marginal
3141 status collapsed
3142
3143 \begin_layout Standard
3144 picking variables we are going to fix
3145 \end_layout
3146
3147 \end_inset
3148
3149 Okay, the small help such as needed here is why the Eligible window opened.
3150 Let's return to it.
3151 It lists all the variables of those not yet fixed that are eligible to
3152 be fixed and still leave us a calculation that has a chance to solve.
3153 The algorithm to find eligible variables does an quick analysis of the
3154 structure of the equations.
3155 The variables it lists are those that can be fixed
3156 \emph on
3157 without
3158 \emph default
3159 the system becoming numerically singular.
3160 So any variables that are not shown
3161 \emph on
3162 cannot possibly
3163 \emph default
3164 help you.
3165 \end_layout
3166
3167 \begin_layout Standard
3168 So look at the list and decide what you would like to fix for your first
3169 calculation with this model.
3170 Diameter (
3171 \family typewriter
3172 v.D
3173 \family default
3174 ) seems a good choice.
3175 Now you can see why we called the instance just plain old
3176 \family typewriter
3177 v
3178 \family default
3179 .
3180 A longer name would get tiring here.
3181 Anyway, pick
3182 \family typewriter
3183 v.D
3184 \family default
3185 .
3186 Immediately the list reappears with
3187 \family typewriter
3188 v.D
3189 \family default
3190 no longer on it.
3191 ASCEND has just repeated the eligibility analysis, and found that more
3192 variables still need to be fixed.
3193 \end_layout
3194
3195 \begin_layout Standard
3196 We have three more to pick.
3197 On the list are both vessel height,
3198 \family typewriter
3199 v.H
3200 \family default
3201 , and
3202 \family typewriter
3203 v.H_to_D_ratio
3204 \family default
3205 .
3206 We certainly cannot pick both of these.
3207 One implies the other if we know a value for
3208 \family typewriter
3209 v.D
3210 \family default
3211 .
3212 Pick
3213 \family typewriter
3214 v.H_to_D_ratio
3215 \family default
3216 .
3217 Note that
3218 \family typewriter
3219 v.H
3220 \family default
3221 is no longer eligible.
3222 Good.
3223 We would be worried if it were still there.
3224 \end_layout
3225
3226 \begin_layout Standard
3227 We see
3228 \family typewriter
3229 v.metal_density
3230 \emph on
3231 .
3232
3233 \family default
3234 \emph default
3235 Pick it.
3236 Strange.
3237 Metal mass and volume stayed eligible.
3238 Why? If we pick metal mass, wall thickness is implied, and the same is
3239 true if we were to pick metal volume.
3240 However, as it seems much more natural to pick
3241 \family typewriter
3242 wall_thickness
3243 \family default
3244 , make that the last variable you choose.
3245 The Solver window now says this problem is square (i.e., it has 6 equations
3246 in the same number of unknowns).
3247 Table
3248 \begin_inset LatexCommand ref
3249 reference "tab:model1.variableFixed"
3250
3251 \end_inset
3252
3253
3254 \noun off
3255 summarizes the four variables we have elected here to fix.
3256 \end_layout
3257
3258 \begin_layout Standard
3259 \begin_inset Float table
3260 wide false
3261 sideways false
3262 status open
3263
3264 \begin_layout Standard
3265 \begin_inset Caption
3266
3267 \begin_layout Standard
3268 \begin_inset LatexCommand label
3269 name "tab:model1.variableFixed"
3270
3271 \end_inset
3272
3273 Variables we have fixed
3274 \begin_inset LatexCommand index
3275 name "fixed variables"
3276
3277 \end_inset
3278
3279
3280 \end_layout
3281
3282 \end_inset
3283
3284
3285 \end_layout
3286
3287 \begin_layout Standard
3288 \begin_inset Tabular
3289 <lyxtabular version="3" rows="5" columns="1">
3290 <features>
3291 <column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
3292 <row topline="true" bottomline="true">
3293 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3294 \begin_inset Text
3295
3296 \begin_layout Standard
3297 variable
3298 \end_layout
3299
3300 \end_inset
3301 </cell>
3302 </row>
3303 <row topline="true">
3304 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3305 \begin_inset Text
3306
3307 \begin_layout Standard
3308
3309 \family typewriter
3310 D
3311 \end_layout
3312
3313 \end_inset
3314 </cell>
3315 </row>
3316 <row topline="true">
3317 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3318 \begin_inset Text
3319
3320 \begin_layout Standard
3321
3322 \family typewriter
3323 H_to_D_ratio
3324 \end_layout
3325
3326 \end_inset
3327 </cell>
3328 </row>
3329 <row topline="true">
3330 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3331 \begin_inset Text
3332
3333 \begin_layout Standard
3334
3335 \family typewriter
3336 meta_density
3337 \end_layout
3338
3339 \end_inset
3340 </cell>
3341 </row>
3342 <row topline="true" bottomline="true">
3343 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3344 \begin_inset Text
3345
3346 \begin_layout Standard
3347
3348 \family typewriter
3349 wall_thickness
3350 \end_layout
3351
3352 \end_inset
3353 </cell>
3354 </row>
3355 </lyxtabular>
3356
3357 \end_inset
3358
3359
3360 \end_layout
3361
3362 \end_inset
3363
3364
3365 \end_layout
3366
3367 \begin_layout Standard
3368 \begin_inset Marginal
3369 status collapsed
3370
3371 \begin_layout Standard
3372 ASCEND partitions the problem into smaller problems for solving
3373 \end_layout
3374
3375 \end_inset
3376
3377 Toward the bottom right of the
3378 \series bold
3379 Solver
3380 \series default
3381 window, we see there are 6 "blocks
3382 \begin_inset LatexCommand index
3383 name "blocks"
3384
3385 \end_inset
3386
3387 ." What are blocks? ASCEND has examined the equations and, in this case,
3388 has discovered that not all the equations have to be solved simultaneously.
3389 There are 6 blocks of equations which it can solve in sequence.
3390 6 blocks and 6 equations means that ASCEND has found a way to solve the
3391 model by solving 6 individual equations in sequence -- i.e., one at a time.
3392 This is a good thing: it usually means that the solver will have less problems
3393 with locating the overall solution.
3394 \end_layout
3395
3396 \begin_layout Standard
3397 As well as breaking down the system into blocks, ASCEND has the ability
3398 to rearrange some simple algebraic equations so that unknown variables
3399 can be evaluated directly from the known values, with no need for iterative
3400 numerical methods.
3401 This is only possible if there is just one equation in the block.
3402 In fact, this problem, with the 4 variables we selected to be fixed, can
3403 be solved entirely without iteration.
3404 \end_layout
3405
3406 \begin_layout Standard
3407 \begin_inset Marginal
3408 status open
3409
3410 \begin_layout Standard
3411 displaying the incidence matrix
3412 \begin_inset LatexCommand index
3413 name "incidence matrix"
3414
3415 \end_inset
3416
3417
3418 \end_layout
3419
3420 \end_inset
3421
3422 Can we see what ASCEND has just discovered? It turns out we can (we would
3423 not have asked if we could not).
3424 Under the Display menu on the Solver, select the 'Incidence matrix tool
3425 \begin_inset LatexCommand index
3426 name "incidence matrix tool"
3427
3428 \end_inset
3429
3430 '.
3431 A window pops open showing us the incidence of variables in the equations
3432 and display them in the order that ASCEND has found to solve them, also
3433 known as a sparsity matrix
3434 \begin_inset LatexCommand index
3435 name "sparsity matrix"
3436
3437 \end_inset
3438
3439 or sparsity pattern
3440 \begin_inset LatexCommand index
3441 name "sparsity pattern"
3442
3443 \end_inset
3444
3445 .
3446 The dark squares are incidences under the variables for which we are solving;
3447 the lighter looking 'X' symbols to the right side are incidences for the
3448 fixed (known) variables.
3449 Click on the incidence in the upper left corner.
3450 ASCEND immediately identifies it for us as the
3451 \family typewriter
3452 end_area
3453 \family default
3454 .
3455 It identifies the equation as the one we labeled
3456 \family typewriter
3457 FlatEnds
3458 \family default
3459 .
3460 We can go back to our model and find the equation ASCEND will solve first.
3461 The other variable in this equation is in the set we fixed; pick it and
3462 discover it is
3463 \family typewriter
3464 D
3465 \family default
3466 , the vessel diameter.
3467 Of course we can compute the area of the ends given the diameter.
3468 The
3469 \emph on
3470 end_area
3471 \emph default
3472 is
3473 \begin_inset Formula $\pi D^{2}/4$
3474 \end_inset
3475
3476 .
3477 \end_layout
3478
3479 \begin_layout Standard
3480 Play with the other incidences here.
3481 See what the other equations are and the order ASCEND will use to solve
3482 them.
3483 \end_layout
3484
3485 \begin_layout Standard
3486 Okay, we return to our task of solving.
3487 We need next to supply values for the variables we have selected to be
3488 fixed.
3489 Again, the approach we are going to take is acceptable for this small problem,
3490 but we would not want to have to do what we are about to do for a large
3491 problem.
3492 Fortunately, we really have thought about these issues and have some nice
3493 approaches that work even for extremely large problem -- like 100,000 equations.
3494 \end_layout
3495
3496 \begin_layout Standard
3497 \begin_inset Marginal
3498 status collapsed
3499
3500 \begin_layout Standard
3501 which variables are currently fixed for this problem?
3502 \end_layout
3503
3504 \end_inset
3505
3506 Let's see.
3507 Do you remember the variables we fixed? What if you do not? Well, we go
3508 back to the Browser.
3509 Be sure
3510 \family typewriter
3511 v
3512 \family default
3513 remains the current object (it alone is in the upper left window).
3514 Under the Find menu select 'by Type
3515 \begin_inset LatexCommand index
3516 name "Find by Type"
3517
3518 \end_inset
3519
3520 .' A small window opens with default information in it saying it will find
3521 for us all objects contained in the current object
3522 \family typewriter
3523 v
3524 \family default
3525 of type
3526 \family typewriter
3527 solver_var
3528 \family default
3529 whose
3530 \family typewriter
3531 fixed
3532 \family default
3533 flags are set to
3534 \family typewriter
3535 TRUE
3536 \family default
3537 .
3538 These are precisely the attributes for the variables we have fixed.
3539 Select OK and a list of the four variables we fixed earlier appears.
3540 \end_layout
3541
3542 \begin_layout Standard
3543 \begin_inset Marginal
3544 status collapsed
3545
3546 \begin_layout Standard
3547 specifying values for the fixed variables - this approach is useful for
3548 small problems
3549 \end_layout
3550
3551 \end_inset
3552
3553 For each variable on this list, we should supply a value.
3554 Select
3555 \family typewriter
3556 D
3557 \family default
3558 in the lower window of the Browser using the right (the right, not the
3559 left -- make
3560 \family typewriter
3561 v
3562 \family default
3563 the current object and do it again) mouse button.
3564 A window opens in which we input a value for
3565 \family typewriter
3566 D
3567 \family default
3568 .
3569 Put in the value 4 in the left window and ft in the right.
3570 Continue by putting in the values for the variables as listed in Table
3571
3572 \begin_inset LatexCommand ref
3573 reference "tab:model1.valuesFixedVars"
3574
3575 \end_inset
3576
3577
3578 \noun off
3579 .
3580 These values immediately appear in the Browser window as you enter them.
3581 If you did not fully appreciate the proper handling of dimension and units
3582 before, you just got a taste of its advantages.
3583
3584 \noun default
3585 You
3586 \noun off
3587 did not have to worry about specifying these things in consistent preselected
3588 units
3589 \noun default
3590 -- ASCEND did this for you.
3591 \end_layout
3592
3593 \begin_layout Standard
3594 \begin_inset Float table
3595 wide false
3596 sideways false
3597 status open
3598
3599 \begin_layout Standard
3600 \begin_inset Caption
3601
3602 \begin_layout Standard
3603 \begin_inset LatexCommand label
3604 name "tab:model1.valuesFixedVars"
3605
3606 \end_inset
3607
3608 Values to use for fixed variables
3609 \end_layout
3610
3611 \end_inset
3612
3613
3614 \end_layout
3615
3616 \begin_layout Standard
3617 \begin_inset Tabular
3618 <lyxtabular version="3" rows="5" columns="3">
3619 <features>
3620 <column alignment="center" valignment="top" leftline="true" width="0">
3621 <column alignment="center" valignment="top" leftline="true" width="0">
3622 <column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
3623 <row topline="true" bottomline="true">
3624 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3625 \begin_inset Text
3626
3627 \begin_layout Standard
3628 variable
3629 \end_layout
3630
3631 \end_inset
3632 </cell>
3633 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3634 \begin_inset Text
3635
3636 \begin_layout Standard
3637 value
3638 \end_layout
3639
3640 \end_inset
3641 </cell>
3642 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3643 \begin_inset Text
3644
3645 \begin_layout Standard
3646 units
3647 \end_layout
3648
3649 \end_inset
3650 </cell>
3651 </row>
3652 <row topline="true">
3653 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3654 \begin_inset Text
3655
3656 \begin_layout Standard
3657
3658 \family typewriter
3659 D
3660 \end_layout
3661
3662 \end_inset
3663 </cell>
3664 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3665 \begin_inset Text
3666
3667 \begin_layout Standard
3668 4
3669 \end_layout
3670
3671 \end_inset
3672 </cell>
3673 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3674 \begin_inset Text
3675
3676 \begin_layout Standard
3677
3678 \family typewriter
3679 ft
3680 \end_layout
3681
3682 \end_inset
3683 </cell>
3684 </row>
3685 <row topline="true">
3686 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3687 \begin_inset Text
3688
3689 \begin_layout Standard
3690
3691 \family typewriter
3692 H_to_D_ratio
3693 \end_layout
3694
3695 \end_inset
3696 </cell>
3697 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3698 \begin_inset Text
3699
3700 \begin_layout Standard
3701 3
3702 \end_layout
3703
3704 \end_inset
3705 </cell>
3706 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3707 \begin_inset Text
3708
3709 \begin_layout Standard
3710
3711 \end_layout
3712
3713 \end_inset
3714 </cell>
3715 </row>
3716 <row topline="true">
3717 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3718 \begin_inset Text
3719
3720 \begin_layout Standard
3721
3722 \family typewriter
3723 meta_density
3724 \end_layout
3725
3726 \end_inset
3727 </cell>
3728 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3729 \begin_inset Text
3730
3731 \begin_layout Standard
3732 5000
3733 \end_layout
3734
3735 \end_inset
3736 </cell>
3737 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3738 \begin_inset Text
3739
3740 \begin_layout Standard
3741
3742 \family typewriter
3743 kg/m^3
3744 \end_layout
3745
3746 \end_inset
3747 </cell>
3748 </row>
3749 <row topline="true" bottomline="true">
3750 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3751 \begin_inset Text
3752
3753 \begin_layout Standard
3754
3755 \family typewriter
3756 wall_thickness
3757 \end_layout
3758
3759 \end_inset
3760 </cell>
3761 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
3762 \begin_inset Text
3763
3764 \begin_layout Standard
3765 5
3766 \end_layout
3767
3768 \end_inset
3769 </cell>
3770 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
3771 \begin_inset Text
3772
3773 \begin_layout Standard
3774
3775 \family typewriter
3776 mm
3777 \end_layout
3778
3779 \end_inset
3780 </cell>
3781 </row>
3782 </lyxtabular>
3783
3784 \end_inset
3785
3786
3787 \end_layout
3788
3789 \end_inset
3790
3791
3792 \end_layout
3793
3794 \begin_layout Standard
3795 You can now solve this model.
3796 Go the Solver window and, under the Execute menu, select Solve.
3797 You will get a message telling you the model solved.
3798 Dismiss that message and return to the Browser window to examine the results.
3799 You should see the following results:
3800 \end_layout
3801
3802 \begin_layout LyX-Code
3803 \begin_inset ERT
3804 status open
3805
3806 \begin_layout Standard
3807
3808
3809 \backslash
3810 begin{ascend}
3811 \end_layout
3812
3813 \begin_layout Standard
3814
3815 D = 1.21922 meter
3816 \end_layout
3817
3818 \begin_layout Standard
3819
3820 H = 3.65765 meter
3821 \end_layout
3822
3823 \begin_layout Standard
3824
3825 H_to_D_ratio = 3
3826 \end_layout
3827
3828 \begin_layout Standard
3829
3830 end_area = 1.16748 meter^2
3831 \end_layout
3832
3833 \begin_layout Standard
3834
3835 metal_density = 5000 kilogram/meter^3
3836 \end_layout
3837
3838 \begin_layout Standard
3839
3840 metal_mass = 408.62 kilogram
3841 \end_layout
3842
3843 \begin_layout Standard
3844
3845 side_area = 14.0098 meter^2
3846 \end_layout
3847
3848 \begin_layout Standard
3849
3850 vessel_vol = 4.27025 meter^3
3851 \end_layout
3852
3853 \begin_layout Standard
3854
3855 wall_thickness = 0.005 meter
3856 \end_layout
3857
3858 \begin_layout Standard
3859
3860 wall_vol = 0.0817239 meter^3
3861 \end_layout
3862
3863 \begin_layout Standard
3864
3865
3866 \backslash
3867 end{ascend}
3868 \end_layout
3869
3870 \end_inset
3871
3872
3873 \end_layout
3874
3875 \begin_layout LyX-Code
3876
3877 \end_layout
3878
3879 \begin_layout Standard
3880 \begin_inset Note Note
3881 status collapsed
3882
3883 \begin_layout Standard
3884 Some of this stuff appears to have changed in the PDF....
3885 \end_layout
3886
3887 \end_inset
3888
3889
3890 \end_layout
3891
3892 \begin_layout Standard
3893 \begin_inset Marginal
3894 status collapsed
3895
3896 \begin_layout Standard
3897 alter the units used for displaying values
3898 \end_layout
3899
3900 \end_inset
3901
3902 You may wish to alter the units used to display these results.
3903 For example, you enter the diameter
3904 \emph on
3905 D
3906 \emph default
3907 in ft.
3908 You may wish to reassure yourself the
3909 \family typewriter
3910 1.21922 meter
3911 \family default
3912 is 4 ft.
3913 Go to the Script window and under the Tools menu select
3914 \emph on
3915 '
3916 \emph default
3917 Measuring units'.
3918 The
3919 \series bold
3920 Units
3921 \series default
3922 window
3923 \begin_inset LatexCommand index
3924 name "Units window"
3925
3926 \end_inset
3927
3928
3929 \begin_inset LatexCommand index
3930 name "window, Units"
3931
3932 \end_inset
3933
3934 will open.
3935 Enlarge it appropriately and then place it to the top and far right of
3936 your display.
3937 \end_layout
3938
3939 \begin_layout Standard
3940 There are two ways you can reset the units for displaying length.
3941 \end_layout
3942
3943 \begin_layout Enumerate
3944 Length is a basic dimension in ASCEND so under the
3945 \emph on
3946 Display
3947 \emph default
3948 button select Length.
3949 A side window will open with all the alternate units supported in ASCEND
3950 for length.
3951 Select ft.
3952 \end_layout
3953
3954 \begin_layout Enumerate
3955 Or, in the lower part of the Units window is a frame labeled 'Set units'.
3956 Clear and then type
3957 \family typewriter
3958 ft
3959 \family default
3960 then hit Enter.
3961 \end_layout
3962
3963 \begin_layout Standard
3964 In either way, the units for all length variables will switch to ft.
3965 Look at the values in the Browser window.
3966 \end_layout
3967
3968 \begin_layout Standard
3969 The left upper window of the Units window contains many variable types that
3970 have composite dimensions.
3971 For example, you will find volume there.
3972 Pick it and the right window fills with all the alternative units in which
3973 you can express volume.
3974 \end_layout
3975
3976 \begin_layout Standard
3977 Play with changing the units for displaying the various variables in the
3978 vessel instance v.
3979
3980 \end_layout
3981
3982 \begin_layout Standard
3983 One point - the left window displaying types having composite dimensions
3984 will display only one type for each composite dimension.
3985 If the atom types you have loaded were to include volume_difference as
3986 well as volume, then only one of the two types, volume or volume_difference,
3987 will be listed here.
3988 Changing the units to express either changes the units for both.
3989 \end_layout
3990
3991 \begin_layout Standard
3992 \begin_inset Marginal
3993 status collapsed
3994
3995 \begin_layout Standard
3996 returning to a consistent set of units
3997 \end_layout
3998
3999 \end_inset
4000
4001 When you are done, you may wish to return to a consistent set, such as SI
4002 \begin_inset LatexCommand index
4003 name "SI"
4004
4005 \end_inset
4006
4007 .
4008 Under the Display button are different sets; pick
4009 \emph on
4010 SI (MKS) set
4011 \emph default
4012 .
4013 \end_layout
4014
4015 \begin_layout Standard
4016 \begin_inset Marginal
4017 status collapsed
4018
4019 \begin_layout Standard
4020 now we can solve the model in other ways
4021 \end_layout
4022
4023 \end_inset
4024
4025 We can now resolve our vessel instance in any number of different ways.
4026 For example we can ask what the diameter would be if we had a volume of
4027
4028 \emph on
4029 250 ft3
4030 \emph default
4031 .
4032 To accomplish this calculation, we need first to make
4033 \emph on
4034 vessel_volume
4035 \emph default
4036 a variable whose value we wish to fix.
4037 When we do this the model will be overspecified.
4038 ASCEND will indicate this problem to us and offer us a list of variables
4039 - including the vessel diameter
4040 \emph on
4041 D
4042 \emph default
4043 , one of which we will have to "unfix
4044 \begin_inset LatexCommand index
4045 name "unfix"
4046
4047 \end_inset
4048
4049 ." Finally we need to alter the value of
4050 \emph on
4051 vessel_volume
4052 \emph default
4053 to the desired value and solve.
4054 Explicit instructions to accomplish these steps are as follows.
4055 \end_layout
4056
4057 \begin_layout Itemize
4058 In the
4059 \series bold
4060 Browser
4061 \series default
4062 window, make
4063 \emph on
4064 vessel_volume
4065 \emph default
4066 the current object (select it using the left mouse button).
4067 The right window of the
4068 \series bold
4069 Browser
4070 \series default
4071 display the parts of the
4072 \emph on
4073 vessel_volume
4074 \emph default
4075 , among them is the fixed flag with a value of
4076 \emph on
4077 FALSE
4078 \emph default
4079 .
4080
4081 \end_layout
4082
4083 \begin_layout Itemize
4084 (If you do not see the value for fixed but rather its type as a boolean,
4085 under the
4086 \emph on
4087 View
4088 \emph default
4089 button at the top, select
4090 \emph on
4091 Display Atom Values.
4092 \emph default
4093 )
4094 \end_layout
4095
4096 \begin_layout Itemize
4097 Pick fixed with the right mouse button, and, in the small window that opens,
4098 delete the value
4099 \emph on
4100 FALSE
4101 \emph default
4102 , enter the value
4103 \emph on
4104 TRUE
4105 \emph default
4106 and select
4107 \emph on
4108 OK
4109 \emph default
4110 .
4111 \end_layout
4112
4113 \begin_layout Itemize
4114 Now make v the current object by picking it in the left window of the
4115 \series bold
4116 Browser
4117 \series default
4118 .
4119 \end_layout
4120
4121 \begin_layout Itemize
4122 Export v to the Solver again by selecting to Solver under the Export button.
4123 A window entitled Overspecified
4124 \begin_inset LatexCommand index
4125 name "Overspecified"
4126
4127 \end_inset
4128
4129 will appear listing the variables v.D, v.H_to_D_ratio and v.vessel_volume.
4130 Pick v.D and hit the OK button; ASCEND will reset its fixed flag to FALSE.
4131 \end_layout
4132
4133 \begin_layout Itemize
4134 Finally, return to the
4135 \series bold
4136 Browser
4137 \series default
4138 window and select
4139 \emph on
4140 vessel_volume
4141 \emph default
4142 with the right mouse button.
4143 In the small window that appears type
4144 \emph on
4145 250
4146 \emph default
4147 in the left window,
4148 \emph on
4149 ft^3
4150 \emph default
4151 in the right, and hit the
4152 \emph on
4153 OK
4154 \emph default
4155 button.
4156 \end_layout
4157
4158 \begin_layout Itemize
4159 Under the
4160 \emph on
4161 Execute
4162 \emph default
4163 button in the
4164 \series bold
4165 Solver
4166 \series default
4167 window, select
4168 \emph on
4169 Solve
4170 \emph default
4171 .
4172 \end_layout
4173
4174 \begin_layout Standard
4175 Note the
4176 \series bold
4177 Solver
4178 \series default
4179 reports only 4 blocks for 6 equations.
4180 This time it has to solve some equations simultaneously.
4181 In the
4182 \series bold
4183 Solver
4184 \series default
4185 window, under the
4186 \emph on
4187 Display
4188 \emph default
4189 button, select the
4190 \emph on
4191 Incidence matrix
4192 \emph default
4193 tool.
4194 You will see that the first three equations must be solved together as
4195 a single block of equations.
4196 \end_layout
4197
4198 \begin_layout Standard
4199 \begin_inset Marginal
4200 status collapsed
4201
4202 \begin_layout Standard
4203 clearing all the fixed flags
4204 \end_layout
4205
4206 \end_inset
4207
4208 For a more complicated model you may wish to start over on the process of
4209 selecting which variables are fixed.
4210 You can set the fixed flags for all the variables in a problem to FALSE
4211 all at once -- without knowing which are currently set to TRUE.
4212 In the Browser window, under the Edit button, select the Run method tool.
4213 A window will open that displays a list of default methods that are automatical
4214 ly attached to every model in ASCEND.
4215 One is called ClearAll.
4216 Pick it and hit OK.
4217 All the fixed flags for the entire model will now be reset to FALSE.
4218 Can you think of a way to check if this is true? (Do you remember how to
4219 check which variables are currently fixed? Repeat that check and you should
4220 find no variables are on the list.)
4221 \end_layout
4222
4223 \begin_layout Standard
4224 You might now want to play by changing what you calculate and fix.
4225 \end_layout
4226
4227 \begin_layout Section
4228 Discussion
4229 \end_layout
4230
4231 \begin_layout Standard
4232 You have just completed the creation and solving of a very small model in
4233 ASCEND.
4234 In doing so, you have been exposed to some interesting issues.
4235 How can we separate the concept of the model from how we intend to solve
4236 it? How do we make a model to be well-posed -- i.e., a model involving n
4237 equations in n unknowns -- so we can solve it? How should one handle the
4238 units for the variables in a modeling system? What we have shown you here
4239 is for a small model.
4240 We still need to show you how one can make a large model well-posed, for
4241 example.
4242 You will start to understand how one can do this in the next chapter.
4243 \end_layout
4244
4245 \begin_layout Standard
4246 The next chapter is crucial for you to understand if you want to begin to
4247 understand how we approach good modeling practice.
4248 Please do continue with it.
4249 As it uses the vessel model, it would, of course, be best to continue with
4250 that chapter now.
4251 \end_layout
4252
4253 \end_body
4254 \end_document

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