Calibration Twin: Piecewise-K 1D#
Note
This page and its static assets are auto-generated by python -m tools.doc_gallery. The Sphinx build only reads committed PNG and JSON artifacts.
Same-solver twin benchmark on boussinesq_fixed_head_piecewise_k_1d with three zoned hydraulic-conductivity parameters and head/flux observables.
success_metric=distribution
meets_target=True
truth_recovered=False
cost=0.0451974
n_eval=48
calibration=16.22 s
candidate runtime=15.06 s
algorithm overhead=1.155 s
actualize=0 s
launcher prep=0 s
runtime patch=0 s
simulate=0.3138 s
output select=0 s
objective score=0 s
success_metric=distribution
meets_target=False
truth_recovered=False
cost=0.0289115
n_eval=48
calibration=15.98 s
candidate runtime=15.07 s
algorithm overhead=0.9074 s
actualize=0 s
launcher prep=0 s
runtime patch=0 s
simulate=0.3139 s
output select=0 s
objective score=0 s
success_metric=best_fit_or_distribution
meets_target=True
truth_recovered=True
cost=0.0211372
n_eval=48
calibration=15.97 s
candidate runtime=14.56 s
algorithm overhead=1.41 s
actualize=0 s
launcher prep=0 s
runtime patch=0 s
simulate=0.3034 s
output select=0 s
objective score=0 s
success_metric=best_fit
meets_target=False
truth_recovered=False
cost=0.0271745
n_eval=48
calibration=19.68 s
candidate runtime=18.18 s
algorithm overhead=1.502 s
actualize=0 s
launcher prep=0 s
runtime patch=0 s
simulate=0.3787 s
output select=0 s
objective score=0 s
success_metric=best_fit
meets_target=True
truth_recovered=True
cost=0.00225239
n_eval=48
calibration=22.09 s
candidate runtime=20.59 s
algorithm overhead=1.5 s
actualize=0 s
launcher prep=0 s
runtime patch=0 s
simulate=0.4289 s
output select=0 s
objective score=0 s
Case Setup#
Solver: modflow6 in steady regime.
Benchmark family: No-Uncertainty, Data-Rich Benchmarks.
Truth parameters: K_west, K_middle, K_east.
Observed outputs: head_west, head_middle, head_east, q_east.
Benchmarked methods: random_search, optuna, cma_es, scipy_nelder_mead.
Initial bounds widened to: K_west=[7.5e-05, 0.00035], K_middle=[1.5e-05, 0.00012], K_east=[3.5e-05, 0.000175].
What It Shows#
A same-solver twin experiment where synthetic observations are generated first, then recovered through calibration on the same physics stack.
A case-level configuration figure, an objective trace, and an objective landscape or pairwise projection for the selected display method.
Per-method timing diagnostics with total calibration time plus average per-model preparation, simulation, and objective-evaluation costs.
How To Read It#
Open case_configuration.png first to understand the parameter block, outputs, and weighting before reading the optimization figures.
Use objective_trace to judge convergence speed and objective_landscape to see where the evaluated candidates concentrate relative to the truth and the selected solution(s).
Read timing metrics as benchmark diagnostics, not as universal solver performance numbers: they depend on the chosen method, case size, and evaluation budget.
Key Metrics#
Methods: 4
Display method: random_search
Calibration total: 28.63 s
Session prep: 29.91 s
Candidate runtime: 28.21 s
Algorithm overhead: 0.4188 s
Model total: 0.5877 s
Actualize: 0.04864 s
Launcher prep: 0.04864 s
Runtime patch: 0 s
Model prep: 0.04864 s
Model sim: 0.5391 s
Output select: 0 s
Objective score: 0 s
Next Steps#
Compare this case with the other calibration gallery pages to see how deterministic and distribution-valued methods behave under different inverse problems.
Use the full benchmark suite in validation_cases/calibration when you need multi-seed comparisons or noisy variants beyond the curated gallery subset.
Reproduce#
Run the underlying example or validation case with:
python -m validation_cases.calibration.twin.steady.boussinesq_fixed_head_piecewise_k_1d.run_case
Refresh the committed gallery artifacts with:
python -m tools.doc_gallery
Case Parameters#
Benchmark Setup#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Solver family used both to generate synthetic observations and to calibrate candidates. |
modflow6 |
|
|
Flow regime exercised by the inverse benchmark. |
steady |
|
|
Observables extracted from each candidate simulation and used in the composite objective. |
head_west, head_middle, head_east, q_east |
|
|
Synthetic noise injected after the truth run, if any. |
none |
|
|
Approximate per-method evaluation budget used by the gallery generator when set. |
48 |
|
Calibrated Parameters#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Truth value, initial search interval, and acceptance tolerance for this calibrated parameter. |
truth=0.0002, bounds=7.5e-05, 0.00035, tolerance=2.5e-05 |
|
|
Truth value, initial search interval, and acceptance tolerance for this calibrated parameter. |
truth=5e-05, bounds=1.5e-05, 0.00012, tolerance=1.5e-05 |
|
|
Truth value, initial search interval, and acceptance tolerance for this calibrated parameter. |
truth=0.0001, bounds=3.5e-05, 0.000175, tolerance=1.5e-05 |
|
Methods And Timing#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Method result summary including target status, evaluation count, total time, and mean per-model actualize / launcher / simulation / objective timings. |
meets_target=true, cost=0.0451974, n_eval=48, calib_s=28.6294, candidate_runtime_s=28.2106, algorithm_overhead_s=0.418823, actualize_s=0.048637, launcher_prep_s=0.048637, runtime_patch_s=0, model_sim_s=0.539083, output_select_s=0, objective_score_s=0 |
|
|
Method result summary including target status, evaluation count, total time, and mean per-model actualize / launcher / simulation / objective timings. |
meets_target=false, cost=0.0289115, n_eval=48, calib_s=28.6542, candidate_runtime_s=28.2163, algorithm_overhead_s=0.437941, actualize_s=0.0499307, launcher_prep_s=0.0499307, runtime_patch_s=0, model_sim_s=0.537909, output_select_s=0, objective_score_s=0 |
|
|
Method result summary including target status, evaluation count, total time, and mean per-model actualize / launcher / simulation / objective timings. |
meets_target=false, cost=0.0271745, n_eval=48, calib_s=27.906, candidate_runtime_s=27.3996, algorithm_overhead_s=0.506364, actualize_s=0.049943, launcher_prep_s=0.049943, runtime_patch_s=0, model_sim_s=0.520882, output_select_s=0, objective_score_s=0 |
|
|
Method result summary including target status, evaluation count, total time, and mean per-model actualize / launcher / simulation / objective timings. |
meets_target=true, cost=0.00225239, n_eval=48, calib_s=31.7126, candidate_runtime_s=31.2475, algorithm_overhead_s=0.465106, actualize_s=0.0544934, launcher_prep_s=0.0544934, runtime_patch_s=0, model_sim_s=0.596497, output_select_s=0, objective_score_s=0 |
|
Displayed Metrics#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Metric surfaced on the gallery page for the selected display method. |
4 |
|
|
Metric surfaced on the gallery page for the selected display method. |
random_search |
|
|
Metric surfaced on the gallery page for the selected display method. |
28.63 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
29.91 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
28.21 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
0.4188 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
0.5877 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
0.04864 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
0.04864 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
0 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
0.04864 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
0.5391 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
0 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
0 s |
|
Source Pointers#
validation_cases/calibration/README.mdvalidation_cases/calibration/run_benchmarks.pyvalidation_cases/calibration/plotting.pyvalidation_cases/calibration/shared/definitions.pyvalidation_cases/calibration/shared/runtime.pyvalidation_cases/calibration/twin/steady/boussinesq_fixed_head_piecewise_k_1d/run_case.pyvalidation_cases/calibration/twin/steady/boussinesq_fixed_head_piecewise_k_1d/experiment.pyhydromodpy/calibration/cli.pyhydromodpy/calibration/engine.py
Artifacts#
docs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_boussinesq_fixed_head_piecewise_k_modflow6__configuration.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_boussinesq_fixed_head_piecewise_k_modflow6__random_search_seed017_landscape.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_boussinesq_fixed_head_piecewise_k_modflow6__random_search_seed017_trace.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_boussinesq_fixed_head_piecewise_k_modflow6__random_search_seed029_landscape.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_boussinesq_fixed_head_piecewise_k_modflow6__random_search_seed029_trace.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_boussinesq_fixed_head_piecewise_k_modflow6__cma_es_landscape.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_boussinesq_fixed_head_piecewise_k_modflow6__cma_es_trace.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_boussinesq_fixed_head_piecewise_k_modflow6__simplex_landscape.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_boussinesq_fixed_head_piecewise_k_modflow6__simplex_trace.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_boussinesq_fixed_head_piecewise_k_modflow6_summary.jsonstores the displayed metrics plus source hashes used bypython -m tools.doc_gallery --check.