FEDERICO CACCIA

Index09 SEPT 202611 min

Neutronics–Thermal-Hydraulics Coupling: An SMR Example

Explore neutronics–thermal-hydraulics coupling in a water-cooled SMR with an interactive core diagram and a Picard–Newton comparison.

  • Nuclear
  • Engineering
Inside the feedback loop

Inside a water-cooled SMR: an interactive core diagram.

N

Neutronics

Neutron balance
and fission distribution

φ(r, t)neutron flux · m⁻² s⁻¹
q‴(r, t) →volumetric heating · W m⁻³
Cross sections depend
on the material state.
Water-cooled SMR core: fuel, control rods and coolantSchematic core region inside a pressure boundary. Heat travels from fuel rods into upward-flowing water. Highlighted features follow the selected explanation stage. Geometry, brightness and flow speed are illustrative.CORE REGION · SCHEMATICWater stays liquid in this example.inletoutletcontrol rodsfuel + cladcoolant
TH

Thermal-hydraulics

Energy balance
and coolant transport

Tf(r, t) · Tc(r, t)fuel & coolant temperatures · K
← ρc(r, t)coolant mass density · kg m⁻³
Flow transports energy.
Pressure affects water properties.
q‴(r, t) →
Neutronics → thermal-hydraulicsNeutronics supplies the heat source.

Fissions deposit energy in the fuel. A spatial neutron calculation supplies a volumetric power field to the heat calculation.

A simplified core view showing how fission heating and temperature feedback connect neutronics with thermal-hydraulics. Download the static diagram ↓

Read the physics behind the picture

In a spatial model, the fission heat source is approximately q‴(r, t) = Ef ∫ Σf(r, E, t) φ(r, E, t) dE, with a specified energy-deposition model. Power and material fields are transferred between the solvers’ meshes. Fuel-to-coolant heat transfer is internal to the thermal energy balance; it cancels when both balances are added.

This is a qualitative cutaway of a water-cooled SMR core region, not a complete vessel layout or a plant simulation. The inlet and outlet represent connections to the rest of the primary circuit; no pump or natural-circulation law is specified. Animation speeds, rod motion and glow are illustrative. The four stages explain coupled physics that evolves together, not four physical time intervals or a numerical iteration schedule.

ρext denotes reactivity, while ρc denotes coolant mass density. Their units and meanings differ. In the reduced experiment below, coolant density feedback is represented through a temperature coefficient at assumed fixed pressure, rather than an independent density state.

Neutronics–thermal-hydraulics coupling connects the neutron calculation to the heat-and-flow calculation. Neutronics supplies a heat source; thermal-hydraulics returns temperatures and coolant density that change the neutron calculation.

Imagine a small water-cooled reactor operating steadily. A small withdrawal of a control rod adds positive reactivity: it shifts the neutron balance toward a growing population. Fission power begins to rise. The fuel heats up. That temperature change affects the neutron balance again.

Now give the neutron calculation to one program and the heat-and-flow calculation to another. Which temperature should the first program use for the power it is calculating: the temperature before the power rise, or the temperature that rise is about to produce?

That is the coupling problem. It sits inside simulations of large reactors and small modular reactors alike. I worked on methods for this exchange with Enzo Dari; our 2017 ENIEF contribution on neutronic–thermal-hydraulic coupling is one starting point for this explanation. Here, we will build the intuition with a much smaller model you can manipulate.

What is neutronics–thermal-hydraulics coupling?

The neutronics calculation describes the neutron population and, in a spatial model, where fissions occur. It supplies a power distribution: the heat source for the other calculation.

The thermal-hydraulics calculation describes how that heat moves through the fuel and into the coolant, and how the coolant carries it away. It returns temperatures and density. These change the cross sections used in the neutron calculation, closing the loop.

Two return paths are especially useful to picture in a water-cooled reactor. As fuel temperature rises, Doppler broadening changes the resonance absorption of neutrons. For the operating state assumed here, its net reactivity contribution is negative. As water heats and its density changes, moderation and absorption change too. The sign and strength of that second contribution depend on the design and operating state; we choose a negative temperature coefficient for this example.

Negative feedback means the temperature response opposes the initial power increase. It does not mean that every numerical way of exchanging those temperatures will behave well.

Which variables do the two solvers exchange?

