diff --git a/src/reactor_sim/reactor.py b/src/reactor_sim/reactor.py index b5ba99f..0f2980d 100644 --- a/src/reactor_sim/reactor.py +++ b/src/reactor_sim/reactor.py @@ -275,11 +275,17 @@ class Reactor: state.primary_loop.pressure, 0.5, dt, self.primary_pump.spool_time ) else: - state.primary_loop.mass_flow_rate = 0.0 - state.primary_loop.pressure = max(0.1, saturation_pressure(state.primary_loop.temperature_out)) + state.primary_loop.mass_flow_rate = self._ramp_value( + state.primary_loop.mass_flow_rate, 0.0, dt, self.primary_pump.spool_time + ) + state.primary_loop.pressure = self._ramp_value( + state.primary_loop.pressure, max(0.1, saturation_pressure(state.primary_loop.temperature_out)), dt, self.primary_pump.spool_time + ) for pump_state in state.primary_pumps: pump_state.active = False - pump_state.flow_rate = 0.0 + pump_state.flow_rate = self._ramp_value( + pump_state.flow_rate, 0.0, dt, self.primary_pump.spool_time + ) pump_state.pressure = state.primary_loop.pressure pump_state.status = "STOPPING" if pump_state.flow_rate > 1.0 else "OFF" if self.secondary_pump_active: @@ -319,11 +325,17 @@ class Reactor: state.secondary_loop.pressure, 0.5, dt, self.secondary_pump.spool_time ) else: - state.secondary_loop.mass_flow_rate = 0.0 - state.secondary_loop.pressure = max(0.1, saturation_pressure(state.secondary_loop.temperature_out)) + state.secondary_loop.mass_flow_rate = self._ramp_value( + state.secondary_loop.mass_flow_rate, 0.0, dt, self.secondary_pump.spool_time + ) + state.secondary_loop.pressure = self._ramp_value( + state.secondary_loop.pressure, max(0.1, saturation_pressure(state.secondary_loop.temperature_out)), dt, self.secondary_pump.spool_time + ) for pump_state in state.secondary_pumps: pump_state.active = False - pump_state.flow_rate = 0.0 + pump_state.flow_rate = self._ramp_value( + pump_state.flow_rate, 0.0, dt, self.secondary_pump.spool_time + ) pump_state.pressure = state.secondary_loop.pressure pump_state.status = "STOPPING" if pump_state.flow_rate > 1.0 else "OFF"