This repository collects the codes regarding the application of the Shallow REcurrent Decoder (SHRED) method to Nuclear Reactors systems πβοΈ
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).
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 D2The 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:
π 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 | β |
1οΈβ£ Clone or download the repository.
2οΈβ£ Download the datasets and move them into the appropriate directory.
3οΈβ£ Install the required dependencies:
Base install:
pip install -r requirements.txtP1 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:
conda install -c conda-forge fenics-dolfinx=0.10.0 gmsh mpi4py pyvistaSee 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.
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.
| Fast Flux |
Temperature |
Velocity |
|---|---|---|
![]() |
![]() |
![]() |
Out-Core Sensing (Fast Flux)
| Fast Flux |
Temperature |
Velocity |
Precursors Group 1 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Mobile Sensors (First Group of Precursors)
| Fast Flux |
Temperature |
Velocity |
Precursors Group 1 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Mobile Probes (only position measaured)
| Fast Flux |
Temperature |
Velocity |
Precursors Group 1 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Case | Visualization |
|---|---|
| Parametric Verification | ![]() |
| Parametric Validation | ![]() |
| Prediction Validation | ![]() |
| Temperature |
Velocity |
|---|---|
![]() |
![]() |




















