Small Modular Reactor Screening

I made an SMR Selector:

https://diagram.petrov.re/smrselector.html

The idea is simple: compare different Small Modular Reactor concepts against a set of technical and project criteria instead of trying to navigate dozens of vendor presentations and incompatible datasheets.

It is still evolving, so if you spot wrong data, missing reactors, questionable assumptions, or criteria that should be added — please tell me.

And please don’t ask me whether I actually believe in SMRs. :-))

Feedback is very welcome.

diagram.petrov.re
u/rpetrov — 5 days ago

Made a browser-based Decay Heat Calculator — feedback welcome

I made a small browser-based Decay Heat Calculator for nuclear engineering work:

https://diagram.petrov.re/decayheat.html

It’s intended as a quick engineering tool for estimating decay heat after shutdown and exploring how it changes with operating history and cooling time.

I’d be glad to hear any comments, corrections, or suggestions for features that would make it more useful.

reddit.com
u/rpetrov — 11 days ago
▲ 18 r/Bansang_Malaya+1 crossposts

I built a browser reactor stand you can actually drive — point kinetics, feedbacks, xenon, secondary side. Looking for criticism.

I've been building a reactor stand that runs in the browser, and I'd like people who know this stuff to tell me where it's wrong.

Reactor Live Stand

It's an instrument, not a "press play" demo. Integration runs continuously while the page is open; you turn the knobs while it's running and the strip charts move like an oscilloscope. Wall clock to model time is ×1 up to ×1000.

What's under it

Point kinetics with six delayed groups, using Keepin's group data per fissioning nuclide — so β_eff follows the fuel you actually loaded, not a constant. Doppler on fuel temperature, a moderator/coolant temperature coefficient, a void coefficient, and the I-135/Xe-135 chain with burnout. Two-node core thermal model with a transport-lagged outlet.

There's a secondary side, which I think is the part that makes it feel like a plant rather than a physics demo: steam generator by effectiveness-NTU, a turbine governor valve with condenser back-pressure, and a cold leg with transit delay. Move the rods and the steam flow follows a loop transit later. The boiling preset instead gets a steam drum whose pressure is the core pressure, so saturation temperature is a state — which closes the power → pressure → void → reactivity loop that a boiling core actually runs on.

Four presets: PWR, boiling channel in a graphite lattice (positive void), CANDU on natural uranium, sodium-cooled fast plutonium.

And a core composer — pick fissile (U-235 / Pu-239 / U-233 / MOX), fertile (U-238 / Th-232 / none), moderator (light water / heavy water / graphite / none) and coolant (light or heavy water / CO₂ / He / Na / Pb), and it gives you β_eff, Λ, Doppler and void. The thing I wanted people to be able to feel: the sign of the void coefficient isn't a property of the coolant, it's a property of whether the coolant is also the moderator. And loading Pu-239 into a water lattice drops β_eff from ~700 to ~270 pcm, so the same rod stroke is suddenly worth 29 dollars instead of 11, with Λ still at 2e-5 s. You don't have to be told why that's a bad idea; you can go and fail to control it.

Things I deliberately made it do

  • The rod drive has a real speed. You command a position, the bank travels there. You cannot insert a dollar with one mouse drag, which turns out to change the whole character of the thing.
  • It refuses rather than extrapolating. Prompt criticality, boiling past the two-phase closure, and a temperature feedback coefficient dragged far outside the range where a single linear number means anything — each gets an honest refusal that says which limit you hit, instead of confident numbers.
  • Every limitation is written down in the page itself.

Known limits, up front: it's a prototype, not independently validated, and not a thermal-hydraulics code. No transport, no lattice calculation, no burnup, no samarium, no SG level or feedwater dynamics, no natural circulation, no CHF or dryout. The composer is an order-of-magnitude parameterisation calibrated so known reactors land on their known values — it is not a physics calculation of your lattice. Single file, runs locally, no network, no accounts.

What I'd like criticism on

  1. The feedback coefficients. Are the magnitudes and the reference points defensible for each preset?
  2. The composer table — especially the void breakdown into loss-of-moderation, loss-of-absorption and spectrum hardening. Does the CANDU number look right to anyone who has worked on one?
  3. Anything that behaves in a way that would make an operator wince.
  4. Presets worth adding.

Happy to be told the whole approach is wrong somewhere. That's the point of posting.

reddit.com
u/SBD-Tech1234 — 11 days ago