Skip to content

Commit 68f29c3

Browse files
committed
refactor: make liquid remover inherit from ProcessUnit
1 parent d1effef commit 68f29c3

8 files changed

Lines changed: 33 additions & 36 deletions

File tree

src/libecalc/domain/process/compressor/core/train/stage.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
)
1414
from libecalc.domain.process.compressor.core.train.utils.numeric_methods import find_root
1515
from libecalc.domain.process.entities.process_units.compressor.compressor import Compressor
16-
from libecalc.domain.process.entities.process_units.liquid_remover.liquid_remover import LiquidRemover
16+
from libecalc.domain.process.entities.process_units.liquid_remover import LiquidRemover
1717
from libecalc.domain.process.entities.process_units.mixer.mixer import Mixer
1818
from libecalc.domain.process.entities.process_units.pressure_modifier.pressure_modifier import (
1919
DifferentialPressureModifier,
@@ -89,12 +89,6 @@ def set_temperature(self, inlet_stream_stage: FluidStream) -> FluidStream:
8989
"""Cool the inlet stream to the required temperature."""
9090
return self.temperature_setter.set_temperature(inlet_stream_stage)
9191

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-
9892
def modify_pressure(self, inlet_stream_stage: FluidStream) -> FluidStream:
9993
"""Choke the inlet stream if a differential pressure control valve is defined."""
10094
if self.pressure_modifier:
@@ -160,7 +154,9 @@ def evaluate(
160154

161155
# Then the stream passes through the LiquidRemover (if defined),
162156
if self.liquid_remover is not None:
163-
inlet_stream_after_liquid_remover = self.remove_liquid(inlet_stream_after_temperature_setter)
157+
inlet_stream_after_liquid_remover = self.liquid_remover.propagate_stream(
158+
inlet_stream_after_temperature_setter
159+
)
164160
else:
165161
inlet_stream_after_liquid_remover = inlet_stream_after_temperature_setter
166162

src/libecalc/domain/process/entities/process_units/liquid_remover/__init__.py renamed to src/libecalc/domain/process/entities/__init__.py

File renamed without changes.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from libecalc.domain.process.process_system.process_unit import ProcessUnit
2+
from libecalc.domain.process.value_objects.fluid_stream import FluidService, FluidStream
3+
from libecalc.domain.process.value_objects.fluid_stream.constants import ThermodynamicConstants
4+
5+
6+
class LiquidRemover(ProcessUnit):
7+
def __init__(self, fluid_service: FluidService):
8+
self._fluid_service = fluid_service
9+
10+
def propagate_stream(self, inlet_stream: FluidStream) -> FluidStream:
11+
"""
12+
Removes liquid from the fluid stream.
13+
14+
Args:
15+
inlet_stream: The fluid stream to be scrubbed.
16+
17+
Returns:
18+
FluidStream: A new FluidStream with liquid removed.
19+
"""
20+
if inlet_stream.vapor_fraction_molar < ThermodynamicConstants.PURE_VAPOR_THRESHOLD:
21+
new_fluid = self._fluid_service.remove_liquid(inlet_stream.fluid)
22+
return inlet_stream.with_new_fluid(new_fluid)
23+
else:
24+
return inlet_stream

src/libecalc/domain/process/entities/process_units/liquid_remover/liquid_remover.py

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/libecalc/presentation/yaml/mappers/consumer_function_mapper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
from libecalc.domain.process.compressor.core.train.simplified_train.simplified_train import CompressorTrainSimplified
4444
from libecalc.domain.process.compressor.core.train.stage import CompressorTrainStage
4545
from libecalc.domain.process.entities.process_units.compressor.compressor import Compressor
46-
from libecalc.domain.process.entities.process_units.liquid_remover.liquid_remover import LiquidRemover
46+
from libecalc.domain.process.entities.process_units.liquid_remover import LiquidRemover
4747
from libecalc.domain.process.entities.process_units.mixer.mixer import Mixer
4848
from libecalc.domain.process.entities.process_units.pressure_modifier.pressure_modifier import (
4949
DifferentialPressureModifier,

tests/libecalc/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from libecalc.domain.process.compressor.core.train.compressor_train_common_shaft import CompressorTrainCommonShaft
1212
from libecalc.domain.process.compressor.core.train.stage import CompressorTrainStage
1313
from libecalc.domain.process.entities.process_units.compressor.compressor import Compressor
14-
from libecalc.domain.process.entities.process_units.liquid_remover.liquid_remover import LiquidRemover
14+
from libecalc.domain.process.entities.process_units.liquid_remover import LiquidRemover
1515
from libecalc.domain.process.entities.process_units.mixer.mixer import Mixer
1616
from libecalc.domain.process.entities.process_units.pressure_modifier.pressure_modifier import (
1717
DifferentialPressureModifier,

tests/libecalc/core/models/compressor_modelling/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
)
1212
from libecalc.domain.process.compressor.core.train.stage import CompressorTrainStage
1313
from libecalc.domain.process.entities.process_units.compressor.compressor import Compressor
14-
from libecalc.domain.process.entities.process_units.liquid_remover.liquid_remover import LiquidRemover
14+
from libecalc.domain.process.entities.process_units.liquid_remover import LiquidRemover
1515
from libecalc.domain.process.entities.process_units.rate_modifier.rate_modifier import RateModifier
1616
from libecalc.domain.process.entities.process_units.temperature_setter.temperature_setter import TemperatureSetter
1717
from libecalc.domain.process.entities.shaft import Shaft, SingleSpeedShaft, VariableSpeedShaft

tests/libecalc/domain/process/entities/process_units/test_liquid_remover.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from ecalc_neqsim_wrapper.thermo import STANDARD_PRESSURE_BARA, STANDARD_TEMPERATURE_KELVIN
2-
from libecalc.domain.process.entities.process_units.liquid_remover.liquid_remover import LiquidRemover
2+
from libecalc.domain.process.entities.process_units.liquid_remover import LiquidRemover
33
from libecalc.domain.process.value_objects.fluid_stream import FluidComposition
44
from libecalc.domain.process.value_objects.fluid_stream.fluid_model import EoSModel, FluidModel
55
from libecalc.domain.process.value_objects.fluid_stream.fluid_stream import FluidStream
@@ -31,7 +31,7 @@ def test_liquid_remover_removes_liquid(fluid_service):
3131
fluid_properties=fluid.properties,
3232
)
3333
remover = LiquidRemover(fluid_service=fluid_service)
34-
outlet_stream = remover.remove_liquid(inlet_stream)
34+
outlet_stream = remover.propagate_stream(inlet_stream)
3535

3636
assert inlet_stream.vapor_fraction_molar < 1.0
3737
assert outlet_stream.vapor_fraction_molar == 1.0

0 commit comments

Comments
 (0)