The program
A reactor's k-eff says whether its chain reaction grows (above 1), dies out (below 1) or holds steady (exactly 1). Designers check it for thousands of candidate designs, and each check means solving an equation that is slow to compute. The goal is a model that gives the same answer much faster. Reactor physicists measure k-eff error in pcm, where 1 pcm is 0.001%; a few hundred pcm matters for safety margins.
I wrote the exact solver myself and checked it against a textbook case with a known answer (it agrees to within 0.001%) before training anything on it, because a model trained on a buggy solver learns the bug. The test reactor is a 1D slab split into 16 zones with different materials, and the training designs are spread evenly over the possible materials. A neural network predicts both k-eff and the shape of the neutron population across the reactor.
The key step comes after the network. The shape prediction is more reliable than the network's direct k-eff guess, and a standard physics formula (a Rayleigh quotient) turns a nearly right shape into a much more accurate k-eff. A quick correction (a Rayleigh-Ritz re-fit) then fixes the most common mistake in the shape: too much power in one part of the reactor and too little in another.
Autopsy
How it's scored: 3,000 test designs the models never saw, compared against the exact solver's answers, and against three baselines. Numbers below are the typical error (root-mean-square error) unless marked as a median, meaning half the designs are better than that value.
Simple baselines: linear regression is off by about 4,600 pcm (4.6%) for a median design and decision trees (gradient-boosted) by about 3,100 pcm (3.1%); the trees don't predict the neutron shape, and linear regression's shape is off by about 66%. The neural network alone gets the median down to about 270 pcm (0.27%), more than ten times better than the trees, but with a typical error of 170-180 pcm that is still too large to trust near a safety margin.
With the physics correction, the typical error drops to 1.5-2.3 pcm (about 0.002%), roughly 100 times better than the network alone, while still running about 25 times faster than the exact solver across a batch of 3,000 designs. A stricter setting reaches under 1 pcm at 7-8 times the solver's speed. To check the network matters, I ran the same correction starting from a flat guess instead of the network's: the error was about 270 pcm, over 100 times worse.
The correction can only ever underestimate k-eff, which makes it safe to combine models: run several and keep whichever gives the largest k-eff, and the result is never worse than the best of them. A network tuned specifically for the correction is sharper on normal designs but worse on unusual ones than one tuned for its own direct guess, so pairing the two keeps both strengths: 0.33 to 0.54 pcm on the two test sets at about 13 to 14 times the solver's speed, and 23 to 35 pcm on unusual designs, where the specially tuned network alone was off by up to 317. That comes from one training run per model so far; a second behaved the same way.
On unusual designs outside the training range, the network alone is off by 3,900-6,000 pcm (4-6%); with the correction it is off by 24-40 pcm (under 0.04%). A version that sends doubtful designs back to the exact solver had to send about 18% of those designs, where the correction needs none. What didn't pay off: adding the physics equation to the network's training made its answers more physically consistent but not more accurate. And for a single design the speedup vanishes; it only exists in batches.
Why 25 times and not the 1,000 times surrogates often claim: the solver here is a fast 1D one (under a millisecond per design), so there is little to beat, and the network alone is in fact about 1,000 times faster. The correction step spends most of that to buy accuracy, which is the trade that matters for a design search. A 3D multi-group solve costs far more per design while a network's cost grows much more slowly, so the gap should widen with problem size; whether the correction step keeps up in 3D is the open question below.
If I keep going
The model is deliberately simplified: one energy group instead of many, one dimension instead of three, and no temperature feedback or fuel burn-up.
The first thing I'd close is training on a real reactor physics code (OpenMC) instead of my own solver, so the model is accelerating an industry tool rather than my simplified one. In 3D the correction step gets more expensive, so whether it keeps its speed there is the open question.