SwampHacks XII

Particle Bed Reactor Simulation

Status:CompleteLanguage: Python 3

Summary

Particle bed reactors are among the most compact and highest-performing nuclear thermal propulsion concepts for crewed Mars missions, but their fuel beds are vulnerable to a thermal-hydraulic instability in which a locally hot region loses coolant flow and overheats. Whether the porous cold frit surrounding the bed prevents this has been an open question since a 1993 NASA analysis called for calculations on specific designs. We developed FritCheck, a Python simulator that models a published particle bed fuel element as 20 coupled parallel flow paths, including the inlet plenum and exit channel, and tests flow stability with two independent methods. Using only published inputs and pass/fail criteria committed before any validation run, the simulator reproduced published pressure drops within 4-11% on two fuel elements, passing 7 of 8 Tier 1 checks. It showed that without a cold frit the element has no steady operating point above 1 MW/L, while with one it is stable at every power from 5% to 100%. A published optimized cold-frit design proved stable across the throttle range, but with only half to two-thirds of the original design’s stability margin, and it exceeded the 3800 K fuel limit at 20–22.5% throttle. Changing the flow pattern from Z to U cut flow nonuniformity fivefold and lowered peak fuel temperature by about 540 K. A machine-learning surrogate trained on 2,000 solver runs predicted outcomes over 100,000 times faster, but missed one in six failing designs, falling short of the pre-set accuracy standard. These results show that design optimizations for nuclear rocket fuel elements must be checked across the full operating range rather than at a single point, identify flow pattern as a powerful lever for reducing hot spots, and demonstrate a transparent, reproducible workflow for early-stage reactor design screening.

Problem and goal

Particle bed nuclear rocket engines can experience thermal-hydraulic instability when a localized increase in fuel temperature raises flow resistance, reduces hydrogen flow, and causes further heating. This positive feedback can lead to fuel overheating and failure. A porous wall known as a cold frit is intended to help stabilize the flow, but its effectiveness depends on the reactor design and operating conditions.

A 1993 NASA analysis concluded that a bed without a cold frit would be unstable at low power density, but noted that firmer conclusions required calculations for specific designs. The goal at SwampHacks XII was to perform that calculation: build a simulator of a specific published fuel element using only published data, test whether its cold frit keeps the flow stable across the full throttle range, and validate the model against published results using pass/fail criteria committed before any validation run.

Requirements

  1. R1Physical modelingRepresent a published particle bed fuel element using 20 parallel flow paths through the cold frit, particle bed, and hot frit, coupled through the inlet plenum and exit channel.
  2. R2Thermophysical propertiesModel hydrogen properties from 200 to 5000 K by blending CoolProp with NASA (Svehla) and NIST-JANAF reference data, with continuous values and slopes at each transition, and fuel heat capacity from NIST-JANAF data.
  3. R3Numerical solverSolve the coupled flow distribution, pressure drop, and heat transfer while conserving mass, momentum, and energy, using a predefined continuation strategy when a direct solve fails.
  4. R4Stability analysisImplement two independent stability tests, a pressure-drop slope (Ledinegg) test and an eigenvalue test of the fuel-temperature dynamics, and check both against brute-force calculations.
  5. R5Parametric analysisSweep reactor power (5–100%), frit resistance, power distribution, and localized temperature disturbances to identify stability boundaries and answer predefined research questions.
  6. R6Interactive interfaceBuild a Streamlit application that runs the solver live for user-selected conditions and displays validation results, stability maps, and a runaway animation from committed result files.
  7. R7Verification and validationImplement automated tests, a grid-convergence study, and comparisons against published results, with all pass/fail criteria committed before the first validation run.
  8. R8ReproducibilityRecord the source of every input, document every model assumption and amendment with its reason, and tag every result with the code version that produced it.
  9. R9Documented limitationsReport assumptions and discrepancies that affect interpretation, including neglected cross-flow, unmodeled hydrogen dissociation, the 5000 K property limit, correlation validity ranges, and known model issues.
Simulation running

Results

