From 2bc45d1594e1fa39dac953da809e2a63cb4f4781 Mon Sep 17 00:00:00 2001 From: Andrii Prokhorov Date: Fri, 21 Nov 2025 17:38:13 +0200 Subject: [PATCH] chore: show fission rate in status --- src/reactor_sim/fuel.py | 7 +++++-- src/reactor_sim/reactor.py | 11 +++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/reactor_sim/fuel.py b/src/reactor_sim/fuel.py index 222d8fc..eb3f0ea 100644 --- a/src/reactor_sim/fuel.py +++ b/src/reactor_sim/fuel.py @@ -42,7 +42,10 @@ class FuelAssembly: event = self.simulate_electron_hit() effective_flux = max(0.0, flux * max(0.0, 1.0 - control_fraction)) atoms = self.mass_kg / self.fissile_atom.atomic_mass_kg - event_rate = effective_flux * constants.ELECTRON_FISSION_CROSS_SECTION * atoms * self.enrichment + event_rate = max( + 0.0, + effective_flux * constants.ELECTRON_FISSION_CROSS_SECTION * atoms * self.enrichment, + ) power_watts = event_rate * event.energy_mev * constants.MEV_TO_J power_mw = power_watts / constants.MEGAWATT LOGGER.debug( @@ -53,4 +56,4 @@ class FuelAssembly: event.products[1].mass_number, power_mw, ) - return max(0.0, power_mw), event + return max(0.0, power_mw), event_rate, event diff --git a/src/reactor_sim/reactor.py b/src/reactor_sim/reactor.py index a6cd9db..1ddb96b 100644 --- a/src/reactor_sim/reactor.py +++ b/src/reactor_sim/reactor.py @@ -102,7 +102,9 @@ class Reactor: self.neutronics.step(state.core, rod_fraction, dt) - prompt_power, fission_event = self.fuel.prompt_energy_rate(state.core.neutron_flux, rod_fraction) + prompt_power, fission_rate, fission_event = self.fuel.prompt_energy_rate( + state.core.neutron_flux, rod_fraction + ) decay_power = decay_heat_fraction(state.core.burnup) * state.core.power_output_mw total_power = prompt_power + decay_power state.core.power_output_mw = total_power @@ -147,16 +149,13 @@ class Reactor: LOGGER.info( ( "t=%5.1fs rods=%.2f core_power=%.1fMW prompt=%.1fMW :: " - "%s-%d + %s-%d, outlet %.1fK, electrical %.1fMW load %.1f/%.1fMW" + "fissions %.2e/s, outlet %.1fK, electrical %.1fMW load %.1f/%.1fMW" ), state.time_elapsed, rod_fraction, total_power, prompt_power, - fission_event.products[0].symbol, - fission_event.products[0].mass_number, - fission_event.products[1].symbol, - fission_event.products[1].mass_number, + fission_rate, state.primary_loop.temperature_out, state.turbine.electrical_output_mw, state.turbine.load_supplied_mw,