odunbar commited on
Commit
c828b31
Β·
1 Parent(s): 7593ec0

framework for gboed

Browse files
CLAUDE.md CHANGED
@@ -72,6 +72,8 @@ calibration_benchmark/
72
  β”‚ β”‚ filenames follow `ces-eki-dmc_<benchmark-tag>_ensemble_results_<date>[_minimal].nc`;
73
  β”‚ β”‚ benchmark tags: `l63` β†’ L63, `l96` (no suffix) β†’ L96,
74
  β”‚ β”‚ `l96_nn_forcing` β†’ L96_NN_FORCING, `l96_spatial_forcing` β†’ L96_SPATIAL_FORCING
 
 
75
  β”‚ └── gnki-uq_results/ IEKF (a.k.a GNKI) ensemble-results files (UQ source)
76
  β”‚ filenames follow `leaderboard_gnki_<benchmark-tag>_<date>[_minimal].nc`;
77
  β”‚ benchmark tags: `l63` β†’ L63, `l96_const-force` β†’ L96,
@@ -191,6 +193,7 @@ A quick taxonomy tree is rendered on the home page (`src/streamlit_app.py`).
191
  | `ces-eki-dmc` | CES-EKI-DMC | parallel-interacting | kalman | uq | after-optimize | β€” |
192
  | `adam` | ADAM | serial | gradient | optimization | none | β€” |
193
  | `lm` | LM | serial | gradient | optimization | none | gradient_descent |
 
194
 
195
  ## How to extend
196
 
 
72
  β”‚ β”‚ filenames follow `ces-eki-dmc_<benchmark-tag>_ensemble_results_<date>[_minimal].nc`;
73
  β”‚ β”‚ benchmark tags: `l63` β†’ L63, `l96` (no suffix) β†’ L96,
74
  β”‚ β”‚ `l96_nn_forcing` β†’ L96_NN_FORCING, `l96_spatial_forcing` β†’ L96_SPATIAL_FORCING
75
+ β”‚ β”œβ”€β”€ gboed-uq_results/ GBOED ensemble-results files (UQ source; L63 only so far)
76
+ β”‚ β”‚ filenames follow `boed_<benchmark-tag>_ensemble_results_<date>[_minimal].nc`
77
  β”‚ └── gnki-uq_results/ IEKF (a.k.a GNKI) ensemble-results files (UQ source)
78
  β”‚ filenames follow `leaderboard_gnki_<benchmark-tag>_<date>[_minimal].nc`;
79
  β”‚ benchmark tags: `l63` β†’ L63, `l96_const-force` β†’ L96,
 
193
  | `ces-eki-dmc` | CES-EKI-DMC | parallel-interacting | kalman | uq | after-optimize | β€” |
194
  | `adam` | ADAM | serial | gradient | optimization | none | β€” |
195
  | `lm` | LM | serial | gradient | optimization | none | gradient_descent |
196
+ | `gboed` | GBOED | parallel-interacting | general | uq | within-optimize | boed |
197
 
198
  ## How to extend
199
 
src/common/method_registry.py CHANGED
@@ -134,6 +134,15 @@ KNOWN_METHODS = {
134
  "emulator_use": "none",
135
  "aliases": ["lm", "levenberg_marquardt", "levenberg-marquardt", "gradient_descent"],
136
  },
 
 
 
 
 
 
 
 
 
137
  }
138
 
139
 
@@ -142,6 +151,7 @@ KNOWN_METHODS = {
142
  _METHOD_PALETTE = [
143
  "#4c78a8", "#f58518", "#e45756", "#72b7b2", "#54a24b",
144
  "#eeca3b", "#b279a2", "#ff9da6", "#9d755d", "#bab0ac",
 
145
  ]
146
 
147
  # Stable abbreviation β†’ hex color mapping. Import this wherever Altair charts are built
 
134
  "emulator_use": "none",
135
  "aliases": ["lm", "levenberg_marquardt", "levenberg-marquardt", "gradient_descent"],
136
  },
137
+ "gboed": {
138
+ "abbreviation": "GBOED",
139
+ "Method": "Goal-oriented Bayesian Optimal Experimental Design",
140
+ "parallelism": "parallel-interacting",
141
+ "update_type": "general",
142
+ "method_goal": "uq",
143
+ "emulator_use": "within-optimize",
144
+ "aliases": ["gboed", "boed"],
145
+ },
146
  }
147
 
148
 
 
151
  _METHOD_PALETTE = [
152
  "#4c78a8", "#f58518", "#e45756", "#72b7b2", "#54a24b",
153
  "#eeca3b", "#b279a2", "#ff9da6", "#9d755d", "#bab0ac",
154
+ "#5254a3", "#8ca252",
155
  ]
156
 
157
  # Stable abbreviation β†’ hex color mapping. Import this wherever Altair charts are built
src/data_store.py CHANGED
@@ -93,6 +93,7 @@ UQ_BUDGET_FILES: dict[str, list[tuple[str, str]]] = {
93
  ("ces-eki-const", "ces-eki-const_results/ces-eki-const_l63_ensemble_results_2026-07-09_minimal.nc"),
94
  ("ces-iekf-const", "ces-iekf-const_results/ces-iekf-const_l63_ensemble_results_2026-07-17_minimal.nc"),
95
  ("hm", "history-matching-uq_results/history-matching_l63_ensemble_results_2026-07-20_minimal.nc"),
 
96
  ],
97
  "L96": [
98
  ("ces-eki-dmc", "ces-eki-dmc_results/ces-eki-dmc_l96_ensemble_results_2026-06-15_minimal.nc"),
 
93
  ("ces-eki-const", "ces-eki-const_results/ces-eki-const_l63_ensemble_results_2026-07-09_minimal.nc"),
94
  ("ces-iekf-const", "ces-iekf-const_results/ces-iekf-const_l63_ensemble_results_2026-07-17_minimal.nc"),
95
  ("hm", "history-matching-uq_results/history-matching_l63_ensemble_results_2026-07-20_minimal.nc"),
96
+ ("gboed", "gboed-uq_results/boed_l63_ensemble_results_2026-07-27_minimal.nc"),
97
  ],
98
  "L96": [
99
  ("ces-eki-dmc", "ces-eki-dmc_results/ces-eki-dmc_l96_ensemble_results_2026-06-15_minimal.nc"),
src/pages/MethodDetails.py CHANGED
@@ -94,6 +94,11 @@ method_meta = {
94
  "url": "https://doi.org/10.1090/qam/10666",
95
  "summary": "Levenberg-Marquardt β€” damped least-squares algorithm that interpolates between gradient descent and Gauss-Newton steps for efficient nonlinear least-squares minimization.",
96
  },
 
 
 
 
 
97
  }
98
 
99
  # Selection UI (defaults to query param if valid)
 
94
  "url": "https://doi.org/10.1090/qam/10666",
95
  "summary": "Levenberg-Marquardt β€” damped least-squares algorithm that interpolates between gradient descent and Gauss-Newton steps for efficient nonlinear least-squares minimization.",
96
  },
97
+ "GBOED": {
98
+ "citation": "Holthuijzen et al. 2026",
99
+ "url": "https://arxiv.org/abs/2508.13071",
100
+ "summary": "Goal-oriented Bayesian Optimal Experimental Design β€” selects each batch of forward-model evaluations by maximizing an expected-information-gain criterion targeted at the quantity of interest, refitting the surrogate used by the criterion at every iteration.",
101
+ },
102
  }
103
 
104
  # Selection UI (defaults to query param if valid)