DirectionFieldMeaning
Neutronics → THq‴, W/m³Volumetric heat source
TH → neutronicsTf and Tc, KFuel and coolant temperatures
TH → neutronicsρc, kg/m³Coolant mass density

Neutron flux φ is not coolant mass flow. Coolant density ρc is not reactivity ρ; the symbols refer to different quantities. The simplified experiment below represents density feedback through a coolant-temperature coefficient.

Put it in an SMR

Think of an integral pressurised water SMR: the core and major primary-system components share a reactor vessel. CAREM is one real example of the integral, natural-circulation approach. Other water-cooled SMRs use forced circulation. The IAEA SMR catalogue describes these different designs.

In a detailed natural-circulation calculation, heating also changes buoyancy, flow and heat removal. A full model must let those quantities participate in the exchange. That makes an SMR a useful setting for discussing coupling, but small size alone does not tell us whether a numerical method will converge.

For the experiment below, keep just the core's thermal feedback: one average fuel temperature, one average coolant temperature, and a neutron population with one effective delayed-neutron group. Hold coolant flow and inlet temperature fixed. Choose a nominal 100 MW thermal operating point and a small, sustained +50 pcm reactivity step; one pcm is 10510^{-5} in dimensionless reactivity.

These are illustrative parameters. This is a teaching model of a feedback loop relevant to water-cooled SMRs, rather than a calculation of CAREM or of natural circulation. It has no spatial power shape, pressure dynamics, boiling or plant control system. Those details belong in a plant model; leaving them out here lets us watch the exchange itself.

Why can a single exchange miss the feedback?

A transient simulation divides time into intervals. Suppose the current state is known at tnt_n, and we want the state at tn+1=tn+Δtt_{n+1}=t_n+\Delta t.

The simplest partitioned approach is a single sweep:

  1. Give the neutron solver the old temperatures and calculate the new power.
  2. Give the thermal solver that new power and calculate the new temperatures.
  3. Accept the result and advance time.

It is easy to connect two existing codes this way. Each accepts inputs and returns outputs. With a sufficiently small time step, the exchanged fields may change little enough that the approximation meets the accuracy required.

But the two calculations have not agreed on the new state. The heat calculation may say the fuel has warmed by several kelvin, while the neutron calculation used the fuel temperature from before that warming. For our negative-feedback example, that lag can overpredict the first power increase.

Both individual solvers in the experiment use backward Euler, an implicit time integrator. Their exchange is still lagged. An implicit solver inside each program does not automatically make the coupling between them implicit.

02 / Same interval, different agreement
ONE PASSUse the old temperatures
State at tₙ → N → TH → accept tₙ₊₁

The heat calculation gets new power. Neutronics still used temperatures from tₙ.

CONVERGED COUPLINGAgree on the new temperatures
State at tₙ → [ N ⇄ TH ] → accept tₙ₊₁

Repeat or solve the coupled equations. Every trial belongs to the same tₙ₊₁.

Picard is one way to repeat the exchange. Newton is another way to solve for agreement. Either can solve the same implicit time step when it converges.

Can Picard iteration solve an implicit coupling?

Yes. Picard can converge an implicit coupling by repeatedly exchanging fields at the same new time level. Whether it converges depends on the coupling map and the numerical settings.

An implicit coupling uses temperatures and power that belong to the same new time level. Neither field is known initially, so we solve for them together.

One accessible way is Picard iteration. Guess a power, calculate temperatures, use those temperatures to calculate another power, and repeat. Keep the old physical state fixed throughout these trials. Only advance time after the exchange meets a specified tolerance.

This distinction matters: the iteration counter is not a clock. Ten coupling iterations may all be trying to determine the state at the same instant, say four seconds after the perturbation.

Picard can solve a fully implicit coupling. It is the default fixed-point method in MOOSE's multiphysics coupling framework, whose documentation explicitly separates iterations within a time step from lagging data across steps.

Sometimes the guesses settle quickly. Sometimes a trial overcorrects the previous one: higher guessed power produces hotter fuel, which returns lower power, which produces cooler fuel, which returns higher power. If successive corrections grow, the iteration fails even though the physical feedback is negative.

Try the exchange

Press Watch the comparison. Picard and Newton start with the same guess: watch which one brings the disagreement down to the dashed line. Try Small · 0.25 s, then Large · 4 s. The physics stays the same; only the numerical time step changes.

