Allow passive cool-down of loops when secondary is offline

This commit is contained in:
Codex Agent
2025-11-23 00:49:07 +01:00
parent 57c686736a
commit 5099a4252d

View File

@@ -371,14 +371,22 @@ class Reactor:
state.time_elapsed += dt
# Update inlet temperatures based on heat removed/added for next iteration.
env = constants.ENVIRONMENT_TEMPERATURE
primary_cooling = temperature_rise(transferred, state.primary_loop.mass_flow_rate)
state.primary_loop.temperature_in = max(
constants.ENVIRONMENT_TEMPERATURE, state.primary_loop.temperature_out - primary_cooling
)
secondary_cooling = max(0.0, state.secondary_loop.temperature_out - constants.ENVIRONMENT_TEMPERATURE - 40.0)
state.secondary_loop.temperature_in = max(
constants.ENVIRONMENT_TEMPERATURE, state.secondary_loop.temperature_out - max(20.0, secondary_cooling)
if transferred <= 0.0 or state.secondary_loop.mass_flow_rate <= 1.0:
passive = 0.02 * max(0.0, state.primary_loop.temperature_out - env) * dt
primary_cooling = max(primary_cooling, passive)
state.primary_loop.temperature_in = max(env, state.primary_loop.temperature_out - primary_cooling)
if state.secondary_loop.mass_flow_rate <= 1.0:
target_temp = env
state.secondary_loop.temperature_out = self._ramp_value(
state.secondary_loop.temperature_out, target_temp, dt, self.secondary_pump.spool_time
)
state.secondary_loop.temperature_in = state.secondary_loop.temperature_out
else:
secondary_cooling = max(0.0, state.secondary_loop.temperature_out - env - 40.0)
state.secondary_loop.temperature_in = max(env, state.secondary_loop.temperature_out - max(20.0, secondary_cooling))
LOGGER.info(
(