Validated against published designs.

The simulator passed 7 of 8 pre-registered validation checks against two published fuel elements. It reproduced published pressure drops within the ±25% criterion (1060.8 and 1225.3 kPa vs. 1189.2 kPa; 512.0 kPa vs. 529.8 kPa), reproduced the published instability of a hot-frit-dominated design, and confirmed that the optimized cold frit from Ji et al. lowers peak temperature and pressure drop (394.6 kPa vs. a published 414.4 kPa). The one failure was kept rather than tuned away: without a cold frit, the model predicts the element has no steady operating point across nearly the entire power range, a more pessimistic result than the 1993 NASA estimate.

An optimized design gives up stability margin when throttled.

Ji et al. optimized their cold frit at a single operating point. Sweeping it from 5% to 100% power showed it remains stable at every power level, but with only half to two-thirds of the original design’s stability margin, so disturbances die out more slowly. Its temperature advantage also reverses at low power: at 20–22.5% throttle it exceeds the 3800 K fuel limit, inside the engine’s normal operating range.

How much cold frit is enough?

In NASA’s original modeling setup, a cold frit carrying 20–30% of the element’s pressure drop is enough to cure the instability; the published design uses 90%. Across power densities from 1 to 30 MW/L, cold-frit-controlled designs were stable on both published elements and hot-frit-controlled designs never were. That challenges part of a published explanation for when each approach should be used.

Runaway demonstration.

Raising one slice’s temperature by 20 K shows the difference directly. With the cold frit, the disturbance decays within about a second. Without it, the hot slice loses flow and passes the 3800 K fuel limit in 7.6 seconds.

Conclusion

FritCheck resolved four of the five research questions it set out to answer, within the limits of a parallel-passage model: Is a cold frit necessary? Yes. Without one, the reference element has no steady operating point above 1 MW/L. With the published cold frit, it is stable at every power tested. In NASA’s original modeling setup, the instability appeared up to about 16.5 MW/L, four times the 1993 estimate, so the model supports NASA’s conclusion but is more pessimistic about the risk. Does power density decide whether cold- or hot-frit control works? Only partly. Cold-frit control was stable at every power density from 1 to 30 MW/L on both published elements, but hot-frit control never was. That contradicts the low-power half of a published explanation for when each approach should be used. Does a design optimized at one operating point stay safe when throttled? Stable, but with reduced margin. The published optimized frit kept the flow stable from 5% to 100% power, but at roughly half to two-thirds of the original margin, and it exceeded the fuel temperature limit inside the normal throttle range. This shows that single-point optimization can hide off-design risks. How large is the flow shift, and does a U pattern help? The Z flow pattern added about 600 K to peak fuel temperature, and switching to U cut flow variation fivefold. This identifies flow pattern as a strong, low-cost design lever. The fifth question was answered in the negative: a fast AI surrogate cannot yet replace the physics solver for safety decisions, because it misclassified some failing designs as safe. It remains useful for rapid screening. The Tier 2 checks on a larger published reactor could not be evaluated, because its cases exceed the 5000 K range of the hydrogen data, though the cases that did solve matched published pressure drops within about 1%. The broader impact is methodological as well as physical: by committing every rule before the run it governed and tagging every result with its code version, the project produces conclusions, including its failures, that others can audit and reproduce. One known issue in the plenum momentum term likely overstates flow shift; its correction and a full rerun are the next step, and results from NASA’s original setup are unaffected

Lessons learned

"“Writing the pass/fail rules before seeing any results changed how we worked: every outcome became a finding, including the one that failed. We also learned that published papers don’t always agree with reference data, and that the honest move is to report the disagreement rather than force a match. Next time, We’d merge code changes more frequently. A physics correction sat on a separate branch while the validation run used the older version, which is exactly the kind of problem good version control habits prevent.”"

Skills learned

Python 3NumPySciPyPandasCoolPropStreamlitMatplotlibpytestGitNumerical methods (nonlinear solvers, continuation)linear stability analysisThermal-hydraulicsVerification and Validation