Tie loop pressure to saturation when cold

This commit is contained in:
Codex Agent
2025-11-22 23:56:39 +01:00
parent 733ddf7692
commit aaff08745d
2 changed files with 18 additions and 6 deletions

View File

@@ -16,7 +16,7 @@ from .fuel import FuelAssembly, decay_heat_fraction
from .generator import DieselGenerator, GeneratorState
from .neutronics import NeutronDynamics
from .state import CoolantLoopState, CoreState, PlantState, PumpState, TurbineState
from .thermal import ThermalSolver, heat_transfer
from .thermal import ThermalSolver, heat_transfer, saturation_pressure
from .turbine import SteamGenerator, Turbine
LOGGER = logging.getLogger(__name__)
@@ -237,7 +237,7 @@ class Reactor:
target_pressure = (
0.5 + (constants.PRIMARY_NOMINAL_PRESSURE - 0.5) * pump_demand
) * power_ratio
loop_pressure = 0.5
loop_pressure = max(0.1, saturation_pressure(state.primary_loop.temperature_out))
target_flow = self.primary_pump.flow_rate(pump_demand) * power_ratio
for idx, pump_state in enumerate(state.primary_pumps):
unit_enabled = (
@@ -270,7 +270,7 @@ class Reactor:
)
else:
state.primary_loop.mass_flow_rate = 0.0
state.primary_loop.pressure = 0.5
state.primary_loop.pressure = max(0.1, saturation_pressure(state.primary_loop.temperature_out))
for pump_state in state.primary_pumps:
pump_state.active = False
pump_state.flow_rate = 0.0
@@ -281,7 +281,7 @@ class Reactor:
target_pressure = (
0.5 + (constants.SECONDARY_NOMINAL_PRESSURE - 0.5) * 0.75
) * power_ratio
loop_pressure = 0.5
loop_pressure = max(0.1, saturation_pressure(state.secondary_loop.temperature_out))
target_flow = self.secondary_pump.flow_rate(0.75) * power_ratio
for idx, pump_state in enumerate(state.secondary_pumps):
unit_enabled = (
@@ -314,7 +314,7 @@ class Reactor:
)
else:
state.secondary_loop.mass_flow_rate = 0.0
state.secondary_loop.pressure = 0.5
state.secondary_loop.pressure = max(0.1, saturation_pressure(state.secondary_loop.temperature_out))
for pump_state in state.secondary_pumps:
pump_state.active = False
pump_state.flow_rate = 0.0