Show steam availability on turbine dashboard

This commit is contained in:
Codex Agent
2025-11-25 20:38:37 +01:00
parent b06246b1ff
commit 6bd0f18df4
2 changed files with 10 additions and 6 deletions

View File

@@ -490,7 +490,7 @@ class ReactorDashboard:
[
("Turbines", " ".join(self._turbine_status_lines())),
("Rated Elec", f"{len(self.reactor.turbines)*self.reactor.turbines[0].rated_output_mw:7.1f} MW"),
("Steam P", f"{self._steam_pressure(state):5.2f} MPa"),
("Steam Avail", f"{self._steam_available_power(state):7.1f} MW"),
("Unit1 Elec", f"{state.turbines[0].electrical_output_mw:7.1f} MW" if state.turbines else "n/a"),
(
"Unit2 Elec",
@@ -733,11 +733,15 @@ class ReactorDashboard:
lines.append(("Relief valves", ", ".join(reliefs) if reliefs else "Closed"))
return lines
def _steam_pressure(self, state: PlantState) -> float:
# Only report steam pressure if quality/flow indicate steam is present.
if state.secondary_loop.steam_quality < 0.05 or state.secondary_loop.mass_flow_rate < 100.0:
def _steam_available_power(self, state: PlantState) -> float:
mass_flow = state.secondary_loop.mass_flow_rate * max(0.0, state.secondary_loop.steam_quality)
if mass_flow <= 1.0:
return 0.0
return state.secondary_loop.pressure
if state.turbines:
enthalpy_kjkg = max(0.0, state.turbines[0].steam_enthalpy)
else:
enthalpy_kjkg = (constants.STEAM_LATENT_HEAT / 1_000.0)
return (enthalpy_kjkg * mass_flow) / 1_000.0
def _update_trends(self, state: PlantState) -> None:
self._trend_history.append((state.time_elapsed, state.core.fuel_temperature, state.core.power_output_mw))