forked from toogad/PooPyLab_Project
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathClass_Diagram
More file actions
1350 lines (1350 loc) · 173 KB
/
Class_Diagram
File metadata and controls
1350 lines (1350 loc) · 173 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8"?>
<XMI verified="false" xmlns:UML="http://schema.omg.org/spec/UML/1.4" xmi.version="1.2" timestamp="2019-09-19T08:48:12">
<XMI.header>
<XMI.documentation>
<XMI.exporter>umbrello uml modeller http://umbrello.kde.org</XMI.exporter>
<XMI.exporterVersion>1.6.16</XMI.exporterVersion>
<XMI.exporterEncoding>UnicodeUTF8</XMI.exporterEncoding>
</XMI.documentation>
<XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.4"/>
</XMI.header>
<XMI.content>
<UML:Model isRoot="false" xmi.id="m1" isSpecification="false" name="UML Model" isLeaf="false" isAbstract="false">
<UML:Namespace.ownedElement>
<UML:Stereotype visibility="public" isRoot="false" namespace="m1" xmi.id="folder" isSpecification="false" isLeaf="false" name="folder" isAbstract="false"/>
<UML:Stereotype visibility="public" isRoot="false" namespace="m1" xmi.id="constructor" isSpecification="false" isLeaf="false" name="constructor" isAbstract="false"/>
<UML:Model visibility="public" isRoot="false" namespace="m1" xmi.id="Logical_View" isSpecification="false" isLeaf="false" name="Logical View" isAbstract="false">
<UML:Namespace.ownedElement>
<UML:Package visibility="public" isRoot="false" namespace="Logical_View" stereotype="folder" xmi.id="Datatypes" isSpecification="false" isLeaf="false" name="Datatypes" isAbstract="false">
<UML:Namespace.ownedElement>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uHM3q7qMHu5N3" isSpecification="false" isLeaf="false" name="char" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="urhNZe77oEp1K" isSpecification="false" isLeaf="false" name="int" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uhAU2AAHTwtnw" isSpecification="false" isLeaf="false" name="float" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="upeM5cxXJikG8" isSpecification="false" isLeaf="false" name="double" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uEmbOiuZVO1aM" isSpecification="false" isLeaf="false" name="bool" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uz11orEufP1Pe" isSpecification="false" isLeaf="false" name="string" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uzJW1GCOXW8E1" isSpecification="false" isLeaf="false" name="unsigned char" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uCQsMHIuoe62M" isSpecification="false" isLeaf="false" name="signed char" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uJa30I3FaqVxl" isSpecification="false" isLeaf="false" name="unsigned int" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="ufDvSoxVyCBmj" isSpecification="false" isLeaf="false" name="signed int" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="ueijYLPoGSDOl" isSpecification="false" isLeaf="false" name="short int" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uQ38VZYKKDtZL" isSpecification="false" isLeaf="false" name="unsigned short int" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uScBhYwmVFjJh" isSpecification="false" isLeaf="false" name="signed short int" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uk9dBcX2sIAGS" isSpecification="false" isLeaf="false" name="long int" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uUQwOYUmywpsQ" isSpecification="false" isLeaf="false" name="signed long int" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="ueVkIGDB5kMum" isSpecification="false" isLeaf="false" name="unsigned long int" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="utRZ1Pad5AXRQ" isSpecification="false" isLeaf="false" name="long double" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uNAyibjeJyw6J" isSpecification="false" isLeaf="false" name="wchar_t" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uWCsDcr8MrSoj" isSpecification="false" isLeaf="false" name="array" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="ufAqrnE3dBnjT" isSpecification="false" isLeaf="false" name="tuple" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uvCMuKyiUzuZG" isSpecification="false" isLeaf="false" name="list" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uswJ1tSi39aTO" isSpecification="false" isLeaf="false" name="long" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uafiQjE3YjxcA" isSpecification="false" isLeaf="false" name="dict" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="uULAf3iiyYgTQ" isSpecification="false" isLeaf="false" name="object" isAbstract="false"/>
<UML:DataType visibility="public" isRoot="false" namespace="Datatypes" xmi.id="ulkZvckUbxrj6" isSpecification="false" isLeaf="false" name="set" isAbstract="false"/>
</UML:Namespace.ownedElement>
</UML:Package>
<UML:Class visibility="public" isRoot="false" namespace="Logical_View" xmi.id="u74P5gtnzem0F" isSpecification="false" isLeaf="false" name="ASM_1" isAbstract="false">
<UML:Classifier.feature>
<UML:Attribute visibility="protected" xmi.id="u7rJvLNAvLUI7" type="uULAf3iiyYgTQ" isSpecification="false" name="temperature"/>
<UML:Attribute visibility="protected" xmi.id="uRANVBQCg7QxH" type="uULAf3iiyYgTQ" isSpecification="false" name="bulk_DO"/>
<UML:Attribute visibility="protected" xmi.id="umypLv3qdUHU0" type="uafiQjE3YjxcA" isSpecification="false" comment="define the model parameters and stochoimetrics as dict() so that it is easier to keep track of names and values" initialValue="{}" name="params"/>
<UML:Attribute visibility="protected" xmi.id="uhB77U1zzfEUC" type="uafiQjE3YjxcA" isSpecification="false" comment="define the model parameters and stochoimetrics as dict() so that it is easier to keep track of names and values" initialValue="{}" name="stoichs"/>
<UML:Attribute visibility="protected" xmi.id="umowBcobkhe5Z" type="uhAU2AAHTwtnw" isSpecification="false" comment="define the model parameters and stochoimetrics as dict() so that it is easier to keep track of names and values" initialValue="20.0" name="delta_t"/>
<UML:Attribute visibility="protected" xmi.id="uFUjsadmCjxOR" type="uvCMuKyiUzuZG" isSpecification="false" comment="define the model parameters and stochoimetrics as dict() so that it is easier to keep track of names and values ASM components The Components the ASM components IN THE REACTOR For ASM #1: self._comps[0]: S_DO as COD self._comps[1]: S_I self._comps[2]: S_S self._comps[3]: S_NH self._comps[4]: S_NS self._comps[5]: S_NO self._comps[6]: S_ALK self._comps[7]: X_I self._comps[8]: X_S self._comps[9]: X_BH self._comps[10]: X_BA self._comps[11]: X_D self._comps[12]: X_NS" initialValue="[0.0]" name="comps"/>
<UML:Operation visibility="public" isRoot="false" stereotype="constructor" isOverride="false" isQuery="false" xmi.id="unQ1naTEmY5YX" isSpecification="false" comment=" define the model parameters and stochoimetrics as dict() so that it is easier to keep track of names and values ASM components The Components the ASM components IN THE REACTOR For ASM #1: self._comps[0]: S_DO as COD self._comps[1]: S_I self._comps[2]: S_S self._comps[3]: S_NH self._comps[4]: S_NS self._comps[5]: S_NO self._comps[6]: S_ALK self._comps[7]: X_I self._comps[8]: X_S self._comps[9]: X_BH self._comps[10]: X_BA self._comps[11]: X_D self._comps[12]: X_NS====================== Public Interface ==================================" isLeaf="false" name="__init__" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ubImj3NBr0NdN" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="20" xmi.id="uf3kwXXeipmtf" type="urhNZe77oEp1K" isSpecification="false" name="WWtemp"/>
<UML:Parameter visibility="private" value="2" xmi.id="uUdsNt70dIGQn" type="urhNZe77oEp1K" isSpecification="false" name="DO"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u4MNVc96f9mLu" isSpecification="false" isLeaf="false" name="update" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="unHml6CFp3k7D" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uTVz68BjDupOE" type="uz11orEufP1Pe" isSpecification="false" name="ww_temp"/>
<UML:Parameter visibility="private" value="" xmi.id="u5ILAr2CzQFIR" type="uz11orEufP1Pe" isSpecification="false" name="dissolved_O2"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u4M7vi4BNLw0p" isSpecification="false" isLeaf="false" name="get_params" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u5BQhb2BAjcRb" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u3MsxBroFuVCl" isSpecification="false" isLeaf="false" name="get_stoichs" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uSdUpHO1iOI83" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uGMqeKhE61gof" isSpecification="false" comment="TODO: Need to determine where to provide GetAllComponents(), in ASMReactor or here?" isLeaf="false" name="get_all_comps" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="udyKjHcWTDN0g" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="ud8mNeawdKsiV" isSpecification="false" comment="====================== End of Public Interface ==================" isLeaf="false" name="get_bulk_DO" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u4kwsh5TrFH1D" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="u6Wmq3AiW8mix" isSpecification="false" comment=" Ideal Growth Rate of Heterotrophs (u_max_H, 1/DAY) Lysis Rate of Heterotrophs (b_LH, 1/DAY) Ideal Growth Rate of Autotrophs (u_max_A, 1/DAY) Lysis Rate of Autotrophs (b_LA, 1/DAY) Half Growth Rate Concentration of Heterotrophs (K_s, mgCOD/L) Switch Coefficient for Dissoved O2 of Hetero. (K_OH, mgO2/L) Association Conc. for Dissoved O2 of Auto. (K_OA, mgN/L) Association Conc. for NH3-N of Auto. (K_NH, mgN/L) Association Conc. for NOx of Hetero. (K_NO, mgN/L) Hydrolysis Rate (k_h, mgCOD/mgBiomassCOD-day) Half Rate Conc. for Hetero. Growth on Part. COD (K_X, mgCOD/mgBiomassCOD) Ammonification of Org-N in biomass (k_a, L/mgBiomassCOD-day) Yield of Hetero. Growth on COD (Y_H, mgBiomassCOD/mgCODremoved) Yield of Auto. Growth on TKN (Y_A, mgBiomassCOD/mgTKNoxidized) Fract. of Debris in Lysed Biomass(f_D, gDebrisCOD/gBiomassCOD) Correction Factor for Hydrolysis (cf_h, unitless) Correction Factor for Anoxic Heterotrophic Growth (cf_g, unitless) Ratio of N in Active Biomass (i_N_XB, mgN/mgActiveBiomassCOD) Ratio of N in Debris Biomass (i_N_XD, mgN/mgDebrisBiomassCOD)=============================== End of Parameter Definition ============== STOCHIOMETRIC MATRIX (make sure to match the .csv model template file in the model_builder folder, Sep 04, 2019) _stoichs['x_y'] ==> x is process rate id, and y is component id" isLeaf="false" name="set_params" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uoZjRb1WYA7js" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uHeF5zs2ss6X5" isSpecification="false" comment=" S_O for aerobic hetero. growth, as O2 S_O for aerobic auto. growth, as O2 S_S for aerobic hetero. growth, as COD S_S for anoxic hetero. growth, as COD S_S for hydrolysis of part. substrate S_NH required for aerobic hetero. growth, as N S_NH required for anoxic hetero. growth, as N S_NH required for aerobic auto. growth, as N S_NH from ammonification, as N S_NS used by ammonification, as N S_NS from hydrolysis of part.TKN, as N S_NO for anoxic hetero. growth, as N S_NO from nitrification, as N S_ALK consumed by aerobic hetero. growth, as mM CaCO3 S_ALK generated by anoxic hetero. growth, as mM CaCO3 S_ALK consumed by aerobic auto. growth, as mM CaCO3 S_ALK generated by ammonification, as mM CaCO3 X_S from hetero. decay, as COD X_S from auto. decay, as COD X_S consumed by hydrolysis of biomass X_BH from aerobic hetero. growth, as COD X_BH from anoxic hetero. growth, as COD X_BH lost in hetero. decay, as COD X_BA from aerobic auto. growth, as COD X_BA lost in auto. decay, as COD X_D from hetero. decay, as COD X_D from auto. decay, as COD X_NS from hetero. decay, as N X_NS from auto. decay, as COD X_NS consumed in hydrolysis of part. TKN, as N#=========================== End of Stoichiometrics ===================== PROCESS RATE DEFINITIONS (Rj, M/L^3/T): The following factors/swithes all use the _monod() function Monod Factor of Sol.BioDegrad.COD on Hetero. Monod Switch of Dissol. O2 on Hetero. Monod Switch of Dissol. O2 on Auto. Monod Factor of Ammonia-N on Autotrophs Monod Factor of NOx-N on Autotrophs" isLeaf="false" name="set_stoichs" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uDIzqNEjLzVfD" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="upuksap5LawKm" isSpecification="false" comment=" Aerobic Growth Rate of Heterotrophs (_r0_AerGH, mgCOD/L/day)" isLeaf="false" name="monod" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ukFT1VeTvNcDY" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uYYqNZNtptPvi" type="uz11orEufP1Pe" isSpecification="false" name="term_in_nom_denom"/>
<UML:Parameter visibility="private" value="" xmi.id="urRs7ni5ZYZ1r" type="uz11orEufP1Pe" isSpecification="false" name="term_only_in_denom"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uCI0LEe55ulaX" isSpecification="false" comment=" Anoxic Growth Rate of Heterotrophs (_r1_AxGH, mgCOD/L/day)" isLeaf="false" name="r0_AerGH" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uOHj1uOmXbtR7" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uzZo9oVwP0O9b" isSpecification="false" comment=" Aerobic Growth Rate of Autotrophs (_r2_AerGA, mgCOD/L/day)" isLeaf="false" name="r1_AxGH" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ujYnI5cXoxz5j" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uVurnW4vT7SWs" isSpecification="false" comment=" Death and Lysis Rate of Heterotrophs (_r3_DLH, mgCOD/L/day)" isLeaf="false" name="r2_AerGA" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uIIpGzqGbF0k1" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uFD2FYoOlgYTr" isSpecification="false" comment=" Death and Lysis Rate of Autotrophs (_r4_DLA, mgCOD/L/day)" isLeaf="false" name="r3_DLH" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u2zicaW4yppe3" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="utYMYA2FJ9FGk" isSpecification="false" comment=" Ammonification Rate of Soluable Organic N (_r5_AmmSN, mgN/L/day)" isLeaf="false" name="r4_DLA" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uM9p6MWO0tlW8" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uaLKbd2wz5xIE" isSpecification="false" comment=" Hydrolysis Rate of Particulate Organics (_r6_HydX, mgCOD/L/day)" isLeaf="false" name="r5_AmmSN" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u6dzH3MIkE5sX" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uko07qxzkNLu5" isSpecification="false" comment=" Hydrolysis Rate of Part. Organic N (_r7_HydXN, mgN/L/day)" isLeaf="false" name="r6_HydX" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uSuE0zU3jUZye" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="u9WPDHlban7dy" isSpecification="false" comment="---------Overall Process Rate Equations for Individual Components---" isLeaf="false" name="r7_HydXN" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uoISPpuALTeMZ" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uC013doXRO1Ac" isSpecification="false" isLeaf="false" name="rate0_S_DO" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ur32XvWntKW8K" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uL6BNRcUX83LL" isSpecification="false" isLeaf="false" name="rate1_S_I" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u1RVfY3O61HxH" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uzdoKFmPun7Yv" isSpecification="false" isLeaf="false" name="rate2_S_S" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ulJprRJGZT3av" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uws2iwvXSUiWS" isSpecification="false" isLeaf="false" name="rate3_S_NH" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uF8T6KMCVrwjt" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uN1UIGSwVj3aT" isSpecification="false" isLeaf="false" name="rate4_S_NS" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="umVxkSGNPggBf" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uHUoheVaZGx7h" isSpecification="false" isLeaf="false" name="rate5_S_NO" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="udWbkepPAEqi2" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uBeocyF3faCxN" isSpecification="false" isLeaf="false" name="rate6_S_ALK" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ubi4ocFyQYmdX" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="ubAv2aakmzIiO" isSpecification="false" isLeaf="false" name="rate7_X_I" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ufd5XAqonLsPF" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="u8XekviouG7w1" isSpecification="false" isLeaf="false" name="rate8_X_S" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uqZEbWi23bwl5" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uK0hvPPYowKU9" isSpecification="false" isLeaf="false" name="rate9_X_BH" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uQzMdj1MBH8ph" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uEwhiw3xikorN" isSpecification="false" isLeaf="false" name="rate10_X_BA" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u8pVitImoTW3C" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uUJx44eXYAiXb" isSpecification="false" isLeaf="false" name="rate11_X_D" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uMlx1RAGFpGV0" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uLqpINCoi4NfB" isSpecification="false" isLeaf="false" name="rate12_X_NS" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uo1dJRBgEOHys" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="u8Gyh3wT0hvNP" isSpecification="false" comment=" Overall mass balance: dComp/dt == InfFlow / Actvol * (InfConc - EffConc) + GrowthRate == (InfConc - EffConc) / HRT + GrowthRateresult = [(in_comps[0] - self._comps[0]) / _HRT + self._rate0_S_DO()] set DO rate to zero since DO is set to a fix conc.print('_sludge._comps: {}'.format(self._comps))" isLeaf="false" name="dCdt" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u2ki6K1l9sz98" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uHM82NoCwQyXC" type="uz11orEufP1Pe" isSpecification="false" name="flow"/>
<UML:Parameter visibility="private" value="" xmi.id="u4wh40zJkvAiC" type="uz11orEufP1Pe" isSpecification="false" name="in_comps"/>
<UML:Parameter visibility="private" value="" xmi.id="uwCoHENJmRRdU" type="uz11orEufP1Pe" isSpecification="false" name="vol"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Class visibility="public" isRoot="false" namespace="Logical_View" xmi.id="uFbqwV186SIrr" isSpecification="false" comment="December 07, 2013 Kai Zhang" isLeaf="false" name="asm_reactor" isAbstract="false">
<UML:GeneralizableElement.generalization>
<UML:Generalization xmi.idref="uiQjTaY7l1hNV"/>
</UML:GeneralizableElement.generalization>
<UML:Classifier.feature>
<UML:Attribute visibility="private" xmi.id="uiJ4OypS6PvlU" type="urhNZe77oEp1K" isSpecification="false" initialValue="0" name="id" ownerScope="classifier"/>
<UML:Attribute visibility="private" xmi.id="uVKyMEXApYUms" type="uz11orEufP1Pe" isSpecification="false" comment="swd = side water depth in meters, default = ~12 ft ActiveVol in m^3, default value equals to 100,000 gallons Temperature = 20 C by default DO = dissolved oxygen, default = 2.0 mg/L" initialValue=""ASMReactor_"" name="name__"/>
<UML:Attribute visibility="protected" xmi.id="ugCL08jw0UDVX" type="uz11orEufP1Pe" isSpecification="false" comment="swd = side water depth in meters, default = ~12 ft ActiveVol in m^3, default value equals to 100,000 gallons Temperature = 20 C by default DO = dissolved oxygen, default = 2.0 mg/L" initialValue=""ASMReactor"" name="type"/>
<UML:Attribute visibility="protected" xmi.id="uSnkTxSp00cYq" type="uULAf3iiyYgTQ" isSpecification="false" comment="swd = side water depth in meters, default = ~12 ft ActiveVol in m^3, default value equals to 100,000 gallons Temperature = 20 C by default DO = dissolved oxygen, default = 2.0 mg/L" name="active_vol"/>
<UML:Attribute visibility="protected" xmi.id="uwmZx8eF48d0M" type="uULAf3iiyYgTQ" isSpecification="false" comment="swd = side water depth in meters, default = ~12 ft ActiveVol in m^3, default value equals to 100,000 gallons Temperature = 20 C by default DO = dissolved oxygen, default = 2.0 mg/L" name="swd"/>
<UML:Attribute visibility="protected" xmi.id="u7hjhacgFTjvH" type="uULAf3iiyYgTQ" isSpecification="false" comment="swd = side water depth in meters, default = ~12 ft ActiveVol in m^3, default value equals to 100,000 gallons Temperature = 20 C by default DO = dissolved oxygen, default = 2.0 mg/L" name="area"/>
<UML:Attribute visibility="protected" xmi.id="uHX4gGJpuNx5w" type="urhNZe77oEp1K" isSpecification="false" comment="swd = side water depth in meters, default = ~12 ft ActiveVol in m^3, default value equals to 100,000 gallons Temperature = 20 C by default DO = dissolved oxygen, default = 2.0 mg/L" initialValue="ASM_1" name="sludge"/>
<UML:Attribute visibility="protected" xmi.id="uvyUj3RySYmt0" type="uvCMuKyiUzuZG" isSpecification="false" comment="swd = side water depth in meters, default = ~12 ft ActiveVol in m^3, default value equals to 100,000 gallons Temperature = 20 C by default DO = dissolved oxygen, default = 2.0 mg/L" initialValue="[0.0]" name="in_comps"/>
<UML:Attribute visibility="protected" xmi.id="u0z6xOM9Xtlm2" type="uvCMuKyiUzuZG" isSpecification="false" comment="swd = side water depth in meters, default = ~12 ft ActiveVol in m^3, default value equals to 100,000 gallons Temperature = 20 C by default DO = dissolved oxygen, default = 2.0 mg/L" initialValue="[0.0]" name="mo_comps"/>
<UML:Attribute visibility="protected" xmi.id="unHILg2De3yui" type="uvCMuKyiUzuZG" isSpecification="false" comment="swd = side water depth in meters, default = ~12 ft ActiveVol in m^3, default value equals to 100,000 gallons Temperature = 20 C by default DO = dissolved oxygen, default = 2.0 mg/L make _so_comps alias of _mo_comps since there is no side stream for a bioreactorself._so_comps = self._mo_comps results of previous round" initialValue="[0.0]" name="prev_mo_comps"/>
<UML:Attribute visibility="protected" xmi.id="ufsMJ5tNVz37h" type="uULAf3iiyYgTQ" isSpecification="false" comment="swd = side water depth in meters, default = ~12 ft ActiveVol in m^3, default value equals to 100,000 gallons Temperature = 20 C by default DO = dissolved oxygen, default = 2.0 mg/L make _so_comps alias of _mo_comps since there is no side stream for a bioreactorself._so_comps = self._mo_comps results of previous round" name="prev_so_comps"/>
<UML:Operation visibility="public" isRoot="false" stereotype="constructor" isOverride="false" isQuery="false" xmi.id="uMmPyljw10kHo" isSpecification="false" comment=" swd = side water depth in meters, default = ~12 ft ActiveVol in m^3, default value equals to 100,000 gallons Temperature = 20 C by default DO = dissolved oxygen, default = 2.0 mg/L make _so_comps alias of _mo_comps since there is no side stream for a bioreactorself._so_comps = self._mo_comps results of previous round ADJUSTMENTS TO COMMON INTERFACE" isLeaf="false" name="__init__" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ubruwND89atDG" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="38000" xmi.id="uRSzayf3y4gnh" type="urhNZe77oEp1K" isSpecification="false" name="ActiveVol"/>
<UML:Parameter visibility="private" value="3.5" xmi.id="uIrhtdIJRXADm" type="uhAU2AAHTwtnw" isSpecification="false" name="swd"/>
<UML:Parameter visibility="private" value="" xmi.id="u07QOyhtqEMbS" type="uz11orEufP1Pe" isSpecification="false" name=";"/>
<UML:Parameter visibility="private" value="20" xmi.id="uZve22jq5j4K3" type="urhNZe77oEp1K" isSpecification="false" name="Temperature"/>
<UML:Parameter visibility="private" value="2" xmi.id="uXX9TmQbTz1wb" type="urhNZe77oEp1K" isSpecification="false" name="DO"/>
<UML:Parameter visibility="private" value="" xmi.id="uXTpCSa3CjUns" type="uz11orEufP1Pe" isSpecification="false" name="*"/>
<UML:Parameter visibility="private" value="" xmi.id="uFg7XHKxMUkDB" type="uz11orEufP1Pe" isSpecification="false" name="args"/>
<UML:Parameter visibility="private" value="" xmi.id="uVt9AH0cnpYME" type="uz11orEufP1Pe" isSpecification="false" name="*"/>
<UML:Parameter visibility="private" value="" xmi.id="uTtf2y5h3NFeC" type="uz11orEufP1Pe" isSpecification="false" name="*"/>
<UML:Parameter visibility="private" value="" xmi.id="ugqOamIbXwtGz" type="uz11orEufP1Pe" isSpecification="false" name="kw"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u9lYdh1SRaceB" isSpecification="false" comment=" END OF ADJUSTMENTS TO COMMON INTERFACE FUNCTIONS UNIQUE TO THE ASM_REACTOR CLASS (INSERT CODE HERE)" isLeaf="false" name="discharge" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uUezJ58Y0Clda" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uVk37pjajkJ9x" isSpecification="false" comment=" CSTR: outlet = mixed liquor" isLeaf="false" name="assign_initial_guess" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="um3lvqY4V0LeO" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="ul3jh2cOX0TXY" type="uz11orEufP1Pe" isSpecification="false" name="initial_guess"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uTgVV6MMyLbpZ" isSpecification="false" comment=" vol in M3" isLeaf="false" name="set_active_vol" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uL6ZEwA0uL4Fp" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="380" xmi.id="uwYuDWb4sMyuf" type="urhNZe77oEp1K" isSpecification="false" name="vol"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uIzJzSXHXSKNM" isSpecification="false" isLeaf="false" name="get_active_vol" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uAuJ3UPO7DhMR" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uokTZK9HNNnX3" isSpecification="false" isLeaf="false" name="set_model_condition" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uB6KjrL26zb7E" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uADywBEgKNtLT" type="uz11orEufP1Pe" isSpecification="false" name="Temperature"/>
<UML:Parameter visibility="private" value="" xmi.id="u0Xw0CQJUGogF" type="uz11orEufP1Pe" isSpecification="false" name="DO"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u6yPZSJ13WXaW" isSpecification="false" isLeaf="false" name="get_model_params" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u7KGjs3VssBk3" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uLimdXj2jtXBR" isSpecification="false" isLeaf="false" name="get_model_stoichs" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uxM1cBayrlUSR" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uM8lXRuJxcvpd" isSpecification="false" comment=" first_index_particulate: first index of particulate model component, assuming all components before this index are soluble, and all starting this index are particulate in the matrix. f_s: fraction of max step for soluble model components, typ=5%-20% f_p: fraction of max step for particulate model components, typ=2.0 Determine the next step size based on: C(t + del_t) = C(t) + (dC/dt) * del_t, where 0 < del_t < Retention_Time_C_k, where C is the individual model component and k is the kth reactorprint('_del_C_del_t:{}'.format(_del_C_del_t)) screen out the zero items in _del_C_del_t screen out the zero items in _del_C_del_tprint('sol. step = {}, part. step = {}'.format(_step_sol, _step_part)) TODO: use the same time step before further optimization TODO: there may be problem with this: END OF FUNCTIONS UNIQUE TO THE ASM_REACTOR CLASS" isLeaf="false" name="integrate" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u6n3qntcO8t6R" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="7" xmi.id="uWDPOZC3op823" type="urhNZe77oEp1K" isSpecification="false" name="first_index_particulate"/>
<UML:Parameter visibility="private" value="0.2" xmi.id="uT78viJm4SkRD" type="uhAU2AAHTwtnw" isSpecification="false" name="f_s"/>
<UML:Parameter visibility="private" value="2.0" xmi.id="uCZBkfgIilxIf" type="uhAU2AAHTwtnw" isSpecification="false" name="f_p"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Class visibility="public" isRoot="false" namespace="Logical_View" xmi.id="uzZJmjcVZS9KB" isSpecification="false" isLeaf="false" name="pipe" isAbstract="false">
<UML:GeneralizableElement.generalization>
<UML:Generalization xmi.idref="uke1dAmZpcaba"/>
</UML:GeneralizableElement.generalization>
<UML:Classifier.feature>
<UML:Attribute visibility="private" xmi.id="usdO9mVnpJ13B" type="urhNZe77oEp1K" isSpecification="false" initialValue="0" name="id" ownerScope="classifier"/>
<UML:Attribute visibility="private" xmi.id="uyDRktzYrOpbf" type="uULAf3iiyYgTQ" isSpecification="false" name="name__"/>
<UML:Attribute visibility="protected" xmi.id="u0ta0Jvvi4oFP" type="uz11orEufP1Pe" isSpecification="false" initialValue=""Pipe"" name="type"/>
<UML:Attribute visibility="protected" xmi.id="uxR417HInRRIO" type="uEmbOiuZVO1aM" isSpecification="false" comment="pipe has no sidestream" initialValue="False" name="has_sidestream"/>
<UML:Attribute visibility="protected" xmi.id="u3AO2YXLv4D8b" type="uEmbOiuZVO1aM" isSpecification="false" comment="pipe has no sidestream a pipe's sidestream flow IS DEFINED as ZERO" initialValue="True" name="so_flow_defined"/>
<UML:Attribute visibility="protected" xmi.id="usZDofrGwGfT0" type="uULAf3iiyYgTQ" isSpecification="false" comment="pipe has no sidestream a pipe's sidestream flow IS DEFINED as ZERO inlet and main outlet components are identical for a pipe make main outlet components an alias of the inlet components" name="mo_comps"/>
<UML:Attribute visibility="protected" xmi.id="u0t0U5d6VGGSE" type="uULAf3iiyYgTQ" isSpecification="false" comment="pipe has no sidestream a pipe's sidestream flow IS DEFINED as ZERO inlet and main outlet components are identical for a pipe make main outlet components an alias of the inlet components side outlet components equal to the inlet, if they existed. make side outlet components an alias of the inlet components" name="so_comps"/>
<UML:Operation visibility="public" isRoot="false" stereotype="constructor" isOverride="false" isQuery="false" xmi.id="uzxqR9MkdV7Wv" isSpecification="false" comment=" pipe has no sidestream a pipe's sidestream flow IS DEFINED as ZERO inlet and main outlet components are identical for a pipe make main outlet components an alias of the inlet components side outlet components equal to the inlet, if they existed. make side outlet components an alias of the inlet components ADJUSTMENTS TO COMMON INTERFACE TO FIT THE NEEDS OF PIPE:" isLeaf="false" name="__init__" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uk5cfqwISiKBF" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uHOjGBNG7sfE1" isSpecification="false" isLeaf="false" name="branch_flow_helper" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u0ZOV3Ejt4YpY" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uI54GReup5rez" isSpecification="false" isLeaf="false" name="set_mainstream_flow_by_upstream" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uZzVjFFYX6yD6" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uHlS1ldz90cXq" type="uz11orEufP1Pe" isSpecification="false" name="f"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u3yW4TybpIX1C" isSpecification="false" isLeaf="false" name="set_mainstream_flow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uZsIxVcSO5EDp" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uhI5asf46by7l" type="uz11orEufP1Pe" isSpecification="false" name="flow"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="upSSOMcfBu7AH" isSpecification="false" isLeaf="false" name="set_downstream_side" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ua8Tc9RGJ56bj" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="ukIRW2WKlerRM" type="uz11orEufP1Pe" isSpecification="false" name="receiver"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uJRRDIlzs43Dp" isSpecification="false" comment=" END OF ADJUSTMENT TO COMMON INTERFACE FUNCTIONS UNIQUE TO PIPE GO HERE: (INSERT CODE HERE) END OF FUNCTIONS UNIQUE TO PIPE ----------------------------------------------------------------------------- influent class - Change Log: 20190911 KZ: rearranged inf component to match model matrix 20190715 KZ: added self._type 20190704 KZ: corrected initiation error. 20190619 KZ: updated as per the splitter update. 20190618 KZ: updated along with the splitter revision. 20190611 KZ: migrated to poopy_lab_obj as base and pipe as parent 20190609 KZ: migrating to poopy_lab_obj as base, and pipe as parent. 20190209 KZ: standardized import Mar 15, 2019 KZ: _outlet --> _main_outlet July 31, 2017 KZ: Made it more pythonic and changed to python3. June 16, 2015 KZ: Removed _prefix, _group status and Set(Get)PreFixStatus(), Set(Get)GroupStatus; Renamed _Done to _visited, SetAs(Is)Done() to SetAs(Is)Visited(). March 20, 2015 KZ: Added _prefix, _group, _Done status and Set(Get)PreFixStatus(), Set(Get)GroupStatus, SetAs(Is)Done(). November 18, 2014 KZ: Added UpstreamConnected() and set to True November 12, 2014 KZ: added _main_outlet_connected flag and MainOutletConnected() function October 19, 2014 KZ: removed test code March 15, 2014: KZ: redefined for the new class structure. December 07, 2013 Kai Zhang: first draft" isLeaf="false" name="set_sidestream_flow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uhLfs1JiHQLvz" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="udaNtMq3ONZxt" type="uz11orEufP1Pe" isSpecification="false" name="flow"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Generalization visibility="public" discriminator="" namespace="Logical_View" xmi.id="uiQjTaY7l1hNV" isSpecification="false" name="" child="uFbqwV186SIrr" parent="uzZJmjcVZS9KB"/>
<UML:Class visibility="public" isRoot="false" namespace="Logical_View" xmi.id="uKL5AyFtGCxS4" isSpecification="false" comment="July 11, 2013 KZ: Initial commit" isLeaf="false" name="final_clarifier" isAbstract="false">
<UML:GeneralizableElement.generalization>
<UML:Generalization xmi.idref="u8ujgmQG1xNv0"/>
</UML:GeneralizableElement.generalization>
<UML:Classifier.feature>
<UML:Attribute visibility="private" xmi.id="un4gXcC0XfXwK" type="urhNZe77oEp1K" isSpecification="false" comment="self._comps[12]: X_NS" initialValue="0" name="id" ownerScope="classifier"/>
<UML:Attribute visibility="private" xmi.id="uAtgAcNNJmyLC" type="uz11orEufP1Pe" isSpecification="false" initialValue=""FinalClarifier_"" name="name__"/>
<UML:Attribute visibility="protected" xmi.id="uYQ7ePf6DrcVo" type="uz11orEufP1Pe" isSpecification="false" initialValue=""Final_Clarifier"" name="type"/>
<UML:Attribute visibility="protected" xmi.id="uE21ocqQ0H15J" type="uULAf3iiyYgTQ" isSpecification="false" comment="SWD = side water depth in meters, default = ~12 ft active_vol in m^3, default value equals to 100,000 gallons active_vol assumed not to include bottom cone" name="active_vol"/>
<UML:Attribute visibility="protected" xmi.id="uOGmRkFVziXdh" type="uULAf3iiyYgTQ" isSpecification="false" comment="SWD = side water depth in meters, default = ~12 ft active_vol in m^3, default value equals to 100,000 gallons active_vol assumed not to include bottom cone" name="SWD"/>
<UML:Attribute visibility="protected" xmi.id="uhfbEKGn7rBSn" type="uULAf3iiyYgTQ" isSpecification="false" comment="SWD = side water depth in meters, default = ~12 ft active_vol in m^3, default value equals to 100,000 gallons active_vol assumed not to include bottom cone" name="area"/>
<UML:Attribute visibility="protected" xmi.id="uo5BcD2DmTrbb" type="uhAU2AAHTwtnw" isSpecification="false" comment="SWD = side water depth in meters, default = ~12 ft active_vol in m^3, default value equals to 100,000 gallons active_vol assumed not to include bottom cone user defined solids capture rate, fraction less than 1.0; Typically, this is set to 0.95 but user can change the value." initialValue="0.95" name="capture_rate"/>
<UML:Attribute visibility="protected" xmi.id="utjmBjrdgUuEu" type="urhNZe77oEp1K" isSpecification="false" comment="SWD = side water depth in meters, default = ~12 ft active_vol in m^3, default value equals to 100,000 gallons active_vol assumed not to include bottom cone user defined solids capture rate, fraction less than 1.0; Typically, this is set to 0.95 but user can change the value. user defined underflow solids, mg/L" initialValue="15000" name="under_TSS"/>
<UML:Operation visibility="public" isRoot="false" stereotype="constructor" isOverride="false" isQuery="false" xmi.id="uGcBG6ioj8nR1" isSpecification="false" comment=" SWD = side water depth in meters, default = ~12 ft active_vol in m^3, default value equals to 100,000 gallons active_vol assumed not to include bottom cone user defined solids capture rate, fraction less than 1.0; Typically, this is set to 0.95 but user can change the value. user defined underflow solids, mg/L ADJUSTMENTS TO COMMON INTERFACE TO FIT THE NEEDS OF FINAL_CLARIFIER" isLeaf="false" name="__init__" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uNJjRZqw6XICs" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="380" xmi.id="u9B4CnWlhZ8Np" type="urhNZe77oEp1K" isSpecification="false" name="active_vol"/>
<UML:Parameter visibility="private" value="3.5" xmi.id="uVjRkrtAPyFDv" type="uhAU2AAHTwtnw" isSpecification="false" name="SWD"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="ulLwR0ZLOtg0L" isSpecification="false" isLeaf="false" name="set_as_SRT_controller" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uy39OLyQBSctt" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="False" xmi.id="uuUWMzZEGEnVi" type="uEmbOiuZVO1aM" isSpecification="false" name="setting"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="upB1fqUuAaQ75" isSpecification="false" isLeaf="false" name="set_sidestream_flow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uqVzXZy92JKyM" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="0" xmi.id="ur4c6DjXnfolV" type="urhNZe77oEp1K" isSpecification="false" name="flow"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u0ut5O7TowwN9" isSpecification="false" comment=" record last round's results before updating/discharging:self.update_combined_input() for a clarifier, the main and side outlets have different solids concentrations than the inlet's END ADJUSTMENTS TO COMMON INTERFACE FUNCTIONS UNIQUE TO FINAL_CLARIFIER (INSERT CODE HERE)" isLeaf="false" name="discharge" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uTEEx3oolkcku" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="u96ODS0Xgy9OL" isSpecification="false" isLeaf="false" name="valid_under_TSS" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uY9FlYN52vi9m" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="u0q781SHLotYu" type="uz11orEufP1Pe" isSpecification="false" name="uf_TSS"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="ugut5hqY4f5N0" isSpecification="false" comment=" overflow TSSTODO: is this ok? initiate _mo_comps and _so_comps so that all dissolved components (S_*) are identical among the three streams split the ASM model components associated with solids (X_*), assuming each component is split into the overflow and underflow keeping its fraction in clarifier inlet TSS." isLeaf="false" name="settle_solids" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uLr2CoxM4FvCy" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="[7,8,9,10,11]" xmi.id="uXVphg8Vol6oL" type="uvCMuKyiUzuZG" isSpecification="false" name="index_list"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uzJTiCQj4pHa8" isSpecification="false" isLeaf="false" name="set_capture_rate" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uM1dJbsMbLELS" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="0.95" xmi.id="uGpIQi04JgV8b" type="uhAU2AAHTwtnw" isSpecification="false" name="capture_rate"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uIM2sr7ZacDJg" isSpecification="false" comment=" END OF FUNCTIONS UNQIUE TO FINAL_CLARIFIER" isLeaf="false" name="set_underflow_TSS" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u4PfixqI7qQ0R" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="15000" xmi.id="ui2lJ4urze3Gb" type="urhNZe77oEp1K" isSpecification="false" name="uf_TSS"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Class visibility="public" isRoot="false" namespace="Logical_View" xmi.id="uua2VH04kkGma" isSpecification="false" isLeaf="false" name="splitter" isAbstract="false">
<UML:GeneralizableElement.generalization>
<UML:Generalization xmi.idref="uyViSNaxO17m8"/>
</UML:GeneralizableElement.generalization>
<UML:Classifier.feature>
<UML:Attribute visibility="private" xmi.id="uddcuVtsjwNX4" type="urhNZe77oEp1K" isSpecification="false" initialValue="0" name="id" ownerScope="classifier"/>
<UML:Attribute visibility="private" xmi.id="uv9E98g4Bhsis" type="uz11orEufP1Pe" isSpecification="false" initialValue=""Splitter_"" name="name__"/>
<UML:Attribute visibility="protected" xmi.id="u0yqc8peMEiHv" type="uz11orEufP1Pe" isSpecification="false" initialValue=""Splitter"" name="type"/>
<UML:Attribute visibility="protected" xmi.id="ukBuM5vtuR2wg" type="uafiQjE3YjxcA" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow}" initialValue="{}" name="inlet"/>
<UML:Attribute visibility="protected" xmi.id="u10ztYhudOxdH" type="uULAf3iiyYgTQ" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each" initialValue="None" name="main_outlet"/>
<UML:Attribute visibility="protected" xmi.id="uhn1dmqgOLcuk" type="uULAf3iiyYgTQ" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each" initialValue="None" name="side_outlet"/>
<UML:Attribute visibility="protected" xmi.id="uOGAn6HxLI3w7" type="uEmbOiuZVO1aM" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units" initialValue="False" name="has_discharger"/>
<UML:Attribute visibility="protected" xmi.id="u3rcTHSs5DIzo" type="uEmbOiuZVO1aM" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter" initialValue="True" name="has_sidestream"/>
<UML:Attribute visibility="protected" xmi.id="uTwAnxLEvBSBy" type="uEmbOiuZVO1aM" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag" initialValue="False" name="mo_connected"/>
<UML:Attribute visibility="protected" xmi.id="u0ZdntG41hLle" type="uEmbOiuZVO1aM" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag" initialValue="False" name="so_connected"/>
<UML:Attribute visibility="protected" xmi.id="uev1K7oyWFRiu" type="uEmbOiuZVO1aM" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows" initialValue="True" name="upstream_set_mo_flow"/>
<UML:Attribute visibility="protected" xmi.id="uu30FyHhPNr5x" type="uEmbOiuZVO1aM" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow" initialValue="False" name="so_flow_defined"/>
<UML:Attribute visibility="protected" xmi.id="u7qI4WaqO5f4a" type="uhAU2AAHTwtnw" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d" initialValue="0.0" name="mo_flow"/>
<UML:Attribute visibility="protected" xmi.id="ucL3Ee4reZygz" type="uhAU2AAHTwtnw" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d side outlet flow, m3/d" initialValue="0.0" name="so_flow"/>
<UML:Attribute visibility="protected" xmi.id="u3PmbstdEO5cB" type="uhAU2AAHTwtnw" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d side outlet flow, m3/d total inlet flow calculated from all dischargers" initialValue="0.0" name="total_inflow"/>
<UML:Attribute visibility="protected" xmi.id="ufzOVN7ENdvhL" type="uhAU2AAHTwtnw" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d side outlet flow, m3/d total inlet flow calculated from all dischargers inlet flow back calculated as (_mo_flow + _so_flow)" initialValue="0.0" name="in_flow_backcalc"/>
<UML:Attribute visibility="protected" xmi.id="uip7EFD8ahSuu" type="uEmbOiuZVO1aM" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d side outlet flow, m3/d total inlet flow calculated from all dischargers inlet flow back calculated as (_mo_flow + _so_flow)" initialValue="False" name="SRT_controller"/>
<UML:Attribute visibility="protected" xmi.id="umWea1I13GhVI" type="uvCMuKyiUzuZG" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d side outlet flow, m3/d total inlet flow calculated from all dischargers inlet flow back calculated as (_mo_flow + _so_flow) influent/main_outlet/side_oulet model components: _comps[0]: X_I, _comps[1]: X_S, _comps[2]: X_BH, _comps[3]: X_BA, _comps[4]: X_D, _comps[5]: S_I, _comps[6]: S_S, _comps[7]: -S_DO, COD = -DO _comps[8]: S_NO, _comps[9]: S_NH, _comps[10]: S_NS, _comps[11]: X_NS, _comps[12]: S_ALK" initialValue="[0.0]" name="in_comps"/>
<UML:Attribute visibility="protected" xmi.id="uOUnGt2lN1EtO" type="uvCMuKyiUzuZG" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d side outlet flow, m3/d total inlet flow calculated from all dischargers inlet flow back calculated as (_mo_flow + _so_flow) influent/main_outlet/side_oulet model components: _comps[0]: X_I, _comps[1]: X_S, _comps[2]: X_BH, _comps[3]: X_BA, _comps[4]: X_D, _comps[5]: S_I, _comps[6]: S_S, _comps[7]: -S_DO, COD = -DO _comps[8]: S_NO, _comps[9]: S_NH, _comps[10]: S_NS, _comps[11]: X_NS, _comps[12]: S_ALK" initialValue="[0.0]" name="mo_comps"/>
<UML:Attribute visibility="protected" xmi.id="unLFm6Ot78unN" type="uvCMuKyiUzuZG" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d side outlet flow, m3/d total inlet flow calculated from all dischargers inlet flow back calculated as (_mo_flow + _so_flow) influent/main_outlet/side_oulet model components: _comps[0]: X_I, _comps[1]: X_S, _comps[2]: X_BH, _comps[3]: X_BA, _comps[4]: X_D, _comps[5]: S_I, _comps[6]: S_S, _comps[7]: -S_DO, COD = -DO _comps[8]: S_NO, _comps[9]: S_NH, _comps[10]: S_NS, _comps[11]: X_NS, _comps[12]: S_ALK" initialValue="[0.0]" name="so_comps"/>
<UML:Attribute visibility="protected" xmi.id="uiXM2OhJUJm6u" type="uvCMuKyiUzuZG" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d side outlet flow, m3/d total inlet flow calculated from all dischargers inlet flow back calculated as (_mo_flow + _so_flow) influent/main_outlet/side_oulet model components: _comps[0]: X_I, _comps[1]: X_S, _comps[2]: X_BH, _comps[3]: X_BA, _comps[4]: X_D, _comps[5]: S_I, _comps[6]: S_S, _comps[7]: -S_DO, COD = -DO _comps[8]: S_NO, _comps[9]: S_NH, _comps[10]: S_NS, _comps[11]: X_NS, _comps[12]: S_ALK results of previous round" initialValue="[0.0]" name="prev_mo_comps"/>
<UML:Attribute visibility="protected" xmi.id="uimxhCy4U4PlV" type="uvCMuKyiUzuZG" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d side outlet flow, m3/d total inlet flow calculated from all dischargers inlet flow back calculated as (_mo_flow + _so_flow) influent/main_outlet/side_oulet model components: _comps[0]: X_I, _comps[1]: X_S, _comps[2]: X_BH, _comps[3]: X_BA, _comps[4]: X_D, _comps[5]: S_I, _comps[6]: S_S, _comps[7]: -S_DO, COD = -DO _comps[8]: S_NO, _comps[9]: S_NH, _comps[10]: S_NS, _comps[11]: X_NS, _comps[12]: S_ALK results of previous round" initialValue="[0.0]" name="prev_so_comps"/>
<UML:Attribute visibility="protected" xmi.id="uobjHBvLk77rW" type="uEmbOiuZVO1aM" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d side outlet flow, m3/d total inlet flow calculated from all dischargers inlet flow back calculated as (_mo_flow + _so_flow) influent/main_outlet/side_oulet model components: _comps[0]: X_I, _comps[1]: X_S, _comps[2]: X_BH, _comps[3]: X_BA, _comps[4]: X_D, _comps[5]: S_I, _comps[6]: S_S, _comps[7]: -S_DO, COD = -DO _comps[8]: S_NO, _comps[9]: S_NH, _comps[10]: S_NS, _comps[11]: X_NS, _comps[12]: S_ALK results of previous round convergence status for the unit itself" initialValue="False" name="converged"/>
<UML:Attribute visibility="protected" xmi.id="ujey0FhE7CgHe" type="uEmbOiuZVO1aM" isSpecification="false" comment="_inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d side outlet flow, m3/d total inlet flow calculated from all dischargers inlet flow back calculated as (_mo_flow + _so_flow) influent/main_outlet/side_oulet model components: _comps[0]: X_I, _comps[1]: X_S, _comps[2]: X_BH, _comps[3]: X_BA, _comps[4]: X_D, _comps[5]: S_I, _comps[6]: S_S, _comps[7]: -S_DO, COD = -DO _comps[8]: S_NO, _comps[9]: S_NH, _comps[10]: S_NS, _comps[11]: X_NS, _comps[12]: S_ALK results of previous round convergence status for the unit itselfself._inflow_totalized = Falseself._in_comps_blended = False provision flag for loop-finding need" initialValue="False" name="visited"/>
<UML:Operation visibility="public" isRoot="false" stereotype="constructor" isOverride="false" isQuery="false" xmi.id="uFQ5ne7Amyti7" isSpecification="false" comment=" _inlet store the upstream units and their flow contribution in the format of {unit, Flow} outlets shall be a single receiver each flag to indicate whether there are upstream units always True for splitter main outlet connection flag side outlet connection flag determine how to calculate branch flows to confirm it has received _so_flow main outlet flow, m3/d side outlet flow, m3/d total inlet flow calculated from all dischargers inlet flow back calculated as (_mo_flow + _so_flow) influent/main_outlet/side_oulet model components: _comps[0]: X_I, _comps[1]: X_S, _comps[2]: X_BH, _comps[3]: X_BA, _comps[4]: X_D, _comps[5]: S_I, _comps[6]: S_S, _comps[7]: -S_DO, COD = -DO _comps[8]: S_NO, _comps[9]: S_NH, _comps[10]: S_NS, _comps[11]: X_NS, _comps[12]: S_ALK results of previous round convergence status for the unit itselfself._inflow_totalized = Falseself._in_comps_blended = False provision flag for loop-finding need COMMON INTERFACES DEFINED IN POOPY_LAB_OBJ (BASE)" isLeaf="false" name="__init__" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uINAUm7rFh20r" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="ubaEtNT0T6ixA" isSpecification="false" comment=" 1) Side outlet flow (_so_flow) can be set by 1A) either WAS (_SRT_controller) or direct user input 2A) upstream (non _SRT_controller) 2) Main outlet flow (_mo_flow) can be set by 2A) upstream automatically (default): 2B) direct user input: 3) Inlet flow is dependent on the two outlet branches' settings i.e. _so_flow set by a WAS unit if upstream doesn't set _mo_flow, it has to set _so_flow" isLeaf="false" name="branch_flow_helper" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uuZUmLYS9V7mM" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="usEDApTbeu91x" isSpecification="false" isLeaf="false" name="is_converged" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uwg5ws7B0Wpdw" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="1E" xmi.id="uvDCGNtqC7SCY" type="urhNZe77oEp1K" isSpecification="false" name="limit"/>
<UML:Parameter visibility="private" value="" xmi.id="uhj9fydnxPtGa" type="uz11orEufP1Pe" isSpecification="false" name="-"/>
<UML:Parameter visibility="private" value="" xmi.id="u5oOGWNYCe4Ec" type="uz11orEufP1Pe" isSpecification="false" name="8"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uOHr6kp3dNdW5" isSpecification="false" isLeaf="false" name="get_type" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uzuHcLwpCalYK" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uES4xWSvgCLG6" isSpecification="false" isLeaf="false" name="has_sidestream" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uqTIg6L3BxqEi" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uyyi7amkydZPX" isSpecification="false" comment=" Setting the flow to 0 is a place-holder when setting up the Process Flow Diagram, because the actual total flow from upstream unit may not have been completely configured. The self.discharge() method of the upstream unit will totalize the flow and blend the components before passing them into the current unit.self._inflow_totalized = self._in_comps_blended = False" isLeaf="false" name="add_upstream" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uzVasCZkmRJLt" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="u9NIoKei50aoO" type="uz11orEufP1Pe" isSpecification="false" name="discharger"/>
<UML:Parameter visibility="private" value="" xmi.id="uAN0BpgJD8o1i" type="uULAf3iiyYgTQ" isSpecification="false" name="upst_branch"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uO76LuVsPJQEf" isSpecification="false" isLeaf="false" name="has_discharger" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uKh33bwHhu6xA" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u7HQenuFdrIwt" isSpecification="false" isLeaf="false" name="get_upstream" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u1pKOKuAcosis" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u9OiOcHVjKlAa" isSpecification="false" comment="self._inflow_totalized = True" isLeaf="false" name="totalize_inflow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="udIssY5zrIyGa" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u677Mv10PZQPa" isSpecification="false" comment="if not self._inflow_totalized:self.totalize_inflow() make sure it's not 0self._in_comps_blended = True" isLeaf="false" name="blend_inlet_comps" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ueoRC0BYFqL4n" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="upgkGSEDJ5Vzk" isSpecification="false" comment="if not self._inflow_totalized:if self._inflow_totalized and not self._in_comps_blended:" isLeaf="false" name="update_combined_input" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uYmnHmFfwmyxE" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uRa9KARjTTPiQ" isSpecification="false" comment="self._inflow_totalized = self._in_comps_blended = False" isLeaf="false" name="remove_upstream" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ufis6IsMgYIfN" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uV5tn4nTzFgU7" type="uz11orEufP1Pe" isSpecification="false" name="discharger"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uLCQ2lYtpYCTL" isSpecification="false" isLeaf="false" name="set_downstream_main" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uPtpKUQXptqSH" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uECbNPxtvk11G" type="uz11orEufP1Pe" isSpecification="false" name="rcvr"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uMOmVzy2Ms9bR" isSpecification="false" isLeaf="false" name="main_outlet_connected" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uiZpNrFieRm4y" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="udKOmEOxzjKsb" isSpecification="false" isLeaf="false" name="get_downstream_main" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uzUXDsMUhiSVZ" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uhVPDAICYoOn0" isSpecification="false" isLeaf="false" name="set_mainstream_flow_by_upstream" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ueGebVudEy0BO" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="True" xmi.id="uuuGfApK3gWwf" type="uEmbOiuZVO1aM" isSpecification="false" name="f"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u7mMB4UuoeqAZ" isSpecification="false" comment="TODO: Need to be able to dynamically update the sidestream flow" isLeaf="false" name="set_mainstream_flow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ujgx01w7dhtfV" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="0" xmi.id="uS1uzHuWemAwk" type="urhNZe77oEp1K" isSpecification="false" name="flow"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="up8LRGd3mefUG" isSpecification="false" comment="if not self._inflow_totalized:" isLeaf="false" name="get_main_outflow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uqdyyM3ui345O" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uR1JTJyCBGJdl" isSpecification="false" comment="if self._in_comps_blended == False:self.blend_inlet_comps()" isLeaf="false" name="get_main_outlet_concs" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uQesGVdoUYRLf" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="ucbUPt8IjQct0" isSpecification="false" isLeaf="false" name="set_downstream_side" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u0DEOOeTNBj1d" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uyZNBRycXmTyG" type="uz11orEufP1Pe" isSpecification="false" name="rcvr"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uIPkov4Uz5WYl" isSpecification="false" isLeaf="false" name="side_outlet_connected" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ueueH7HallTQA" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uB8yYuGIjm5Wz" isSpecification="false" isLeaf="false" name="get_downstream_side" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uyg6vl1i0rpv6" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u9Z7xcrgUfcHR" isSpecification="false" comment="TODO: Need to be able to dynamically update the sidestream flow" isLeaf="false" name="set_sidestream_flow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u5sOpHdNjpk94" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="0" xmi.id="uTx7NZalOSPC4" type="urhNZe77oEp1K" isSpecification="false" name="flow"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uVbjzBftBwkS0" isSpecification="false" isLeaf="false" name="sidestream_flow_defined" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uY7E2NUa87ifZ" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="umKAYfyJ5nnWQ" isSpecification="false" comment="if not self._inflow_totalized:" isLeaf="false" name="get_side_outflow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uHGh8Uz7i5GMv" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="ubZ7EobZ0H5IS" isSpecification="false" comment="if self._in_comps_blended == False:self.blend_inlet_comps()" isLeaf="false" name="get_side_outlet_concs" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uP1o44QYAY0cM" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u2VP4qmgELyqB" isSpecification="false" comment="self._inflow_totalized = False" isLeaf="false" name="set_flow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u7hw2LGWpAsGi" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="ux6EQodCRyrJV" type="uz11orEufP1Pe" isSpecification="false" name="dschgr"/>
<UML:Parameter visibility="private" value="" xmi.id="uF5XzIpSFoRBY" type="uz11orEufP1Pe" isSpecification="false" name="flow"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uuX4iQK9PU1rp" isSpecification="false" isLeaf="false" name="discharge_main_outlet" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uLwnQVOkUi7is" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uUUFHEjQGGOtw" isSpecification="false" isLeaf="false" name="discharge_side_outlet" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uyNu30GMssUfR" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u9yvjdFdvhkbn" isSpecification="false" comment=" for a typical splitter, concentrations at the main/side outlets equal to those at the inlet" isLeaf="false" name="discharge" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uUwh1ycDwJvIB" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uopMcVqRlyXul" isSpecification="false" comment="TODO: need to make COD/TSS = 1.2 changeable for different type of sludge" isLeaf="false" name="get_TSS" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uXHYcMC7ZYFMe" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value=""Main_Out"" xmi.id="uxjFn8S7lELl6" type="uz11orEufP1Pe" isSpecification="false" name="br"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u1CfJDbptlysx" isSpecification="false" comment="TODO: need to make COD/VSS = 1.42 changeable for diff. type of sludge" isLeaf="false" name="get_VSS" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uqU7vUtFBPDMn" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value=""Main_Out"" xmi.id="uHVdHy5Wwfvg0" type="uz11orEufP1Pe" isSpecification="false" name="br"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u7dYME0FBk3Jh" isSpecification="false" isLeaf="false" name="get_COD" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uYY04dvazdBh4" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value=""Main_Out"" xmi.id="uo75saTcronHU" type="uz11orEufP1Pe" isSpecification="false" name="br"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uM25HIqzWqbxu" isSpecification="false" isLeaf="false" name="get_sCOD" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="unlEeKNU09lBC" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value=""Main_Out"" xmi.id="uWc4FiWEN3SPZ" type="uz11orEufP1Pe" isSpecification="false" name="br"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uPmbkgh7w6ZNZ" isSpecification="false" isLeaf="false" name="get_pCOD" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uBbVJKGdHLj3s" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value=""Main_Out"" xmi.id="ud6JeTsRDTic2" type="uz11orEufP1Pe" isSpecification="false" name="br"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u4ftlc57fDCkS" isSpecification="false" isLeaf="false" name="get_TN" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u8U3iFfH4EZYg" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value=""Main_Out"" xmi.id="uLHmeaYXT0aHf" type="uz11orEufP1Pe" isSpecification="false" name="br"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uoqmdtE1CCuie" isSpecification="false" isLeaf="false" name="get_orgN" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u5MMIUbmiOp2H" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value=""Main_Out"" xmi.id="usU7oB5f2faDk" type="uz11orEufP1Pe" isSpecification="false" name="br"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uUWHVGteAIkF5" isSpecification="false" isLeaf="false" name="get_inorgN" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uYoDt2zbGFO4a" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value=""Main_Out"" xmi.id="uw6r73D3DhfEO" type="uz11orEufP1Pe" isSpecification="false" name="br"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u9GW5HHNaQeaZ" isSpecification="false" isLeaf="false" name="get_pN" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uvdNVizR1KgRa" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value=""Main_Out"" xmi.id="u0bwAAXVq8vhv" type="uz11orEufP1Pe" isSpecification="false" name="br"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u7LJ58OcdHKwp" isSpecification="false" isLeaf="false" name="get_sN" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uPbKPEg6c9pGL" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value=""Main_Out"" xmi.id="u6XBdWpxAfvAw" type="uz11orEufP1Pe" isSpecification="false" name="br"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u6l6FWKceEbO4" isSpecification="false" isLeaf="false" name="set_as_visited" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uySWEYxErZRjC" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="False" xmi.id="uIoCjtb6rYIzo" type="uEmbOiuZVO1aM" isSpecification="false" name="status"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uEXF1nfyfenMg" isSpecification="false" comment=" END OF COMMON INTERFACE DEFINITIONS FUNCTIONS UNIQUE TO SPLITTER" isLeaf="false" name="is_visited" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uo8ZQgUbJ93BS" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u6QKzlIMq5iA7" isSpecification="false" comment="TODO: add notes hereTODO: HOW DOES THIS IMPACT WAS FLOW BASED ON USER SPECIFIED SRT?" isLeaf="false" name="set_as_SRT_controller" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u3LQvx5rrJjOm" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="False" xmi.id="ueC8pwsPa9ZIc" type="uEmbOiuZVO1aM" isSpecification="false" name="setting"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u1wU6wcQblGMB" isSpecification="false" isLeaf="false" name="is_SRT_controller" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uFmYF9N2LVO6x" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uIFGnsmntY2RU" isSpecification="false" comment=" END OF FUNCTIONS UNIQUE TO SPLITTER ---------------------------------------------------------------------------- pipe class - Change Log: 20190704 KZ: corrected initiation error. 20190715 KZ: added self._type 20190619 KZ: revised as per the splitter update. 20190618 KZ: added flow source flags defaults 20190609 KZ: fully migrated to the new base 20190604 KZ: migrating to the new base (poopy_lab_obj) 20190209 KZ: standardized import Jan 12, 2019 KZ: resume and cleaned up Jul 28, 2017 KZ: made it more pythonic Mar 21, 2017 KZ: Migrated to Python3 Jun 24, 2015 KZ: Updated AddUpstreamUnit() to differential main/side Jun 16, 2015 KZ: Removed _PreFix, _Group status and Set(Get)PreFixStatus(), Set(Get)GroupStatus. Renamed _Done to _visited, SetAs(Is)Visited() to SetAs(Is)Visited() Mar 20, 2015 KZ: Added _PreFix, _Group, _Done status and Set(Get)PreFixStatus(), Set(Get)GroupStatus, SetAs(Is)Done(). Nov 24, 2014 KZ: revised RemoveUpstreamUnit() to be able to remove units with sidestream Nov 23, 2014 KZ: revised RemoveUpstreamUnit() to check availability to the upstream unit specified Nov 12, 2014 KZ: added: _has_discharger and _MainOutletConnected flags; UpstreamConnected() and MainOutletConnected() functions Sep 26, 2014 KZ: removed test code Jun 29, 2014 KZ: Added GetXXX() definitions for solids and COD summary. Mar 15, 2014 KZ: AddUpstreamUnit(), RemoveUpstreamUnit(), and SetDownstreamMainUnit() begin here Mar 08, 2014 KZ: Rewrite according to the new class structure Dec 07, 2013 Kai Zhang" isLeaf="false" name="sum_helper" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uPKuGkhzClqoA" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value=""Main_Out"" xmi.id="uthpnm0LNvdMG" type="uz11orEufP1Pe" isSpecification="false" name="branch"/>
<UML:Parameter visibility="private" value="[]" xmi.id="uSG3BEjal73RE" type="uvCMuKyiUzuZG" isSpecification="false" name="index_list"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Generalization visibility="public" discriminator="" namespace="Logical_View" xmi.id="u8ujgmQG1xNv0" isSpecification="false" name="" child="uKL5AyFtGCxS4" parent="uua2VH04kkGma"/>
<UML:Class visibility="public" isRoot="false" namespace="Logical_View" xmi.id="uaDvw6dP6ztus" isSpecification="false" isLeaf="false" name="poopy_lab_obj" isAbstract="false"/>
<UML:Generalization visibility="public" discriminator="" namespace="Logical_View" xmi.id="uyViSNaxO17m8" isSpecification="false" name="" child="uua2VH04kkGma" parent="uaDvw6dP6ztus"/>
<UML:Generalization visibility="public" discriminator="" namespace="Logical_View" xmi.id="uke1dAmZpcaba" isSpecification="false" name="" child="uzZJmjcVZS9KB" parent="uua2VH04kkGma"/>
<UML:Class visibility="public" isRoot="false" namespace="Logical_View" xmi.id="ut7PHkaR76xZv" isSpecification="false" isLeaf="false" name="influent" isAbstract="false">
<UML:GeneralizableElement.generalization>
<UML:Generalization xmi.idref="uWDcfAKqAdYLt"/>
</UML:GeneralizableElement.generalization>
<UML:Classifier.feature>
<UML:Attribute visibility="private" xmi.id="uPJcILdfIkV98" type="urhNZe77oEp1K" isSpecification="false" initialValue="0" name="id" ownerScope="classifier"/>
<UML:Attribute visibility="private" xmi.id="ufMEE30H1m2ou" type="uz11orEufP1Pe" isSpecification="false" initialValue=""Influent_"" name="name__"/>
<UML:Attribute visibility="protected" xmi.id="uGz468VIpI7v0" type="uz11orEufP1Pe" isSpecification="false" initialValue=""Influent"" name="type"/>
<UML:Attribute visibility="protected" xmi.id="uVWZMZbswVrb3" type="uULAf3iiyYgTQ" isSpecification="false" comment="influent has no further upstream discharger" initialValue="None" name="inlet"/>
<UML:Attribute visibility="protected" xmi.id="ujZV8U9NXFVRh" type="uEmbOiuZVO1aM" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag" initialValue="True" name="has_discharger"/>
<UML:Attribute visibility="protected" xmi.id="uXzFZvhgCIsxX" type="uEmbOiuZVO1aM" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream" initialValue="False" name="has_sidestream"/>
<UML:Attribute visibility="protected" xmi.id="u0Ez1h2K0h3l0" type="uEmbOiuZVO1aM" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream defaults:" initialValue="False" name="upstream_set_mo_flow"/>
<UML:Attribute visibility="protected" xmi.id="uHWEBQOeVFA27" type="uhAU2AAHTwtnw" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream defaults: Influent characteristics from user measurements/inputs Setting default values for municipal wastewater in USA Default Unit: mg/L except where noted differently" initialValue="250.0" name="BOD5"/>
<UML:Attribute visibility="protected" xmi.id="u1uSr2g6TrzOU" type="uhAU2AAHTwtnw" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream defaults: Influent characteristics from user measurements/inputs Setting default values for municipal wastewater in USA Default Unit: mg/L except where noted differently" initialValue="250.0" name="TSS"/>
<UML:Attribute visibility="protected" xmi.id="uAgdGEHK0cMC1" type="uhAU2AAHTwtnw" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream defaults: Influent characteristics from user measurements/inputs Setting default values for municipal wastewater in USA Default Unit: mg/L except where noted differently" initialValue="200.0" name="VSS"/>
<UML:Attribute visibility="protected" xmi.id="ue9ha7bHNFyz1" type="uhAU2AAHTwtnw" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream defaults: Influent characteristics from user measurements/inputs Setting default values for municipal wastewater in USA Default Unit: mg/L except where noted differently" initialValue="40.0" name="TKN"/>
<UML:Attribute visibility="protected" xmi.id="uVFoikyppVzgx" type="uhAU2AAHTwtnw" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream defaults: Influent characteristics from user measurements/inputs Setting default values for municipal wastewater in USA Default Unit: mg/L except where noted differently" initialValue="28.0" name="NH3"/>
<UML:Attribute visibility="protected" xmi.id="uGnSrJlMvTnbg" type="uhAU2AAHTwtnw" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream defaults: Influent characteristics from user measurements/inputs Setting default values for municipal wastewater in USA Default Unit: mg/L except where noted differently" initialValue="0.0" name="NO"/>
<UML:Attribute visibility="protected" xmi.id="uqs5h0w4xbecl" type="uhAU2AAHTwtnw" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream defaults: Influent characteristics from user measurements/inputs Setting default values for municipal wastewater in USA Default Unit: mg/L except where noted differently" initialValue="10.0" name="TP"/>
<UML:Attribute visibility="protected" xmi.id="uJg2Ma8jjsIRi" type="uhAU2AAHTwtnw" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream defaults: Influent characteristics from user measurements/inputs Setting default values for municipal wastewater in USA Default Unit: mg/L except where noted differently in mmol/L as CaCO3" initialValue="6.0" name="Alk"/>
<UML:Attribute visibility="protected" xmi.id="ugQUI9a8fwODU" type="uhAU2AAHTwtnw" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream defaults: Influent characteristics from user measurements/inputs Setting default values for municipal wastewater in USA Default Unit: mg/L except where noted differently in mmol/L as CaCO3" initialValue="0.0" name="DO"/>
<UML:Attribute visibility="protected" xmi.id="uU4xKWPdjR7SH" type="urhNZe77oEp1K" isSpecification="false" comment="influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream defaults: Influent characteristics from user measurements/inputs Setting default values for municipal wastewater in USA Default Unit: mg/L except where noted differently in mmol/L as CaCO3 Plant influent flow in M3/DAY TODO: will be user-input from GUI. FROM THE GUI, USER will use MGD. DEFAULT VALUE = 10 MGD. convert to M3/day" initialValue="10" name="design_flow"/>
<UML:Operation visibility="public" isRoot="false" stereotype="constructor" isOverride="false" isQuery="false" xmi.id="u9i2Y8lEJNwUh" isSpecification="false" comment=" influent has no further upstream discharger Trick the system by setting True to _has_discharger flag influent has no sidestream defaults: Influent characteristics from user measurements/inputs Setting default values for municipal wastewater in USA Default Unit: mg/L except where noted differently in mmol/L as CaCO3 Plant influent flow in M3/DAY TODO: will be user-input from GUI. FROM THE GUI, USER will use MGD. DEFAULT VALUE = 10 MGD. convert to M3/day ADJUSTMENTS TO THE COMMON INTERFACE TO FIT THE NEEDS OF INFLUENT" isLeaf="false" name="__init__" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u5UBGDfmDNVMK" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uMuNiJoE2bxgx" isSpecification="false" isLeaf="false" name="branch_flow_helper" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ul78VH2O8Ko8K" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uewNrXR9WcOJn" isSpecification="false" isLeaf="false" name="add_upstream" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uejr28LE2oCAp" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uSFAsneAbmHcS" type="uz11orEufP1Pe" isSpecification="false" name="discharger"/>
<UML:Parameter visibility="private" value="" xmi.id="utKJ9RUEGxVky" type="uz11orEufP1Pe" isSpecification="false" name="branch"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uwYlRT0DqbFKi" isSpecification="false" comment="self._inflow_totalized = True" isLeaf="false" name="totalize_inflow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uPRiLMDZE9jQL" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uO9UUUuj2tEcM" isSpecification="false" isLeaf="false" name="blend_inlet_comps" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uGpXudFVyBZlW" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u6Z9xl6R62o59" isSpecification="false" isLeaf="false" name="remove_upstream" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u08t0KOk6vMjr" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uJ2KlEwKxyEbX" type="uz11orEufP1Pe" isSpecification="false" name="discharger"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="umlhJkQXQZTIO" isSpecification="false" isLeaf="false" name="set_mainstream_flow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uzFZM7ZANHACI" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="10" xmi.id="uAtBiBP5dfKsA" type="urhNZe77oEp1K" isSpecification="false" name="flow"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uRqidZAhcSEig" isSpecification="false" isLeaf="false" name="set_mainstream_flow_by_upstream" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="ubNwFR0JAkuOe" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="umN0jLnV7NiiL" type="uz11orEufP1Pe" isSpecification="false" name="f"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uWH2tWXwA4OfJ" isSpecification="false" isLeaf="false" name="get_main_outflow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u9TKmvIrEHLG8" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="ul2eqektS39OW" isSpecification="false" isLeaf="false" name="set_flow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uf73QeSMndIQu" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uNdTE6nQ7rg2w" type="uz11orEufP1Pe" isSpecification="false" name="discharger"/>
<UML:Parameter visibility="private" value="" xmi.id="ubEuuCX8yh7Fs" type="uz11orEufP1Pe" isSpecification="false" name="flow"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uNDe4kMq3z7hs" isSpecification="false" comment=" influent concentrations don't change for steady state simulation END OF ADJUSTMENT TO COMMON INTERFACE FUNCTIONS UNIQUE TO INFLUENT (INSERT CODE HERE)" isLeaf="false" name="discharge" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uGLN7MhLlW4yO" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uqtWQiiXgxa2A" isSpecification="false" comment=" TODO: set fractions for converting user measured influent characteristics into ASM1 model components." isLeaf="false" name="set_fractions" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uoef8Dok28yd2" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uA0J1YkchS9g1" isSpecification="false" comment="TODO: the first set of conversion available here is for municipal wastewater. Industrial wastewater may have completely different conversion factors and needs to be tested. influent biodegradable COD, BOD/COD = 1.71 for typ. muni.WW influent total COD, COD/BOD5 = 2.04 per BioWin influent total innert COD, influent soluble innert COD influent particulate innert COD influent particulate biodegradable COD influent soluble biodegradable COD influent Heterotrophs (mgCOD/L), influent Autotrophs (mgCOD/L), influent Biomass Debris (mgCOD/L) influent TKN (mgN/L), NOT IN InfC influent Ammonia-N (mgN/L), subdividing TKN into: a) nonbiodegradable TKN TODO: need to be configurable NON-BIODEGRADABLE TKN WILL HAVE TO BE ADDED BACK TO THE EFFLUENT TN Grady 1999: b) soluble biodegrable TKN, c) particulate biodegradable TKN influent Nitrite + Nitrate (mgN/L) END OF FUNTIONS UNIQUE TO INFLUENT ----------------------------------------------------------------------------- effluent class - Change Log: 20190726 KZ: added discharge() unique to effluent. 20190715 KZ: added self._type 20190619 KZ: revised according to the splitter update 20190611 KZ: migrated to poopy_lab_obj as base and pipe as parent. 20190209 KZ: standardized import Jul 30, 2017 KZ: Made it more pythonic. Mar 21, 2017 KZ: Migrated to Python3 Sep 26, 2014 KZ: removed test code July 2, 2014 KZ: change base class to Pipe. June 29, 2014 KZ: removed Convert() that converts model parameters for user parameters December 25, 2013 KZ: commented out the BlendComponent() function in ReceiveFrom() December 17, 2013 KZ: Added _PrevComp[0..12] to store state variables from previous iteration December 07, 2013 Kai Zhang" isLeaf="false" name="convert_to_model_comps" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uliEZjFcVSY3F" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Generalization visibility="public" discriminator="" namespace="Logical_View" xmi.id="uWDcfAKqAdYLt" isSpecification="false" name="" child="ut7PHkaR76xZv" parent="uzZJmjcVZS9KB"/>
<UML:Class visibility="public" isRoot="false" namespace="Logical_View" xmi.id="usf29A8vc6VFi" isSpecification="false" isLeaf="false" name="effluent" isAbstract="false">
<UML:GeneralizableElement.generalization>
<UML:Generalization xmi.idref="u6LgwsZnFg6qR"/>
</UML:GeneralizableElement.generalization>
<UML:Classifier.feature>
<UML:Attribute visibility="private" xmi.id="uhAOyWuOrIuyt" type="urhNZe77oEp1K" isSpecification="false" initialValue="0" name="id" ownerScope="classifier"/>
<UML:Attribute visibility="private" xmi.id="uELmDSMgztJdh" type="uz11orEufP1Pe" isSpecification="false" initialValue=""Effluent_"" name="name__"/>
<UML:Attribute visibility="protected" xmi.id="uzRgNXpPfbRuF" type="uz11orEufP1Pe" isSpecification="false" initialValue=""Effluent"" name="type"/>
<UML:Attribute visibility="protected" xmi.id="uxVfhUWPPHVhX" type="uEmbOiuZVO1aM" isSpecification="false" comment="dummy" initialValue="True" name="mo_connected"/>
<UML:Attribute visibility="protected" xmi.id="uXdtJ30HApc9j" type="uEmbOiuZVO1aM" isSpecification="false" comment="dummy set by plant wide flow balance" initialValue="False" name="upstream_set_mo_flow"/>
<UML:Operation visibility="public" isRoot="false" stereotype="constructor" isOverride="false" isQuery="false" xmi.id="uxte1wJLT0mfR" isSpecification="false" comment=" dummy set by plant wide flow balance ADJUSTMENTS TO COMMON INTERFACE TO FIT THE NEEDS OF EFFLUENT" isLeaf="false" name="__init__" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uj9Nwl1tFCBHP" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="protected" isRoot="false" isOverride="false" isQuery="false" xmi.id="uvg0M3b0Iv7jH" isSpecification="false" comment=" the _mo_flow of an effluent is set externally (global main loop) _so_flow = 0" isLeaf="false" name="branch_flow_helper" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="usZh58g5zn50v" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="ua1gjVhPBOSBL" isSpecification="false" isLeaf="false" name="set_downstream_main" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uZ20Ue08WujWs" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="" xmi.id="uGgSkBQ7X7rR7" type="uz11orEufP1Pe" isSpecification="false" name="rcvr"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u5Fl4LPYIjTv8" isSpecification="false" isLeaf="false" name="set_mainstream_flow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="unAaNeYO2XpRP" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="0" xmi.id="ugDOPaDbOOTQY" type="urhNZe77oEp1K" isSpecification="false" name="flow"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="ugDten2Pb6KSl" isSpecification="false" comment=" END OF ADJUSTMENTS TO COMMON INTERFACE FUNCTIONS UNIQUE TO EFFLUENT (INSERT CODE HERE) END OF FUNCTIONS UNIQUE TO EFFLUENT ------------------------------------------------------------------------------ WAS class - Change Log: 20190809 KZ: added effluent solids in set_WAS_flow() 20190726 KZ: added discharge() to match the add. of is_converged() 20190715 KZ: added self._type 20190629 KZ: removed inform_SRT_controller() 20190612 KZ: migrated to using pipe as parent. 20190209 KZ: standardized import Jul 30, 2017 KZ: made code more pythonic Mar 21, 2017 KZ: Migrated to Python3 Sep 26, 2014 KZ: Change inheritance back from Splitter to Effluent Aug 25, 2014 KZ: Added InformSRTController function. Aug 23, 2014 KZ: Changed its inheritance to Effluent; Added variables and functions for WAS Flow calculation December 06, 2013 Kai Zhang: Initial design" isLeaf="false" name="discharge" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="u2bja25qcoHSZ" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Generalization visibility="public" discriminator="" namespace="Logical_View" xmi.id="u6LgwsZnFg6qR" isSpecification="false" name="" child="usf29A8vc6VFi" parent="uzZJmjcVZS9KB"/>
<UML:Class visibility="public" isRoot="false" namespace="Logical_View" xmi.id="u5Z6kVkQRTN2t" isSpecification="false" isLeaf="false" name="WAS" isAbstract="false">
<UML:GeneralizableElement.generalization>
<UML:Generalization xmi.idref="ucD8nJ4I4QmKp"/>
</UML:GeneralizableElement.generalization>
<UML:Classifier.feature>
<UML:Attribute visibility="private" xmi.id="uLWYOY59n7Ryp" type="urhNZe77oEp1K" isSpecification="false" initialValue="0" name="id" ownerScope="classifier"/>
<UML:Attribute visibility="private" xmi.id="ulozNImoYHRI3" type="uULAf3iiyYgTQ" isSpecification="false" name="name__"/>
<UML:Attribute visibility="protected" xmi.id="ukHhlbtMHf6n7" type="uz11orEufP1Pe" isSpecification="false" initialValue=""WAS"" name="type"/>
<UML:Attribute visibility="protected" xmi.id="uNjFLHGrtzCth" type="uEmbOiuZVO1aM" isSpecification="false" comment="assume something always receives WAS" initialValue="True" name="mo_connected"/>
<UML:Operation visibility="public" isRoot="false" stereotype="constructor" isOverride="false" isQuery="false" xmi.id="upSx308EX4UdQ" isSpecification="false" comment=" assume something always receives WAS ADJUSTMENTS TO COMMON INTERFACE TO FIT THE NEEDS OF WAS OBJ." isLeaf="false" name="__init__" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uXMpZ6V3PEajv" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="uLfBo3uPxW1YG" isSpecification="false" comment=" the _branch_flow_helper() is not run here WAS typically functions as an effluent obj. However, it can also be a pipe obj. that connects to solids management process units. Therefore, the discharge function allows a None at the main outlet. END OF ADJUSTMENTS TO COMMON INTERFACE FUNCTIONS UNIQUE TO WAS (INSERT CODE HERE)" isLeaf="false" name="discharge" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="umIRZwmCbLweX" type="uz11orEufP1Pe" kind="return"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="u7D0WSfp9ixG7" isSpecification="false" comment=" reactor_list stores the asm_reactor units that contribute active biomass growth to the WWTP. The result of this function will be used to determine the WAS flow for the entire WWTP.TODO: In the MAIN program, we will need to maintain a list of reactors that contribute active solids to the WWTP.TODO: IMPORTANT TO CHECK ALL THE UNITS IN THE reactor_list HAD UPDATED TSS!!! THIS SHOULD BE THE CASE BECAUSE THE WAS UNIT IS THE LAST ELEMENT IN THE ITERATION LOOP. BUT WILL NEED DOUBLE CHECK. Convert unit to Kg" isLeaf="false" name="get_solids_inventory" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uz2Evc7Do3toT" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="[]" xmi.id="u2YMWkyWYbexF" type="uvCMuKyiUzuZG" isSpecification="false" name="reactor_list"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation visibility="public" isRoot="false" isOverride="false" isQuery="false" xmi.id="upYUqobi1bDx5" isSpecification="false" comment="SRT is the plant's SRT from user input. Default 5 days. KGTODO: in MAIN function, we need to check whether the WAS flow is higher than the influent flow; The WAS flow is then passed to the SRT controlling splitter by the main loop. END OF FUNCTIONS UNIQUE TO WAS" isLeaf="false" name="set_WAS_flow" isVirtual="false" isInline="false" isAbstract="false">
<UML:BehavioralFeature.parameter>
<UML:Parameter xmi.id="uPsPBoxu9kN1I" type="uz11orEufP1Pe" kind="return"/>
<UML:Parameter visibility="private" value="5" xmi.id="umsBV5kpdzKB1" type="urhNZe77oEp1K" isSpecification="false" name="SRT"/>
<UML:Parameter visibility="private" value="[]" xmi.id="u3Ms3Pd6abCga" type="uvCMuKyiUzuZG" isSpecification="false" name="reactor_list"/>
<UML:Parameter visibility="private" value="[]" xmi.id="uVnlprSsrL5ZA" type="uvCMuKyiUzuZG" isSpecification="false" name="effluent_list"/>
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Generalization visibility="public" discriminator="" namespace="Logical_View" xmi.id="ucD8nJ4I4QmKp" isSpecification="false" name="" child="u5Z6kVkQRTN2t" parent="uzZJmjcVZS9KB"/>
<UML:Association visibility="public" namespace="Logical_View" xmi.id="ufmV9lTY8O97n" isSpecification="false" name="">
<UML:Association.connection>
<UML:AssociationEnd visibility="public" changeability="changeable" isNavigable="true" xmi.id="uWcFkr0xc8rCN" type="uFbqwV186SIrr" isSpecification="false" aggregation="composite" name=""/>
<UML:AssociationEnd visibility="public" changeability="changeable" isNavigable="true" xmi.id="uANax2P2LUwtM" type="u74P5gtnzem0F" isSpecification="false" aggregation="none" name=""/>
</UML:Association.connection>
</UML:Association>
</UML:Namespace.ownedElement>
<XMI.extension xmi.extender="umbrello">
<diagrams resolution="96">
<diagram griddotcolor="#d3d3d3" snapcsgrid="0" canvasheight="2385.61" fillcolor="#ffffc0" localid="-1" isopen="1" xmi.id="uUJ6hh6iVtg3L" showscope="1" backgroundcolor="#ffffff" showopsig="1" linecolor="#ff0000" zoom="100" documentation="" showgrid="0" snapgrid="0" showstereotype="1" showattsig="1" linewidth="0" showattribassocs="1" usefillcolor="0" textcolor="#000000" showpubliconly="0" type="1" canvaswidth="3723.23" showpackage="1" name="class diagram" font="Cantarell,11,-1,5,50,0,0,0,0,0" snapx="25" showops="1" showatts="1" snapy="25">
<widgets>
<classwidget showopsigs="601" showattsigs="601" localid="uXp5DN7z1buKN" fillcolor="#ffffc0" showoperations="1" xmi.id="uua2VH04kkGma" showscope="1" isinstance="0" x="-295" linecolor="#ff0000" showstereotype="1" linewidth="0" usesdiagramusefillcolor="0" y="-425" usefillcolor="0" width="493" textcolor="#000000" usesdiagramfillcolor="0" showpubliconly="0" autoresize="1" showpackage="1" showattributes="1" font="Cantarell,11,-1,5,50,0,0,0,0,0" height="1260"/>
<classwidget showopsigs="601" showattsigs="601" localid="uWwIcUsEmV9N8" fillcolor="#ffffc0" showoperations="1" xmi.id="uaDvw6dP6ztus" showscope="1" isinstance="0" x="-212" linecolor="#ff0000" showstereotype="1" linewidth="0" usesdiagramusefillcolor="0" y="-608" usefillcolor="0" width="112" textcolor="#000000" usesdiagramfillcolor="0" showpubliconly="0" autoresize="1" showpackage="1" showattributes="1" font="Cantarell,11,-1,5,50,0,0,0,0,0" height="36"/>
<classwidget showopsigs="601" showattsigs="601" localid="uuiYw8GLPjU7f" fillcolor="#ffffc0" showoperations="1" xmi.id="ut7PHkaR76xZv" showscope="1" isinstance="0" x="-842.516" linecolor="#ff0000" showstereotype="1" linewidth="0" usesdiagramusefillcolor="0" y="-147.306" usefillcolor="0" width="410" textcolor="#000000" usesdiagramfillcolor="0" showpubliconly="0" autoresize="1" showpackage="1" showattributes="1" font="Cantarell,11,-1,5,50,0,0,0,0,0" height="558"/>
<classwidget showopsigs="601" showattsigs="601" localid="uS20dC05RUHh7" fillcolor="#ffffc0" showoperations="1" xmi.id="u5Z6kVkQRTN2t" showscope="1" isinstance="0" x="-1792.12" linecolor="#ff0000" showstereotype="1" linewidth="0" usesdiagramusefillcolor="0" y="229.295" usefillcolor="0" width="555" textcolor="#000000" usesdiagramfillcolor="0" showpubliconly="0" autoresize="1" showpackage="1" showattributes="1" font="Cantarell,11,-1,5,50,0,0,0,0,0" height="162"/>
<classwidget showopsigs="601" showattsigs="601" localid="u8J3HlpuY8Ji0" fillcolor="#ffffc0" showoperations="1" xmi.id="u74P5gtnzem0F" showscope="1" isinstance="0" x="-1393.87" linecolor="#ff0000" showstereotype="1" linewidth="0" usesdiagramusefillcolor="0" y="1045.91" usefillcolor="0" width="533" textcolor="#000000" usesdiagramfillcolor="0" showpubliconly="0" autoresize="1" showpackage="1" showattributes="1" font="Cantarell,11,-1,5,50,0,0,0,0,0" height="684"/>
<classwidget showopsigs="601" showattsigs="601" localid="u0LcjUOtCqMdq" fillcolor="#ffffc0" showoperations="1" xmi.id="usf29A8vc6VFi" showscope="1" isinstance="0" x="-1777.64" linecolor="#ff0000" showstereotype="1" linewidth="0" usesdiagramusefillcolor="0" y="-147.608" usefillcolor="0" width="316" textcolor="#000000" usesdiagramfillcolor="0" showpubliconly="0" autoresize="1" showpackage="1" showattributes="1" font="Cantarell,11,-1,5,50,0,0,0,0,0" height="198"/>
<classwidget showopsigs="601" showattsigs="601" localid="uVEyrzvgC6A72" fillcolor="#ffffc0" showoperations="1" xmi.id="uzZJmjcVZS9KB" showscope="1" isinstance="0" x="-1352.51" linecolor="#ff0000" showstereotype="1" linewidth="0" usesdiagramusefillcolor="0" y="-446.072" usefillcolor="0" width="384" textcolor="#000000" usesdiagramfillcolor="0" showpubliconly="0" autoresize="1" showpackage="1" showattributes="1" font="Cantarell,11,-1,5,50,0,0,0,0,0" height="252"/>
<classwidget showopsigs="601" showattsigs="601" localid="uflSXxdoL9kuj" fillcolor="#ffffc0" showoperations="1" xmi.id="uKL5AyFtGCxS4" showscope="1" isinstance="0" x="424.396" linecolor="#ff0000" showstereotype="1" linewidth="0" usesdiagramusefillcolor="0" y="-408.306" usefillcolor="0" width="495" textcolor="#000000" usesdiagramfillcolor="0" showpubliconly="0" autoresize="1" showpackage="1" showattributes="1" font="Cantarell,11,-1,5,50,0,0,0,0,0" height="306"/>
<classwidget showopsigs="601" showattsigs="601" localid="u9xN1mjINgsZ8" fillcolor="#ffffc0" showoperations="1" xmi.id="uFbqwV186SIrr" showscope="1" isinstance="0" x="-1673.32" linecolor="#ff0000" showstereotype="1" linewidth="0" usesdiagramusefillcolor="0" y="528.538" usefillcolor="0" width="1000" textcolor="#000000" usesdiagramfillcolor="0" showpubliconly="0" autoresize="1" showpackage="1" showattributes="1" font="Cantarell,11,-1,5,50,0,0,0,0,0" height="378"/>
</widgets>
<messages/>
<associations>
<assocwidget fillcolor="none" indexb="1" xmi.id="u6LgwsZnFg6qR" indexa="1" linecolor="#ff0000" widgetaid="usf29A8vc6VFi" linewidth="0" widgetbid="uzZJmjcVZS9KB" usesdiagramusefillcolor="1" usefillcolor="1" textcolor="none" usesdiagramfillcolor="1" totalcounta="2" autoresize="1" type="500" font="Cantarell,11,-1,5,50,0,0,0,0,0" totalcountb="2" seqnum="">
<linepath layout="Direct">
<startpoint starty="-147.608" startx="-1461.64"/>
<endpoint endy="-194.072" endx="-1352.51"/>
</linepath>
</assocwidget>
<assocwidget fillcolor="none" indexb="1" xmi.id="uyViSNaxO17m8" indexa="1" linecolor="#ff0000" widgetaid="uua2VH04kkGma" linewidth="0" widgetbid="uaDvw6dP6ztus" usesdiagramusefillcolor="1" usefillcolor="1" textcolor="none" usesdiagramfillcolor="1" totalcounta="2" autoresize="1" type="500" font="Cantarell,11,-1,5,50,0,0,0,0,0" totalcountb="2" seqnum="">
<linepath layout="Direct">
<startpoint starty="-425" startx="-156"/>
<endpoint endy="-572" endx="-156"/>
</linepath>
</assocwidget>
<assocwidget fillcolor="none" indexb="1" xmi.id="uWDcfAKqAdYLt" indexa="1" linecolor="#ff0000" widgetaid="ut7PHkaR76xZv" linewidth="0" widgetbid="uzZJmjcVZS9KB" usesdiagramusefillcolor="1" usefillcolor="1" textcolor="none" usesdiagramfillcolor="1" totalcounta="2" autoresize="1" type="500" font="Cantarell,11,-1,5,50,0,0,0,0,0" totalcountb="2" seqnum="">
<linepath layout="Direct">
<startpoint starty="-147.306" startx="-842.516"/>
<endpoint endy="-194.072" endx="-968.511"/>
</linepath>
</assocwidget>
<assocwidget fillcolor="none" indexb="1" xmi.id="uke1dAmZpcaba" indexa="1" linecolor="#ff0000" widgetaid="uzZJmjcVZS9KB" linewidth="0" widgetbid="uua2VH04kkGma" usesdiagramusefillcolor="1" usefillcolor="1" textcolor="none" usesdiagramfillcolor="1" totalcounta="2" autoresize="1" type="500" font="Cantarell,11,-1,5,50,0,0,0,0,0" totalcountb="2" seqnum="">
<linepath layout="Direct">
<startpoint starty="-321.825" startx="-968.511"/>
<endpoint endy="-321.825" endx="-295"/>
</linepath>
</assocwidget>
<assocwidget fillcolor="none" indexb="1" xmi.id="ufmV9lTY8O97n" indexa="1" linecolor="#ff0000" widgetaid="uFbqwV186SIrr" linewidth="0" widgetbid="u74P5gtnzem0F" usesdiagramusefillcolor="1" usefillcolor="1" textcolor="none" usesdiagramfillcolor="1" totalcounta="2" autoresize="1" type="510" font="Cantarell,11,-1,5,50,0,0,0,0,0" totalcountb="2" seqnum="">
<linepath layout="Direct">
<startpoint starty="906.538" startx="-1127.37"/>
<endpoint endy="1045.91" endx="-1127.37"/>
</linepath>
</assocwidget>
<assocwidget fillcolor="none" indexb="1" xmi.id="ucD8nJ4I4QmKp" indexa="1" linecolor="#ff0000" widgetaid="u5Z6kVkQRTN2t" linewidth="0" widgetbid="uzZJmjcVZS9KB" usesdiagramusefillcolor="1" usefillcolor="1" textcolor="none" usesdiagramfillcolor="1" totalcounta="2" autoresize="1" type="500" font="Cantarell,11,-1,5,50,0,0,0,0,0" totalcountb="2" seqnum="">
<linepath layout="Direct">
<startpoint starty="229.295" startx="-1261.26"/>
<endpoint endy="-194.072" endx="-1261.26"/>
</linepath>
</assocwidget>
<assocwidget fillcolor="none" indexb="1" xmi.id="uiQjTaY7l1hNV" indexa="1" linecolor="#ff0000" widgetaid="uFbqwV186SIrr" linewidth="0" widgetbid="uzZJmjcVZS9KB" usesdiagramusefillcolor="1" usefillcolor="1" textcolor="none" usesdiagramfillcolor="1" totalcounta="2" autoresize="1" type="500" font="Cantarell,11,-1,5,50,0,0,0,0,0" totalcountb="2" seqnum="">
<linepath layout="Direct">
<startpoint starty="528.538" startx="-1133.71"/>
<endpoint endy="-194.072" endx="-1133.71"/>
</linepath>
</assocwidget>
<assocwidget fillcolor="none" indexb="1" xmi.id="u8ujgmQG1xNv0" indexa="1" linecolor="#ff0000" widgetaid="uKL5AyFtGCxS4" linewidth="0" widgetbid="uua2VH04kkGma" usesdiagramusefillcolor="1" usefillcolor="1" textcolor="none" usesdiagramfillcolor="1" totalcounta="2" autoresize="1" type="500" font="Cantarell,11,-1,5,50,0,0,0,0,0" totalcountb="2" seqnum="">
<linepath layout="Direct">
<startpoint starty="-279.305" startx="424.396"/>
<endpoint endy="-279.305" endx="198"/>
</linepath>
</assocwidget>
</associations>
</diagram>
</diagrams>
</XMI.extension>
</UML:Model>
<UML:Model visibility="public" isRoot="false" namespace="m1" xmi.id="Use_Case_View" isSpecification="false" isLeaf="false" name="Use Case View" isAbstract="false">
<UML:Namespace.ownedElement/>
</UML:Model>
<UML:Model visibility="public" isRoot="false" namespace="m1" xmi.id="Component_View" isSpecification="false" isLeaf="false" name="Component View" isAbstract="false">
<UML:Namespace.ownedElement/>
</UML:Model>
<UML:Model visibility="public" isRoot="false" namespace="m1" xmi.id="Deployment_View" isSpecification="false" isLeaf="false" name="Deployment View" isAbstract="false">
<UML:Namespace.ownedElement/>
</UML:Model>
<UML:Model visibility="public" isRoot="false" namespace="m1" xmi.id="Entity_Relationship_Model" isSpecification="false" isLeaf="false" name="Entity Relationship Model" isAbstract="false">
<UML:Namespace.ownedElement/>
</UML:Model>
</UML:Namespace.ownedElement>
</UML:Model>
</XMI.content>
<XMI.extensions xmi.extender="umbrello">
<docsettings documentation="" uniqueid="uANax2P2LUwtM" viewid="uUJ6hh6iVtg3L"/>
<listview>
<listitem id="Views" type="800" open="1">
<listitem id="Component_View" type="821" open="1"/>
<listitem id="Deployment_View" type="827" open="1"/>
<listitem id="Entity_Relationship_Model" type="836" open="1"/>
<listitem id="Logical_View" type="801" open="1">
<listitem id="u74P5gtnzem0F" type="813" open="0">
<listitem id="unQ1naTEmY5YX" type="815" open="0"/>
<listitem id="uRANVBQCg7QxH" type="814" open="0"/>
<listitem id="uFUjsadmCjxOR" type="814" open="0"/>
<listitem id="u8Gyh3wT0hvNP" type="815" open="0"/>
<listitem id="umowBcobkhe5Z" type="814" open="0"/>
<listitem id="uGMqeKhE61gof" type="815" open="0"/>
<listitem id="ud8mNeawdKsiV" type="815" open="0"/>
<listitem id="u4M7vi4BNLw0p" type="815" open="0"/>
<listitem id="u3MsxBroFuVCl" type="815" open="0"/>
<listitem id="upuksap5LawKm" type="815" open="0"/>
<listitem id="umypLv3qdUHU0" type="814" open="0"/>
<listitem id="uCI0LEe55ulaX" type="815" open="0"/>
<listitem id="uzZo9oVwP0O9b" type="815" open="0"/>
<listitem id="uVurnW4vT7SWs" type="815" open="0"/>
<listitem id="uFD2FYoOlgYTr" type="815" open="0"/>
<listitem id="utYMYA2FJ9FGk" type="815" open="0"/>
<listitem id="uaLKbd2wz5xIE" type="815" open="0"/>
<listitem id="uko07qxzkNLu5" type="815" open="0"/>
<listitem id="u9WPDHlban7dy" type="815" open="0"/>
<listitem id="uC013doXRO1Ac" type="815" open="0"/>
<listitem id="uL6BNRcUX83LL" type="815" open="0"/>
<listitem id="uEwhiw3xikorN" type="815" open="0"/>
<listitem id="uUJx44eXYAiXb" type="815" open="0"/>
<listitem id="uLqpINCoi4NfB" type="815" open="0"/>
<listitem id="uzdoKFmPun7Yv" type="815" open="0"/>
<listitem id="uws2iwvXSUiWS" type="815" open="0"/>
<listitem id="uN1UIGSwVj3aT" type="815" open="0"/>
<listitem id="uHUoheVaZGx7h" type="815" open="0"/>