Calibration Twin: Recharge-Step Flux-Only K+Sy 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 noisy twin benchmark on linearized_unconfined_recharge_step_1d with K+Sy, flux-only outlet observations, and deliberately weak identifiability.
success_metric=best_fit_or_distribution
meets_target=True
truth_recovered=False
cost=0.410218
n_eval=24
calibration=31.46 s
candidate runtime=31.1 s
algorithm overhead=0.3578 s
actualize=0 s
launcher prep=0 s
runtime patch=0 s
simulate=1.296 s
output select=0 s
objective score=0 s
success_metric=best_fit_or_distribution
meets_target=True
truth_recovered=False
cost=0.407764
n_eval=48
calibration=105.2 s
candidate runtime=103.3 s
algorithm overhead=1.859 s
actualize=0 s
launcher prep=0 s
runtime patch=0 s
simulate=2.152 s
output select=0 s
objective score=0 s
success_metric=best_fit
meets_target=False
truth_recovered=False
cost=0.407793
n_eval=56
calibration=125.9 s
candidate runtime=124.3 s
algorithm overhead=1.554 s
actualize=0 s
launcher prep=0 s
runtime patch=0 s
simulate=2.221 s
output select=0 s
objective score=0 s
success_metric=best_fit
meets_target=False
truth_recovered=False
cost=0.407768
n_eval=16
calibration=26.37 s
candidate runtime=26.04 s
algorithm overhead=0.331 s
actualize=0 s
launcher prep=0 s
runtime patch=0 s
simulate=1.627 s
output select=0 s
objective score=0 s
success_metric=best_fit_or_distribution
meets_target=True
truth_recovered=True
cost=0.415671
n_eval=20
calibration=56.85 s
candidate runtime=37.88 s
algorithm overhead=18.96 s
actualize=0 s
launcher prep=0 s
runtime patch=0 s
simulate=1.894 s
output select=0 s
objective score=0 s
success_metric=best_fit_or_distribution
meets_target=True
truth_recovered=False
cost=0.649032
n_eval=12
posterior_samples=12
calibration=23.3 s
candidate runtime=22.74 s
algorithm overhead=0.5585 s
actualize=0 s
launcher prep=0 s
runtime patch=0 s
simulate=1.895 s
output select=0 s
objective score=0 s
Case Setup#
Solver: modflow6 in transient regime.
Benchmark family: Uncertain, Sparse-Data Benchmarks.
Truth parameters: K_global, Sy_global.
Observed outputs: q_east.
Benchmarked methods: random_search, optuna, cma_es, scipy_nelder_mead, gp_mapping, da_mh_gp.
Initial bounds widened to: K_global=[5e-05, 0.0003], Sy_global=[0.04, 0.18].
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: 5
Display method: da_mh_gp
Posterior samples: 140
Calibration total: 383.3 s
Session prep: 384.5 s
Candidate runtime: 363.5 s
Algorithm overhead: 19.84 s
Model total: 2.596 s
Actualize: 0.1584 s
Launcher prep: 0.1584 s
Runtime patch: 0 s
Model prep: 0.1584 s
Model sim: 2.438 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.transient.linearized_unconfined_recharge_step_1d.run_case --case flux_only_noisy
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. |
transient |
|
|
Observables extracted from each candidate simulation and used in the composite objective. |
q_east |
|
|
Synthetic noise injected after the truth run, if any. |
relative q_east=0.05; seed=31 |
|
|
Any deliberate mismatch between truth generation and calibration setup. |
Only the outlet flux time series is observed; no head data are used, and 5% relative noise is added to strengthen the weakly constrained inverse setting. |
|
Calibrated Parameters#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Truth value, initial search interval, and acceptance tolerance for this calibrated parameter. |
truth=0.0001, bounds=5e-05, 0.0003, tolerance=2e-05 |
|
|
Truth value, initial search interval, and acceptance tolerance for this calibrated parameter. |
truth=0.1, bounds=0.04, 0.18, tolerance=0.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.410218, n_eval=24, calib_s=36.4947, candidate_runtime_s=36.2963, algorithm_overhead_s=0.198431, actualize_s=0.0784446, launcher_prep_s=0.0784446, runtime_patch_s=0, model_sim_s=1.4339, 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.407793, n_eval=56, calib_s=77.0399, candidate_runtime_s=76.6184, algorithm_overhead_s=0.421502, actualize_s=0.0691418, launcher_prep_s=0.0691418, runtime_patch_s=0, model_sim_s=1.29904, 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.407768, n_eval=16, calib_s=29.1811, candidate_runtime_s=29.0434, algorithm_overhead_s=0.137763, actualize_s=0.106476, launcher_prep_s=0.106476, runtime_patch_s=0, model_sim_s=1.70874, 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.410619, n_eval=20, calib_s=52.4479, candidate_runtime_s=41.2383, algorithm_overhead_s=11.2096, actualize_s=0.145772, launcher_prep_s=0.145772, runtime_patch_s=0, model_sim_s=1.91614, 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.649032, n_eval=140, posterior_samples=140, calib_s=383.292, candidate_runtime_s=363.457, algorithm_overhead_s=19.8351, actualize_s=0.158424, launcher_prep_s=0.158424, runtime_patch_s=0, model_sim_s=2.43769, 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. |
5 |
|
|
Metric surfaced on the gallery page for the selected display method. |
da_mh_gp |
|
|
Metric surfaced on the gallery page for the selected display method. |
140 |
|
|
Metric surfaced on the gallery page for the selected display method. |
383.3 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
384.5 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
363.5 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
19.84 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
2.596 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
0.1584 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
0.1584 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.1584 s |
|
|
Metric surfaced on the gallery page for the selected display method. |
2.438 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/transient/linearized_unconfined_recharge_step_1d/run_case.pyvalidation_cases/calibration/twin/transient/linearized_unconfined_recharge_step_1d/experiment.pyhydromodpy/calibration/cli.pyhydromodpy/calibration/engine.py
Artifacts#
docs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6__configuration.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6__random_search_landscape.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6__random_search_trace.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6__cma_es_landscape.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6__cma_es_trace.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6__simplex_landscape.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6__simplex_trace.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6__gp_mapping_landscape.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6__gp_mapping_trace.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6__da_mh_gp_landscape.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6__da_mh_gp_trace.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6__da_mh_gp_posterior.pngdocs/readthedocs/source/_static/capability_gallery/calibration/calibration_twin_linearized_recharge_step_flux_only_noisy_modflow6_summary.jsonstores the displayed metrics plus source hashes used bypython -m tools.doc_gallery --check.