Switch to See the power to compare a single exchange with a converged implicit calculation over 60 seconds. A finer-step solution of the same model provides a reference. You can return to Compare the methods at any time.

Try it yourselfCan the two solvers agree?

Same reactor. Same time step. Two ways to find the answer.

Time stays at 4.00 s
● Picard repeat the exchange● Newton use the sensitivity
MORE DISAGREEMENT10.00001AGREEMENT ✓01223iterationsMORE DISAGREEMENT10.00001AGREEMENT ✓01223iterations
Picard23 updatesIteration failed

The numerical guesses do not settle.

Newton3 updatesAgreed ✓

Power: 105.02% of initial.

Lower is better. Each update is another guess at the same instant—not another second.

What the graph measures

Both methods solve the same implicit first step. The graph shows the actual residual |p − N(TH(p))| on a logarithmic scale; agreement means ≤ 10⁻¹⁰, a teaching tolerance. Values below 10⁻¹² sit at the plot floor. The horizontal range adapts to the longer run. The Picard slope at the solution is -1.17. A failed iteration is not a reactor instability. Newton uses an analytic derivative here, so update counts are not production-code cost comparisons.

The two views answer different questions. Compare the methods asks whether trial fields agree at one particular time. See the power asks what trajectory the time-stepping procedure produces. A failed iteration in the comparison is a numerical convergence problem, not evidence of a reactor oscillation.

Also notice that the charcoal curve need not lie on the reference. Converging the coupling removes the disagreement between the two blocks for the chosen time discretization. A coarse time step can still miss the early power peak or distort the transient. Time-step refinement remains necessary.

When does Newton help?

Picard asks the two calculations to take turns. Newton also uses information about how their answers change when a trial changes.

In this small model, the thermal calculation turns a guessed power pp into temperatures, and the neutron calculation turns those temperatures back into a power. Call that full round trip G(p)\mathcal G(p). Agreement means

R(p)=pG(p)=0.R(p)=p-\mathcal G(p)=0.

Picard takes the returned answer as its next guess. Newton uses a local linearization of a coupled residual to choose a correction. In our implementation the temperature and precursor variables can be eliminated, leaving a quadratic equation in power, so its derivative is inexpensive to calculate.

At the larger step sizes in this example, Newton reaches agreement while undamped Picard does not. If both converge to the same root, they produce the same implicit step. Newton's advantage here is reaching that answer reliably and in fewer updates, rather than defining a different physical solution.

For a large coupled model, that calculation is more demanding. Newton needs a suitable initial guess and a sufficiently accurate linear solve, and may need damping or other safeguards. Jacobian-free Newton–Krylov methods can obtain derivative information through perturbed residual evaluations, but those evaluations and preconditioning have a cost. The scalar iteration counts above are not production-code speedups. Published comparisons in TINTE discuss both fully implicit Picard and JFNK, including those implementation choices.

Under-relaxation or acceleration can also improve Picard. Choosing between them is an engineering decision based on robustness, accuracy and total computational work.

When is the extra conversation worth it?

It is worth investigating converged coupling when a time-step refinement study shows that lagged feedback materially changes a quantity you care about: peak power, fuel temperature, or the timing of a response. Rapid transients, strong feedback and additional interacting fields can make that issue more visible. A small reactor with flow participating in the feedback is one relevant application, but the same question applies to a large reactor.

If Picard converges quickly, it may already be enough. If it stalls or oscillates, compare relaxation, acceleration and Newton-type methods. Judge the comparison at matched tolerances, and count calls to the physics solvers or elapsed time as well as outer iterations.

Three checks keep the interpretation clear:

  • Coupling convergence: do the fields satisfy the coupled discrete equations to the requested tolerance?
  • Time and mesh refinement: do the quantities of interest stop changing materially as the discretization is refined?
  • Physical validation: do the models represent the relevant phenomena and agree with suitable evidence?

These checks complement each other. A small residual answers the first question. It cannot answer the other two.

The model, if you want to check it

The formulas and parameters are included here so the experiment can be reproduced. They are deliberately simple enough that the implicit step also has an algebraic solution, which provides an independent check on the iterative solver.

Equations, units and numerical methods

Let p=P/P0p=P/P_0 be normalized fission power and cc the delayed-neutron precursor inventory normalized to its initial equilibrium value. A one-group point-kinetics approximation gives

