exerpy 0.0.2__py3-none-any.whl → 0.0.4__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.
Files changed (48) hide show
  1. exerpy/__init__.py +2 -4
  2. exerpy/analyses.py +849 -304
  3. exerpy/components/__init__.py +3 -0
  4. exerpy/components/combustion/base.py +53 -35
  5. exerpy/components/component.py +8 -8
  6. exerpy/components/heat_exchanger/base.py +188 -121
  7. exerpy/components/heat_exchanger/condenser.py +98 -62
  8. exerpy/components/heat_exchanger/simple.py +237 -137
  9. exerpy/components/heat_exchanger/steam_generator.py +46 -41
  10. exerpy/components/helpers/cycle_closer.py +61 -34
  11. exerpy/components/helpers/power_bus.py +117 -0
  12. exerpy/components/nodes/deaerator.py +176 -58
  13. exerpy/components/nodes/drum.py +50 -39
  14. exerpy/components/nodes/flash_tank.py +218 -43
  15. exerpy/components/nodes/mixer.py +249 -69
  16. exerpy/components/nodes/splitter.py +173 -0
  17. exerpy/components/nodes/storage.py +130 -0
  18. exerpy/components/piping/valve.py +311 -115
  19. exerpy/components/power_machines/generator.py +105 -38
  20. exerpy/components/power_machines/motor.py +111 -39
  21. exerpy/components/turbomachinery/compressor.py +214 -68
  22. exerpy/components/turbomachinery/pump.py +215 -68
  23. exerpy/components/turbomachinery/turbine.py +182 -74
  24. exerpy/cost_estimation/__init__.py +65 -0
  25. exerpy/cost_estimation/turton.py +1260 -0
  26. exerpy/data/cost_correlations/cepci_index.json +135 -0
  27. exerpy/data/cost_correlations/component_mapping.json +450 -0
  28. exerpy/data/cost_correlations/material_factors.json +428 -0
  29. exerpy/data/cost_correlations/pressure_factors.json +206 -0
  30. exerpy/data/cost_correlations/turton2008.json +726 -0
  31. exerpy/data/cost_correlations/turton2008_design_analysis_synthesis_components_tables.pdf +0 -0
  32. exerpy/data/cost_correlations/turton2008_design_analysis_synthesis_components_theory.pdf +0 -0
  33. exerpy/functions.py +389 -264
  34. exerpy/parser/from_aspen/aspen_config.py +57 -48
  35. exerpy/parser/from_aspen/aspen_parser.py +373 -280
  36. exerpy/parser/from_ebsilon/__init__.py +2 -2
  37. exerpy/parser/from_ebsilon/check_ebs_path.py +15 -19
  38. exerpy/parser/from_ebsilon/ebsilon_config.py +328 -226
  39. exerpy/parser/from_ebsilon/ebsilon_functions.py +205 -38
  40. exerpy/parser/from_ebsilon/ebsilon_parser.py +392 -255
  41. exerpy/parser/from_ebsilon/utils.py +16 -11
  42. exerpy/parser/from_tespy/tespy_config.py +33 -1
  43. exerpy/parser/from_tespy/tespy_parser.py +151 -0
  44. {exerpy-0.0.2.dist-info → exerpy-0.0.4.dist-info}/METADATA +43 -2
  45. exerpy-0.0.4.dist-info/RECORD +57 -0
  46. exerpy-0.0.2.dist-info/RECORD +0 -44
  47. {exerpy-0.0.2.dist-info → exerpy-0.0.4.dist-info}/WHEEL +0 -0
  48. {exerpy-0.0.2.dist-info → exerpy-0.0.4.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, # Boundary Input Value
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, # Library Specification
212
- 108, # Elementary Analyzer
213
- 110, # Mass Multiplier
214
- 117, # The Sun (environmental data)
215
- 130, # PID-Controller
216
- 132, # Automatic Connector
217
- 136, # Emission Display
218
- 142, # Wind Data
219
- 144, # Multivalue Transmitter
220
- 147, # Limiter
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", # epFluidTypeNONE
227
- 1: "Air", # epFluidTypeAir
228
- 2: "Fluegas", # epFluidTypeFluegas
229
- 3: "Steam", # epFluidTypeSteam
230
- 4: "Water", # epFluidTypeWater
231
- 5: "Scheduled", # epFluidTypeScheduled
232
- 6: "Actual", # epFluidTypeActual
233
- 7: "Crudegas", # epFluidTypeCrudegas
234
- 8: "Oil", # epFluidTypeOil
235
- 9: "Electric", # epFluidTypeElectric
236
- 10: "Shaft", # epFluidTypeShaft
237
- 11: "Coal", # epFluidTypeCoal
238
- 12: "Gas", # epFluidTypeGas
239
- 13: "Logic", # epFluidTypeLogic
240
- 14: "User", # epFluidTypeUser
241
- 15: "2PhaseLiquid", # epFluidType2PhaseLiquid
242
- 16: "2PhaseGaseous", # epFluidType2PhaseGaseous
243
- 17: "Saltwater", # epFluidTypeSaltwater
244
- 18: "UniversalFluid", # epFluidTypeUniversalFluid
245
- 19: "BinaryMixture", # epFluidTypeBinaryMixture
246
- 20: "ThermoLiquid", # epFluidTypeThermoLiquid
247
- 21: "HumidAir", # epFluidTypeHumidAir
248
- 22: "NASA" # epFluidTypeNASA
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}, # REFPROP_R21
449
- -1067: {"R218": 1}, # REFPROP_R218
450
- -1068: {"R22": 1}, # REFPROP_R22
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}, # REFPROP_R23
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}, # REFPROP_R32
458
- -1076: {"R365MFC": 1}, # REFPROP_R365MFC
459
- -1077: {"R404A": 1}, # REFPROP_R404A
460
- -1078: {"R407C": 1}, # REFPROP_R407C
461
- -1079: {"R41": 1}, # REFPROP_R41
462
- -1080: {"R410A": 1}, # REFPROP_R410A
463
- -1081: {"R507A": 1}, # REFPROP_R507A
464
- -1082: {"RC318": 1}, # REFPROP_RC318
465
- -1083: {"SF6": 1}, # REFPROP_SF6
466
- -1084: {"SO2": 1}, # REFPROP_SO2
467
- -1085: {"T2Butene": 1},# REFPROP_T2BUTEN
468
- -1086: {"Toluene": 1}, # REFPROP_TOLUEN
469
- -1087: {"H2O": 1}, # REFPROP_H2O
470
- -1088: {"XE": 1}, # REFPROP_XE
471
- -1090: {"MCyclohex": 1}, # REFPROP_MCYCHEX
472
- -1091: {"C3CC6": 1}, # REFPROP_C3CC6
473
- -1092: {"Cyclopentane": 1}, # REFPROP_CYCPENT
474
- -1093: {"D4": 1}, # REFPROP_D4
475
- -1094: {"D5": 1}, # REFPROP_D5
476
- -1095: {"D6": 1}, # REFPROP_D6
477
- -1096: {"DMC": 1}, # REFPROP_DMC
478
- -1097: {"MD2M": 1}, # REFPROP_MD2M
479
- -1098: {"MD3M": 1}, # REFPROP_MD3M
480
- -1099: {"MD4M": 1}, # REFPROP_MD4M
481
- -1100: {"MDM": 1}, # REFPROP_MDM
482
- -1101: {"MLinolea": 1},# REFPROP_MLINOLEA
483
- -1102: {"MLinolEN": 1},# REFPROP_MLINOLEN
484
- -1103: {"MM": 1}, # REFPROP_MM
485
- -1104: {"Moleate": 1}, # REFPROP_MOLEATE
486
- -1105: {"MPalmita": 1},# REFPROP_MPALMITA
487
- -1106: {"MStearat": 1},# REFPROP_MSTEARAT
488
- -1107: {"OrthoHyd": 1}, # REFPROP_ORTHOHYD
489
- -1108: {"R1234YF": 1}, # REFPROP_R1234YF
490
- -1109: {"R1234ZE": 1}, # REFPROP_R1234ZE
491
- -1110: {"R161": 1}, # REFPROP_R161
492
- -1111: {"UD_01": 1}, # REFPROP_REFPROP_UD_01
493
- -1112: {"UD_02": 1}, # REFPROP_REFPROP_UD_02
494
- -1113: {"UD_03": 1}, # REFPROP_REFPROP_UD_03
495
- -1114: {"UD_04": 1}, # REFPROP_REFPROP_UD_04
496
- -1115: {"UD_05": 1}, # REFPROP_REFPROP_UD_05
497
- -1116: {"UD_06": 1}, # REFPROP_REFPROP_UD_06
498
- -1117: {"UD_07": 1}, # REFPROP_REFPROP_UD_07
499
- -1118: {"UD_08": 1}, # REFPROP_REFPROP_UD_08
500
- -1119: {"UD_09": 1}, # REFPROP_REFPROP_UD_09
501
- -1120: {"UD_10": 1}, # REFPROP_REFPROP_UD_10
502
- -1121: {"UD_11": 1}, # REFPROP_REFPROP_UD_11
503
- -1122: {"UD_12": 1}, # REFPROP_REFPROP_UD_12
504
- -1123: {"UD_13": 1}, # REFPROP_REFPROP_UD_13
505
- -1124: {"UD_14": 1}, # REFPROP_REFPROP_UD_14
506
- -1125: {"UD_15": 1}, # REFPROP_REFPROP_UD_15
507
- -1126: {"UD_16": 1}, # REFPROP_REFPROP_UD_16
508
- -1127: {"UD_17": 1}, # REFPROP_REFPROP_UD_17
509
- -1128: {"UD_18": 1}, # REFPROP_REFPROP_UD_18
510
- -1129: {"UD_19": 1}, # REFPROP_REFPROP_UD_19
511
- -1130: {"UD_20": 1}, # REFPROP_REFPROP_UD_20
512
- -1131: {"C11": 1}, # REFPROP_C11
513
- -1132: {"DEE": 1}, # REFPROP_DEE
514
- -1133: {"EBenzene": 1}, # REFPROP_EBENZ
515
- -1134: {"HCL": 1}, # REFPROP_HCL
516
- -1135: {"IOctane": 1}, # REFPROP_IOCTANE
517
- -1136: {"MXYlene": 1}, # REFPROP_MXYLENE
518
- -1137: {"Novec649": 1}, # REFPROP_NOVEC649
519
- -1138: {"Oxylene": 1}, # REFPROP_OXYLEN
520
- -1139: {"PXylene": 1}, # REFPROP_PXYLENE
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}, # REFPROP_R1233ZD
523
- -1142: {"R40": 1}, # REFPROP_R40
524
- -1143: {"RE143A": 1}, # REFPROP_RE143A
525
- -1144: {"RE245CB2": 1}, # REFPROP_RE245CB2
526
- -1145: {"RE245FA2": 1}, # REFPROP_RE245FA2
527
- -1146: {"RE347MCC": 1}, # REFPROP_RE347MCC
528
- -1147: {"EthyleneOxide": 1}, # REFPROP_EthyleneOxide
529
- -1148: {"13Butadien": 1}, # REFPROP_13BUTADIEN
530
- -1149: {"1-Butyne": 1}, # REFPROP_1BUTYNE
531
- -1150: {"1Penten": 1}, # REFPROP_1PENTEN
532
- -1151: {"22DMBut": 1}, # REFPROP_22DMBUT
533
- -1152: {"23DMBut": 1}, # REFPROP_23DMBUT
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}, # REFPROP_ACET
536
- -1155: {"C16": 1}, # REFPROP_C16
537
- -1156: {"C22": 1}, # REFPROP_C22
538
- -1157: {"C6F14": 1}, # REFPROP_C6F14
539
- -1158: {"Chlorine": 1}, # REFPROP_CHLORINE
540
- -1159: {"Chlorobenzene": 1}, # REFPROP_CHLOROBENZENE
541
- -1160: {"Cyclobutene": 1}, # REFPROP_CYCLOBUTENE
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}, # REFPROP_PROPYLENEOXIDE
544
- -1163: {"R1123": 1}, # REFPROP_R1123
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}, # REFPROP_R1243ZF
548
+ -1166: {"R1243ZF": 1}, # REFPROP_R1243ZF
548
549
  -1167: {"R1336MZZZ": 1}, # REFPROP_R1336MZZZ
