Calibration Addressing Kappa Embedded Discrepancy with Uncertainty Propagation (CAKED-UP) is a Bayesian calibration framework for inexact computer models. The method combines Gaussian Process (GP) emulation, Bayesian inference, and orthogonal discrepancy projections to quantify:
- Calibration parameter uncertainty
- Model-form inadequacy
- Embedded input discrepancies
- Predictive uncertainty propagation
CAKED-UP is designed to streamline calibration workflows for simulation-based scientific and engineering models while supporting scalable workflows on both local machines and SLURM-based HPC systems.
- Bayesian calibration of computational models
- Gaussian Process emulators for simulations and discrepancies
- Orthogonalization between parameter discrepancy (
\kappa) and model discrepancy (\delta) - Cross-validation utilities
- Hyperparameter grid search with SLURM arrays
- Optuna-based hyperparameter optimization
- Automated post-processing and sensitivity analysis
- HPC-ready execution scripts
caked-up/
├── main.py
├── config.json
├── requirements.txt
├── sweep.py
├── post_process_sweep.py
├── submit_single.sbatch
├── run_array.sbatch
├── modelData/
├── observationData/
├── sensitivity_analysis/
├── optuna_hyperparameters/
└── ...
git clone <your-repo-url>
cd caked-upIt is recommended to use a dedicated virtual environment.
python3 -m venv venvActivate the environment:
source venv/bin/activatevenv\Scripts\activatepip install -r requirements.txtIf running on a SLURM-based cluster:
salloc ...module load anaconda3Then proceed with the virtual environment setup described above.
The config.json file provides the primary interface for configuring a calibration study.
It includes settings for:
- Number of MCMC samples (
N_mcmc) - GP hyperparameter priors
- Orthogonalization settings
- Noise assumptions
- Sampling controls
- Embedded discrepancy configuration
- Simulation/model data paths
- Observation/experimental data paths
- Known
\kappa(input discrepancy) forms - Known
\delta(model discrepancy) forms - Validation controls
- Diagnostic plots
- Saved posterior data
- Trained emulator models
- Post-processing outputs
CAKED-UP expects column-wise text files with one sample per row.
Example directory structure:
modelData/
├── appDomain.txt
├── modelPredictions.txt
└── thetaVals.txt
observationData/
├── appDomain.txt
└── observationData.txt
| File | Description |
|---|---|
appDomain.txt |
Physical input parameters |
modelPredictions.txt |
Simulation/model outputs |
thetaVals.txt |
Calibration parameter values |
| File | Description |
|---|---|
appDomain.txt |
Experimental physical inputs |
observationData.txt |
Experimental measurements |
Example datasets are included in the repository.
After configuring config.json and preparing the input datasets:
python3 main.py config.jsonTo submit a single calibration case:
sbatch submit_single.sbatchCAKED-UP includes a grid search workflow for studying the effects of GP shrinkage priors and discrepancy hyperparameters.
Modify sweep.py:
param_grid = {
"kappa_var": [0.01, 0.05, 0.1],
"kappa_ell": [0.2, 0.5],
"eta_var": [0.005, 0.01],
"eta_ell": [0.5, 1.0],
}python3 sweep.pyThis creates a configs/ directory containing all generated calibration cases.
sbatch run_array.sbatchpython3 post_process_sweep.pypython3 sensitivity_analysis/sensitivity_analysis.pyFor automated hyperparameter tuning, CAKED-UP supports optimization using the Optuna framework.
Edit:
optuna_hyperparameters/config_optuna.json
python3 optuna_hyperparameters/optuna_hyperparam.pyThis workflow calls the main calibration routine internally and assumes cross-validation is enabled in the global config.json.
The CAKED-UP framework:
- Constructs GP emulators for simulation outputs
- Represents embedded parameter discrepancies using
\kappa - Represents model-form discrepancies using
\delta - Orthogonalizes discrepancy spaces to reduce identifiability issues
- Performs Bayesian inference using MCMC sampling
- Propagates uncertainty through posterior predictive distributions
The orthogonalization procedure includes:
- Projection between discrepancy subspaces
- Jacobian evaluation across the application domain
- PCA-based dimensionality reduction and decorrelation
Typical outputs include:
- Posterior parameter distributions
- GP emulator diagnostics
- Predictive uncertainty bands
- Orthogonal basis diagnostics
- Cross-validation statistics
- Sensitivity analysis figures
- Hyperparameter sweep summaries
- Prepare simulation and observation datasets
- Configure
config.json - Run a baseline calibration
- Validate with cross-validation studies
- Perform hyperparameter sweeps or Optuna optimization
- Analyze posterior predictions and discrepancy structure
Planned improvements include:
- Expanded Optuna automation utilities
- Improved visualization tools
- Additional discrepancy kernels
- Multi-fidelity model support
- Enhanced HPC scalability
- Improved documentation and tutorials
If you use CAKED-UP in your research, please cite the associated methodology paper:
@article{myhill2026cakedup,
title={Shrinkage-Constrained Functional Calibration for Complex Computer Models},
author={Myhill, Liam and Martinez, Enrique and Russcher, Sez},
journal={arXiv preprint arXiv:2605.30492},
year={2026},
url={https://arxiv.org/abs/2605.30492}
}A machine-readable citation is also provided via the repository's CITATION.cff file. GitHub will automatically expose a "Cite this repository" button in the repository sidebar when the file is present.
Liam Myhill, Enrique Martinez, and Sez Russcher.
Shrinkage-Constrained Functional Calibration for Complex Computer Models.
arXiv:2605.30492 (2026)
https://arxiv.org/abs/2605.30492
Add your preferred license information here (MIT, BSD, GPL, etc.).
For questions, issues, or contributions, please open an issue or pull request on the repository.