exerpy 0.0.2__py3-none-any.whl → 0.0.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- exerpy/__init__.py +2 -4
- exerpy/analyses.py +597 -297
- exerpy/components/__init__.py +3 -0
- exerpy/components/combustion/base.py +53 -35
- exerpy/components/component.py +8 -8
- exerpy/components/heat_exchanger/base.py +186 -119
- exerpy/components/heat_exchanger/condenser.py +96 -60
- exerpy/components/heat_exchanger/simple.py +237 -137
- exerpy/components/heat_exchanger/steam_generator.py +46 -41
- exerpy/components/helpers/cycle_closer.py +61 -34
- exerpy/components/helpers/power_bus.py +117 -0
- exerpy/components/nodes/deaerator.py +176 -58
- exerpy/components/nodes/drum.py +50 -39
- exerpy/components/nodes/flash_tank.py +218 -43
- exerpy/components/nodes/mixer.py +249 -69
- exerpy/components/nodes/splitter.py +173 -0
- exerpy/components/nodes/storage.py +130 -0
- exerpy/components/piping/valve.py +311 -115
- exerpy/components/power_machines/generator.py +105 -38
- exerpy/components/power_machines/motor.py +111 -39
- exerpy/components/turbomachinery/compressor.py +181 -63
- exerpy/components/turbomachinery/pump.py +182 -63
- exerpy/components/turbomachinery/turbine.py +182 -74
- exerpy/functions.py +388 -263
- exerpy/parser/from_aspen/aspen_config.py +57 -48
- exerpy/parser/from_aspen/aspen_parser.py +373 -280
- exerpy/parser/from_ebsilon/__init__.py +2 -2
- exerpy/parser/from_ebsilon/check_ebs_path.py +15 -19
- exerpy/parser/from_ebsilon/ebsilon_config.py +328 -226
- exerpy/parser/from_ebsilon/ebsilon_functions.py +205 -38
- exerpy/parser/from_ebsilon/ebsilon_parser.py +392 -255
- exerpy/parser/from_ebsilon/utils.py +16 -11
- exerpy/parser/from_tespy/tespy_config.py +32 -1
- exerpy/parser/from_tespy/tespy_parser.py +151 -0
- {exerpy-0.0.2.dist-info → exerpy-0.0.3.dist-info}/METADATA +43 -2
- exerpy-0.0.3.dist-info/RECORD +48 -0
- exerpy-0.0.2.dist-info/RECORD +0 -44
- {exerpy-0.0.2.dist-info → exerpy-0.0.3.dist-info}/WHEEL +0 -0
- {exerpy-0.0.2.dist-info → exerpy-0.0.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -5,6 +5,7 @@ This script contains the configuration data used by the Ebsilon model parser,
|
|
|
5
5
|
including lists of component types, fluid types, fluid composition parameters,
|
|
6
6
|
and groups for sorting components into functional categories.
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
from . import __ebsilon_available__
|
|
9
10
|
from .utils import EpSubstanceStub
|
|
10
11
|
|
|
@@ -184,12 +185,12 @@ ebs_objects = {
|
|
|
184
185
|
166: "Phase Change Material Storage",
|
|
185
186
|
167: "Electrolysis Cell",
|
|
186
187
|
168: "Quantity Converter",
|
|
187
|
-
169: "Biomass Gasifier"
|
|
188
|
+
169: "Biomass Gasifier",
|
|
188
189
|
}
|
|
189
190
|
|
|
190
191
|
# Neglected components
|
|
191
192
|
non_thermodynamic_unit_operators = [
|
|
192
|
-
1,
|
|
193
|
+
1, # Boundary Input Value
|
|
193
194
|
12, # Controller (with external default value)
|
|
194
195
|
30, # Difference Meter
|
|
195
196
|
31, # Power Summarizer
|
|
@@ -208,44 +209,44 @@ non_thermodynamic_unit_operators = [
|
|
|
208
209
|
77, # Calculator
|
|
209
210
|
# 80, # Separator (logical) is considered a thermodynamic component
|
|
210
211
|
93, # Kernel Scripting
|
|
211
|
-
105,
|
|
212
|
-
108,
|
|
213
|
-
110,
|
|
214
|
-
117,
|
|
215
|
-
130,
|
|
216
|
-
132,
|
|
217
|
-
136,
|
|
218
|
-
142,
|
|
219
|
-
144,
|
|
220
|
-
147,
|
|
221
|
-
168 # Quantity Converter
|
|
212
|
+
105, # Library Specification
|
|
213
|
+
108, # Elementary Analyzer
|
|
214
|
+
110, # Mass Multiplier
|
|
215
|
+
117, # The Sun (environmental data)
|
|
216
|
+
130, # PID-Controller
|
|
217
|
+
132, # Automatic Connector
|
|
218
|
+
136, # Emission Display
|
|
219
|
+
142, # Wind Data
|
|
220
|
+
144, # Multivalue Transmitter
|
|
221
|
+
147, # Limiter
|
|
222
|
+
168, # Quantity Converter
|
|
222
223
|
]
|
|
223
224
|
|
|
224
225
|
# Fluid types of Ebsilon
|
|
225
226
|
fluid_type_index = {
|
|
226
|
-
0: "None",
|
|
227
|
-
1: "Air",
|
|
228
|
-
2: "Fluegas",
|
|
229
|
-
3: "Steam",
|
|
230
|
-
4: "Water",
|
|
231
|
-
5: "Scheduled",
|
|
232
|
-
6: "Actual",
|
|
233
|
-
7: "Crudegas",
|
|
234
|
-
8: "Oil",
|
|
235
|
-
9: "Electric",
|
|
236
|
-
10: "Shaft",
|
|
237
|
-
11: "Coal",
|
|
238
|
-
12: "Gas",
|
|
239
|
-
13: "Logic",
|
|
240
|
-
14: "User",
|
|
241
|
-
15: "2PhaseLiquid",
|
|
242
|
-
16: "2PhaseGaseous",
|
|
243
|
-
17: "Saltwater",
|
|
244
|
-
18: "UniversalFluid",
|
|
245
|
-
19: "BinaryMixture",
|
|
246
|
-
20: "ThermoLiquid",
|
|
247
|
-
21: "HumidAir",
|
|
248
|
-
22: "NASA"
|
|
227
|
+
0: "None", # epFluidTypeNONE
|
|
228
|
+
1: "Air", # epFluidTypeAir
|
|
229
|
+
2: "Fluegas", # epFluidTypeFluegas
|
|
230
|
+
3: "Steam", # epFluidTypeSteam
|
|
231
|
+
4: "Water", # epFluidTypeWater
|
|
232
|
+
5: "Scheduled", # epFluidTypeScheduled
|
|
233
|
+
6: "Actual", # epFluidTypeActual
|
|
234
|
+
7: "Crudegas", # epFluidTypeCrudegas
|
|
235
|
+
8: "Oil", # epFluidTypeOil
|
|
236
|
+
9: "Electric", # epFluidTypeElectric
|
|
237
|
+
10: "Shaft", # epFluidTypeShaft
|
|
238
|
+
11: "Coal", # epFluidTypeCoal
|
|
239
|
+
12: "Gas", # epFluidTypeGas
|
|
240
|
+
13: "Logic", # epFluidTypeLogic
|
|
241
|
+
14: "User", # epFluidTypeUser
|
|
242
|
+
15: "2PhaseLiquid", # epFluidType2PhaseLiquid
|
|
243
|
+
16: "2PhaseGaseous", # epFluidType2PhaseGaseous
|
|
244
|
+
17: "Saltwater", # epFluidTypeSaltwater
|
|
245
|
+
18: "UniversalFluid", # epFluidTypeUniversalFluid
|
|
246
|
+
19: "BinaryMixture", # epFluidTypeBinaryMixture
|
|
247
|
+
20: "ThermoLiquid", # epFluidTypeThermoLiquid
|
|
248
|
+
21: "HumidAir", # epFluidTypeHumidAir
|
|
249
|
+
22: "NASA", # epFluidTypeNASA
|
|
249
250
|
}
|
|
250
251
|
|
|
251
252
|
# Mapping fluid types to categories
|
|
@@ -267,7 +268,7 @@ connection_kinds = {
|
|
|
267
268
|
"HumidAir": "material",
|
|
268
269
|
"Electric": "power",
|
|
269
270
|
"Shaft": "power",
|
|
270
|
-
"Logic": "heat"
|
|
271
|
+
"Logic": "heat",
|
|
271
272
|
}
|
|
272
273
|
|
|
273
274
|
# Dictionary mapping stream substance names to EpSubstance identifiers
|
|
@@ -333,7 +334,7 @@ if __ebsilon_available__:
|
|
|
333
334
|
"XHEPT": EpSubstance.epSubstanceHEPT,
|
|
334
335
|
"XOXYLEN": EpSubstance.epSubstanceOXYLEN,
|
|
335
336
|
"XTDECALIN": EpSubstance.epSubstanceTDECALIN,
|
|
336
|
-
"XT2BUTEN": EpSubstance.epSubstanceT2BUTEN
|
|
337
|
+
"XT2BUTEN": EpSubstance.epSubstanceT2BUTEN,
|
|
337
338
|
}
|
|
338
339
|
|
|
339
340
|
# ebsilon_config.py
|
|
@@ -445,112 +446,112 @@ two_phase_fluids_mapping = {
|
|
|
445
446
|
-1063: {"R142B": 1}, # REFPROP_R142B
|
|
446
447
|
-1064: {"R143A": 1}, # REFPROP_R143A
|
|
447
448
|
-1065: {"R152A": 1}, # REFPROP_R152A
|
|
448
|
-
-1066: {"R21": 1},
|
|
449
|
-
-1067: {"R218": 1},
|
|
450
|
-
-1068: {"R22": 1},
|
|
449
|
+
-1066: {"R21": 1}, # REFPROP_R21
|
|
450
|
+
-1067: {"R218": 1}, # REFPROP_R218
|
|
451
|
+
-1068: {"R22": 1}, # REFPROP_R22
|
|
451
452
|
-1069: {"R227EA": 1}, # REFPROP_R227EA
|
|
452
|
-
-1070: {"R23": 1},
|
|
453
|
+
-1070: {"R23": 1}, # REFPROP_R23
|
|
453
454
|
-1071: {"R236EA": 1}, # REFPROP_R236EA
|
|
454
455
|
-1072: {"R236FA": 1}, # REFPROP_R236FA
|
|
455
456
|
-1073: {"R245CA": 1}, # REFPROP_R245CA
|
|
456
457
|
-1074: {"R245FA": 1}, # REFPROP_R245FA
|
|
457
|
-
-1075: {"R32": 1},
|
|
458
|
-
-1076: {"R365MFC": 1},
|
|
459
|
-
-1077: {"R404A": 1},
|
|
460
|
-
-1078: {"R407C": 1},
|
|
461
|
-
-1079: {"R41": 1},
|
|
462
|
-
-1080: {"R410A": 1},
|
|
463
|
-
-1081: {"R507A": 1},
|
|
464
|
-
-1082: {"RC318": 1},
|
|
465
|
-
-1083: {"SF6": 1},
|
|
466
|
-
-1084: {"SO2": 1},
|
|
467
|
-
-1085: {"T2Butene": 1}
|
|
468
|
-
-1086: {"Toluene": 1},
|
|
469
|
-
-1087: {"H2O": 1},
|
|
470
|
-
-1088: {"XE": 1},
|
|
471
|
-
-1090: {"MCyclohex": 1},
|
|
472
|
-
-1091: {"C3CC6": 1},
|
|
473
|
-
-1092: {"Cyclopentane": 1},
|
|
474
|
-
-1093: {"D4": 1},
|
|
475
|
-
-1094: {"D5": 1},
|
|
476
|
-
-1095: {"D6": 1},
|
|
477
|
-
-1096: {"DMC": 1},
|
|
478
|
-
-1097: {"MD2M": 1},
|
|
479
|
-
-1098: {"MD3M": 1},
|
|
480
|
-
-1099: {"MD4M": 1},
|
|
481
|
-
-1100: {"MDM": 1},
|
|
482
|
-
-1101: {"MLinolea": 1}
|
|
483
|
-
-1102: {"MLinolEN": 1}
|
|
484
|
-
-1103: {"MM": 1},
|
|
485
|
-
-1104: {"Moleate": 1},
|
|
486
|
-
-1105: {"MPalmita": 1}
|
|
487
|
-
-1106: {"MStearat": 1}
|
|
488
|
-
-1107: {"OrthoHyd": 1},
|
|
489
|
-
-1108: {"R1234YF": 1},
|
|
490
|
-
-1109: {"R1234ZE": 1},
|
|
491
|
-
-1110: {"R161": 1},
|
|
492
|
-
-1111: {"UD_01": 1},
|
|
493
|
-
-1112: {"UD_02": 1},
|
|
494
|
-
-1113: {"UD_03": 1},
|
|
495
|
-
-1114: {"UD_04": 1},
|
|
496
|
-
-1115: {"UD_05": 1},
|
|
497
|
-
-1116: {"UD_06": 1},
|
|
498
|
-
-1117: {"UD_07": 1},
|
|
499
|
-
-1118: {"UD_08": 1},
|
|
500
|
-
-1119: {"UD_09": 1},
|
|
501
|
-
-1120: {"UD_10": 1},
|
|
502
|
-
-1121: {"UD_11": 1},
|
|
503
|
-
-1122: {"UD_12": 1},
|
|
504
|
-
-1123: {"UD_13": 1},
|
|
505
|
-
-1124: {"UD_14": 1},
|
|
506
|
-
-1125: {"UD_15": 1},
|
|
507
|
-
-1126: {"UD_16": 1},
|
|
508
|
-
-1127: {"UD_17": 1},
|
|
509
|
-
-1128: {"UD_18": 1},
|
|
510
|
-
-1129: {"UD_19": 1},
|
|
511
|
-
-1130: {"UD_20": 1},
|
|
512
|
-
-1131: {"C11": 1},
|
|
513
|
-
-1132: {"DEE": 1},
|
|
514
|
-
-1133: {"EBenzene": 1},
|
|
515
|
-
-1134: {"HCL": 1},
|
|
516
|
-
-1135: {"IOctane": 1},
|
|
517
|
-
-1136: {"MXYlene": 1},
|
|
518
|
-
-1137: {"Novec649": 1},
|
|
519
|
-
-1138: {"Oxylene": 1},
|
|
520
|
-
-1139: {"PXylene": 1},
|
|
458
|
+
-1075: {"R32": 1}, # REFPROP_R32
|
|
459
|
+
-1076: {"R365MFC": 1}, # REFPROP_R365MFC
|
|
460
|
+
-1077: {"R404A": 1}, # REFPROP_R404A
|
|
461
|
+
-1078: {"R407C": 1}, # REFPROP_R407C
|
|
462
|
+
-1079: {"R41": 1}, # REFPROP_R41
|
|
463
|
+
-1080: {"R410A": 1}, # REFPROP_R410A
|
|
464
|
+
-1081: {"R507A": 1}, # REFPROP_R507A
|
|
465
|
+
-1082: {"RC318": 1}, # REFPROP_RC318
|
|
466
|
+
-1083: {"SF6": 1}, # REFPROP_SF6
|
|
467
|
+
-1084: {"SO2": 1}, # REFPROP_SO2
|
|
468
|
+
-1085: {"T2Butene": 1}, # REFPROP_T2BUTEN
|
|
469
|
+
-1086: {"Toluene": 1}, # REFPROP_TOLUEN
|
|
470
|
+
-1087: {"H2O": 1}, # REFPROP_H2O
|
|
471
|
+
-1088: {"XE": 1}, # REFPROP_XE
|
|
472
|
+
-1090: {"MCyclohex": 1}, # REFPROP_MCYCHEX
|
|
473
|
+
-1091: {"C3CC6": 1}, # REFPROP_C3CC6
|
|
474
|
+
-1092: {"Cyclopentane": 1}, # REFPROP_CYCPENT
|
|
475
|
+
-1093: {"D4": 1}, # REFPROP_D4
|
|
476
|
+
-1094: {"D5": 1}, # REFPROP_D5
|
|
477
|
+
-1095: {"D6": 1}, # REFPROP_D6
|
|
478
|
+
-1096: {"DMC": 1}, # REFPROP_DMC
|
|
479
|
+
-1097: {"MD2M": 1}, # REFPROP_MD2M
|
|
480
|
+
-1098: {"MD3M": 1}, # REFPROP_MD3M
|
|
481
|
+
-1099: {"MD4M": 1}, # REFPROP_MD4M
|
|
482
|
+
-1100: {"MDM": 1}, # REFPROP_MDM
|
|
483
|
+
-1101: {"MLinolea": 1}, # REFPROP_MLINOLEA
|
|
484
|
+
-1102: {"MLinolEN": 1}, # REFPROP_MLINOLEN
|
|
485
|
+
-1103: {"MM": 1}, # REFPROP_MM
|
|
486
|
+
-1104: {"Moleate": 1}, # REFPROP_MOLEATE
|
|
487
|
+
-1105: {"MPalmita": 1}, # REFPROP_MPALMITA
|
|
488
|
+
-1106: {"MStearat": 1}, # REFPROP_MSTEARAT
|
|
489
|
+
-1107: {"OrthoHyd": 1}, # REFPROP_ORTHOHYD
|
|
490
|
+
-1108: {"R1234YF": 1}, # REFPROP_R1234YF
|
|
491
|
+
-1109: {"R1234ZE": 1}, # REFPROP_R1234ZE
|
|
492
|
+
-1110: {"R161": 1}, # REFPROP_R161
|
|
493
|
+
-1111: {"UD_01": 1}, # REFPROP_REFPROP_UD_01
|
|
494
|
+
-1112: {"UD_02": 1}, # REFPROP_REFPROP_UD_02
|
|
495
|
+
-1113: {"UD_03": 1}, # REFPROP_REFPROP_UD_03
|
|
496
|
+
-1114: {"UD_04": 1}, # REFPROP_REFPROP_UD_04
|
|
497
|
+
-1115: {"UD_05": 1}, # REFPROP_REFPROP_UD_05
|
|
498
|
+
-1116: {"UD_06": 1}, # REFPROP_REFPROP_UD_06
|
|
499
|
+
-1117: {"UD_07": 1}, # REFPROP_REFPROP_UD_07
|
|
500
|
+
-1118: {"UD_08": 1}, # REFPROP_REFPROP_UD_08
|
|
501
|
+
-1119: {"UD_09": 1}, # REFPROP_REFPROP_UD_09
|
|
502
|
+
-1120: {"UD_10": 1}, # REFPROP_REFPROP_UD_10
|
|
503
|
+
-1121: {"UD_11": 1}, # REFPROP_REFPROP_UD_11
|
|
504
|
+
-1122: {"UD_12": 1}, # REFPROP_REFPROP_UD_12
|
|
505
|
+
-1123: {"UD_13": 1}, # REFPROP_REFPROP_UD_13
|
|
506
|
+
-1124: {"UD_14": 1}, # REFPROP_REFPROP_UD_14
|
|
507
|
+
-1125: {"UD_15": 1}, # REFPROP_REFPROP_UD_15
|
|
508
|
+
-1126: {"UD_16": 1}, # REFPROP_REFPROP_UD_16
|
|
509
|
+
-1127: {"UD_17": 1}, # REFPROP_REFPROP_UD_17
|
|
510
|
+
-1128: {"UD_18": 1}, # REFPROP_REFPROP_UD_18
|
|
511
|
+
-1129: {"UD_19": 1}, # REFPROP_REFPROP_UD_19
|
|
512
|
+
-1130: {"UD_20": 1}, # REFPROP_REFPROP_UD_20
|
|
513
|
+
-1131: {"C11": 1}, # REFPROP_C11
|
|
514
|
+
-1132: {"DEE": 1}, # REFPROP_DEE
|
|
515
|
+
-1133: {"EBenzene": 1}, # REFPROP_EBENZ
|
|
516
|
+
-1134: {"HCL": 1}, # REFPROP_HCL
|
|
517
|
+
-1135: {"IOctane": 1}, # REFPROP_IOCTANE
|
|
518
|
+
-1136: {"MXYlene": 1}, # REFPROP_MXYLENE
|
|
519
|
+
-1137: {"Novec649": 1}, # REFPROP_NOVEC649
|
|
520
|
+
-1138: {"Oxylene": 1}, # REFPROP_OXYLEN
|
|
521
|
+
-1139: {"PXylene": 1}, # REFPROP_PXYLENE
|
|
521
522
|
-1140: {"R1216": 1}, # REFPROP_R1216
|
|
522
|
-
-1141: {"R1233ZD": 1},
|
|
523
|
-
-1142: {"R40": 1},
|
|
524
|
-
-1143: {"RE143A": 1},
|
|
525
|
-
-1144: {"RE245CB2": 1},
|
|
526
|
-
-1145: {"RE245FA2": 1},
|
|
527
|
-
-1146: {"RE347MCC": 1},
|
|
528
|
-
-1147: {"EthyleneOxide": 1},
|
|
529
|
-
-1148: {"13Butadien": 1},
|
|
530
|
-
-1149: {"1-Butyne": 1},
|
|
531
|
-
-1150: {"1Penten": 1},
|
|
532
|
-
-1151: {"22DMBut": 1},
|
|
533
|
-
-1152: {"23DMBut": 1},
|
|
523
|
+
-1141: {"R1233ZD": 1}, # REFPROP_R1233ZD
|
|
524
|
+
-1142: {"R40": 1}, # REFPROP_R40
|
|
525
|
+
-1143: {"RE143A": 1}, # REFPROP_RE143A
|
|
526
|
+
-1144: {"RE245CB2": 1}, # REFPROP_RE245CB2
|
|
527
|
+
-1145: {"RE245FA2": 1}, # REFPROP_RE245FA2
|
|
528
|
+
-1146: {"RE347MCC": 1}, # REFPROP_RE347MCC
|
|
529
|
+
-1147: {"EthyleneOxide": 1}, # REFPROP_EthyleneOxide
|
|
530
|
+
-1148: {"13Butadien": 1}, # REFPROP_13BUTADIEN
|
|
531
|
+
-1149: {"1-Butyne": 1}, # REFPROP_1BUTYNE
|
|
532
|
+
-1150: {"1Penten": 1}, # REFPROP_1PENTEN
|
|
533
|
+
-1151: {"22DMBut": 1}, # REFPROP_22DMBUT
|
|
534
|
+
-1152: {"23DMBut": 1}, # REFPROP_23DMBUT
|
|
534
535
|
-1153: {"3MPent": 1}, # REFPROP_3MPENT
|
|
535
|
-
-1154: {"Acet": 1},
|
|
536
|
-
-1155: {"C16": 1},
|
|
537
|
-
-1156: {"C22": 1},
|
|
538
|
-
-1157: {"C6F14": 1},
|
|
539
|
-
-1158: {"Chlorine": 1},
|
|
540
|
-
-1159: {"Chlorobenzene": 1},
|
|
541
|
-
-1160: {"Cyclobutene": 1},
|
|
536
|
+
-1154: {"Acet": 1}, # REFPROP_ACET
|
|
537
|
+
-1155: {"C16": 1}, # REFPROP_C16
|
|
538
|
+
-1156: {"C22": 1}, # REFPROP_C22
|
|
539
|
+
-1157: {"C6F14": 1}, # REFPROP_C6F14
|
|
540
|
+
-1158: {"Chlorine": 1}, # REFPROP_CHLORINE
|
|
541
|
+
-1159: {"Chlorobenzene": 1}, # REFPROP_CHLOROBENZENE
|
|
542
|
+
-1160: {"Cyclobutene": 1}, # REFPROP_CYCLOBUTENE
|
|
542
543
|
-1161: {"Propadien": 1}, # REFPROP_PROPADIEN
|
|
543
|
-
-1162: {"PropyleneOxide": 1},
|
|
544
|
-
-1163: {"R1123": 1},
|
|
544
|
+
-1162: {"PropyleneOxide": 1}, # REFPROP_PROPYLENEOXIDE
|
|
545
|
+
-1163: {"R1123": 1}, # REFPROP_R1123
|
|
545
546
|
-1164: {"R1224YDZ": 1}, # REFPROP_R1224YDZ
|
|
546
547
|
-1165: {"R1234zeZ": 1}, # REFPROP_R1234zeZ
|
|
547
|
-
-1166: {"R1243ZF": 1},
|
|
548
|
+
-1166: {"R1243ZF": 1}, # REFPROP_R1243ZF
|
|
548
549
|
-1167: {"R1336MZZZ": 1}, # REFPROP_R1336MZZZ
|
|
549
|
-
-1168: {"Dichloroethane": 1},
|
|
550
|
+
-1168: {"Dichloroethane": 1}, # REFPROP_Dichloroethane
|
|
550
551
|
-1169: {"Vinylchloride": 1}, # REFPROP_VINYLCHLORIDE
|
|
551
|
-
-1170: {"Diethanolamine": 1},
|
|
552
|
-
-1171: {"Ethylene_glycol": 1},
|
|
553
|
-
-1172: {"Monoethanolamine": 1},
|
|
552
|
+
-1170: {"Diethanolamine": 1}, # REFPROP_DIETHANOLAMINE
|
|
553
|
+
-1171: {"Ethylene_glycol": 1}, # REFPROP_Ethylene_glycol
|
|
554
|
+
-1172: {"Monoethanolamine": 1}, # REFPROP_MONOETHANOLAMINE
|
|
554
555
|
-2000: {"AIR_dry": 1}, # REFPROPMIXTURE_AIR_dry
|
|
555
556
|
-2001: {"R401A": 1}, # REFPROPMIXTURE_R401A
|
|
556
557
|
-2002: {"R401B": 1}, # REFPROPMIXTURE_R401B
|
|
@@ -597,84 +598,83 @@ two_phase_fluids_mapping = {
|
|
|
597
598
|
-2043: {"R426A": 1}, # REFPROPMIXTURE_R426A
|
|
598
599
|
-2044: {"R427A": 1}, # REFPROPMIXTURE_R427A
|
|
599
600
|
-2045: {"R428A": 1}, # REFPROPMIXTURE_R428A
|
|
600
|
-
-2046: {"R500": 1},
|
|
601
|
-
-2047: {"R501": 1},
|
|
602
|
-
-2048: {"R502": 1},
|
|
603
|
-
-2049: {"R503": 1},
|
|
604
|
-
-2050: {"R504": 1},
|
|
601
|
+
-2046: {"R500": 1}, # REFPROPMIXTURE_R500
|
|
602
|
+
-2047: {"R501": 1}, # REFPROPMIXTURE_R501
|
|
603
|
+
-2048: {"R502": 1}, # REFPROPMIXTURE_R502
|
|
604
|
+
-2049: {"R503": 1}, # REFPROPMIXTURE_R503
|
|
605
|
+
-2050: {"R504": 1}, # REFPROPMIXTURE_R504
|
|
605
606
|
-2051: {"R507A": 1}, # REFPROPMIXTURE_R507A
|
|
606
607
|
-2052: {"R508A": 1}, # REFPROPMIXTURE_R508A
|
|
607
608
|
-2053: {"R508B": 1}, # REFPROPMIXTURE_R508B
|
|
608
609
|
-2054: {"R509A": 1}, # REFPROPMIXTURE_R509A
|
|
609
610
|
-2055: {"AMARILLO": 1}, # REFPROPMIXTURE_AMARILLO
|
|
610
|
-
-2056: {"EKOFISK": 1},
|
|
611
|
-
-2057: {"GLFCOAST": 1},
|
|
612
|
-
-2058: {"HIGHCO2": 1},
|
|
613
|
-
-2059: {"HIGHN2": 1},
|
|
614
|
-
-2060: {"R429A": 1},
|
|
615
|
-
-2061: {"R430A": 1},
|
|
616
|
-
-2062: {"R431A": 1},
|
|
617
|
-
-2063: {"R432A": 1},
|
|
618
|
-
-2064: {"R433A": 1},
|
|
619
|
-
-2065: {"R434A": 1},
|
|
620
|
-
-2066: {"R438A": 1},
|
|
621
|
-
-2067: {"R435A": 1},
|
|
622
|
-
-2068: {"R436A": 1},
|
|
623
|
-
-2069: {"R436B": 1},
|
|
624
|
-
-2070: {"R437A": 1},
|
|
625
|
-
-2071: {"R510A": 1},
|
|
626
|
-
-2072: {"NGSAMPLE": 1},
|
|
627
|
-
-2073: {"R407F": 1},
|
|
628
|
-
-2074: {"R441A": 1},
|
|
629
|
-
-2075: {"R442A": 1},
|
|
630
|
-
-2076: {"R443A": 1},
|
|
631
|
-
-2077: {"R444A": 1},
|
|
632
|
-
-2078: {"R512A": 1},
|
|
633
|
-
-2079: {"R407G": 1},
|
|
634
|
-
-2080: {"R407H": 1},
|
|
635
|
-
-2081: {"R417B": 1},
|
|
636
|
-
-2082: {"R417C": 1},
|
|
637
|
-
-2083: {"R419B": 1},
|
|
638
|
-
-2084: {"R422E": 1},
|
|
639
|
-
-2085: {"R433B": 1},
|
|
640
|
-
-2086: {"R433C": 1},
|
|
641
|
-
-2087: {"R439A": 1},
|
|
642
|
-
-2088: {"R440A": 1},
|
|
643
|
-
-2089: {"R444B": 1},
|
|
644
|
-
-2090: {"R445A": 1},
|
|
645
|
-
-2091: {"R446A": 1},
|
|
646
|
-
-2092: {"R447A": 1},
|
|
647
|
-
-2093: {"R447B": 1},
|
|
648
|
-
-2094: {"R448A": 1},
|
|
649
|
-
-2095: {"R449A": 1},
|
|
650
|
-
-2096: {"R449B": 1},
|
|
651
|
-
-2097: {"R449C": 1},
|
|
652
|
-
-2098: {"R450A": 1},
|
|
653
|
-
-2099: {"R451A": 1},
|
|
654
|
-
-2100: {"R451B": 1},
|
|
655
|
-
-2101: {"R452A": 1},
|
|
656
|
-
-2102: {"R452B": 1},
|
|
657
|
-
-2103: {"R452C": 1},
|
|
658
|
-
-2104: {"R453A": 1},
|
|
659
|
-
-2105: {"R454A": 1},
|
|
660
|
-
-2106: {"R454B": 1},
|
|
661
|
-
-2107: {"R454C": 1},
|
|
662
|
-
-2108: {"R455A": 1},
|
|
663
|
-
-2109: {"R456A": 1},
|
|
664
|
-
-2110: {"R457A": 1},
|
|
665
|
-
-2111: {"R458A": 1},
|
|
666
|
-
-2112: {"R459A": 1},
|
|
667
|
-
-2113: {"R459B": 1},
|
|
668
|
-
-2114: {"R460A": 1},
|
|
669
|
-
-2115: {"R460B": 1},
|
|
670
|
-
-2116: {"R511A": 1},
|
|
671
|
-
-2117: {"R513A": 1},
|
|
672
|
-
-2118: {"R513B": 1},
|
|
673
|
-
-2119: {"R515A": 1},
|
|
611
|
+
-2056: {"EKOFISK": 1}, # REFPROPMIXTURE_EKOFISK
|
|
612
|
+
-2057: {"GLFCOAST": 1}, # REFPROPMIXTURE_GLFCOAST
|
|
613
|
+
-2058: {"HIGHCO2": 1}, # REFPROPMIXTURE_HIGHCO2
|
|
614
|
+
-2059: {"HIGHN2": 1}, # REFPROPMIXTURE_HIGHN2
|
|
615
|
+
-2060: {"R429A": 1}, # REFPROPMIXTURE_R429A
|
|
616
|
+
-2061: {"R430A": 1}, # REFPROPMIXTURE_R430A
|
|
617
|
+
-2062: {"R431A": 1}, # REFPROPMIXTURE_R431A
|
|
618
|
+
-2063: {"R432A": 1}, # REFPROPMIXTURE_R432A
|
|
619
|
+
-2064: {"R433A": 1}, # REFPROPMIXTURE_R433A
|
|
620
|
+
-2065: {"R434A": 1}, # REFPROPMIXTURE_R434A
|
|
621
|
+
-2066: {"R438A": 1}, # REFPROPMIXTURE_R438A
|
|
622
|
+
-2067: {"R435A": 1}, # REFPROPMIXTURE_R435A
|
|
623
|
+
-2068: {"R436A": 1}, # REFPROPMIXTURE_R436A
|
|
624
|
+
-2069: {"R436B": 1}, # REFPROPMIXTURE_R436B
|
|
625
|
+
-2070: {"R437A": 1}, # REFPROPMIXTURE_R437A
|
|
626
|
+
-2071: {"R510A": 1}, # REFPROPMIXTURE_R510A
|
|
627
|
+
-2072: {"NGSAMPLE": 1}, # REFPROPMIXTURE_NGSAMPLE
|
|
628
|
+
-2073: {"R407F": 1}, # REFPROPMIXTURE_R407F
|
|
629
|
+
-2074: {"R441A": 1}, # REFPROPMIXTURE_R441A
|
|
630
|
+
-2075: {"R442A": 1}, # REFPROPMIXTURE_R442A
|
|
631
|
+
-2076: {"R443A": 1}, # REFPROPMIXTURE_R443A
|
|
632
|
+
-2077: {"R444A": 1}, # REFPROPMIXTURE_R444A
|
|
633
|
+
-2078: {"R512A": 1}, # REFPROPMIXTURE_R512A
|
|
634
|
+
-2079: {"R407G": 1}, # REFPROPMIXTURE_R407G
|
|
635
|
+
-2080: {"R407H": 1}, # REFPROPMIXTURE_R407H
|
|
636
|
+
-2081: {"R417B": 1}, # REFPROPMIXTURE_R417B
|
|
637
|
+
-2082: {"R417C": 1}, # REFPROPMIXTURE_R417C
|
|
638
|
+
-2083: {"R419B": 1}, # REFPROPMIXTURE_R419B
|
|
639
|
+
-2084: {"R422E": 1}, # REFPROPMIXTURE_R422E
|
|
640
|
+
-2085: {"R433B": 1}, # REFPROPMIXTURE_R433B
|
|
641
|
+
-2086: {"R433C": 1}, # REFPROPMIXTURE_R433C
|
|
642
|
+
-2087: {"R439A": 1}, # REFPROPMIXTURE_R439A
|
|
643
|
+
-2088: {"R440A": 1}, # REFPROPMIXTURE_R440A
|
|
644
|
+
-2089: {"R444B": 1}, # REFPROPMIXTURE_R444B
|
|
645
|
+
-2090: {"R445A": 1}, # REFPROPMIXTURE_R445A
|
|
646
|
+
-2091: {"R446A": 1}, # REFPROPMIXTURE_R446A
|
|
647
|
+
-2092: {"R447A": 1}, # REFPROPMIXTURE_R447A
|
|
648
|
+
-2093: {"R447B": 1}, # REFPROPMIXTURE_R447B
|
|
649
|
+
-2094: {"R448A": 1}, # REFPROPMIXTURE_R448A
|
|
650
|
+
-2095: {"R449A": 1}, # REFPROPMIXTURE_R449A
|
|
651
|
+
-2096: {"R449B": 1}, # REFPROPMIXTURE_R449B
|
|
652
|
+
-2097: {"R449C": 1}, # REFPROPMIXTURE_R449C
|
|
653
|
+
-2098: {"R450A": 1}, # REFPROPMIXTURE_R450A
|
|
654
|
+
-2099: {"R451A": 1}, # REFPROPMIXTURE_R451A
|
|
655
|
+
-2100: {"R451B": 1}, # REFPROPMIXTURE_R451B
|
|
656
|
+
-2101: {"R452A": 1}, # REFPROPMIXTURE_R452A
|
|
657
|
+
-2102: {"R452B": 1}, # REFPROPMIXTURE_R452B
|
|
658
|
+
-2103: {"R452C": 1}, # REFPROPMIXTURE_R452C
|
|
659
|
+
-2104: {"R453A": 1}, # REFPROPMIXTURE_R453A
|
|
660
|
+
-2105: {"R454A": 1}, # REFPROPMIXTURE_R454A
|
|
661
|
+
-2106: {"R454B": 1}, # REFPROPMIXTURE_R454B
|
|
662
|
+
-2107: {"R454C": 1}, # REFPROPMIXTURE_R454C
|
|
663
|
+
-2108: {"R455A": 1}, # REFPROPMIXTURE_R455A
|
|
664
|
+
-2109: {"R456A": 1}, # REFPROPMIXTURE_R456A
|
|
665
|
+
-2110: {"R457A": 1}, # REFPROPMIXTURE_R457A
|
|
666
|
+
-2111: {"R458A": 1}, # REFPROPMIXTURE_R458A
|
|
667
|
+
-2112: {"R459A": 1}, # REFPROPMIXTURE_R459A
|
|
668
|
+
-2113: {"R459B": 1}, # REFPROPMIXTURE_R459B
|
|
669
|
+
-2114: {"R460A": 1}, # REFPROPMIXTURE_R460A
|
|
670
|
+
-2115: {"R460B": 1}, # REFPROPMIXTURE_R460B
|
|
671
|
+
-2116: {"R511A": 1}, # REFPROPMIXTURE_R511A
|
|
672
|
+
-2117: {"R513A": 1}, # REFPROPMIXTURE_R513A
|
|
673
|
+
-2118: {"R513B": 1}, # REFPROPMIXTURE_R513B
|
|
674
|
+
-2119: {"R515A": 1}, # REFPROPMIXTURE_R515A
|
|
674
675
|
}
|
|
675
676
|
|
|
676
677
|
|
|
677
|
-
|
|
678
678
|
unit_id_to_string = {
|
|
679
679
|
0: "INVALID",
|
|
680
680
|
1: "NONE",
|
|
@@ -808,25 +808,101 @@ unit_id_to_string = {
|
|
|
808
808
|
135: "kJ / kgK",
|
|
809
809
|
136: "mol",
|
|
810
810
|
137: "K / bar",
|
|
811
|
-
138: "kg / m2"
|
|
811
|
+
138: "kg / m2",
|
|
812
812
|
}
|
|
813
813
|
|
|
814
814
|
|
|
815
815
|
# List of fluid composition materials to include in the JSON file
|
|
816
816
|
composition_params = [
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
817
|
+
"X12BUTADIEN",
|
|
818
|
+
"X13BUTADIEN",
|
|
819
|
+
"X1BUTEN",
|
|
820
|
+
"X1PENTEN",
|
|
821
|
+
"X22DMBUT",
|
|
822
|
+
"X23DMBUT",
|
|
823
|
+
"X3MPENT",
|
|
824
|
+
"XACET",
|
|
825
|
+
"XAIR",
|
|
826
|
+
"XAR",
|
|
827
|
+
"XASH",
|
|
828
|
+
"XASHG",
|
|
829
|
+
"XBENZ",
|
|
830
|
+
"XBUT",
|
|
831
|
+
"XC",
|
|
832
|
+
"XC2BUTEN",
|
|
833
|
+
"XCA",
|
|
834
|
+
"XCACO3",
|
|
835
|
+
"XCAO",
|
|
836
|
+
"XCASO4",
|
|
837
|
+
"XCDECALIN",
|
|
838
|
+
"XCH3SH",
|
|
839
|
+
"XCH4",
|
|
840
|
+
"XCL",
|
|
841
|
+
"XCO",
|
|
842
|
+
"XCO2",
|
|
843
|
+
"XCOS",
|
|
844
|
+
"XCS2",
|
|
845
|
+
"XCYCHEX",
|
|
846
|
+
"XCYCPENT",
|
|
847
|
+
"XDEC",
|
|
848
|
+
"XDODEC",
|
|
849
|
+
"XEBENZ",
|
|
850
|
+
"XECYCHEX",
|
|
851
|
+
"XECYCPENT",
|
|
852
|
+
"XETH",
|
|
853
|
+
"XETHEN",
|
|
854
|
+
"XETHL",
|
|
855
|
+
"XH",
|
|
856
|
+
"XH2",
|
|
857
|
+
"XH2O",
|
|
858
|
+
"XH2OB",
|
|
859
|
+
"XH2OG",
|
|
860
|
+
"XH2OL",
|
|
861
|
+
"XH2S",
|
|
862
|
+
"XHCL",
|
|
863
|
+
"XHCN",
|
|
864
|
+
"XHE",
|
|
865
|
+
"XHEPT",
|
|
866
|
+
"XHEX",
|
|
867
|
+
"XI",
|
|
868
|
+
"XIBUT",
|
|
869
|
+
"XIBUTEN",
|
|
870
|
+
"XIHEX",
|
|
871
|
+
"XIPENT",
|
|
872
|
+
"XKR",
|
|
873
|
+
"XLIME",
|
|
874
|
+
"XL_CO2",
|
|
875
|
+
"XL_H2O",
|
|
876
|
+
"XL_NH3",
|
|
877
|
+
"XMCYCHEX",
|
|
878
|
+
"XMCYCPENT",
|
|
879
|
+
"XMETHL",
|
|
880
|
+
"XMG",
|
|
881
|
+
"XMGCO3",
|
|
882
|
+
"XMGO",
|
|
883
|
+
"XN",
|
|
884
|
+
"XN2",
|
|
885
|
+
"XN2O",
|
|
886
|
+
"XNE",
|
|
887
|
+
"XNEOPENT",
|
|
888
|
+
"XNH3",
|
|
889
|
+
"XNO",
|
|
890
|
+
"XNO2",
|
|
891
|
+
"XNON",
|
|
892
|
+
"XO",
|
|
893
|
+
"XO2",
|
|
894
|
+
"XOCT",
|
|
895
|
+
"XOXYLEN",
|
|
896
|
+
"XPENT",
|
|
897
|
+
"XPROP",
|
|
898
|
+
"XPROPADIEN",
|
|
899
|
+
"XPROPEN",
|
|
900
|
+
"XS",
|
|
901
|
+
"XSO2",
|
|
902
|
+
"XT2BUTEN",
|
|
903
|
+
"XTDECALIN",
|
|
904
|
+
"XTOLUEN",
|
|
905
|
+
"XXE",
|
|
830
906
|
]
|
|
831
907
|
|
|
832
908
|
# Define the component groups via unique labels
|
|
@@ -834,7 +910,7 @@ grouped_components = {
|
|
|
834
910
|
"Turbine": [6, 23, 56, 57, 58, 68, 122],
|
|
835
911
|
"HeatExchanger": [10, 25, 26, 27, 43, 51, 55, 61, 62, 70, 71, 124, 126],
|
|
836
912
|
"CombustionChamber": [22, 90],
|
|
837
|
-
"Valve": [2, 13, 14,
|
|
913
|
+
"Valve": [2, 13, 14, 42, 59, 68, 133],
|
|
838
914
|
"Pump": [8, 44, 83, 159],
|
|
839
915
|
"Compressor": [24, 94],
|
|
840
916
|
"Condenser": [7, 47, 78],
|
|
@@ -842,11 +918,31 @@ grouped_components = {
|
|
|
842
918
|
"SimpleHeatExchanger": [15, 16, 35],
|
|
843
919
|
"SteamGenerator": [5],
|
|
844
920
|
"Mixer": [3, 28, 37, 38, 49, 60, 102, 141, 161],
|
|
845
|
-
"FlashTank"
|
|
846
|
-
"
|
|
847
|
-
"
|
|
848
|
-
"CycleCloser": [80]
|
|
921
|
+
"FlashTank": [34],
|
|
922
|
+
"Storage": [118],
|
|
923
|
+
"Splitter": [4, 17, 18, 19, 52, 109, 140, 157],
|
|
924
|
+
"CycleCloser": [80],
|
|
849
925
|
}
|
|
926
|
+
"""
|
|
927
|
+
This is the mapping of component groups to their respective component IDs:
|
|
928
|
+
|
|
929
|
+
- "Turbine": [6, 23, 56, 57, 58, 68, 122],
|
|
930
|
+
- "HeatExchanger": [10, 25, 26, 27, 43, 51, 55, 61, 62, 70, 71, 124, 126],
|
|
931
|
+
- "CombustionChamber": [22, 90],
|
|
932
|
+
- "Valve": [2, 13, 14, 39, 42, 59, 68, 133],
|
|
933
|
+
- "Pump": [8, 44, 83, 159],
|
|
934
|
+
- "Compressor": [24, 94],
|
|
935
|
+
- "Condenser": [7, 47, 78],
|
|
936
|
+
- "Deaerator": [9, 63],
|
|
937
|
+
- "SimpleHeatExchanger": [15, 16, 35],
|
|
938
|
+
- "SteamGenerator": [5],
|
|
939
|
+
- "Mixer": [3, 28, 37, 38, 49, 60, 102, 141, 161],
|
|
940
|
+
- "FlashTank" : [34],
|
|
941
|
+
- "Storage": [118],
|
|
942
|
+
- "Splitter": [4, 17, 18, 19, 52, 109, 140, 157],
|
|
943
|
+
- "CycleCloser": [80]
|
|
944
|
+
|
|
945
|
+
"""
|
|
850
946
|
|
|
851
947
|
# Connector mapping rules for different component types
|
|
852
948
|
connector_mapping = {
|
|
@@ -869,7 +965,7 @@ connector_mapping = {
|
|
|
869
965
|
2: 0, # Superheated steam outlet (high pressure)
|
|
870
966
|
3: 1, # Steam inlet (intermediate pressure)
|
|
871
967
|
4: 1, # Superheated steam outlet (intermediate pressure)
|
|
872
|
-
5: 2, # Heat source (counted as outlet!!!)
|
|
968
|
+
5: 2, # Heat source (counted as outlet!!!)
|
|
873
969
|
6: 2, # Water injection (high pressure)
|
|
874
970
|
7: 3, # Water injection (intermediate pressure)
|
|
875
971
|
8: 3, # Drain / Blow down outlet
|
|
@@ -892,6 +988,7 @@ connector_mapping = {
|
|
|
892
988
|
8: { # Pump
|
|
893
989
|
1: 0, # Connector 1 in Ebsilon is inlet(0)
|
|
894
990
|
2: 0, # Connector 2 in Ebsilon is outlet(0)
|
|
991
|
+
3: 1, # Power inlet
|
|
895
992
|
},
|
|
896
993
|
9: { # Feed Water Container / De Aerator
|
|
897
994
|
1: 0, # Inlet boiling water
|
|
@@ -954,6 +1051,7 @@ connector_mapping = {
|
|
|
954
1051
|
24: { # Compressor / Fan
|
|
955
1052
|
1: 0, # Connector 1 in Ebsilon is inlet(0)
|
|
956
1053
|
2: 0, # Connector 2 in Ebsilon is outlet(0)
|
|
1054
|
+
3: 0, # Power inlet
|
|
957
1055
|
},
|
|
958
1056
|
25: { # Air Preheater
|
|
959
1057
|
1: 1, # Inlet cold stream
|
|
@@ -990,7 +1088,7 @@ connector_mapping = {
|
|
|
990
1088
|
2: 0, # Connector 2 in Ebsilon is outlet(0)
|
|
991
1089
|
},
|
|
992
1090
|
34: { # Flash box
|
|
993
|
-
1: 0, # General inlet
|
|
1091
|
+
1: 0, # General inlet
|
|
994
1092
|
2: 0, # Vaporous outlet
|
|
995
1093
|
3: 1, # Liquid outlet
|
|
996
1094
|
4: 1, # Liquid injection inlet
|
|
@@ -1025,9 +1123,9 @@ connector_mapping = {
|
|
|
1025
1123
|
5: 2, # Second outlet hot stream (if present)
|
|
1026
1124
|
},
|
|
1027
1125
|
58: { # Governing stage (steam turbine)
|
|
1028
|
-
1: 0, # Steam inlet
|
|
1126
|
+
1: 0, # Steam inlet
|
|
1029
1127
|
2: 0, # Steam outlet
|
|
1030
|
-
3: 1, # Shaft power inlet
|
|
1128
|
+
3: 1, # Shaft power inlet
|
|
1031
1129
|
4: 1, # Shaft power outlet
|
|
1032
1130
|
},
|
|
1033
1131
|
70: { # Evaporator
|
|
@@ -1037,7 +1135,7 @@ connector_mapping = {
|
|
|
1037
1135
|
4: 0, # Outlet hot stream
|
|
1038
1136
|
5: 2, # Second outlet cold stream (if present)
|
|
1039
1137
|
},
|
|
1040
|
-
80:
|
|
1138
|
+
80: { # Separator (logical)
|
|
1041
1139
|
1: 0, # Inlet
|
|
1042
1140
|
2: 0, # Outlet 1
|
|
1043
1141
|
},
|
|
@@ -1052,4 +1150,8 @@ connector_mapping = {
|
|
|
1052
1150
|
8: 0, # Inlet air
|
|
1053
1151
|
9: 1, # Inlet fuel gas
|
|
1054
1152
|
},
|
|
1153
|
+
118: { # Storage
|
|
1154
|
+
1: 0, # Inlet
|
|
1155
|
+
2: 0, # Outlet
|
|
1156
|
+
},
|
|
1055
1157
|
}
|