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

Annotation of /trunk/doc/howto-physprops.lyx

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2785 - (hide annotations) (download) (as text)
Mon Jun 23 08:17:49 2014 UTC (10 years, 5 months ago) by jpye
File MIME type: application/x-lyx
File size: 40950 byte(s)
updating RPM spec for Fed20
1 jpye 2785 #LyX 2.1 created this file. For more info see http://www.lyx.org/
2     \lyxformat 474
3 johnpye 825 \begin_document
4     \begin_header
5     \textclass book
6 jpye 2785 \use_default_options false
7     \maintain_unincluded_children false
8 johnpye 825 \language english
9 jpye 2785 \language_package default
10 johnpye 825 \inputencoding auto
11 jpye 2785 \fontencoding global
12     \font_roman default
13     \font_sans default
14     \font_typewriter default
15     \font_math auto
16     \font_default_family default
17     \use_non_tex_fonts false
18     \font_sc false
19     \font_osf false
20     \font_sf_scale 100
21     \font_tt_scale 100
22 johnpye 825 \graphics default
23 jpye 2785 \default_output_format default
24     \output_sync 0
25     \bibtex_command default
26     \index_command default
27 johnpye 825 \paperfontsize default
28     \spacing single
29 jpye 2785 \use_hyperref false
30 johnpye 825 \papersize a4paper
31     \use_geometry false
32 jpye 2785 \use_package amsmath 2
33     \use_package amssymb 2
34     \use_package cancel 1
35     \use_package esint 0
36     \use_package mathdots 0
37     \use_package mathtools 1
38     \use_package mhchem 0
39     \use_package stackrel 1
40     \use_package stmaryrd 1
41     \use_package undertilde 1
42 johnpye 825 \cite_engine basic
43 jpye 2785 \cite_engine_type default
44     \biblio_style plain
45 johnpye 825 \use_bibtopic false
46 jpye 2785 \use_indices false
47 johnpye 825 \paperorientation portrait
48 jpye 2785 \suppress_date false
49     \justification true
50     \use_refstyle 0
51     \index Index
52     \shortcut idx
53     \color #008000
54     \end_index
55 johnpye 825 \secnumdepth 3
56     \tocdepth 3
57     \paragraph_separation indent
58 jpye 2785 \paragraph_indentation default
59 johnpye 825 \quotes_language english
60     \papercolumns 1
61     \papersides 2
62     \paperpagestyle default
63     \tracking_changes false
64 jpye 2785 \output_changes false
65     \html_math_output 0
66     \html_css_as_file 0
67     \html_be_strict false
68 johnpye 825 \end_header
69    
70     \begin_body
71    
72     \begin_layout Chapter
73     Multi-phase equilibrium
74 jpye 2785 \begin_inset Index idx
75     status collapsed
76 johnpye 825
77 jpye 2785 \begin_layout Plain Layout
78     equilibrium
79     \end_layout
80    
81 johnpye 825 \end_inset
82    
83     libraries
84 jpye 2785 \begin_inset CommandInset label
85     LatexCommand label
86     name "cha:physprops"
87 johnpye 825
88     \end_inset
89    
90    
91     \end_layout
92    
93     \begin_layout Standard
94     This chapter describes the models we provide to compute thermodynamic properties
95 jpye 2785 \begin_inset Index idx
96     status collapsed
97 johnpye 825
98 jpye 2785 \begin_layout Plain Layout
99     thermodynamic properties
100     \end_layout
101    
102 johnpye 825 \end_inset
103    
104     for multi-phase
105 jpye 2785 \begin_inset Index idx
106     status collapsed
107 johnpye 825
108 jpye 2785 \begin_layout Plain Layout
109     multi-phase
110     \end_layout
111    
112 johnpye 825 \end_inset
113    
114     , multi-component
115 jpye 2785 \begin_inset Index idx
116     status collapsed
117 johnpye 825
118 jpye 2785 \begin_layout Plain Layout
119     multi-component
120     \end_layout
121    
122 johnpye 825 \end_inset
123    
124     vapor/liquid mixtures
125 jpye 2785 \begin_inset Index idx
126     status collapsed
127 johnpye 825
128 jpye 2785 \begin_layout Plain Layout
129     vapor/liquid mixtures
130     \end_layout
131    
132 johnpye 825 \end_inset
133    
134     where we assume equilibrium exists among co-existing phases.
135    
136     \end_layout
137    
138     \begin_layout Section
139     A description of the libraries
140     \end_layout
141    
142     \begin_layout Standard
143     In this section we describe the three libraries,
144     \family typewriter
145     phases.a4l
146     \family default
147     ,
148     \family typewriter
149     components.a4l
150     \family default
151 jpye 2785 and
152 johnpye 825 \family typewriter
153 jpye 2785 thermodynamics.a4l
154 johnpye 825 \family default
155     .
156     These libraries contain many models, but the end user is only interested
157     in a few of them.
158     Our intention is that these few should be very simple to use, with the
159     complexities buried inside the models.
160     \end_layout
161    
162     \begin_layout Standard
163     \begin_inset Marginal
164     status collapsed
165    
166 jpye 2785 \begin_layout Plain Layout
167 johnpye 825 first the phase definitions
168     \end_layout
169    
170     \end_inset
171    
172     The first contains the models we use to define the phases we allow for a
173     mixture (i.e., vapor, liquid, vapor/liquid, liquid/liquid and vapor/liquid/liquid
174     )
175 jpye 2785 \begin_inset CommandInset ref
176     LatexCommand ref
177     reference "id:#id(pgfId-1010487)"
178 johnpye 825
179     \end_inset
180    
181    
182     \begin_inset Foot
183     status collapsed
184    
185 jpye 2785 \begin_layout Plain Layout
186 johnpye 825 It should be noted that, while the models will correctly set up the data
187     structures for the liquid/liquid and vapor/liquid/liquid options, we do
188     not really support these alternatives at this time.
189     \end_layout
190    
191     \end_inset
192    
193    
194     \noun off
195     .
196     \end_layout
197    
198     \begin_layout Standard
199     \begin_inset Marginal
200     status collapsed
201    
202 jpye 2785 \begin_layout Plain Layout
203 johnpye 825 then the components and their data
204     \end_layout
205    
206     \end_inset
207    
208     The second library contains the models having all the component physical
209     properties for the components we include with ASCEND -- e.g., there are property
210     values for heat capacity
211 jpye 2785 \begin_inset Index idx
212     status collapsed
213 johnpye 825
214 jpye 2785 \begin_layout Plain Layout
215     heat capacity
216     \end_layout
217    
218 johnpye 825 \end_inset
219    
220     , heat of vaporization
221 jpye 2785 \begin_inset Index idx
222     status collapsed
223 johnpye 825
224 jpye 2785 \begin_layout Plain Layout
225     heat of vaporization
226     \end_layout
227    
228 johnpye 825 \end_inset
229    
230     , accentric factor
231 jpye 2785 \begin_inset Index idx
232     status collapsed
233 johnpye 825
234 jpye 2785 \begin_layout Plain Layout
235     accentric factor
236     \end_layout
237    
238 johnpye 825 \end_inset
239    
240     and so forth for water, methanol, carbon dioxide, etc.
241     There is also the very extensive list of group contribution
242 jpye 2785 \begin_inset Index idx
243     status collapsed
244 johnpye 825
245 jpye 2785 \begin_layout Plain Layout
246     group contribution
247     \end_layout
248    
249 johnpye 825 \end_inset
250    
251     data we need to use the UNIFAC
252 jpye 2785 \begin_inset Index idx
253     status collapsed
254 johnpye 825
255 jpye 2785 \begin_layout Plain Layout
256     UNIFAC
257     \end_layout
258    
259 johnpye 825 \end_inset
260    
261     method.
262     \end_layout
263    
264     \begin_layout Standard
265     \begin_inset Marginal
266     status collapsed
267    
268 jpye 2785 \begin_layout Plain Layout
269 johnpye 825 and finally the mixture thermodynamic models
270     \end_layout
271    
272     \end_inset
273    
274     The third provides the models we use to compute multi-component mixture
275     thermodynamic properties for phases, such as ideal gas
276 jpye 2785 \begin_inset Index idx
277     status collapsed
278 johnpye 825
279 jpye 2785 \begin_layout Plain Layout
280     ideal gas
281     \end_layout
282    
283 johnpye 825 \end_inset
284    
285     , Pitzer
286 jpye 2785 \begin_inset Index idx
287     status collapsed
288 johnpye 825
289 jpye 2785 \begin_layout Plain Layout
290     Pitzer
291     \end_layout
292    
293 johnpye 825 \end_inset
294    
295     , UNIFAC, and Wilson
296 jpye 2785 \begin_inset Index idx
297     status collapsed
298 johnpye 825
299 jpye 2785 \begin_layout Plain Layout
300     Wilson
301     \end_layout
302    
303 johnpye 825 \end_inset
304    
305     .
306     The final model in this library is the one to compute equilibrium conditions
307     for multi-component, multi-phase systems.
308     We provide both a constant relative volatility
309 jpye 2785 \begin_inset Index idx
310     status collapsed
311 johnpye 825
312 jpye 2785 \begin_layout Plain Layout
313     relative volatility
314     \end_layout
315    
316 johnpye 825 \end_inset
317    
318     and a rigorous phase equilibrium model, with the ability to switch interactivel
319     y between which one to use.
320     Thus one can first assume constant relative volatility to have a better
321     chance to converge and then switch to the version that makes the chemical
322     potential
323 jpye 2785 \begin_inset Index idx
324     status collapsed
325 johnpye 825
326 jpye 2785 \begin_layout Plain Layout
327     chemical potential
328     \end_layout
329    
330 johnpye 825 \end_inset
331    
332     equal for a component in all phases.
333     \end_layout
334    
335     \begin_layout Subsection
336     The
337     \family typewriter
338     phases.a4l
339     \family default
340    
341 jpye 2785 \begin_inset Index idx
342     status collapsed
343 johnpye 825
344 jpye 2785 \begin_layout Plain Layout
345     phases.a4l
346     \end_layout
347    
348 johnpye 825 \end_inset
349    
350     library
351     \end_layout
352    
353     \begin_layout Standard
354     \begin_inset Marginal
355     status open
356    
357 jpye 2785 \begin_layout Plain Layout
358 johnpye 825 need to create only instances of phases_data
359     \end_layout
360    
361     \end_inset
362    
363     The
364     \family typewriter
365     Phases.a4l
366     \family default
367     library, see Figure
368 jpye 2785 \begin_inset CommandInset ref
369     LatexCommand ref
370     reference "fig:physprops.phases.a4l"
371 johnpye 825
372     \end_inset
373    
374    
375     \noun off
376     , has only one model in it, phases_data
377     \noun default
378    
379 jpye 2785 \begin_inset Index idx
380     status collapsed
381 johnpye 825
382 jpye 2785 \begin_layout Plain Layout
383     phases
384     \begin_inset ERT
385     status collapsed
386    
387     \begin_layout Plain Layout
388    
389    
390     \backslash
391     _
392     \end_layout
393    
394 johnpye 825 \end_inset
395    
396 jpye 2785 data
397     \end_layout
398 johnpye 825
399 jpye 2785 \end_inset
400    
401    
402 johnpye 825 \begin_inset Foot
403     status collapsed
404    
405 jpye 2785 \begin_layout Plain Layout
406 johnpye 825 In this and following figures, we represent each model as a rectangle.
407     On the upper left is the name of the model.
408     In
409 jpye 2785 \begin_inset CommandInset ref
410     LatexCommand ref
411     reference "fig:physprops.phases.a4l"
412 johnpye 825
413     \end_inset
414    
415    
416     \noun on
417     Figure 1-1
418     \noun off
419     , the model is phases_data.
420     On the left side we list in order the parameters for the model.
421     These are shared objects
422 jpye 2785 \begin_inset Index idx
423     status collapsed
424 johnpye 825
425 jpye 2785 \begin_layout Plain Layout
426     shared objects
427     \end_layout
428    
429 johnpye 825 \end_inset
430    
431     a model containing an instance of phases_data will pass to that instance.
432     An example would bepd IS_A phases_data(V, 'Pitzer_vapor_mixture', 'none',
433     'none')We list the parts defined locally within a model on the right side
434     of the rectangle, including instances of models, atoms and sets.
435     The slanted double-headed arrow indicates a set; thus, phases and other_phases
436     are sets in phases_data.In
437 jpye 2785 \begin_inset CommandInset ref
438     LatexCommand ref
439     reference "fig:physprops.thermoLib"
440 johnpye 825
441     \end_inset
442    
443    
444     \noun on
445     Figure 1-3
446     \noun off
447     we show lines connecting a model, call it A, to a part within another model,
448     call it B.part.
449     The connection is to the sides of both.
450     This type of connection says B.part is an instance of model A.
451     We also show connections from the bottom of one model, call it C, to the
452     top of another, call it D; with this connection we indicate that the lower
453     model D is a refinement
454 jpye 2785 \begin_inset Index idx
455     status collapsed
456 johnpye 825
457 jpye 2785 \begin_layout Plain Layout
458     refinement
459     \end_layout
460    
461 johnpye 825 \end_inset
462    
463     of the upper model C.
464     \end_layout
465    
466     \end_inset
467    
468    
469     \noun off
470     .
471     The user creates an instance of this model, specifying which phases are
472     to exist for a stream or holdup and which thermodynamic model the system
473     should use to compute mixture properties for each phase.
474     Compiling this instance then sets up the data structures required to characteri
475     ze those phases for the system.
476     \end_layout
477    
478     \begin_layout Standard
479     For example, suppose we want to model a flowsheet consisting of a single
480     flash unit.
481     Suppose further that we want to allow the feed to the flash unit to be
482     vapor, liquid or vapor/liquid (i.e., 2 phase).
483     The product streams from the flash unit will be a vapor phase mixture and
484     a liquid phase mixture.
485     We would define three instances of the phases_data model, one for each
486     type of phase condition we wish to model.
487     You can find the following statements in the model
488     \family typewriter
489     testflashmodel
490     \family default
491    
492 jpye 2785 \begin_inset Index idx
493     status collapsed
494 johnpye 825
495 jpye 2785 \begin_layout Plain Layout
496     testflashmodel
497     \end_layout
498    
499 johnpye 825 \end_inset
500    
501     in the library
502     \family typewriter
503     flash.a4l
504     \family default
505    
506 jpye 2785 \begin_inset Index idx
507     status collapsed
508 johnpye 825
509 jpye 2785 \begin_layout Plain Layout
510     flash.a4l
511     \end_layout
512    
513 johnpye 825 \end_inset
514    
515     .
516     \end_layout
517    
518     \begin_layout LyX-Code
519     pdV IS_A phases_data('V', 'ideal_vapor_mixture',
520     \end_layout
521    
522     \begin_layout LyX-Code
523     'none', 'none');
524     \end_layout
525    
526     \begin_layout LyX-Code
527     pdL IS_A phases_data('L', 'none',
528     \end_layout
529    
530     \begin_layout LyX-Code
531     'UNIFAC_liquid_mixture', 'none');
532     \end_layout
533    
534     \begin_layout LyX-Code
535     pdVL IS_A phases_data('VL', 'ideal_vapor_mixture',
536     \end_layout
537    
538     \begin_layout LyX-Code
539     'UNIFAC_liquid_mixture','none');
540     \end_layout
541    
542     \begin_layout Standard
543     When compiled,
544     \family typewriter
545     pdV
546     \family default
547     ,
548     \family typewriter
549     pdL
550     \family default
551     and
552     \family typewriter
553     pdVL
554     \family default
555     contain the data structures the thermodynamic models require to model a
556     vapor, liquid and vapor/liquid stream
557 jpye 2785 \begin_inset Index idx
558     status collapsed
559 johnpye 825
560 jpye 2785 \begin_layout Plain Layout
561     stream
562     \end_layout
563    
564 johnpye 825 \end_inset
565    
566     (or holdup
567 jpye 2785 \begin_inset Index idx
568     status collapsed
569 johnpye 825
570 jpye 2785 \begin_layout Plain Layout
571     holdup
572     \end_layout
573    
574 johnpye 825 \end_inset
575    
576     ).
577     \end_layout
578    
579     \begin_layout Standard
580     \begin_inset Marginal
581     status collapsed
582    
583 jpye 2785 \begin_layout Plain Layout
584 johnpye 825 the phase indicators and types
585     \end_layout
586    
587     \end_inset
588    
589     The first parameter is a character that indicates the phase option desired
590     -
591     \family typewriter
592     'M'
593     \family default
594     ,
595     \family typewriter
596     'V'
597     \family default
598     ,
599     \family typewriter
600     'L'
601     \family default
602     ,
603     \family typewriter
604     'VL'
605     \family default
606 jpye 2785 ,
607 johnpye 825 \family typewriter
608 jpye 2785 'LL'
609 johnpye 825 \family default
610     and
611     \family typewriter
612     'VLL'
613     \family default
614     .
615    
616     \family typewriter
617     'M'
618     \family default
619     is for a material only stream (no thermodynamic properties are to be computed),
620    
621     \family typewriter
622     'V'
623     \family default
624     is for vapor and
625     \family typewriter
626     'L'
627     \family default
628     for liquid.
629     This model always expects the user to supply in the last three parameters
630     an ordered list giving the three single phase mixture models to be used:
631     vapor, liquid1, liquid2.
632     For a non-existent phase
633 jpye 2785 \begin_inset Index idx
634     status collapsed
635 johnpye 825
636 jpye 2785 \begin_layout Plain Layout
637     non-existent phase
638     \end_layout
639    
640 johnpye 825 \end_inset
641    
642     , the user should supply 'none' as the model.
643     If there is only one liquid phase, liquid2 will not exist.
644     The allowed models we can use to estimate multi-component phase mixture
645     properties are in the third of the libraries we describe in this chapter,
646    
647     \family typewriter
648     thermodynamics.a4l
649     \family default
650    
651 jpye 2785 \begin_inset Index idx
652     status collapsed
653 johnpye 825
654 jpye 2785 \begin_layout Plain Layout
655     thermodynamics.a4l
656     \end_layout
657    
658 johnpye 825 \end_inset
659    
660     , which we discuss shortly in Section
661 jpye 2785 \begin_inset CommandInset ref
662     LatexCommand ref
663     reference "ssec:physprops.thermoLib"
664 johnpye 825
665     \end_inset
666    
667    
668     \noun off
669     .
670     \end_layout
671    
672     \begin_layout Standard
673     \begin_inset Float figure
674     wide false
675     sideways false
676     status open
677    
678 jpye 2785 \begin_layout Plain Layout
679 johnpye 825
680     \noun off
681     \begin_inset Graphics
682     filename howto-physpropsFig1.eps
683     width 90col%
684    
685     \end_inset
686    
687    
688     \end_layout
689    
690 jpye 2785 \begin_layout Plain Layout
691     \begin_inset Caption Standard
692    
693     \begin_layout Plain Layout
694 johnpye 825 Phases.a4l
695 jpye 2785 \begin_inset Index idx
696     status collapsed
697 johnpye 825
698 jpye 2785 \begin_layout Plain Layout
699     Phases.a4l
700     \end_layout
701    
702 johnpye 825 \end_inset
703    
704     models
705 jpye 2785 \begin_inset CommandInset label
706     LatexCommand label
707     name "fig:physprops.phases.a4l"
708 johnpye 825
709     \end_inset
710    
711    
712     \end_layout
713    
714     \end_inset
715    
716    
717     \end_layout
718    
719 jpye 2785 \end_inset
720    
721    
722     \end_layout
723    
724 johnpye 825 \begin_layout Subsection
725     The
726     \family typewriter
727     components.a4l
728     \family default
729    
730 jpye 2785 \begin_inset Index idx
731     status collapsed
732 johnpye 825
733 jpye 2785 \begin_layout Plain Layout
734     components.a4l
735     \end_layout
736    
737 johnpye 825 \end_inset
738    
739     library
740     \end_layout
741    
742     \begin_layout Standard
743     In this library (see Figure
744 jpye 2785 \begin_inset CommandInset ref
745     LatexCommand ref
746     reference "fig:physprops.components.a4l"
747 johnpye 825
748     \end_inset
749    
750    
751     \noun off
752     ) we provide the actual physical property data for the components supplied
753     with ASCEND.
754     The data we provide is that found in the tables at the back of Reid
755 jpye 2785 \begin_inset Index idx
756     status collapsed
757 johnpye 825
758 jpye 2785 \begin_layout Plain Layout
759     Reid
760     \end_layout
761    
762 johnpye 825 \end_inset
763    
764     , Prausnitz
765 jpye 2785 \begin_inset Index idx
766     status collapsed
767 johnpye 825
768 jpye 2785 \begin_layout Plain Layout
769     Prausnitz
770     \end_layout
771    
772 johnpye 825 \end_inset
773    
774     and Poling
775 jpye 2785 \begin_inset Index idx
776     status collapsed
777 johnpye 825
778 jpye 2785 \begin_layout Plain Layout
779     Poling
780     \end_layout
781    
782 johnpye 825 \end_inset
783    
784     , The Properties of Vapors
785     \noun default
786     &
787     \noun off
788     Liquids, 4th Ed, McGraw-Hill
789 jpye 2785 \begin_inset Index idx
790     status collapsed
791 johnpye 825
792 jpye 2785 \begin_layout Plain Layout
793     McGraw-Hill
794     \end_layout
795    
796 johnpye 825 \end_inset
797    
798     , New York (1986).
799     For a few of the components, we have also identified their UNIFAC groups
800 jpye 2785 \begin_inset Index idx
801     status collapsed
802 johnpye 825
803 jpye 2785 \begin_layout Plain Layout
804     UNIFAC groups
805     \end_layout
806    
807 johnpye 825 \end_inset
808    
809     .
810     We include a few Wilson binary mixture parameters
811 jpye 2785 \begin_inset Index idx
812     status collapsed
813 johnpye 825
814 jpye 2785 \begin_layout Plain Layout
815     Wilson binary mixture parameters
816     \end_layout
817    
818 johnpye 825 \end_inset
819    
820     .
821     \end_layout
822    
823     \begin_layout Standard
824     \begin_inset Marginal
825     status collapsed
826    
827 jpye 2785 \begin_layout Plain Layout
828 johnpye 825 need to create only instances of components_data
829     \end_layout
830    
831     \end_inset
832    
833     The purpose of this library is similar to the
834     \family typewriter
835     phases.a4l
836     \family default
837     library.
838     We wish to provide an easy-to-use model that will set up the data structures
839     for the components in a mixture that the thermodynamic models will use
840     when estimating mixture physical properties.
841     All the user has to do is create an instance of the bottom-most model
842     \family typewriter
843     components_data
844     \family default
845     , passing into it a list of the components in the mixture and the name of
846     one of them which is to serve as the reference component.
847     This model, having parts which are instances of the others present in this
848     library, then compiles into the needed data structures.
849     \end_layout
850    
851     \begin_layout Standard
852     An example of use is found in the model
853     \family typewriter
854     testflashmodel
855     \family default
856     in the library
857     \family typewriter
858     flash.a4l
859     \family default
860    
861 jpye 2785 \begin_inset Index idx
862     status collapsed
863 johnpye 825
864 jpye 2785 \begin_layout Plain Layout
865     flash.a4l
866     \end_layout
867    
868 johnpye 825 \end_inset
869    
870     :
871     \end_layout
872    
873     \begin_layout LyX-Code
874     cd IS_A components_data(['n_pentane','n_hexane',
875     \end_layout
876    
877     \begin_layout LyX-Code
878     'n_heptane'],'n_heptane');
879     \end_layout
880    
881     \begin_layout Standard
882     When compiled
883     \family typewriter
884     cd
885     \family default
886     has in it a data structure containing the physical properties for the three
887     species listed.
888     \end_layout
889    
890     \begin_layout Standard
891     \begin_inset Marginal
892     status collapsed
893    
894 jpye 2785 \begin_layout Plain Layout
895 johnpye 825 reference component
896     \end_layout
897    
898     \end_inset
899    
900     The choice of which species to use as the reference component
901 jpye 2785 \begin_inset Index idx
902     status collapsed
903 johnpye 825
904 jpye 2785 \begin_layout Plain Layout
905     reference component
906     \end_layout
907    
908 johnpye 825 \end_inset
909    
910     is up to the user.
911     Usually a good choice is one that is plentiful in the mixture, but that
912     need not be so.
913    
914     \end_layout
915    
916     \begin_layout Standard
917     \begin_inset Float figure
918     wide false
919     sideways false
920     status open
921    
922 jpye 2785 \begin_layout Plain Layout
923 johnpye 825 \begin_inset Graphics
924     filename howto-physpropsFig2.eps
925     width 100col%
926    
927     \end_inset
928    
929    
930     \end_layout
931    
932 jpye 2785 \begin_layout Plain Layout
933     \begin_inset Caption Standard
934    
935     \begin_layout Plain Layout
936 johnpye 825 components.a4l
937 jpye 2785 \begin_inset Index idx
938     status collapsed
939 johnpye 825
940 jpye 2785 \begin_layout Plain Layout
941     components.a4l
942     \end_layout
943    
944 johnpye 825 \end_inset
945    
946     models
947 jpye 2785 \begin_inset CommandInset label
948     LatexCommand label
949     name "fig:physprops.components.a4l"
950 johnpye 825
951     \end_inset
952    
953    
954     \end_layout
955    
956     \end_inset
957    
958    
959     \end_layout
960    
961 jpye 2785 \end_inset
962    
963    
964     \end_layout
965    
966 johnpye 825 \begin_layout Standard
967     \begin_inset Marginal
968     status collapsed
969    
970 jpye 2785 \begin_layout Plain Layout
971 johnpye 825 adding a new component
972     \end_layout
973    
974     \end_inset
975    
976     One can add more components to this library as follows:
977     \end_layout
978    
979     \begin_layout Enumerate
980     add the name of the new component to the list of supported_components at
981     the beginning of the model
982     \family typewriter
983     td_thermodynamic_constants
984     \family default
985     (part of the
986     \family typewriter
987     WHERE
988     \family default
989     statement that causes the system to output a diagnostic if someone subsequently
990     misspells the name of a component)
991     \end_layout
992    
993     \begin_layout Enumerate
994     add the component data as a
995     \family typewriter
996     CASE
997     \family default
998     to the
999     \family typewriter
1000     SELECT
1001     \family default
1002     statement in
1003     \family typewriter
1004    
1005 jpye 2785 \begin_inset Newline newline
1006     \end_inset
1007    
1008 johnpye 825 td_thermodynamic_constants
1009     \family default
1010     (for an example, look at how it is done for 'methanol')
1011     \end_layout
1012    
1013     \begin_layout Standard
1014     \begin_inset Marginal
1015     status collapsed
1016    
1017 jpye 2785 \begin_layout Plain Layout
1018 johnpye 825 adding UNIFAC group identifiers
1019     \end_layout
1020    
1021     \end_inset
1022    
1023     Put the UNIFAC group identifiers
1024 jpye 2785 \begin_inset Index idx
1025     status collapsed
1026 johnpye 825
1027 jpye 2785 \begin_layout Plain Layout
1028     UNIFAC group identifiers
1029     \end_layout
1030    
1031 johnpye 825 \end_inset
1032    
1033     for the new component into the set subgroups.
1034     To illustrate, this statement for methanol is:
1035     \end_layout
1036    
1037     \begin_layout LyX-Code
1038     subgroups:== ['CH3', 'OH'];
1039     \end_layout
1040    
1041     \begin_layout Standard
1042     You can find all the UNIFAC group identifiers possible in the model
1043     \family typewriter
1044     UNIFAC_constants
1045     \family default
1046    
1047 jpye 2785 \begin_inset Index idx
1048     status collapsed
1049 johnpye 825
1050 jpye 2785 \begin_layout Plain Layout
1051     UNIFAC
1052     \begin_inset ERT
1053     status collapsed
1054    
1055     \begin_layout Plain Layout
1056    
1057    
1058     \backslash
1059     _
1060     \end_layout
1061    
1062 johnpye 825 \end_inset
1063    
1064 jpye 2785 constants
1065     \end_layout
1066    
1067     \end_inset
1068    
1069 johnpye 825 .
1070     Then fill in the vector
1071     \family typewriter
1072     nu
1073     \family default
1074     with a value for each of these groups (to indicate how many such groups
1075     are in the molecule).
1076     To illustrate, the values for methanol are:
1077     \end_layout
1078    
1079     \begin_layout LyX-Code
1080     nu['CH3']:==1;
1081     \end_layout
1082    
1083     \begin_layout LyX-Code
1084     nu['OH']:==1;
1085     \end_layout
1086    
1087     \begin_layout Standard
1088     If you are entering the component without identifying its UNIFAC groups,
1089     then enter the subgroups statement and define it as empty -- i.e., write
1090     \end_layout
1091    
1092     \begin_layout LyX-Code
1093     subgroups:== [ ];
1094     \end_layout
1095    
1096     \begin_layout Standard
1097     There should then be no entry for nu (see the
1098     \family typewriter
1099     CASE
1100     \family default
1101     for hydrogen, for example).
1102     An activity coefficient estimated by the UNIFAC method will be unity for
1103     such a component.
1104     \end_layout
1105    
1106     \begin_layout Standard
1107     \begin_inset Marginal
1108     status collapsed
1109    
1110 jpye 2785 \begin_layout Plain Layout
1111 johnpye 825 adding Wilson parameters
1112     \end_layout
1113    
1114     \end_inset
1115    
1116     To add Wilson parameters
1117 jpye 2785 \begin_inset Index idx
1118     status collapsed
1119 johnpye 825
1120 jpye 2785 \begin_layout Plain Layout
1121     Wilson parameters
1122     \end_layout
1123    
1124 johnpye 825 \end_inset
1125    
1126     , first fill in the names of the other components for which you are adding
1127     data into the set
1128     \family typewriter
1129     wilson_set
1130     \family default
1131     .
1132     For example, this set for methanol might be:
1133     \end_layout
1134    
1135     \begin_layout LyX-Code
1136     wilson_set:== ['H2O','(CH3)2CO','CH3OH'];
1137     \end_layout
1138    
1139     \begin_layout Standard
1140     Then fill in lambda and energy parameters into the arrays
1141     \family typewriter
1142     lambda
1143     \family default
1144     and
1145     \family typewriter
1146     del_ip
1147     \family default
1148     , one for each of the other components.
1149     Again, to illustrate, these arrays for methanol would be:
1150     \end_layout
1151    
1152     \begin_layout LyX-Code
1153     lambda['H2O']:==0.43045;
1154     \end_layout
1155    
1156     \begin_layout LyX-Code
1157     lambda['(CH3)2CO']:==0.77204;
1158     \end_layout
1159    
1160     \begin_layout LyX-Code
1161     lambda['CH3OH']:==1.0;
1162     \end_layout
1163    
1164     \begin_layout LyX-Code
1165     del_ip['(CH3)2CO']:==2.6493E+002 {J/g_mole};
1166     \end_layout
1167    
1168     \begin_layout LyX-Code
1169     del_ip['H2O']:==1.1944E+002 {J/g_mole};
1170     \end_layout
1171    
1172     \begin_layout LyX-Code
1173     del_ip['CH3OH']:==0.0 {J/g_mole};
1174     \end_layout
1175    
1176     \begin_layout Standard
1177     Finally for each of these other components, go to its
1178     \family typewriter
1179     CASE
1180     \family default
1181     statement, add the name of the new component to its wilson_set and then
1182     add statements to set the corresponding lambda and energy data.
1183     BEN, IS THIS RIGHT????If you are not adding any Wilson data, enter the
1184     statement:
1185     \end_layout
1186    
1187     \begin_layout LyX-Code
1188     wilson_set:== [ ];
1189     \end_layout
1190    
1191     \begin_layout Subsection
1192     The
1193     \family typewriter
1194     thermodynamics.a4l
1195     \family default
1196    
1197 jpye 2785 \begin_inset Index idx
1198     status collapsed
1199 johnpye 825
1200 jpye 2785 \begin_layout Plain Layout
1201     thermodynamics.a4l
1202     \end_layout
1203    
1204 johnpye 825 \end_inset
1205    
1206     library
1207 jpye 2785 \begin_inset CommandInset label
1208     LatexCommand label
1209     name "ssec:physprops.thermoLib"
1210 johnpye 825
1211     \end_inset
1212    
1213    
1214     \end_layout
1215    
1216     \begin_layout Standard
1217     \begin_inset Marginal
1218     status collapsed
1219    
1220 jpye 2785 \begin_layout Plain Layout
1221 johnpye 825 create instances only of phase_partials and thermodynamics
1222     \end_layout
1223    
1224     \end_inset
1225    
1226     Figure
1227 jpye 2785 \begin_inset CommandInset ref
1228     LatexCommand ref
1229     reference "fig:physprops.thermoLib"
1230 johnpye 825
1231     \end_inset
1232    
1233    
1234     \noun off
1235     shows all the models in this library and how they are related to each other.
1236     There are two models in this library that the user has to worry about:
1237    
1238     \family typewriter
1239     \noun default
1240     phase_partials
1241     \family default
1242     \noun off
1243    
1244 jpye 2785 \begin_inset Index idx
1245     status collapsed
1246 johnpye 825
1247 jpye 2785 \begin_layout Plain Layout
1248     phase
1249     \begin_inset ERT
1250     status collapsed
1251    
1252     \begin_layout Plain Layout
1253    
1254    
1255     \backslash
1256     _
1257     \end_layout
1258    
1259 johnpye 825 \end_inset
1260    
1261 jpye 2785 partials
1262     \end_layout
1263    
1264     \end_inset
1265    
1266 johnpye 825 and
1267     \family typewriter
1268     \noun default
1269     thermodynamics
1270     \family default
1271     \noun off
1272     .
1273     The user creates one instance of thermodynamics for every stream or holdup
1274     in a process model.
1275     Each instance, when compiled has parts which are instances of the other
1276     models in this library and which are create the equations to compute the
1277     thermodynamic properties for a multi-component, multi-phase mixture.
1278     \end_layout
1279    
1280     \begin_layout Standard
1281     However, the user must pass each instance of a thermodynamics model an array
1282     of instances of
1283     \family typewriter
1284     phase_partials
1285     \family default
1286     , one for each phase in the mixture.
1287     One
1288     \family typewriter
1289     phase_partials
1290     \family default
1291     model must exist for each phase in each stream or holdup in the process
1292     model as it provides the equations modeling that phase.
1293    
1294     \end_layout
1295    
1296     \begin_layout Standard
1297     \begin_inset Note Note
1298     status collapsed
1299    
1300 jpye 2785 \begin_layout Plain Layout
1301 johnpye 825 Need to explain UNIFAC, Pitzer etc, since these terms are not familiar to
1302     the Mechanical Engineer, and no details are provided as to which is appropriate
1303     for which types of problems.
1304     \end_layout
1305    
1306 jpye 2785 \begin_layout Plain Layout
1307 johnpye 825 Also, it would be useful to know how to model a homogenous two-phase stream
1308     of gas/liquid mixture of a single component.
1309     \end_layout
1310    
1311 jpye 2785 \begin_layout Plain Layout
1312 johnpye 825 Also, the documentation needs a 'hello world' example of how to use the
1313     properties correlation, eg how to compute the enthalpy of water at room
1314     temperature / atmospheric pressure.
1315     \end_layout
1316    
1317     \end_inset
1318    
1319    
1320     \end_layout
1321    
1322     \begin_layout Standard
1323     Each of the models in the array of
1324     \family typewriter
1325     phase_partials
1326     \family default
1327     must be refined to be one of the possible models for computing properties
1328     for a single phase mixture, i.e., one of the models lying below the
1329     \family typewriter
1330     phase_paritals
1331     \family default
1332     model in Figure
1333 jpye 2785 \begin_inset CommandInset ref
1334     LatexCommand ref
1335     reference "fig:physprops.thermoLib"
1336 johnpye 825
1337     \end_inset
1338    
1339    
1340     \noun off
1341     :
1342     \family typewriter
1343     \noun default
1344     ideal_vapor_mixture
1345     \family default
1346     \noun off
1347    
1348 jpye 2785 \begin_inset Index idx
1349     status collapsed
1350 johnpye 825
1351 jpye 2785 \begin_layout Plain Layout
1352     ideal
1353     \begin_inset ERT
1354     status collapsed
1355    
1356     \begin_layout Plain Layout
1357    
1358    
1359     \backslash
1360     _
1361     \end_layout
1362    
1363 johnpye 825 \end_inset
1364    
1365 jpye 2785 vapor
1366     \begin_inset ERT
1367     status collapsed
1368    
1369     \begin_layout Plain Layout
1370    
1371    
1372     \backslash
1373     _
1374     \end_layout
1375    
1376     \end_inset
1377    
1378     mixture
1379     \end_layout
1380    
1381     \end_inset
1382    
1383 johnpye 825 ,
1384     \family typewriter
1385     \noun default
1386     Pitzer_vapor_mixture
1387     \family default
1388     \noun off
1389    
1390 jpye 2785 \begin_inset Index idx
1391     status collapsed
1392 johnpye 825
1393 jpye 2785 \begin_layout Plain Layout
1394     Pitzer
1395     \begin_inset ERT
1396     status collapsed
1397    
1398     \begin_layout Plain Layout
1399    
1400    
1401     \backslash
1402     _
1403     \end_layout
1404    
1405 johnpye 825 \end_inset
1406    
1407 jpye 2785 vapor
1408     \begin_inset ERT
1409     status collapsed
1410    
1411     \begin_layout Plain Layout
1412    
1413    
1414     \backslash
1415     _
1416     \end_layout
1417    
1418     \end_inset
1419    
1420     mixture
1421     \end_layout
1422    
1423     \end_inset
1424    
1425 johnpye 825 ,
1426     \family typewriter
1427     \noun default
1428     UNIFAC_liquid_mixture
1429     \family default
1430     \noun off
1431    
1432 jpye 2785 \begin_inset Index idx
1433     status collapsed
1434 johnpye 825
1435 jpye 2785 \begin_layout Plain Layout
1436     UNIFAC
1437     \begin_inset ERT
1438     status collapsed
1439    
1440     \begin_layout Plain Layout
1441    
1442    
1443     \backslash
1444     _
1445     \end_layout
1446    
1447 johnpye 825 \end_inset
1448    
1449 jpye 2785 liquid
1450     \begin_inset ERT
1451     status collapsed
1452    
1453     \begin_layout Plain Layout
1454    
1455    
1456     \backslash
1457     _
1458     \end_layout
1459    
1460     \end_inset
1461    
1462     mixture
1463     \end_layout
1464    
1465     \end_inset
1466    
1467 johnpye 825 or
1468     \family typewriter
1469     \noun default
1470     Wilson_liquid_mixture
1471     \family default
1472     \noun off
1473    
1474 jpye 2785 \begin_inset Index idx
1475     status collapsed
1476 johnpye 825
1477 jpye 2785 \begin_layout Plain Layout
1478     Wilson
1479     \begin_inset ERT
1480     status collapsed
1481    
1482     \begin_layout Plain Layout
1483    
1484    
1485     \backslash
1486     _
1487     \end_layout
1488    
1489 johnpye 825 \end_inset
1490    
1491 jpye 2785 liquid
1492     \begin_inset ERT
1493     status collapsed
1494    
1495     \begin_layout Plain Layout
1496    
1497    
1498     \backslash
1499     _
1500     \end_layout
1501    
1502     \end_inset
1503    
1504     mixture
1505     \end_layout
1506    
1507     \end_inset
1508    
1509 johnpye 825 .
1510     \end_layout
1511    
1512     \begin_layout Standard
1513     \begin_inset Float figure
1514     wide false
1515     sideways false
1516     status open
1517    
1518 jpye 2785 \begin_layout Plain Layout
1519 johnpye 825
1520     \noun off
1521     \begin_inset Graphics
1522     filename howto-physpropsFig3.eps
1523     lyxscale 50
1524     width 100col%
1525    
1526     \end_inset
1527    
1528    
1529     \end_layout
1530    
1531 jpye 2785 \begin_layout Plain Layout
1532     \begin_inset Caption Standard
1533    
1534     \begin_layout Plain Layout
1535 johnpye 825 Models in thermodynamic.a4l
1536 jpye 2785 \begin_inset CommandInset label
1537     LatexCommand label
1538     name "fig:physprops.thermoLib"
1539 johnpye 825
1540     \end_inset
1541    
1542    
1543     \end_layout
1544    
1545     \end_inset
1546    
1547    
1548     \end_layout
1549    
1550 jpye 2785 \end_inset
1551    
1552    
1553     \end_layout
1554    
1555 johnpye 825 \begin_layout Standard
1556     The information in an instance of a
1557     \family typewriter
1558     phases_data
1559     \family default
1560     model allows us to construct this array of
1561     \family typewriter
1562     phase_partials
1563     \family default
1564     .
1565     We extract the following code from the library
1566     \family typewriter
1567     stream_holdup.a4l
1568     \family default
1569    
1570 jpye 2785 \begin_inset Index idx
1571     status collapsed
1572 johnpye 825
1573 jpye 2785 \begin_layout Plain Layout
1574     stream
1575     \begin_inset ERT
1576     status collapsed
1577    
1578     \begin_layout Plain Layout
1579    
1580    
1581     \backslash
1582     _
1583     \end_layout
1584    
1585 johnpye 825 \end_inset
1586    
1587 jpye 2785 holdup.a4l
1588     \end_layout
1589    
1590     \end_inset
1591    
1592 johnpye 825 to illustrate how we have created such a model, given a
1593     \family typewriter
1594     phases_data
1595     \family default
1596     model.
1597     \end_layout
1598    
1599     \begin_layout LyX-Code
1600     MODEL select_mixture_type
1601 jpye 2785 \begin_inset Index idx
1602     status collapsed
1603 johnpye 825
1604 jpye 2785 \begin_layout Plain Layout
1605     select
1606     \begin_inset ERT
1607     status collapsed
1608    
1609     \begin_layout Plain Layout
1610    
1611    
1612     \backslash
1613     _
1614     \end_layout
1615    
1616 johnpye 825 \end_inset
1617    
1618 jpye 2785 mixture
1619     \begin_inset ERT
1620     status collapsed
1621    
1622     \begin_layout Plain Layout
1623    
1624    
1625     \backslash
1626     _
1627     \end_layout
1628    
1629     \end_inset
1630    
1631     type
1632     \end_layout
1633    
1634     \end_inset
1635    
1636 johnpye 825 (
1637     \end_layout
1638    
1639     \begin_layout LyX-Code
1640     cd WILL_BE components_data;
1641     \end_layout
1642    
1643     \begin_layout LyX-Code
1644     type WILL_BE symbol_constant;
1645     \end_layout
1646    
1647     \begin_layout LyX-Code
1648     ) REFINES sh_base;
1649     \end_layout
1650    
1651     \begin_layout LyX-Code
1652     phase IS_A phase_partials(cd);
1653     \end_layout
1654    
1655     \begin_layout LyX-Code
1656     SELECT (type)
1657     \end_layout
1658    
1659     \begin_layout LyX-Code
1660     CASE 'ideal_vapor_mixture':
1661     \end_layout
1662    
1663     \begin_layout LyX-Code
1664     phase IS_REFINED_TO ideal_vapor_mixture(cd);
1665     \end_layout
1666    
1667     \begin_layout LyX-Code
1668     CASE 'Pitzer_vapor_mixture':
1669     \end_layout
1670    
1671     \begin_layout LyX-Code
1672     phase IS_REFINED_TO Pitzer_vapor_mixture(cd);
1673     \end_layout
1674    
1675     \begin_layout LyX-Code
1676     CASE 'UNIFAC_liquid_mixture':
1677     \end_layout
1678    
1679     \begin_layout LyX-Code
1680     phase IS_REFINED_TO UNIFAC_liquid_mixture(cd);
1681     \end_layout
1682    
1683     \begin_layout LyX-Code
1684     CASE 'Wilson_liquid_mixture':
1685     \end_layout
1686    
1687     \begin_layout LyX-Code
1688     phase IS_REFINED_TO Wilson_liquid_mixture(cd);
1689     \end_layout
1690    
1691     \begin_layout LyX-Code
1692     OTHERWISE:
1693     \end_layout
1694    
1695     \begin_layout LyX-Code
1696     END SELECT;
1697     \end_layout
1698    
1699     \begin_layout LyX-Code
1700     boundwidth IS_A bound_width;
1701     \end_layout
1702    
1703     \begin_layout LyX-Code
1704     ...
1705     \end_layout
1706    
1707     \begin_layout LyX-Code
1708     ...
1709     \end_layout
1710    
1711     \begin_layout LyX-Code
1712     ...
1713     \end_layout
1714    
1715     \begin_layout LyX-Code
1716    
1717     \end_layout
1718    
1719     \begin_layout LyX-Code
1720     END select_mixture_type;
1721     \end_layout
1722    
1723     \begin_layout LyX-Code
1724    
1725     \end_layout
1726    
1727     \begin_layout LyX-Code
1728     MODEL stream( .......
1729     \end_layout
1730    
1731     \begin_layout LyX-Code
1732     ...
1733     \end_layout
1734    
1735     \begin_layout LyX-Code
1736     ...
1737     \end_layout
1738    
1739     \begin_layout LyX-Code
1740     ...
1741     \end_layout
1742    
1743     \begin_layout LyX-Code
1744    
1745     \end_layout
1746    
1747     \begin_layout LyX-Code
1748     FOR j IN phases CREATE
1749     \end_layout
1750    
1751     \begin_layout LyX-Code
1752     smt[j] IS_A select_mixture_type(cd, pd.phase_type[j]);
1753     \end_layout
1754    
1755     \begin_layout LyX-Code
1756     END FOR;
1757     \end_layout
1758    
1759     \begin_layout LyX-Code
1760     FOR j IN phases CREATE
1761     \end_layout
1762    
1763     \begin_layout LyX-Code
1764     phase[j] ALIASES smt[j].phase;
1765     \end_layout
1766    
1767     \begin_layout LyX-Code
1768     END FOR;
1769     \end_layout
1770    
1771     \begin_layout LyX-Code
1772     state IS_A thermodynamics(cd, pd, phase, equilibrated);
1773     \end_layout
1774    
1775     \begin_layout LyX-Code
1776     ...
1777     \end_layout
1778    
1779     \begin_layout LyX-Code
1780     ...
1781     \end_layout
1782    
1783     \begin_layout LyX-Code
1784     ...
1785     \end_layout
1786    
1787     \begin_layout LyX-Code
1788     ...
1789     \end_layout
1790    
1791     \begin_layout Standard
1792     \begin_inset Marginal
1793     status collapsed
1794    
1795 jpye 2785 \begin_layout Plain Layout
1796 johnpye 825 cannot directly embed SELECT statements in FOR loops
1797     \end_layout
1798    
1799     \end_inset
1800    
1801     We had to be a bit tricky, but we hope we have not been so devious that
1802     you cannot understand what we have done if we explain it to you here.
1803     Look first at the code we extracted from the model stream.
1804     The models
1805     \family typewriter
1806     cd
1807     \family default
1808     and
1809     \family typewriter
1810     pd
1811     \family default
1812     are instances of a
1813     \family typewriter
1814     components_data
1815     \family default
1816     and a
1817     \family typewriter
1818     phases_data
1819     \family default
1820     model respectively.
1821     If we look inside
1822     \family typewriter
1823     pd
1824     \family default
1825     , we will find it contains an array called
1826     \family typewriter
1827     phase_type
1828     \family default
1829     , with one entry for each phase that gives the type (name) of the model
1830     to be used to set up the equations for that phase.
1831     ASCEND does not allow
1832     \family typewriter
1833     SELECT
1834     \family default
1835     statements
1836 jpye 2785 \begin_inset Index idx
1837     status collapsed
1838 johnpye 825
1839 jpye 2785 \begin_layout Plain Layout
1840     SELECT statements.
1841     embedded in FOR
1842     \end_layout
1843    
1844 johnpye 825 \end_inset
1845    
1846     to be embedded directly within a
1847     \family typewriter
1848     FOR
1849     \family default
1850     loop -- thus we need a bit of deviousness.
1851     For each phase j we create
1852     \family typewriter
1853     smt[j]
1854     \family default
1855     as an instance of a
1856     \family typewriter
1857     select_mixture_type
1858     \family default
1859     model.
1860     We parameterize the
1861     \family typewriter
1862     select_mixture_type
1863     \family default
1864     with the components data
1865     \family typewriter
1866     cd
1867     \family default
1868     and the type (name)
1869     \family typewriter
1870     pd.phase_type[j]
1871     \family default
1872     of the model to be used to generate its equations.
1873     Then we embed the select statement within the
1874     \family typewriter
1875     select_mixture_type
1876     \family default
1877     model, something ASCEND does allow.
1878     \end_layout
1879    
1880     \begin_layout Standard
1881     The model
1882     \family typewriter
1883     select_mixture_type
1884     \family default
1885     appears first in this code.
1886     It uses the type (name) it is passed to select and then to instance the
1887     desired refinement of the
1888     \family typewriter
1889     phase_partials
1890     \family default
1891     model.
1892    
1893     \end_layout
1894    
1895     \begin_layout Standard
1896     Returning to the code extracted from the flash model, the second
1897     \family typewriter
1898     FOR
1899     \family default
1900     loop creates the desired array by aliasing the array element
1901     \family typewriter
1902     phase[j]
1903     \family default
1904     with the phase model created within the corresponding
1905     \family typewriter
1906     smt
1907     \family default
1908     instance.
1909     \end_layout
1910    
1911     \begin_layout Standard
1912     \begin_inset Marginal
1913     status open
1914    
1915 jpye 2785 \begin_layout Plain Layout
1916 johnpye 825 disappearing phases
1917 jpye 2785 \begin_inset Index idx
1918     status collapsed
1919 johnpye 825
1920 jpye 2785 \begin_layout Plain Layout
1921     disappearing phases
1922     \end_layout
1923    
1924 johnpye 825 \end_inset
1925    
1926    
1927     \end_layout
1928    
1929     \end_inset
1930    
1931     The multi-phase model handles the case where a phase disappears by using
1932     a complementarity
1933 jpye 2785 \begin_inset Index idx
1934     status collapsed
1935 johnpye 825
1936 jpye 2785 \begin_layout Plain Layout
1937     complementarity
1938     \end_layout
1939    
1940 johnpye 825 \end_inset
1941    
1942     formulation.
1943     This formulation relaxes the constraint for a phase that its mole fractions
1944     must sum to unity when it disappears.
1945     Thus the vapor/liquid model will correctly alter the model to handle the
1946     situation when the mixture becomes a superheated vapor or a subcooled liquid.
1947     \end_layout
1948    
1949     \begin_layout Standard
1950     We are now ready to create an instance of a thermodynamics model.
1951     When compiled this instance contains all the equations needed to estimate
1952     the phase conditions for a multi-phase, multi-component mixture assuming
1953     equilibrium exists among the phases.
1954     The following line of code, extracted from the stream model referred to
1955     above, illustrates its use:
1956     \end_layout
1957    
1958     \begin_layout LyX-Code
1959     state IS_A thermodynamics(cd, pd, phase, equilibrated);
1960     \end_layout
1961    
1962     \begin_layout Standard
1963     where
1964     \family typewriter
1965     cd
1966     \family default
1967     is an instance of a
1968     \family typewriter
1969     components_data model
1970     \family default
1971     ,
1972     \family typewriter
1973     pd
1974     \family default
1975     of a
1976     \family typewriter
1977     phases_data
1978     \family default
1979     model,
1980     \family typewriter
1981     phase
1982     \family default
1983     an array of instances of
1984     \family typewriter
1985     phase_partials
1986     \family default
1987     , and
1988     \family typewriter
1989     equilibrated
1990     \family default
1991     a
1992     \family typewriter
1993     boolean
1994     \family default
1995     variable.
1996     When
1997     \family typewriter
1998     equilibrated
1999     \family default
2000     is
2001     \family typewriter
2002     FALSE
2003     \family default
2004     , the model will generate the equations assuming constant relative volatilities
2005     (the user must estimate these volatilities).
2006     When
2007     \family typewriter
2008     TRUE
2009     \family default
2010     , the model generates the equations assuming the chemical potentials for
2011     a component are equal in all phases.
2012     \end_layout
2013    
2014     \begin_layout Section
2015     Using the thermodynamics models
2016     \end_layout
2017    
2018     \begin_layout Standard
2019     There are several libraries of models that use the libraries we have just
2020     described.
2021     The first library to examine is
2022     \family typewriter
2023     stream_holdup.a4l
2024     \family default
2025     .
2026     This library contains steady-state models for a stream and a holdup.
2027     The following gives the parameter list for a user to create an instance
2028     of a stream.
2029     \end_layout
2030    
2031     \begin_layout Subsection
2032     Streams
2033 jpye 2785 \begin_inset Index idx
2034     status collapsed
2035 johnpye 825
2036 jpye 2785 \begin_layout Plain Layout
2037     streams
2038     \end_layout
2039    
2040 johnpye 825 \end_inset
2041    
2042     and holdups
2043 jpye 2785 \begin_inset Index idx
2044     status collapsed
2045 johnpye 825
2046 jpye 2785 \begin_layout Plain Layout
2047     holdups
2048     \end_layout
2049    
2050 johnpye 825 \end_inset
2051    
2052    
2053     \end_layout
2054    
2055     \begin_layout LyX-Code
2056     MODEL stream (
2057     \end_layout
2058    
2059     \begin_layout LyX-Code
2060     cd WILL_BE components_data;
2061     \end_layout
2062    
2063     \begin_layout LyX-Code
2064     pd WILL_BE phases_data;
2065     \end_layout
2066    
2067     \begin_layout LyX-Code
2068     equilibrated WILL_BE boolean;
2069     \end_layout
2070    
2071     \begin_layout LyX-Code
2072     ) REFINES sh_base;
2073     \end_layout
2074    
2075     \begin_layout Standard
2076     The model
2077     \family typewriter
2078     sh_base
2079     \family default
2080     is a dummy model to tie all models into this library back to a common root
2081     model.
2082     The user need do nothing because of this refinement.
2083     What you should note is that all you need to do to create a stream is create
2084     a
2085     \family typewriter
2086     components_data
2087     \family default
2088     model and a
2089     \family typewriter
2090     phases_data
2091     \family default
2092     model.
2093     One supplies the boolean variable
2094     \family typewriter
2095     equilibrated
2096     \family default
2097     as a variable that one can set interactively or in a method or a script
2098     when running the model to decide how to model equilibrium, as we have discussed
2099     above.
2100     A holdup is equally as easy to model.
2101     \end_layout
2102    
2103     \begin_layout Subsection
2104     Flash units
2105 jpye 2785 \begin_inset Index idx
2106     status collapsed
2107 johnpye 825
2108 jpye 2785 \begin_layout Plain Layout
2109     flash units
2110     \end_layout
2111    
2112 johnpye 825 \end_inset
2113    
2114     and variants thereof
2115     \end_layout
2116    
2117     \begin_layout Standard
2118     From streams and holdups, we can move on to unit operation models.
2119     The library
2120     \family typewriter
2121     flash.a4l
2122     \family default
2123     provide us with a flash model.
2124     The parameter list for the flash model is:
2125     \end_layout
2126    
2127     \begin_layout LyX-Code
2128     MODEL vapor_liquid_flash
2129 jpye 2785 \begin_inset Index idx
2130     status collapsed
2131 johnpye 825
2132 jpye 2785 \begin_layout Plain Layout
2133     vapor
2134     \begin_inset ERT
2135     status collapsed
2136    
2137     \begin_layout Plain Layout
2138    
2139    
2140     \backslash
2141     _
2142     \end_layout
2143    
2144 johnpye 825 \end_inset
2145    
2146 jpye 2785 liquid
2147     \begin_inset ERT
2148     status collapsed
2149    
2150     \begin_layout Plain Layout
2151    
2152    
2153     \backslash
2154     _
2155     \end_layout
2156    
2157     \end_inset
2158    
2159     flash
2160     \end_layout
2161    
2162     \end_inset
2163    
2164 johnpye 825 (
2165     \end_layout
2166    
2167     \begin_layout LyX-Code
2168     Qin WILL_BE energy_rate;
2169     \end_layout
2170    
2171     \begin_layout LyX-Code
2172     equilibrated WILL_BE boolean;
2173     \end_layout
2174    
2175     \begin_layout LyX-Code
2176     feed WILL_BE stream;
2177     \end_layout
2178    
2179     \begin_layout LyX-Code
2180     vapout WILL_BE stream;
2181     \end_layout
2182    
2183     \begin_layout LyX-Code
2184     liqout WILL_BE stream;
2185     \end_layout
2186    
2187     \begin_layout LyX-Code
2188     ) WHERE (
2189     \end_layout
2190    
2191     \begin_layout LyX-Code
2192     feed, vapout, liqout WILL_NOT_BE_THE_SAME;
2193     \end_layout
2194    
2195     \begin_layout LyX-Code
2196     feed.cd, vapout.cd, liqout.cd WILL_BE_THE_SAME;
2197     \end_layout
2198    
2199     \begin_layout LyX-Code
2200     vapout.pd.phase_indicator == 'V';
2201     \end_layout
2202    
2203     \begin_layout LyX-Code
2204     liqout.pd.phase_indicator == 'L';
2205     \end_layout
2206    
2207     \begin_layout LyX-Code
2208     (feed.pd.phase_indicator IN ['V','L','VL','VLL']) == TRUE;
2209     \end_layout
2210    
2211     \begin_layout LyX-Code
2212     ) REFINES flash_base;
2213     \end_layout
2214    
2215     \begin_layout Standard
2216     Again we see that to create a flash unit, we need to create the variable
2217    
2218     \family typewriter
2219     Qin
2220     \family default
2221     for the heat input to the unit, a boolean
2222     \family typewriter
2223     equilibrated
2224     \family default
2225     and three streams,
2226     \family typewriter
2227     feed
2228     \family default
2229     ,
2230     \family typewriter
2231     vapout
2232     \family default
2233     and
2234     \family typewriter
2235     liqout
2236     \family default
2237     .
2238     The three streams must all be different streams.
2239     They must have the same components in them.
2240     The stream
2241     \family typewriter
2242     vapout
2243     \family default
2244     must be a vapor stream and the stream
2245     \family typewriter
2246     liqout
2247     \family default
2248     a liquid stream.
2249     The
2250     \family typewriter
2251     feed
2252     \family default
2253     stream can be of any kind.
2254     \end_layout
2255    
2256     \begin_layout Standard
2257     Hopefully with the above information, creating a flash unit should not now
2258     seem particularly difficult.
2259     \end_layout
2260    
2261     \begin_layout Standard
2262     If you examine this library further, you will see it contains models which
2263     are variations of the flash unit for:
2264     \family typewriter
2265     detailed_tray
2266     \family default
2267     ,
2268     \family typewriter
2269     tray
2270     \family default
2271     ,
2272     \family typewriter
2273     feed_tray
2274     \family default
2275     ,
2276     \family typewriter
2277     total_condenser
2278     \family default
2279     and
2280     \family typewriter
2281     simple_reboiler
2282     \family default
2283     .
2284     \end_layout
2285    
2286     \begin_layout Subsection
2287     Distillation columns
2288 jpye 2785 \begin_inset Index idx
2289     status collapsed
2290 johnpye 825
2291 jpye 2785 \begin_layout Plain Layout
2292     Distillation columns
2293     \end_layout
2294    
2295 johnpye 825 \end_inset
2296    
2297    
2298     \end_layout
2299    
2300     \begin_layout Standard
2301     We provide two libraries that allow you to model distillation columns:
2302     \family typewriter
2303     column.a4l
2304     \family default
2305    
2306 jpye 2785 \begin_inset Index idx
2307     status collapsed
2308 johnpye 825
2309 jpye 2785 \begin_layout Plain Layout
2310     column.a4l
2311     \end_layout
2312    
2313 johnpye 825 \end_inset
2314    
2315     and
2316     \family typewriter
2317     collocation.a4l
2318     \family default
2319    
2320 jpye 2785 \begin_inset Index idx
2321     status collapsed
2322 johnpye 825
2323 jpye 2785 \begin_layout Plain Layout
2324     collocation.a4l
2325     \end_layout
2326    
2327 johnpye 825 \end_inset
2328    
2329     .
2330     The library
2331     \family typewriter
2332     column.a4l
2333     \family default
2334     first models a tray stack and then a simple column using that model.
2335     A third model extracts the profiles for pressure, temperature, a parameter
2336     that indicates the deviation from constant molar overflow conditions, total
2337     vapor and liquid flows and component compositions against tray number.
2338     This information may then be used for plotting these profiles using the
2339     ASCEND plotting capability.
2340     \end_layout
2341    
2342     \begin_layout Standard
2343     The library
2344     \family typewriter
2345     collocation.a4l
2346     \family default
2347     provides collocation models for simple columns.
2348     With collocation models, one models composition profiles as smooth functions
2349     of tray number in a column section.
2350     Columns with a large number of trays are modeled with relatively small
2351     collocation models.
2352     Also the number of trays becomes a continuous variable, aiding in optimization
2353     studies where the number of trays in each section is to be computed.
2354     \end_layout
2355    
2356     \begin_layout Subsection
2357     Dynamic unit models
2358     \end_layout
2359    
2360     \begin_layout Standard
2361     ASCEND contains models for simulating the dynamic behavior of units.
2362     Their use is described in Chapter
2363 jpye 2785 \begin_inset CommandInset ref
2364     LatexCommand vref
2365     reference "cha:ivp"
2366 johnpye 825
2367     \end_inset
2368    
2369     .
2370     \end_layout
2371    
2372     \begin_layout Section
2373     Discussion
2374     \end_layout
2375    
2376     \begin_layout Standard
2377     We have presented a description of the libraries that allow one to model
2378     the equations providing thermodynamic properties for multi-component, multi-pha
2379     se mixtures when one assume equilibrium exists among co-existing phases.
2380     With this description, we hope that these models become much less difficult
2381     to use.
2382     We end this chapter by describing other libraries that build on the property
2383     estimation libraries, models for streams and holdups, for flash units and
2384     variations thereof, and for columns.
2385     \end_layout
2386    
2387     \end_body
2388     \end_document

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