Shallow Recurrent Decoder for Nuclear Reactors Applications (NuSHRED)
This repository collects the codes regarding the application of the Shallow REcurrent Decoder (SHRED) method to Nuclear Reactors systems 🏭⚛️
📄 Related Publications
This repository serves as complementary code to the following papers:
[P1] Riva, S., Introini, C., Cammi, A., & Kutz, J. N. (2025). Robust State Estimation from Partial Out-Core Measurements with Shallow Recurrent Decoder for Nuclear Reactors. Progress in Nuclear Energy, vol. 189, pp. 105928
[P2] Riva, S., Introini, C., Kutz, J. N. & Cammi, A. (2025). Towards Efficient Parametric State Estimation in Circulating Fuel Reactors with Shallow Recurrent Decoder Networks
[P3] Riva, S., Missaglia A., Introini, C., Kutz, J. N. & Cammi, A.(2026). From Models To Experiments: Shallow Recurrent Decoder Networks on the DYNASTY Experimental Facility
[P4] Riva, S., Introini, C., Cammi, A., & Kutz, J. N. (2025). Constrained Sensing and Reliable State Estimation with Shallow Recurrent Decoders on a TRIGA Mark II Reactor.
[P5] Riva, S., Introini, C., Kutz, J. N. & Cammi, A., (2026). Multi-Fidelity Learning with Shallow Recurrent Decoders for Reactor Physics Applications.
Upcoming works: two preprints on arxiv have been submitted on the application of SHRED to Fusion MHD systems (code will be released soon).
📊 Simulation Data
The compressed simulation datasets are available on Zenodo:
- [D1] Molten Salt Fast Reactor (MSFR) in the accidental scenario Unprotected Loss Of Fuel Flow (ULOFF) - Single Transient (Reconstruction mode)
- [D2] Molten Salt Fast Reactor (MSFR) in the accidental scenario Unprotected Loss Of Fuel Flow (ULOFF) - Parametric Transients
- [D3] DYNASTY Experimental Facility - Single Transient (Reconstruction & Prediction mode) and Parametric Transients
- [D4] CFD model of TRIGA Mark II Reactor - Single Transient (Reconstruction mode)
- [D5] Neutronics Model using Diffusion and Point Kinetics LRA benchmark reactor
🎥 If you want to know more about the SHRED method for nuclear reactors, check out this YouTube video!
You can use the script
Code/download_datasets.py to download the
datasets (if files argument is not specified,
all datasets will be downloaded):
python Code/download_datasets.py --files D1 D2🏗️ Foundations of SHRED
The SHRED method was first proposed and developed in this paper:
- J. Williams, O. Zahn and J. N. Kutz, Sensing with shallow recurrent decoder networks, Proc. R. Soc. A, 2024
📌 The original code base is available here: github.com/Jan-Williams/pyshred.
This repository also builds upon a related implementation:
- Matteo Tomasetto, Jan P. Williams, Francesco Braghin, Andrea Manzoni, J. Nathan Kutz, Reduced Order Modeling with Shallow Recurrent Decoder Networks, Nature Communications, 2025
📌 Improvements for parametric datasets are available here (collaborative between Matteo Tomasetto and Stefano Riva): github.com/MatteoTomasetto/SHRED-ROM
Additionally, the pyforce package is used for sensor placements and EIM/GEIM comparison in P1. See: - Riva et al. (2024) - Cammi et al. (2024)
📂 Repository Structure
📁 shred/ → Modules for the implementation of the SHRED network from github.com/Jan-Williams/pyshred and github.com/MatteoTomasetto/SHRED-ROM
📁 Code/ → Subfolders corresponding to the applications of SHRED in nuclear reactor concepts, with datasets associated as follows:
| MSFR-ULOFF D1 | MSFR-ULOFF D2 | DYNASTY D3 | TRIGA D4 | LRA D5 | |
|---|---|---|---|---|---|
| P1 | ✅ | ||||
| P2 | ✅ | ||||
| P3 | ✅ | ||||
| P4 | ✅ | ||||
| P5 | ✅ |
▶️ How to Execute
1️⃣ Clone or download the repository.
2️⃣ Download the datasets and move them into the appropriate directory.
3️⃣ Install the required dependencies:
Base install:
bash pip install -r requirements.txt
P1 additionally requires an older
version of pyforce (not compatible with
v1.0.0), available at github.com/ERMETE-Lab/ROSE-pyforce
for some notebooks. For assistance running P1,
please contact stefano.riva@polimi.it directly.
P5 additionally requires FEniCSx
(dolfinx v0.10.0) and its dependencies (gmsh,
mpi4py, petsc4py,
ufl, basix, pyvista)
if you want to generate the data yourself. Install via
conda:
bash conda install -c conda-forge fenics-dolfinx=0.10.0 gmsh mpi4py pyvista
See the P5 README for
further details.
Note: All the SHRED-related code require the base
pip install -r requirements.txtonly.
Two simple tutorials are available in the
Tutorial/ folder for Kolmogorov 2D Flow for
single and multiparametric datasets, which can be executed
as Jupyter notebooks.
📬 Contact Information
For inquiries, please contact: 📧 stefano.riva@polimi.it, carolina.introini@polimi.it, antonio.cammi@polimi.it, kutz@uw.edu.
For issues or bugs, refer to the GitHub Issues section of this repository.
📊 Results
📌 Paper 1
| Fast Flux ϕ1 | Temperature T | Velocity u |
|---|---|---|
![]() |
![]() |
![]() |
📌 Paper 2
Out-Core Sensing (Fast Flux)
| Fast Flux ϕ1 | Temperature T | Velocity u | Precursors Group 1 c1 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Mobile Sensors (First Group of Precursors)
| Fast Flux ϕ1 | Temperature T | Velocity u | Precursors Group 1 c1 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Mobile Probes (only position measaured)
| Fast Flux ϕ1 | Temperature T | Velocity u | Precursors Group 1 c1 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
📌 Paper 3
| Case | Visualization |
|---|---|
| Parametric Verification | ![]() |
| Parametric Validation | ![]() |
| Prediction Validation | ![]() |
📌 Paper 4
| Temperature T | Velocity u |
|---|---|
![]() |
![]() |
📌 Paper 5




















