Skip to content

Commit ce1723e

Browse files
authored
fix: guard against zero pressure in get_max_standard_rate (#1532)
1 parent bcaf0be commit ce1723e

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,10 @@ def get_max_standard_rate(
392392
discharge_pressures,
393393
)
394394
):
395+
if suction_pressure_value <= 0 or discharge_pressure_value <= 0:
396+
max_standard_rate[i] = 0.0
397+
continue
398+
395399
constraints = CompressorTrainEvaluationInput(
396400
suction_pressure=suction_pressure_value,
397401
discharge_pressure=discharge_pressure_value,

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,22 @@ def test_compressor_train_simplified_known_stages_no_indices_to_calculate(
260260
assert np.all(np.asarray(energy_result.energy_usage.values) == 0)
261261

262262

263+
def test_get_max_standard_rate_with_zero_pressure(simplified_compressor_train_factory, fluid_model_rich):
264+
compressor_train = simplified_compressor_train_factory()
265+
compressor_train.set_evaluation_input(
266+
fluid_model=fluid_model_rich,
267+
rate=np.asarray([5000000.0, 0.0]),
268+
suction_pressure=np.asarray([30.0, 0.0]),
269+
discharge_pressure=np.asarray([200.0, 0.0]),
270+
)
271+
max_rates = compressor_train.get_max_standard_rate(
272+
suction_pressures=np.asarray([30.0, 0.0]),
273+
discharge_pressures=np.asarray([200.0, 0.0]),
274+
)
275+
assert max_rates[0] > 0
276+
assert max_rates[1] == 0.0
277+
278+
263279
# Unit tests individual methods
264280
def _span_variables(input_variables: list[NDArray[np.float64]]) -> tuple:
265281
number_of_variables = len(input_variables)

0 commit comments

Comments
 (0)