@@ -85,32 +85,6 @@ def pressure_drop_ahead_of_stage(self) -> float:
8585 def inlet_temperature_kelvin (self ) -> float :
8686 return self .temperature_setter .required_temperature_kelvin
8787
88- def set_temperature (self , inlet_stream_stage : FluidStream ) -> FluidStream :
89- """Cool the inlet stream to the required temperature."""
90- return self .temperature_setter .set_temperature (inlet_stream_stage )
91-
92- def remove_liquid (self , inlet_stream_stage : FluidStream ) -> FluidStream :
93- """Remove liquid from the inlet stream if required."""
94- if self .liquid_remover :
95- return self .liquid_remover .remove_liquid (inlet_stream_stage )
96- return inlet_stream_stage
97-
98- def modify_pressure (self , inlet_stream_stage : FluidStream ) -> FluidStream :
99- """Choke the inlet stream if a differential pressure control valve is defined."""
100- if self .pressure_modifier :
101- return self .pressure_modifier .modify_pressure (inlet_stream_stage )
102- return inlet_stream_stage
103-
104- def add_rate (self , inlet_stream_stage : FluidStream ) -> FluidStream :
105- return self .rate_modifier .add_rate (
106- stream = inlet_stream_stage ,
107- )
108-
109- def remove_rate (self , outlet_stream_stage : FluidStream ) -> FluidStream :
110- return self .rate_modifier .remove_rate (
111- stream = outlet_stream_stage ,
112- )
113-
11488 def evaluate (
11589 self ,
11690 inlet_stream_stage : FluidStream ,
@@ -132,43 +106,47 @@ def evaluate(
132106 # First the stream passes through the Splitter (if defined)
133107 if self .splitter is not None :
134108 self .splitter .rates_out_of_splitter = rates_out_of_splitter
135- inlet_stream_after_splitter = self .split (
136- inlet_stream_stage = inlet_stream_stage ,
109+ split_streams = self .splitter . split_stream (
110+ stream = inlet_stream_stage ,
137111 )
112+ inlet_stream_after_splitter = split_streams [- 1 ] # The last stream goes to the compressor stage
138113 else :
139114 inlet_stream_after_splitter = inlet_stream_stage
140115
141- # Then the stream passes through the Mixer (if defined)
116+ # Then the stream passes through the Mixer (if defined)
142117 if self .mixer is not None :
143118 if streams_in_to_mixer is None :
144119 raise IllegalStateException ("streams_in_to_mixer cannot be None when a mixer is defined" )
120+
145121 inlet_stream_after_mixer = self .mix (
146122 inlet_stream_stage = inlet_stream_after_splitter ,
147123 streams_in_to_mixer = streams_in_to_mixer ,
148124 )
149125 else :
150126 inlet_stream_after_mixer = inlet_stream_after_splitter
151127
152- # Then the stream passes through the PressureModifier (if defined),
128+ # Then the stream passes through the PressureModifier (if defined): Choke inlet stream if pressure control valve is defined.
153129 if self .pressure_modifier is not None :
154- inlet_stream_after_pressure_modifier = self .modify_pressure (inlet_stream_after_mixer )
130+ inlet_stream_after_pressure_modifier = self .pressure_modifier . modify_pressure (inlet_stream_after_mixer )
155131 else :
156132 inlet_stream_after_pressure_modifier = inlet_stream_after_mixer
157133
158- # Then the stream passes through the TemperatureSetter (which is always defined),
159- inlet_stream_after_temperature_setter = self .set_temperature (inlet_stream_after_pressure_modifier )
134+ # Then the stream passes through the TemperatureSetter (which is always defined) - cool stream to required temperature.
135+ inlet_stream_after_temperature_setter = self .temperature_setter .set_temperature (
136+ inlet_stream_after_pressure_modifier
137+ )
160138
161- # Then the stream passes through the LiquidRemover (if defined),
139+ # Then the stream passes through the LiquidRemover (if defined):
162140 if self .liquid_remover is not None :
163- inlet_stream_after_liquid_remover = self .remove_liquid (inlet_stream_after_temperature_setter )
141+ inlet_stream_after_liquid_remover = self .liquid_remover . remove_liquid (inlet_stream_after_temperature_setter )
164142 else :
165143 inlet_stream_after_liquid_remover = inlet_stream_after_temperature_setter
166144
167145 inlet_stream_compressor = inlet_stream_after_liquid_remover
168146
169147 # Then additional rate is added by the RateModifier (if defined),
170- inlet_stream_compressor_including_asv = self .add_rate (
171- inlet_stream_stage = inlet_stream_compressor ,
148+ inlet_stream_compressor_including_asv = self .rate_modifier . add_rate (
149+ stream = inlet_stream_compressor ,
172150 )
173151
174152 # Compressor
@@ -177,8 +155,8 @@ def evaluate(
177155 rate_before_asv_m3_per_h = inlet_stream_after_liquid_remover .volumetric_rate_m3_per_hour
178156 )
179157
180- outlet_stream_compressor_including_asv = self .compress (
181- inlet_stream_compressor = inlet_stream_compressor_including_asv
158+ outlet_stream_compressor_including_asv = self .compressor . compress (
159+ inlet_stream = inlet_stream_compressor_including_asv
182160 )
183161 operational_point = self .compressor .operational_point
184162 chart_area_flag = self .compressor .chart_area_flag
@@ -206,25 +184,6 @@ def evaluate(
206184 polytropic_enthalpy_change_before_choke_kJ_per_kg = enthalpy_change / 1000 ,
207185 )
208186
209- def split (
210- self ,
211- inlet_stream_stage : FluidStream ,
212- ) -> FluidStream :
213- """Split the inlet stream into many streams. One stream goes to the compressor stage. The other(s) are taken out.
214- In the future, the additional streams could be used for other purposes, but today they are just dropped completely.
215-
216- Args:
217- inlet_stream_stage (FluidStream): The inlet stream for the stage.
218-
219- Returns:
220- FluidStream: The stream going to the compressor stage.
221- """
222- assert self .splitter is not None
223- split_streams = self .splitter .split_stream (
224- stream = inlet_stream_stage ,
225- )
226- return split_streams [- 1 ] # The last stream goes to the compressor stage
227-
228187 def mix (
229188 self ,
230189 inlet_stream_stage : FluidStream ,
@@ -248,12 +207,7 @@ def mix(
248207 FluidStream: The mixed stream.
249208 """
250209 assert self .mixer is not None
251- assert streams_in_to_mixer is not None
252- if self .mixer .number_of_inputs != len (streams_in_to_mixer ) + 1 :
253- raise IllegalStateException (
254- f"Number of additional rates to Mixer ({ len (streams_in_to_mixer )} ) "
255- f"does not match number of Mixer inputs ({ self .mixer .number_of_inputs } )."
256- )
210+ # assert streams_in_to_mixer is not None
257211
258212 all_streams_to_mixer = [inlet_stream_stage ] + streams_in_to_mixer
259213 if sum (s .mass_rate_kg_per_h for s in all_streams_to_mixer ) == 0 :
@@ -264,9 +218,6 @@ def mix(
264218 streams = all_streams_to_mixer ,
265219 )
266220
267- def compress (self , inlet_stream_compressor : FluidStream ) -> FluidStream :
268- return self .compressor .compress (inlet_stream = inlet_stream_compressor )
269-
270221 def evaluate_given_speed_and_target_discharge_pressure (
271222 self ,
272223 inlet_stream_stage : FluidStream ,
0 commit comments