Supplementary code to replicate key experiments from our
paper.
The code computes confidence intervals for the Finite Volume Neural Network (FINN), a physics-aware ML model that learns unknown parts of a PDE (here, the retardation function of a diffusion-sorption model). The workflow has four steps:
1. Train FINN on the observations.
2. Learn an empirical error model of the residuals with PI3NN (prediction intervals from three neural networks), giving a set of quantiles.
3. Resample new datasets from these quantiles via data-driven bootstrapping (DDB).
4. Train a new instance of FINN on every bootstrap dataset.
The resulting confidence intervals are compared against credible intervals from MCMC. Two case studies are included:
Experimental data: diffusion-sorption of trichloroethylene (TCE) in clay, from three laboratory column experiments. Core 2 is used for training; Core 1 and Core 2B serve as validation with breakthrough curves and concentration profiles. Pre-computed MCMC reference samples are included. Synthetic data: Burgers' equation, with in-distribution and out-of-distribution test sets. DDB is compared with parametric bootstrapping (PB).
All input data are part of the repository (in/, ~31 MB). The method components are in src/finn, src/pi3nn and src/ddb, with synth_* counterparts for the synthetic case. Settings are defined in each component's config.py.
Reproduction: Install with pip install . (Python ≥ 3.13). Then run src/run_uq.ipynb and src/run_uq_synth.ipynb to train all models, and plots_results.ipynb, plots_results_synth.ipynb and plots_runtime.ipynb to create the paper figures. (2026-05-07)