Cardinal LWR pincell: OpenMC transport coupled to MOOSE heat conduction.
For one pressurised-water-reactor fuel pin, what converged fission heat-source distribution and solid temperature field result when OpenMC eigenvalue transport with temperature feedback is iterated against a MOOSE heat-conduction solve?
A two-code coupling tutorial from the Cardinal documentation: OpenMC (wrapped by Cardinal) and the MOOSE heat transfer module exchange a volumetric heat source and cell temperatures over five fixed Picard iterations. nekRS is not used and no fluid flow is solved; coolant is represented by a convective boundary condition. The case teaches how Cardinal maps OpenMC cells onto a MOOSE mesh and how to tally heat per cell or on an unstructured mesh.
Relationship to fusion
A fission (LWR) example. The mechanics it demonstrates (Monte Carlo nuclear heating tallied onto a MOOSE mesh, a thermal solve, temperature fed back into cross sections) are the pattern a fusion first-wall or blanket heating problem needs, and Cardinal ships a CAD tokamak tutorial on the same machinery. Nothing here validates an inertial-fusion chamber; treat it as a worked example of the coupling workflow.
A specific published external example has been documented.
What stands between this and a Morton reproduction
- Requires a from-source Cardinal build with its MOOSE and OpenMC submodules; Morton Labs has not built or run this case.
- mesh.i: MOOSE mesh generators for the clad annulus and fuel disk, extruded 300 cm in 40 layers
- make_openmc_model.py (or the checked-in XML): UO2 at 2.4 wt % enrichment, helium gap, Zircaloy-4, borated water; concentric cylinders at r = 0.392, 0.400 and 0.457 cm; reflective square pitch; 20,000 particles, 1,500 batches, 500 inactive
- solid.i: heat conduction with a convective clad boundary and a gap-conductance model; five Picard steps
- openmc.i: Cardinal wrapper with a 3000 MWth core power divided over 273 bundles of 289 pins, cell-level temperature feedback and a heat-source cell tally
- Run command from the tutorial: mpiexec -np 2 cardinal-opt -i solid.i --n-threads=2
- Exodus files with the MOOSE temperature field and the mapped OpenMC heat source and cell temperatures
- CSV postprocessor histories: integrated heat source, maximum tally relative error, maximum heat source and temperature
- A console mapping table showing which MOOSE elements feed each OpenMC cell
- Qualitatively, a slightly bottom-peaked axial heat source from negative Doppler feedback
- Single pincell with reflective lateral boundaries and vacuum top and bottom
- No fluid flow or density feedback; steady-state physics with fixed Picard iterations rather than a convergence criterion
- Constant fuel and clad conductivities; the helium gap is not meshed
- Temperature feedback resolution equals the number of OpenMC cells (40 axial layers)
- Cardinal
- devel branch, commit b0ad9c9ea53e28758bb6fc5426fff68e413049f5 (2026-10-07) github.com ↗
- MOOSE
- submodule at idaholab/moose 60ec5e6cd51c08f79c70536b5e97f566082587f1 github.com ↗
- OpenMC
- submodule at openmc-dev/openmc 150f9ac044031a840c555cfdb2bb2c7f63f23d7c (post-0.16.0) github.com ↗
- Nuclear data
- ENDF/B-VII.1 HDF5 (fetched by the repository's helper script)
- nekRS
- not required
This case was written by Morton Labs from public sources and last checked on 2026-10-10. Spotted an error, or want something changed or removed? Email zach@mortonlabs.ai with the page address.
Sources checked for this page (4)
- Cardinal tutorial: LWR pincell — Physics, inputs, outputs and run command
- Tutorial inputs in the repository — Input files and test specification
- Cardinal publications page — Requested citations
- Cardinal contact page — Current team and past contributors