p˙=(ρβ)p+βcΛ,c˙=λ(pc).\dot p=\frac{(\rho-\beta)p+\beta c}{\Lambda}, \qquad \dot c=\lambda(p-c).

This normalized form follows from the usual point-kinetics equations. The effective one-group parameters here are illustrative, not a fitted delayed-neutron dataset for a specific core.

Write θf\theta_f and θc\theta_c for departures from the initial average fuel and coolant temperatures, in kelvin. Subtracting the initial steady heat balance gives

Cfθ˙f=P0(p1)H(θfθc),C_f\dot\theta_f=P_0(p-1)-H(\theta_f-\theta_c),Ccθ˙c=H(θfθc)Wθc,C_c\dot\theta_c=H(\theta_f-\theta_c)-W\theta_c,ρ=ρext+αfθf+αcθc.\rho=\rho_{\rm ext}+\alpha_f\theta_f+\alpha_c\theta_c.

HH is fuel-to-coolant conductance, and W=m˙cpW=\dot m c_p is an effective heat-removal coefficient for a mixed coolant node with fixed inlet temperature. The fuel-to-coolant transfer cancels when the energy balances are added: it moves heat internally. This model treats fission power as deposited heat and omits decay-heat dynamics. The coolant feedback coefficient represents a local temperature effect, including density changes at assumed fixed pressure; density is not an independent state here.

| Quantity | Illustrative value | | --- | --- | | Nominal thermal power P0P_0 | 100 MW | | Fuel heat capacity CfC_f | 4/34/3 MJ/K | | Coolant heat capacity CcC_c | 20 MJ/K | | Conductance HH | 1/31/3 MW/K | | Heat-removal coefficient WW | 2.5 MW/K | | Delayed fraction β\beta | 0.0065 | | Prompt generation time Λ\Lambda | 10410^{-4} s | | Effective precursor decay constant λ\lambda | 0.08 s1^{-1} | | Fuel / coolant feedback | −3 / −10 pcm/K | | Applied reactivity step | +50 pcm at t=0t=0 |

Initially p=c=1p=c=1 and θf=θc=0\theta_f=\theta_c=0. The initial absolute temperatures do not enter these constant-coefficient perturbation equations. They would have to be specified, with material properties and pressure, in a physical plant model.

All blocks use backward Euler. The one-pass scheme evaluates reactivity with old temperatures, solves kinetics, then solves the two thermal balances with the new power. The converged scheme evaluates feedback at the new time level. Picard and Newton hold the same old state fixed while solving that step. In a reference-refinement check from 0.001 s to 0.0005 s, the maximum power difference at shared times over 60 s was about 0.045 percentage points of initial power. This checks numerical resolution, not physical validation.

After eliminating the thermal variables and cc, the coupled equation has the form Dp2+BpA=0Dp^2+Bp-A=0. The charcoal curve uses Newton on that equation. Its derivative is analytic, with a safeguard against leaving the positive, evaluable branch. The reference uses the positive algebraic root at a 0.001 s step. Both iteration methods are checked against the same residual pG(p)1010|p-\mathcal G(p)|\leq10^{-10}; that is a dimensionless numerical tolerance chosen for this demonstration.

For the first step, the signed Picard slope at the solution is about −0.091 at 0.25 s and −1.170 at 4 s. A magnitude below one gives local convergence under the usual smoothness assumptions; a magnitude above one makes the fixed point locally unstable for undamped Picard. This is a property of this iteration map at this state and step size. It is not a classification of SMR designs.

Why this is useful in practice

In coupled-code work, the useful skill is knowing what the exchanged variables mean, which time level they belong to, and how to tell an unconverged exchange from an inaccurate model. That is the perspective behind my work on implicit neutronic–thermal-hydraulic coupling with Enzo Dari, presented at ENIEF 2017 and published as a summary in Mecánica Computacional, XXXV(32), p. 1827.

The same questions appear in the physical and numerical models inside Criticality, a reactor simulator built for exploring behaviour. For an SMR study, the next step beyond this teaching example is to bring in the actual geometry, cross sections, flow model and validation cases—and keep asking whether the two calculations are describing the same state.

Try the browser-based nuclear reactor simulator to explore a broader plant model.

Working on a coupled reactor model? Let’s discuss the coupling assumptions and verification strategy.

Adjacent entries