BWRX-300 Natural-Circulation Model & Loop Simulator
Overview
The BWRX-300 is the small modular reactor being built at OPG's Darlington New Nuclear site. It has no recirculation pumps. Water moves around the vessel on its own: cooler, heavier water sinks down the outside, and the lighter steam-water mix rises through the core and a tall chimney above it.
I built a model that finds how much water flows through the core at each power level, using public design data only. I wrote it up the way a nuclear company documents a calculation, with numbered inputs, assumptions, sources, verification tests and a review step, then turned it into a live simulator.
How the model works
- Follows the water around the loop: downcomer, lower plenum, core, chimney and steam separators
- An energy balance with feedwater mixing sets how far below boiling the water is when it enters the core
- Two ways to model the steam-water mix, compared side by side: homogeneous (steam and water move together) and drift-flux (steam rises faster than the water)
- A solver finds the flow where the buoyancy push equals the friction, form and acceleration losses, from 5 to 150 % power
- Water and steam properties from CoolProp (IAPWS-95)
- Loss coefficients tuned so the rated flow matches the published 1,827 kg/s
Results
Core flow rises with power, peaks well below rated power, then falls as the steam-water losses grow faster than the buoyancy push. With the homogeneous model it peaks at 1,907 kg/s at 55 % power. With drift-flux it peaks later, at 1,855 kg/s at 70 %.
From 20 to 60 % power, the homogeneous model puts the chimney water velocity above the highest value the designers tested (0.31 m/s), peaking at 0.328 m/s. Drift-flux stays inside at 0.308 m/s, so the overshoot comes mainly from assuming the steam and water move together.
The form-loss coefficient has the biggest effect on flow (+33 % / −17 %), then the void model (−12 %), then chimney height (about ±5 %).
Because the losses are tuned to the published flow, the model predicts the shape of the flow curve and the part-power behaviour, not the rated flow itself.
How I checked it
- 7 verification tests, all passing at code tag v1.0, each one its own pytest file (145 tests in total)
- Single-phase solver checked against an exact analytical answer at five power levels
- Energy and mass balances close to better than one part in a million
- Nodal convergence: flow changes by 0.011 % or less between 20 and 80 nodes
- Steam properties checked against published steam tables, within 0.015 %
- Independent hand calculation at rated power, every pressure term within 0.032 % of the code
- Six sensitivity cases, with the ranges set before any runs were done
Loop simulator
I also built the model into a simulator that runs in your browser, using the same equations as the Python code. The vessel is drawn to scale. You can change the reactor power and the steam model, test the inputs that aren't published, and run power changes like a cut to 50 % or a trip to 6 % to see how long the loop takes to settle. Every time it loads, it rechecks 12 results against the calc report.
Hover over any underlined term (or tap it on a phone) for a plain-language definition.
What's next
- Independent review, then Rev 0 of the calculation report and the public GitHub repository
- Thermal-hydraulic stability (density-wave oscillations), the main stability concern for natural-circulation BWRs
- Compare the drift-flux chimney void with the measured test data, the first real test of the void model
Tools
Educational project based on publicly available information. Not affiliated with or endorsed by GE Vernova Hitachi Nuclear Energy or Ontario Power Generation. Not for design, licensing or operational use.