From faf603d2c55094ef34dd981edc33326f5366aec0 Mon Sep 17 00:00:00 2001 From: Codex Agent Date: Sat, 22 Nov 2025 23:49:15 +0100 Subject: [PATCH] Retarget pump pressures to RBMK-like nominal values --- src/reactor_sim/constants.py | 2 ++ src/reactor_sim/reactor.py | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/reactor_sim/constants.py b/src/reactor_sim/constants.py index e540c29..b223904 100644 --- a/src/reactor_sim/constants.py +++ b/src/reactor_sim/constants.py @@ -29,6 +29,8 @@ NORMAL_CORE_POWER_MW = 3_000.0 TEST_MAX_POWER_MW = 4_000.0 PRIMARY_OUTLET_TARGET_K = 580.0 SECONDARY_OUTLET_TARGET_K = 520.0 +PRIMARY_NOMINAL_PRESSURE = 7.0 # MPa typical RBMK channel header pressure +SECONDARY_NOMINAL_PRESSURE = 7.0 # MPa steam drum/steam line pressure surrogate # Threshold inventories (event counts) for flagging common poisons in diagnostics. KEY_POISON_THRESHOLDS = { "Xe": 1e20, # xenon diff --git a/src/reactor_sim/reactor.py b/src/reactor_sim/reactor.py index 0749e54..941dc7a 100644 --- a/src/reactor_sim/reactor.py +++ b/src/reactor_sim/reactor.py @@ -230,7 +230,9 @@ class Reactor: if self.primary_pump_active: total_flow = 0.0 - target_pressure = (12.0 * pump_demand + 2.0) * power_ratio + target_pressure = ( + 0.5 + (constants.PRIMARY_NOMINAL_PRESSURE - 0.5) * pump_demand + ) * power_ratio loop_pressure = 0.5 target_flow = self.primary_pump.flow_rate(pump_demand) * power_ratio for idx, pump_state in enumerate(state.primary_pumps): @@ -280,7 +282,9 @@ class Reactor: pump_state.status = "STOPPING" if pump_state.flow_rate > 1.0 else "OFF" if self.secondary_pump_active: total_flow = 0.0 - target_pressure = 12.0 * 0.75 + 2.0 + target_pressure = ( + 0.5 + (constants.SECONDARY_NOMINAL_PRESSURE - 0.5) * 0.75 + ) * power_ratio loop_pressure = 0.5 target_flow = self.secondary_pump.flow_rate(0.75) * power_ratio for idx, pump_state in enumerate(state.secondary_pumps):