Files
Reactor-Sim/tests/test_turbine.py
2025-11-22 19:13:57 +01:00

34 lines
967 B
Python

import pytest
from reactor_sim.state import CoolantLoopState, TurbineState
from reactor_sim.turbine import Turbine
def test_turbine_spools_toward_target_output():
turbine = Turbine()
loop = CoolantLoopState(
temperature_in=600.0,
temperature_out=650.0,
pressure=6.0,
mass_flow_rate=20_000.0,
steam_quality=0.9,
)
state = TurbineState(
steam_enthalpy=0.0,
shaft_power_mw=0.0,
electrical_output_mw=0.0,
condenser_temperature=300.0,
)
target_electric = min(
turbine.rated_output_mw, 300.0 * turbine.mechanical_efficiency * turbine.generator_efficiency
)
dt = 5.0
turbine.step(loop, state, steam_power_mw=300.0, dt=dt)
assert 0.0 < state.electrical_output_mw < target_electric
for _ in range(5):
turbine.step(loop, state, steam_power_mw=300.0, dt=dt)
assert state.electrical_output_mw == pytest.approx(target_electric, rel=0.05)