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.
Files changed (39) hide show
  1. exerpy/__init__.py +2 -4
  2. exerpy/analyses.py +597 -297
  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 +186 -119
  7. exerpy/components/heat_exchanger/condenser.py +96 -60
  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 +181 -63
  22. exerpy/components/turbomachinery/pump.py +182 -63
  23. exerpy/components/turbomachinery/turbine.py +182 -74
  24. exerpy/functions.py +388 -263
  25. exerpy/parser/from_aspen/aspen_config.py +57 -48
  26. exerpy/parser/from_aspen/aspen_parser.py +373 -280
  27. exerpy/parser/from_ebsilon/__init__.py +2 -2
  28. exerpy/parser/from_ebsilon/check_ebs_path.py +15 -19
  29. exerpy/parser/from_ebsilon/ebsilon_config.py +328 -226
  30. exerpy/parser/from_ebsilon/ebsilon_functions.py +205 -38
  31. exerpy/parser/from_ebsilon/ebsilon_parser.py +392 -255
  32. exerpy/parser/from_ebsilon/utils.py +16 -11
  33. exerpy/parser/from_tespy/tespy_config.py +32 -1
  34. exerpy/parser/from_tespy/tespy_parser.py +151 -0
  35. {exerpy-0.0.2.dist-info → exerpy-0.0.3.dist-info}/METADATA +43 -2
  36. exerpy-0.0.3.dist-info/RECORD +48 -0
  37. exerpy-0.0.2.dist-info/RECORD +0 -44
  38. {exerpy-0.0.2.dist-info → exerpy-0.0.3.dist-info}/WHEEL +0 -0
  39. {exerpy-0.0.2.dist-info → exerpy-0.0.3.dist-info}/licenses/LICENSE +0 -0
@@ -1,27 +1,27 @@
1
1
  import functools
2
- from typing import Any
3
- from typing import Callable
4
- from typing import TypeVar
5
- from typing import cast
2
+ from collections.abc import Callable
3
+ from typing import Any, TypeVar, cast
6
4
 
7
5
  from exerpy.parser.from_ebsilon import __ebsilon_available__
8
6
 
9
7
  # Type variable for the decorated function
10
- F = TypeVar('F', bound=Callable[..., Any])
8
+ F = TypeVar("F", bound=Callable[..., Any])
9
+
11
10
 
12
11
  def require_ebsilon(func: F) -> F:
13
12
  """
14
13
  Decorator to ensure that Ebsilon functionality is available.
15
-
14
+
16
15
  Args:
17
16
  func: The function that requires Ebsilon functionality
18
-
17
+
19
18
  Returns:
20
19
  The wrapped function that checks for Ebsilon availability
21
-
20
+
22
21
  Raises:
23
22
  RuntimeError: If Ebsilon functionality is not available
24
23
  """
24
+
25
25
  @functools.wraps(func)
26
26
  def wrapper(*args: Any, **kwargs: Any) -> Any:
27
27
  if not __ebsilon_available__:
@@ -32,20 +32,21 @@ def require_ebsilon(func: F) -> F:
32
32
  )
33
33
  raise RuntimeError(error_msg)
34
34
  return func(*args, **kwargs)
35
-
35
+
36
36
  return cast(F, wrapper)
37
37
 
38
38
 
39
39
  # Stub classes for when Ebsilon isn't available
40
40
  class EpSubstanceStub:
41
41
  """Stub class for EpSubstance when Ebsilon is not available."""
42
+
42
43
  epSubstanceN2 = 0
43
44
  epSubstanceO2 = 1
44
45
  epSubstanceCO2 = 2
45
46
  epSubstanceH2O = 3
46
47
  epSubstanceAR = 4
47
48
  # Add other substance constants as needed with placeholder values
48
-
49
+
49
50
  @staticmethod
50
51
  def get_substance_name(substance_id: int) -> str:
51
52
  """Return placeholder substance name for the given ID."""
@@ -54,6 +55,7 @@ class EpSubstanceStub:
54
55
 
55
56
  class EpFluidTypeStub:
56
57
  """Stub class for EpFluidType when Ebsilon is not available."""
58
+
57
59
  epFluidTypeNONE = 0
58
60
  epFluidTypeAir = 1
59
61
  epFluidTypeFluegas = 2
@@ -64,16 +66,19 @@ class EpFluidTypeStub:
64
66
 