549
- -1168: {"Dichloroethane": 1}, # REFPROP_Dichloroethane
550
+ -1168: {"Dichloroethane": 1}, # REFPROP_Dichloroethane
550
551
  -1169: {"Vinylchloride": 1}, # REFPROP_VINYLCHLORIDE
551
- -1170: {"Diethanolamine": 1}, # REFPROP_DIETHANOLAMINE
552
- -1171: {"Ethylene_glycol": 1}, # REFPROP_Ethylene_glycol
553
- -1172: {"Monoethanolamine": 1}, # REFPROP_MONOETHANOLAMINE
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}, # REFPROPMIXTURE_R500
601
- -2047: {"R501": 1}, # REFPROPMIXTURE_R501
602
- -2048: {"R502": 1}, # REFPROPMIXTURE_R502
603
- -2049: {"R503": 1}, # REFPROPMIXTURE_R503
604
- -2050: {"R504": 1}, # REFPROPMIXTURE_R504
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}, # REFPROPMIXTURE_EKOFISK
611
- -2057: {"GLFCOAST": 1}, # REFPROPMIXTURE_GLFCOAST
612
- -2058: {"HIGHCO2": 1}, # REFPROPMIXTURE_HIGHCO2
613
- -2059: {"HIGHN2": 1}, # REFPROPMIXTURE_HIGHN2
614
- -2060: {"R429A": 1}, # REFPROPMIXTURE_R429A
615
- -2061: {"R430A": 1}, # REFPROPMIXTURE_R430A
616
- -2062: {"R431A": 1}, # REFPROPMIXTURE_R431A
617
- -2063: {"R432A": 1}, # REFPROPMIXTURE_R432A
618
- -2064: {"R433A": 1}, # REFPROPMIXTURE_R433A
619
- -2065: {"R434A": 1}, # REFPROPMIXTURE_R434A
620
- -2066: {"R438A": 1}, # REFPROPMIXTURE_R438A
621
- -2067: {"R435A": 1}, # REFPROPMIXTURE_R435A
622
- -2068: {"R436A": 1}, # REFPROPMIXTURE_R436A
623
- -2069: {"R436B": 1}, # REFPROPMIXTURE_R436B
624
- -2070: {"R437A": 1}, # REFPROPMIXTURE_R437A
625
- -2071: {"R510A": 1}, # REFPROPMIXTURE_R510A
626
- -2072: {"NGSAMPLE": 1}, # REFPROPMIXTURE_NGSAMPLE
627
- -2073: {"R407F": 1}, # REFPROPMIXTURE_R407F
628
- -2074: {"R441A": 1}, # REFPROPMIXTURE_R441A
629
- -2075: {"R442A": 1}, # REFPROPMIXTURE_R442A
630
- -2076: {"R443A": 1}, # REFPROPMIXTURE_R443A
631
- -2077: {"R444A": 1}, # REFPROPMIXTURE_R444A
632
- -2078: {"R512A": 1}, # REFPROPMIXTURE_R512A
633
- -2079: {"R407G": 1}, # REFPROPMIXTURE_R407G
634
- -2080: {"R407H": 1}, # REFPROPMIXTURE_R407H
635
- -2081: {"R417B": 1}, # REFPROPMIXTURE_R417B
636
- -2082: {"R417C": 1}, # REFPROPMIXTURE_R417C
637
- -2083: {"R419B": 1}, # REFPROPMIXTURE_R419B
638
- -2084: {"R422E": 1}, # REFPROPMIXTURE_R422E
639
- -2085: {"R433B": 1}, # REFPROPMIXTURE_R433B
640
- -2086: {"R433C": 1}, # REFPROPMIXTURE_R433C
641
- -2087: {"R439A": 1}, # REFPROPMIXTURE_R439A
642
- -2088: {"R440A": 1}, # REFPROPMIXTURE_R440A
643
- -2089: {"R444B": 1}, # REFPROPMIXTURE_R444B
644
- -2090: {"R445A": 1}, # REFPROPMIXTURE_R445A
645
- -2091: {"R446A": 1}, # REFPROPMIXTURE_R446A
646
- -2092: {"R447A": 1}, # REFPROPMIXTURE_R447A
647
- -2093: {"R447B": 1}, # REFPROPMIXTURE_R447B
648
- -2094: {"R448A": 1}, # REFPROPMIXTURE_R448A
649
- -2095: {"R449A": 1}, # REFPROPMIXTURE_R449A
650
- -2096: {"R449B": 1}, # REFPROPMIXTURE_R449B
651
- -2097: {"R449C": 1}, # REFPROPMIXTURE_R449C
652
- -2098: {"R450A": 1}, # REFPROPMIXTURE_R450A
653
- -2099: {"R451A": 1}, # REFPROPMIXTURE_R451A
654
- -2100: {"R451B": 1}, # REFPROPMIXTURE_R451B
655
- -2101: {"R452A": 1}, # REFPROPMIXTURE_R452A
656
- -2102: {"R452B": 1}, # REFPROPMIXTURE_R452B
657
- -2103: {"R452C": 1}, # REFPROPMIXTURE_R452C
658
- -2104: {"R453A": 1}, # REFPROPMIXTURE_R453A
659
- -2105: {"R454A": 1}, # REFPROPMIXTURE_R454A
660
- -2106: {"R454B": 1}, # REFPROPMIXTURE_R454B
661
- -2107: {"R454C": 1}, # REFPROPMIXTURE_R454C
662
- -2108: {"R455A": 1}, # REFPROPMIXTURE_R455A
663
- -2109: {"R456A": 1}, # REFPROPMIXTURE_R456A
664
- -2110: {"R457A": 1}, # REFPROPMIXTURE_R457A
665
- -2111: {"R458A": 1}, # REFPROPMIXTURE_R458A
666
- -2112: {"R459A": 1}, # REFPROPMIXTURE_R459A
667
- -2113: {"R459B": 1}, # REFPROPMIXTURE_R459B
668
- -2114: {"R460A": 1}, # REFPROPMIXTURE_R460A
669
- -2115: {"R460B": 1}, # REFPROPMIXTURE_R460B
670
- -2116: {"R511A": 1}, # REFPROPMIXTURE_R511A
671
- -2117: {"R513A": 1}, # REFPROPMIXTURE_R513A
672
- -2118: {"R513B": 1}, # REFPROPMIXTURE_R513B
673
- -2119: {"R515A": 1}, # REFPROPMIXTURE_R515A
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
- 'X12BUTADIEN', 'X13BUTADIEN', 'X1BUTEN', 'X1PENTEN', 'X22DMBUT',
818
- 'X23DMBUT', 'X3MPENT', 'XACET', 'XAIR', 'XAR', 'XASH', 'XASHG',
819
- 'XBENZ', 'XBUT', 'XC', 'XC2BUTEN', 'XCA', 'XCACO3', 'XCAO', 'XCASO4',
820
- 'XCDECALIN', 'XCH3SH', 'XCH4', 'XCL', 'XCO', 'XCO2', 'XCOS', 'XCS2',
821
- 'XCYCHEX', 'XCYCPENT', 'XDEC', 'XDODEC', 'XEBENZ', 'XECYCHEX',
822
- 'XECYCPENT', 'XETH', 'XETHEN', 'XETHL', 'XH', 'XH2', 'XH2O', 'XH2OB',
823
- 'XH2OG', 'XH2OL', 'XH2S', 'XHCL', 'XHCN', 'XHE', 'XHEPT', 'XHEX',
824
- 'XI', 'XIBUT', 'XIBUTEN', 'XIHEX', 'XIPENT', 'XKR', 'XLIME', 'XL_CO2',
825
- 'XL_H2O', 'XL_NH3', 'XMCYCHEX', 'XMCYCPENT', 'XMETHL', 'XMG',
826
- 'XMGCO3', 'XMGO', 'XN', 'XN2', 'XN2O', 'XNE', 'XNEOPENT', 'XNH3',
827
- 'XNO', 'XNO2', 'XNON', 'XO', 'XO2', 'XOCT', 'XOXYLEN', 'XPENT',
828
- 'XPROP', 'XPROPADIEN', 'XPROPEN', 'XS', 'XSO2', 'XT2BUTEN',
829
- 'XTDECALIN', 'XTOLUEN', 'XXE'
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, 39, 42, 59, 68, 133],
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" : [34],
846
- "Splitter": [4, 17, 18, 52, 109, 140, 157],
847
- "Separator": [19, 99],
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: { # Separator (logical)
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
  }