Boussinesq Hillslope Recharge-Step Interception 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.
Transient synthetic groundwater-flow case used to validate the dense in-house flow/boussinesq runtime on a sloping hillslope where a recharge step causes an interception zone to appear progressively from the outlet toward the divide.
Case Setup#
same sloping strip geometry as the steady interception benchmark (40 x 3),
linear topography from 10 m to 5 m,
flat bottom at 0 m,
initial state: constant head 5 m,
east fixed head 5 m,
recharge step to 2 mm/day from the first transient period,
12 periods of 10 days.
Available solver variants: Boussinesq.
What It Shows#
validate the transient onset of interception on a topographic slope,
compare the time of first inland interception against a linearized approximation,
compare the discrete interception trajectory x_int(t) on the early-moving front where the approximation remains informative.
Transient appearance of seepage/interception on a hillslope with the PETSc TS VI Boussinesq runtime
Primary metrics: onset-time error, interception-trajectory RMSE, interception-trajectory max abs error, cross-row spread.
Analytical Reference#
Linearized onset approximation for the moving interception front
Solver Coverage#
Default solver: Boussinesq
Available variants: Boussinesq

Metrics - Analytical onset time: 60.0 d - Numerical onset time: 70.0 d - Onset-time error: 10.0 d - Interception-trajectory RMSE: 5.00 m - Interception-trajectory max abs error: 10.00 m - Trajectory reversal: 0.00e+00 m - Cross-row head spread: 8.88e-16 m
Config file:
validation_cases/analytical/transient/boussinesq_hillslope_recharge_step_interception_1d/config_boussinesq.tomlTolerances:
validation_cases/analytical/transient/boussinesq_hillslope_recharge_step_interception_1d/tolerances.tomlExpected output: 12 periods, spatial shape 3 x 40
python -m validation_cases.analytical.transient.boussinesq_hillslope_recharge_step_interception_1d.run_case --no-show
Reproduce#
Run the underlying example or validation case with:
python -m validation_cases.analytical.transient.boussinesq_hillslope_recharge_step_interception_1d.run_case --no-show
Refresh the committed gallery artifacts with:
python -m tools.doc_gallery
Case Parameters#
Reference Parameters#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Minimum x coordinate of the analytical reference domain. |
0 |
|
|
Maximum x coordinate of the analytical reference domain. |
400 |
|
|
Baseline hydraulic head around which the linearized reference is expressed. |
5 m |
|
|
Toe elevation used by the hillslope reference geometry. |
5 m |
|
|
Topographic slope used by the hillslope reference. |
0.0125 m |
|
|
Recharge rate used by the reference solution. |
2 mm/day |
|
|
Hydraulic conductivity used by the analytical or benchmark reference. |
0.0001 m/s |
|
|
Reference saturated thickness used by the linearized formulation. |
5 m |
|
|
Specific yield used by the transient reference formulation. |
0.1 - |
|
|
Axis along which the validation profile is extracted. |
0 |
|
|
Tolerance used when comparing the numerical contact or interception position. |
0.075 m |
|
|
x threshold used to detect inland contact in the reference solution. |
385 m |
|
|
Number of terms retained in the analytical series expansion. |
400 |
|
|
Reference time step used by the analytical evaluator. |
864000 s |
|
Solver-Specific Overrides#
No additional override beyond the common validation setup.
Acceptance Criteria#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Simulated observable compared against the reference solution. |
watertable_elevation |
|
|
Expected number of stored time periods checked by the validation helper. |
12 |
|
|
Expected spatial shape for each stored time step. |
[3, 40] |
|
Acceptance Criteria by Solver#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Expected output shape or time-space layout checked for this solver. |
Expected output: 12 periods, spatial shape 3 x 40 |
|
|
Acceptance threshold for onset.time_error_days. |
31 days |
|
|
Acceptance threshold for trajectory.rmse_m. |
9 m |
|
|
Acceptance threshold for trajectory.max_abs_error_m. |
21 m |
|
|
Acceptance threshold for trajectory.reversal_m. |
1e-06 m |
|
|
Maximum accepted cross-row spread for uniformity. |
0.0001 |
|
|
Acceptance threshold for contact.max_positive_clearance_m. |
1e-06 m |
|
Source Pointers#
validation_cases/README.mdvalidation_cases/analytical/transient/boussinesq_hillslope_recharge_step_interception_1d/README.mdvalidation_cases/analytical/transient/boussinesq_hillslope_recharge_step_interception_1d/reference.pyvalidation_cases/analytical/transient/boussinesq_hillslope_recharge_step_interception_1d/comparison.pyvalidation_cases/analytical/transient/boussinesq_hillslope_recharge_step_interception_1d/plotting.pyvalidation_cases/analytical/transient/boussinesq_hillslope_recharge_step_interception_1d/run_case.pyvalidation_cases/analytical/transient/boussinesq_hillslope_recharge_step_interception_1d/metadata.tomlvalidation_cases/analytical/transient/boussinesq_hillslope_recharge_step_interception_1d/runtime_boussinesq.pyvalidation_cases/analytical/transient/boussinesq_hillslope_recharge_step_interception_1d/tolerances.tomlvalidation_cases/analytical/transient/boussinesq_hillslope_recharge_step_interception_1d/config_boussinesq.tomlvalidation_cases/analytical/transient/linearized_unconfined_1d.py
Artifacts#
docs/source/_static/capability_gallery/validation/boussinesq_hillslope_recharge_step_interception_1d__boussinesq.pngdocs/source/_static/capability_gallery/validation/boussinesq_hillslope_recharge_step_interception_1d_summary.jsonstores the displayed metrics plus source hashes used bypython -m tools.doc_gallery --check.