65
67
  class EpSteamTableStub:
66
68
  """Stub class for EpSteamTable when Ebsilon is not available."""
69
+
67
70
  epSteamTableFromSuperiorModel = 0
68
71
 
69
72
 
70
73
  class EpGasTableStub:
71
74
  """Stub class for EpGasTable when Ebsilon is not available."""
75
+
72
76
  epGasTableFromSuperiorModel = 0
73
77
 
74
78
 
75
79
  class EpCalculationResultStatus2Stub:
76
80
  """Stub class for EpCalculationResultStatus2 when Ebsilon is not available."""
81
+
77
82
  epCalculationResultStatus2OK = 0
78
83
  epCalculationResultStatus2Warning = 1
79
- epCalculationResultStatus2Error = 2
84
+ epCalculationResultStatus2Error = 2
@@ -3,7 +3,6 @@ EXERPY_TESPY_MAPPINGS = {
3
3
  "HeatExchanger": "HeatExchanger",
4
4
  "MovingBoundaryHeatExchanger": "HeatExchanger",
5
5
  "Desuperheater": "HeatExchanger",
6
- "MovingBoundaryHeatExchanger": "HeatExchanger",
7
6
  "Condenser": "Condenser",
8
7
  "SimpleHeatExchanger": "SimpleHeatExchanger",
9
8
  "ParabolicTrough": "SimpleHeatExchanger",
@@ -20,4 +19,36 @@ EXERPY_TESPY_MAPPINGS = {
20
19
  "Motor": "Motor",
21
20
  "Drum": "Drum",
22
21
  "CycleCloser": "CycleCloser",
22
+ "Splitter": "Splitter",
23
+ "DropletSeparator": "FlashTank",
24
+ "PowerBus": "PowerBus",
23
25
  }
26
+ """
27
+ This is the mapping of component groups to their name in TESPy:
28
+
29
+ - "SteamTurbine": "Turbine",
30
+ - "HeatExchanger": "HeatExchanger",
31
+ - "MovingBoundaryHeatExchanger": "HeatExchanger",
32
+ - "Desuperheater": "HeatExchanger",
33
+ - "MovingBoundaryHeatExchanger": "HeatExchanger",
34
+ - "Condenser": "Condenser",
35
+ - "SimpleHeatExchanger": "SimpleHeatExchanger",
36
+ - "ParabolicTrough": "SimpleHeatExchanger",
37
+ - "Pipe": "SimpleHeatExchanger",
38
+ - "SolarCollector": "SimpleHeatExchanger",
39
+ - "CombustionChamber": "CombustionChamber",
40
+ - "DiabaticCombustionChamber": "CombustionChamber",
41
+ - "Valve": "Valve",
42
+ - "Compressor": "Compressor",
43
+ - "Pump": "Pump",
44
+ - "Turbine": "Turbine",
45
+ - "Merge": "Mixer",
46
+ - "Generator": "Generator",
47
+ - "Motor": "Motor",
48
+ - "Drum": "Drum",
49
+ - "CycleCloser": "CycleCloser",
50
+ - "Splitter": "Splitter",
51
+ - "DropletSeparator": "FlashTank",
52
+ - "PowerBus": "PowerBus",
53
+
54
+ """
@@ -0,0 +1,151 @@
1
+ from tespy.connections import Connection, PowerConnection
2
+ from tespy.networks import Network
3
+
4
+ from exerpy.parser.from_tespy.tespy_config import EXERPY_TESPY_MAPPINGS
5
+
6
+
7
+ def to_exerpy(nw: Network, Tamb: float, pamb: float) -> dict:
8
+ """Export the network to exerpy
9
+
10
+ Parameters
11
+ ----------
12
+ nw : tespy.networks.network.Network
13
+ Network to ber parsed
14
+ Tamb : float
15
+ Ambient temperature.
16
+ pamb : float
17
+ Ambient pressure.
18
+
19
+ Returns
20
+ -------
21
+ dict
22
+ exerpy compatible input dictionary
23
+ """
24
+ component_results = nw._save_components()
25
+ component_json = {}
26
+ for comp_type in nw.comps["comp_type"].unique():
27
+ if comp_type not in EXERPY_TESPY_MAPPINGS:
28
+ continue
29
+
30
+ key = EXERPY_TESPY_MAPPINGS[comp_type]
31
+ if key not in component_json:
32
+ component_json[key] = {}
33
+
34
+ result = component_results[comp_type].dropna(axis=1)
35
+
36
+ for c in nw.comps.loc[nw.comps["comp_type"] == comp_type, "object"]:
37
+ parameters = {}
38
+ if c.label in result.index and not result.loc[c.label].dropna().empty:
39
+ parameters = result.loc[c.label].dropna().to_dict()
40
+ component_json[key][c.label] = {"name": c.label, "type": comp_type, "parameters": parameters}
41
+
42
+ connection_json = {}
43
+ for c in nw.conns["object"]:
44
+ if isinstance(c, Connection):
45
+ connection_json.update(_connection_to_exerpy(c, pamb, Tamb))
46
+ else:
47
+ connection_json.update(_powerconnection_to_exerpy(c, pamb, Tamb))
48
+
49
+ return {
50
+ "components": component_json,
51
+ "connections": connection_json,
52
+ "ambient_conditions": {"Tamb": Tamb, "Tamb_unit": "K", "pamb": pamb, "pamb_unit": "Pa"},
53
+ }
54
+
55
+
56
+ def _connection_to_exerpy(c: Connection, pamb: float, Tamb: float) -> dict:
57
+ """Serialize a tespy Connection to exerpy
58
+
59
+ Parameters
60
+ ----------
61
+ c : tespy.connections.connection.Connection
62
+ Connection object
63
+ Tamb : float
64
+ Ambient temperature.
65
+ pamb : float
66
+ Ambient pressure.
67
+
68
+ Returns
69
+ -------
70
+ dict
71
+ Serialization of connection data
72
+ """
73
+ connection_json = {}
74
+
75
+ c._get_physical_exergy(pamb, Tamb)
76
+
77
+ connection_json[c.label] = {
78
+ "source_component": c.source.label,
79
+ "source_connector": int(c.source_id.removeprefix("out")) - 1,
80
+ "target_component": c.target.label,
81
+ "target_connector": int(c.target_id.removeprefix("in")) - 1,
82
+ }
83
+ connection_json[c.label].update({"mass_composition": c.fluid.val})
84
+ connection_json[c.label].update({"kind": "material"})
85
+ for param in ["m", "T", "p", "h", "s", "v"]:
86
+ connection_json[c.label].update({param: c.get_attr(param).val_SI})
87
+ connection_json[c.label].update({"e_T": c.ex_therm, "e_M": c.ex_mech, "e_PH": c.ex_physical})
88
+
89
+ return connection_json
90
+
91
+
92
+ def _powerconnection_to_exerpy(c: PowerConnection, pamb: float, Tamb: float) -> dict:
93
+ """Serialize a tespy PowerConnection to exerpy
94
+
95
+ Parameters
96
+ ----------
97
+ c : tespy.connections.powerconnection.PowerConnection
98
+ Connection object
99
+ Tamb : float
100
+ Ambient temperature.
101
+ pamb : float
102
+ Ambient pressure.
103
+
104
+ Returns
105
+ -------
106
+ dict
107
+ Serialization of connection data
108
+ """
109
+ connection_json = {}
110
+
111
+ if c.source.__class__.__name__ in ["Motor", "Generator"]:
112
+ source_connector = 0
113
+ elif c.source.__class__.__name__ in ["Turbine"] or c.source.__class__.__name__ in ["SimpleHeatExchanger"]:
114
+ source_connector = 1
115
+ elif c.source.__class__.__name__ in ["PowerBus"]:
116
+ if c.source_id.startswith("power_out"):
117
+ s_id = c.source_id.removeprefix("power_out")
118
+ source_connector = 0 if s_id == "" else int(s_id) - 1
119
+ elif c.source_id.startswith("power_in"):
120
+ s_id = c.source_id.removeprefix("power_in")
121
+ source_connector = 0 if s_id == "" else int(s_id) - 1
122
+ else:
123
+ source_connector = 999
124
+
125
+ if c.target.__class__.__name__ in ["Motor", "Generator"]:
126
+ target_connector = 0
127
+ elif c.target.__class__.__name__ in ["Compressor", "Pump"] or c.target.__class__.__name__ in [
128
+ "SimpleHeatExchanger"
129
+ ]:
130
+ target_connector = 1
131
+ elif c.target.__class__.__name__ in ["PowerBus"]:
132
+ if c.target_id.startswith("power_in"):
133
+ t_id = c.target_id.removeprefix("power_in")
134
+ target_connector = 0 if t_id == "" else int(t_id) - 1
135
+ elif c.target_id.startswith("power_out"):
136
+ t_id = c.target_id.removeprefix("power_out")
137
+ target_connector = 0 if t_id == "" else int(t_id) - 1
138
+ else:
139
+ target_connector = 999
140
+
141
+ connection_json[c.label] = {
142
+ "source_component": c.source.label,
143
+ "source_connector": source_connector,
144
+ "target_component": c.target.label,
145
+ "target_connector": target_connector,
146
+ }
147
+ kind = "heat" if c.source_id == "heat" or c.target_id == "heat" else "power"
148
+
149
+ connection_json[c.label].update({"kind": kind, "energy_flow": c.E.val_SI})
150
+
151
+ return connection_json
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: exerpy
3
- Version: 0.0.2
3
+ Version: 0.0.3
4
4
  Summary: Exergy analysis for tabular input data
5
5
  Author-email: Sergio Tomasinelli <s.tomasinelli@tu-berlin.de>, Robert Müller <robert.mueller.2@tu-berlin.de>, Francesco Witte <github@witte.sh>
6
6
  Requires-Python: >=3.10
@@ -35,6 +35,8 @@ Requires-Dist: sphinx-design ; extra == "dev"
35
35
  Requires-Dist: sphinxcontrib.bibtex ; extra == "dev"
36
36
  Requires-Dist: tespy>=0.9 ; extra == "dev"
37
37
  Requires-Dist: tox ; extra == "dev"
38
+ Requires-Dist: black>=24.10.0 ; extra == "dev"
39
+ Requires-Dist: ruff>=0.6.9 ; extra == "dev"
38
40
  Requires-Dist: pywin32 ; extra == "ebsilon"
39
41
  Requires-Dist: tespy>=0.9 ; extra == "tespy"
40
42
  Project-URL: Changelog, https://exerpy.readthedocs.io/en/latest/whats_new.html
@@ -95,6 +97,45 @@ Quick Start Example
95
97
  ===================
96
98
  Here's a simple example how to perform an exergy analysis using ExerPy:
97
99
 
100
+ Custom json
101
+ -----------
102
+
103
+ .. code:: python
104
+
105
+ from exerpy import ExergyAnalysis
106
+
107
+ model_path = 'my_model.json'
108
+
109
+ ean = ExergyAnalysis.from_json(model_path, chemExLib='Ahrendts')
110
+
111
+ fuel = {"inputs": ['Fuel'], "outputs": []}
112
+ product = {"inputs": ['Power'], "outputs": []}
113
+
114
+ ean.analyse(E_F=fuel, E_P=product)
115
+ ean.exergy_results()
116
+
117
+ Exported tespy model
118
+ --------------------
119
+
120
+ .. code:: python
121
+
122
+ from exerpy import ExergyAnalysis
123
+
124
+ model_path = 'tespy_model_export.json'
125
+
126
+ ean = ExergyAnalysis.from_tespy(model_path, chemExLib='Ahrendts')
127
+
128
+ fuel = {"inputs": ['Fuel'], "outputs": []}
129
+ product = {"inputs": ['Power'], "outputs": []}
130
+
131
+ ean.analyse(E_F=fuel, E_P=product)
132
+ ean.exergy_results()
133
+
134
+ You can also use a tespy network object instead!
135
+
136
+ Ebsilon model
137
+ -------------
138
+
98
139
  .. code:: python
99
140
 
100
141
  from exerpy import ExergyAnalysis
@@ -126,7 +167,7 @@ ongoing development. You can cite ExerPy using the following BibTeX entry:
126
167
  title = {{ExerPy}: Exergy Analysis in Python},
127
168
  note = {Supervision: Prof. Dr.-Ing. Fontina Petrakopoulou}
128
169
  url = {https://github.com/oemof/exerpy},
129
- version = {0.0.2},
170
+ version = {0.0.3},
130
171
  year = {2025}
131
172
  }
132
173
 
@@ -0,0 +1,48 @@
1
+ exerpy/__init__.py,sha256=UMZ5Cn7LQQ4A5F2Bc_jphc6UM0lCwvi_NO8fGo517dg,236
2
+ exerpy/analyses.py,sha256=uyqpTyx0WFXkd-w0m7rHixIDrYO1hSANagm-HKNuafg,91185
3
+ exerpy/functions.py,sha256=o510OaxpUaPDvRWTnrTBfaV2kC4BZG7UjF1U_FjN1wQ,32292
4
+ exerpy/components/__init__.py,sha256=hpaqxDL9DDACmQCkwxV5HgjzGYRNGP3-J78kxhwaaY8,824
5
+ exerpy/components/component.py,sha256=NVvLSyIbcOoXwoFGRgOYAINX-8BpCA-7lKWvhHPQGQs,4036
6
+ exerpy/components/combustion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ exerpy/components/combustion/base.py,sha256=Rs99qbCs3E4umpVk2NEPOid-6i5HU6ytAQQvAsK9zxw,11936
8
+ exerpy/components/heat_exchanger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ exerpy/components/heat_exchanger/base.py,sha256=_Acgk6y1sQd1ftl8BCksvmsQiSr6je56rX3gr3qpnL8,34339
10
+ exerpy/components/heat_exchanger/condenser.py,sha256=d28xrQ001o1TJYw4ivQQwKaBrAQ9aBLd9P7G4XlbKec,22436
11
+ exerpy/components/heat_exchanger/simple.py,sha256=A7JCi4flIp556KL6uGNB1xpB47tpf77sWLT63PGUnXo,25412
12
+ exerpy/components/heat_exchanger/steam_generator.py,sha256=9s0YlFbN6RhqQoI8ZMYhOFApc-U8ceE_9ecTJ5XQ9uc,12373
13
+ exerpy/components/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ exerpy/components/helpers/cycle_closer.py,sha256=ffMEo74ua7LGH8QgLR7vqWTg0UlZ8OXl3xQloedSXFs,4938
15
+ exerpy/components/helpers/power_bus.py,sha256=tMVCtn6gj18qG7mnZX2IEwK3Fuq6ghZugK94hIJH5_s,4398
16
+ exerpy/components/nodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ exerpy/components/nodes/deaerator.py,sha256=RRxpfx0sGHVG6mPyfxijn2X1gOp3V57O8p36DdfsNpk,18115
18
+ exerpy/components/nodes/drum.py,sha256=1dMxgBnW16jm2VEdD6DOuw0yq4ISVVO3eFhdRSB7TTw,8063
19
+ exerpy/components/nodes/flash_tank.py,sha256=_UlKMT1VyIH3iI-zg4ip8DTqLo8SLZNuB61HLizIoXA,10543
20
+ exerpy/components/nodes/mixer.py,sha256=xhX7Rp_eEazWLT4-OPE0wKjiik0wSBM-J-B2G8Vqnuw,20932
21
+ exerpy/components/nodes/splitter.py,sha256=mH8n14TSYA7DvboJhYGX9KxbAR2M73gGVfMcsFA46io,6582
22
+ exerpy/components/nodes/storage.py,sha256=AMOf8heGe2NKQVaodC4aqqf8kCWoG4KK_B1HKzon6yU,4837
23
+ exerpy/components/piping/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ exerpy/components/piping/valve.py,sha256=DfwZi5MuSyb42otFh2y_AAIx_v-0tJnqmoFrmHlzeZM,25470
25
+ exerpy/components/power_machines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ exerpy/components/power_machines/generator.py,sha256=w5d5-iEg7rZ287q2z0wDb4NZGvSufThnRAEE-IEWoII,8454
27
+ exerpy/components/power_machines/motor.py,sha256=wHPD33KeqgmqE6A0EWQAqYn3L7-WppVVZdD1U47_XUc,8890
28
+ exerpy/components/turbomachinery/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ exerpy/components/turbomachinery/compressor.py,sha256=R5SU41XEMXwnE7XEpZP2lAX2h8MaW5G0WQ6mTJQUvVI,17806
30
+ exerpy/components/turbomachinery/pump.py,sha256=T7Tbqe2Jq51ObhgCFsoXUQuLZobL4-8ZKdX8Cpf2cJI,17211
31
+ exerpy/components/turbomachinery/turbine.py,sha256=u7MB_eFUId6ZbPHE9AJabLxroKWTNZUluPjvnWvRZgo,19364
32
+ exerpy/data/Ahrendts.json,sha256=Wy7iSBW2u9V_RSjI9nAAfqC9aMo2owNKnyf5ZRLxa0c,9263
33
+ exerpy/parser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ exerpy/parser/from_aspen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ exerpy/parser/from_aspen/aspen_config.py,sha256=RK7LIY9HgSEj1z4FPdSwx6ma76z9YxmwqjVSr6ynSOE,2082
36
+ exerpy/parser/from_aspen/aspen_parser.py,sha256=TmpGVJbGnG1A6xWESrb6xIU2DTR77UJnVU9ISsj4O5o,42088
37
+ exerpy/parser/from_ebsilon/__init__.py,sha256=h1SgYi2Ffg2f3gkaGSLxj06aqRFgs8FHvNEwsNhJES4,1084
38
+ exerpy/parser/from_ebsilon/check_ebs_path.py,sha256=nW3VElt-QT7-T2nzep4bbmDfcu43hQkSLjT3v20lIAw,2462
39
+ exerpy/parser/from_ebsilon/ebsilon_config.py,sha256=fboACZbs2-ZBlJmOBvmic2oBbU6Wm2AGk6t9qGtuTLc,40175
40
+ exerpy/parser/from_ebsilon/ebsilon_functions.py,sha256=ffX_i5D9wsa12st_8mwJUYA9EZlAaAPR_lTHNj6FS8E,12536
41
+ exerpy/parser/from_ebsilon/ebsilon_parser.py,sha256=5memFmn6bvKXi3Q6DhpgLY7EXzF-rSrwJoyX3abw65M,37673
42
+ exerpy/parser/from_ebsilon/utils.py,sha256=45u2NuiKe8T0Xg6wscBSkfGjR3yunweNruO5zMAwrg0,2469
43
+ exerpy/parser/from_tespy/tespy_config.py,sha256=Ld0oH_l1F6hIPpMjmlaCjOOB4L44GTaZ2DkqFysHUBE,1828
44
+ exerpy/parser/from_tespy/tespy_parser.py,sha256=xo50zXh-a5QmqN1KP4vusxyCHtgzSnMHrsjzFr70ZEs,5227
45
+ exerpy-0.0.3.dist-info/licenses/LICENSE,sha256=AZCjT0DYrLExG_BV3UJnoFG1z3CACPxBk-rgcm1as8s,1091
46
+ exerpy-0.0.3.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
47
+ exerpy-0.0.3.dist-info/METADATA,sha256=Z1PXdyY5euasskx7tfsajIgLWYkKnbU9zIvY9tONpB8,7028
48
+ exerpy-0.0.3.dist-info/RECORD,,
@@ -1,44 +0,0 @@
1
- exerpy/__init__.py,sha256=-V_fDHpG3yIijO2UXXHY_EL8DLYGyQaagwWKrtM8hMY,280
2
- exerpy/analyses.py,sha256=IXAtiJhVutig1PXIzPaxtL8BzetM4oDTmsvwYBQ_XA0,79098
3
- exerpy/functions.py,sha256=STNgo7YyT0pZWSVOO0iJb_7Wh9qecNaujJF2eC6Jv7E,30142
4
- exerpy/components/__init__.py,sha256=KbYJVGaQMlV1KqmQNOYLHa9cN1V9RicclwHPL3VieXU,709
5
- exerpy/components/component.py,sha256=oWaE8WZ5t_RWlRjtPmgfzAxMO5UVDC3SlX9JPjBQ9hI,3899
6
- exerpy/components/combustion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- exerpy/components/combustion/base.py,sha256=lclTpFEVQFOEQKFsTqsDrN_dWfF-6PyKpkJzwu2KbmU,11319
8
- exerpy/components/heat_exchanger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- exerpy/components/heat_exchanger/base.py,sha256=UwXq3ACnjVktU4zkHO_ng9kHaG96AQMMfKDOPu4QdTM,32371
10
- exerpy/components/heat_exchanger/condenser.py,sha256=AKVzwK8NzQ4zX1Vr6Z9Z6aw7dfcXd0Jk4QQEYmZoY0E,21000
11
- exerpy/components/heat_exchanger/simple.py,sha256=Q5gL3ye12HpypdncE3gYoqd1EnVKny-cT2-zAsIhags,20869
12
- exerpy/components/heat_exchanger/steam_generator.py,sha256=psoTFHcQnIDHyKX2vnCBWPd6fMIAaGN5-prtvNQ7z_0,12347
13
- exerpy/components/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- exerpy/components/helpers/cycle_closer.py,sha256=FY4K-HzNIfd3HiiPluoFDFcv-HD1rNdXdqfVZZ0cnzE,3898
15
- exerpy/components/nodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- exerpy/components/nodes/deaerator.py,sha256=XHWwG-D3VcCnIKFCiYtc0LrHbotTXsLxtxI_d3wzV4k,13753
17
- exerpy/components/nodes/drum.py,sha256=VQHWDPICVI7zlqSO0n7V8dHGOTycZGs-5FVZASIPwFQ,7557
18
- exerpy/components/nodes/flash_tank.py,sha256=y1e5hp8w_HcAo5IX_nsPleRcU0OcnRd55mScXUhtdR0,3582
19
- exerpy/components/nodes/mixer.py,sha256=vCpCh-ORgnzAnF3LSG4UuCEadaCZU2Zeg-fkXJrL7gs,14432
20
- exerpy/components/piping/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- exerpy/components/piping/valve.py,sha256=FM9f7PPWsDzWvX9lDFbDjYyQDlBssdMwNfe_R41zyOQ,17668
22
- exerpy/components/power_machines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- exerpy/components/power_machines/generator.py,sha256=fmCs0jzsPqG26fvR1N9DV38T-032RwEIgnXAj1rXmVg,6227
24
- exerpy/components/power_machines/motor.py,sha256=_K73bN0tjD6kz1fvUU9rWI8yAHsQqI9GHwyRYCDGWHg,6306
25
- exerpy/components/turbomachinery/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- exerpy/components/turbomachinery/compressor.py,sha256=HmQdUaYN3rxoq7-GxqomCHWCHnthS7We748I0wMkcPs,14074
27
- exerpy/components/turbomachinery/pump.py,sha256=t5ZrolL0gU5K6uTeQFrSqmM9qahCSR-h7W1lfnIrK6w,13469
28
- exerpy/components/turbomachinery/turbine.py,sha256=K7NThlNAvKSjvFl_RVMlOuYdzd0uiVaX7ErVrNYoNvE,15667
29
- exerpy/data/Ahrendts.json,sha256=Wy7iSBW2u9V_RSjI9nAAfqC9aMo2owNKnyf5ZRLxa0c,9263
30
- exerpy/parser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- exerpy/parser/from_aspen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- exerpy/parser/from_aspen/aspen_config.py,sha256=GkRJ7AZlglalPWXlbjM5eICLRG8CQuXOhF88zYzNAWM,1749
33
- exerpy/parser/from_aspen/aspen_parser.py,sha256=QOrVIFeLBX8yvsoKUugDRjCYSxht2dKcpkSsZqXqLRc,38811
34
- exerpy/parser/from_ebsilon/__init__.py,sha256=rzTkkko93YomWo0EYDnaPP5f7wITorcr5pztPwu54AI,1086
35
- exerpy/parser/from_ebsilon/check_ebs_path.py,sha256=Ad49eggah8LQkn1hQrHjC_MAgeXkAlVd-YPrC2lpOpo,2618
36
- exerpy/parser/from_ebsilon/ebsilon_config.py,sha256=VSSctCfzcDaThWUY3g0iWTnmQ9ymeWPvhJ8en-5Ly2k,39512
37
- exerpy/parser/from_ebsilon/ebsilon_functions.py,sha256=mY25RPnKJHvBBsqOI87JU7DH-EttdGdAy-eOVqqdd0U,6557
38
- exerpy/parser/from_ebsilon/ebsilon_parser.py,sha256=AFfoBiKDTvWRa8hr9ViqmtCIog4QUQZwtYZDnA_tNlQ,31209
39
- exerpy/parser/from_ebsilon/utils.py,sha256=HB3PyzSN_UqgiScY_Cr4gOPOJdcAjL6hJmgQl4P8-fg,2510
40
- exerpy/parser/from_tespy/tespy_config.py,sha256=_e8YwJNKAw0O5WRpO92GtVhj-PNziAoYluoOurwI9zs,796
41
- exerpy-0.0.2.dist-info/licenses/LICENSE,sha256=AZCjT0DYrLExG_BV3UJnoFG1z3CACPxBk-rgcm1as8s,1091
42
- exerpy-0.0.2.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
43
- exerpy-0.0.2.dist-info/METADATA,sha256=ccwrUjtGcM-5-m5WtgerFeDc_FNCBx0Z50OsK1pLTcg,6129
44
- exerpy-0.0.2.dist-info/RECORD,,
File without changes