Skip to content

Commit 3b6f818

Browse files
committed
refactor: remove shaft from process system
1 parent 18f5388 commit 3b6f818

5 files changed

Lines changed: 9 additions & 13 deletions

File tree

src/libecalc/domain/process/process_solver/solvers/speed_solver.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
find_root,
55
maximize_x_given_boolean_condition_function,
66
)
7+
from libecalc.domain.process.entities.shaft import Shaft
78
from libecalc.domain.process.process_solver.boundary import Boundary
89
from libecalc.domain.process.process_solver.solver import Solver
910
from libecalc.domain.process.process_system.process_error import ProcessError
@@ -14,16 +15,17 @@
1415

1516

1617
class SpeedSolver(Solver):
17-
def __init__(self, boundary: Boundary, target_pressure: float):
18+
def __init__(self, boundary: Boundary, target_pressure: float, shaft: Shaft):
1819
self._boundary = boundary
1920
self._target_pressure = target_pressure
21+
self._shaft = shaft
2022

2123
def solve(
2224
self,
2325
process_system: ProcessSystem,
2426
inlet_stream: FluidStream,
2527
) -> FluidStream | None:
26-
shaft = process_system.get_shaft()
28+
shaft = self._shaft
2729

2830
def get_outlet_stream(speed: float) -> FluidStream:
2931
shaft.set_speed(speed)

src/libecalc/domain/process/process_system/process_system.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@
99
class ProcessSystem:
1010
def __init__(
1111
self,
12-
shaft: Shaft,
1312
process_units: list[ProcessUnit],
1413
upstream_choke: Choke | None = None,
1514
downstream_choke: Choke | None = None,
1615
):
17-
self._shaft = shaft
1816
self._process_units = process_units
1917
self._upstream_choke = upstream_choke
2018
self._downstream_choke = downstream_choke

tests/libecalc/domain/process/conftest.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from libecalc.domain.process.compressor.core.train.stage import CompressorTrainStage
44
from libecalc.domain.process.entities.process_units.choke import Choke
5-
from libecalc.domain.process.entities.shaft import Shaft, VariableSpeedShaft
5+
from libecalc.domain.process.entities.shaft import Shaft
66
from libecalc.domain.process.process_solver.stream_constraint import PressureStreamConstraint
77
from libecalc.domain.process.process_system.process_error import OutsideCapacityError
88
from libecalc.domain.process.process_system.process_system import ProcessSystem
@@ -191,13 +191,10 @@ def create_process_system(
191191
process_units: list[ProcessUnit] | None = None,
192192
downstream_choke: Choke | None = None,
193193
upstream_choke: Choke | None = None,
194-
shaft: Shaft | None = None,
195194
):
196195
if process_units is None:
197196
process_units = [simple_process_unit_factory(fluid_service)]
198-
shaft = shaft or VariableSpeedShaft()
199197
return ProcessSystem(
200-
shaft=shaft,
201198
process_units=process_units,
202199
downstream_choke=downstream_choke,
203200
upstream_choke=upstream_choke,

tests/libecalc/domain/process/solvers/test_speed_solver.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,14 @@ def test_speed_solver(
4949
speed_solver = SpeedSolver(
5050
boundary=speed_boundary,
5151
target_pressure=target_pressure,
52+
shaft=shaft,
5253
)
5354
inlet_stream = stream_factory(
5455
standard_rate_m3_per_day=1000,
5556
pressure_bara=inlet_pressure,
5657
)
5758

58-
process_system = process_system_factory(
59-
shaft=shaft, process_units=[SpeedProcessUnit(shaft=shaft, fluid_service=fluid_service)]
60-
)
59+
process_system = process_system_factory(process_units=[SpeedProcessUnit(shaft=shaft, fluid_service=fluid_service)])
6160

6261
outlet_stream = speed_solver.solve(process_system=process_system, inlet_stream=inlet_stream)
6362

tests/libecalc/domain/process/test_process_solver.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ def test_speed_solver(
3737
target_pressure = 90
3838
stream_constraint = stream_constraint_factory(pressure=target_pressure)
3939
process_system = process_system_factory(
40-
shaft=shaft,
4140
process_units=[compressor_train_stage_process_unit_factory(chart_data=chart_data, shaft=shaft)],
4241
downstream_choke=Choke(fluid_service=fluid_service),
4342
)
@@ -49,12 +48,13 @@ def test_speed_solver(
4948
SpeedSolver(
5049
target_pressure=target_pressure,
5150
boundary=Boundary(min=min(chart_speeds), max=max(chart_speeds)),
51+
shaft=shaft,
5252
),
5353
],
5454
stream_constraint=stream_constraint,
5555
)
5656
assert process_solver.find_solution()
57-
assert process_system.get_shaft().get_speed() == snapshot(102.66555959304989)
57+
assert shaft.get_speed() == snapshot(102.66555959304989)
5858

5959
outlet_stream = process_system.propagate_stream(inlet_stream=inlet_stream)
6060
assert outlet_stream.pressure_bara == pytest.approx(target_pressure)

0 commit comments

Comments
 (0)