Boussinesq Sloping-Substratum Uniform-Recharge 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.

Steady synthetic groundwater-flow case used to validate one sloping substratum profile under uniform recharge.

Case Setup#

  • quasi-1D strip (40 x 5, single layer for launcher-backed runs),

  • linear topography from 25 m on the west side to 20 m on the east side,

  • linear substratum from 5 m on the west side to 0 m on the east side,

  • geometric aquifer thickness 20 m,

  • west/east heads 15 m / 5 m,

  • uniform recharge 1 mm/day, homogeneous K = 1e-4 m/s,

  • no drainage and no surface interception in the reference regime.

  • Available solver variants: MODFLOW-NWT, MODFLOW 6, MODFLOW 6 irregular triangles, Boussinesq.

What It Shows#

  • extend the sloping-substratum validation suite to a recharge-driven regime,

  • keep a simple linear hillslope geometry with fixed heads at both ends,

  • compare modflow_nwt, modflow6, modflow6_irregular_tri, and the local boussinesq backend against one deterministic semi-analytical reference built from the steady 1D Boussinesq balance on b(x).

  • Direct validation of the sloping-bottom term combined with uniform recharge on the same simple hillslope geometry

  • Primary metrics: head-profile RMSE, max abs error, cross-row spread.

  • Solver-specific figures and metrics are shown side by side so the same benchmark can be read across backends.

Analytical Reference#

  • compared quantity: row-averaged head profile along x,

  • reference: steady 1D sloping-substratum system dq/dx = R, db/dx = S0 - q / (K b) solved by shooting on the west discharge and RK4 integration of the thickness profile,

\[\frac{\mathrm{d}q}{\mathrm{d}x}=R,\qquad q(x)=q_w+R\left(x-x_{\min}\right)\]
\[\frac{\mathrm{d}b}{\mathrm{d}x}=S_0-\frac{q(x)}{K\,b(x)},\qquad S_0=-\frac{\mathrm{d}z_b}{\mathrm{d}x},\qquad H(x)=z_b(x)+b(x)\]

Solver Coverage#

  • Default solver: MODFLOW-NWT

  • Available variants: MODFLOW-NWT, MODFLOW 6, MODFLOW 6 irregular triangles, Boussinesq

Metrics - Head-profile RMSE: 0.0290 m - Head-profile max abs error: 0.0410 m - Cross-row head spread: 3.81e-07 m - Reference west discharge per width: 1.734e-05 m2/s - Reference east discharge per width: 2.196e-05 m2/s

  • Config file: validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflownwt.toml

  • Tolerances: validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances.toml

  • Expected shape: 5 x 40

python -m validation_cases.analytical.steady.boussinesq_sloping_substratum_uniform_recharge_1d.run_case --no-show --solver modflow_nwt

Metrics - Head-profile RMSE: 0.0091 m - Head-profile max abs error: 0.0125 m - Cross-row head spread: 3.85e-06 m - Reference west discharge per width: 1.734e-05 m2/s - Reference east discharge per width: 2.196e-05 m2/s

  • Config file: validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6.toml

  • Tolerances: validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances.toml

  • Expected shape: 5 x 40

python -m validation_cases.analytical.steady.boussinesq_sloping_substratum_uniform_recharge_1d.run_case --no-show --solver modflow6

Metrics - Head-profile RMSE: 0.0404 m - Head-profile max abs error: 0.0948 m - Cross-row head spread: 1.78e-15 m - Reference west discharge per width: 1.734e-05 m2/s - Reference east discharge per width: 2.196e-05 m2/s

  • Config file: validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6_irregular_tri.toml

  • Tolerances: validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances_modflow6_irregular_tri.toml

  • Expected shape: 5 x 40

python -m validation_cases.analytical.steady.boussinesq_sloping_substratum_uniform_recharge_1d.run_case --no-show --solver modflow6_irregular_tri

Metrics - Head-profile RMSE: 0.0542 m - Head-profile max abs error: 0.1421 m - Cross-row head spread: 1.78e-15 m - Reference west discharge per width: 1.734e-05 m2/s - Reference east discharge per width: 2.196e-05 m2/s

  • Config file: validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_boussinesq.toml

  • Tolerances: validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances_boussinesq.toml

  • Expected shape: 5 x 40

python -m validation_cases.analytical.steady.boussinesq_sloping_substratum_uniform_recharge_1d.run_case --no-show --solver boussinesq

Reproduce#

Run the underlying example or validation case with:

python -m validation_cases.analytical.steady.boussinesq_sloping_substratum_uniform_recharge_1d.run_case --no-show

Refresh the committed gallery artifacts with:

python -m tools.doc_gallery

Case Parameters#

Reference Parameters#

Field

Meaning

Value

Source

xmin

Minimum x coordinate of the analytical reference domain.

0

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

xmax

Maximum x coordinate of the analytical reference domain.

400

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

west_head

Fixed west-boundary hydraulic head used by the reference solution.

15 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

east_head

Fixed east-boundary hydraulic head used by the reference solution.

5 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

recharge_mm_day

Recharge rate used by the reference solution.

1 mm/day

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

topography_base_elevation_m

Base elevation used by the synthetic reference topography.

20 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

topography_right_to_left_amplitude_m

Right-to-left topographic amplitude used by the hillslope reference.

5 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

bottom_base_elevation_m

Base elevation used by the synthetic reference substratum.

0 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

bottom_right_to_left_amplitude_m

Right-to-left amplitude used by the synthetic reference substratum.

5 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

aquifer_thickness_m

Aquifer thickness used by the reference formulation.

20 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

hydraulic_conductivity_m_per_s

Hydraulic conductivity used by the analytical or benchmark reference.

0.0001 m/s

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

profile_axis

Axis along which the validation profile is extracted.

0

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

Common Numerical Setup#

Field

Meaning

Value

Source

workflow

Case-specific configuration field workflow used by the validation benchmark.

simulation

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

geographic.synthetic.grid.length_x

Synthetic-domain length along the x axis.

400.0 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

geographic.synthetic.grid.length_y

Synthetic-domain length along the y axis.

50.0 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

geographic.synthetic.grid.nx

Grid cell count along the x axis.

40

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

geographic.synthetic.grid.ny

Grid cell count along the y axis.

5

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

geographic.synthetic.topography.kind

Synthetic topography shape used by the benchmark.

linear

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

geographic.synthetic.topography.base_elevation

Base land-surface elevation of the synthetic topography.

20 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

geographic.synthetic.topography.right_to_left_amplitude

Right-to-left topographic amplitude used by the synthetic topography.

5

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

domain.depth_model.type

Depth model used to build the aquifer support.

constant_thickness

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

domain.depth_model.thickness

Aquifer or support thickness used by the benchmark.

20.0 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

flow.flow_regime

Steady or transient flow regime used by the benchmark.

steady

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

flow.active_sinks_sources

Sink and source families activated in the benchmark.

[recharge]

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

flow.active_bc

Boundary-condition families activated in the benchmark.

[west_side, east_side]

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

flow.param_list

Hydraulic parameter families explicitly configured by the benchmark.

[K]

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

flow.param.K.field.kind

Parameterization mode used for K.

homogeneous

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

flow.param.K.field.value

Homogeneous K value used by the benchmark.

1e-4 m/s

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

flow.ic.type

Initial-condition policy used to start the benchmark.

custom

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

flow.ic.value

Scalar initial head or top offset used by the initial-condition policy.

10.0 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

flow.bc.dirichlet.west_side.value

Fixed head applied on the west side boundary.

15.0 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

flow.bc.dirichlet.east_side.value

Fixed head applied on the east side boundary.

5.0 m

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

data.types

External data families loaded by the benchmark.

[recharge]

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

data.recharge.sources[0].source

Recharge data source mode used by the benchmark.

synthetic

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

data.recharge.sources[0].values

Recharge values used by the benchmark forcing.

[1 mm/day]

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

data.recharge.sources[0].runoff_ratio

Runoff ratio applied when converting recharge forcing to effective infiltration.

0

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

Solver-Specific Overrides#

Field

Meaning

Value

Source

modflownwt.sgrid.planar.mode

Planar support construction mode used by MODFLOW-NWT.

resample_to_shape

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflownwt.toml

modflownwt.sgrid.planar.nx

Planar support cell count along x used by MODFLOW-NWT.

40

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflownwt.toml

modflownwt.sgrid.planar.ny

Planar support cell count along y used by MODFLOW-NWT.

5

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflownwt.toml

modflownwt.sgrid.planar.resampling

Planar support resampling mode used by MODFLOW-NWT.

nearest

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflownwt.toml

modflownwt.sgrid.vertical.nlay

Number of vertical layers used by MODFLOW-NWT.

1

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflownwt.toml

Field

Meaning

Value

Source

modflow6.runtime.mf6_ims_complexity

Linear-solver complexity preset used by MODFLOW 6.

SIMPLE

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6.toml

modflow6.runtime.mf_verbose

Solver-specific override applied to MODFLOW 6.

false

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6.toml

modflow6.process_specific.vka

Vertical anisotropy ratio passed to MODFLOW 6.

1

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6.toml

modflow6.sgrid.planar.mode

Planar support construction mode used by MODFLOW 6.

resample_to_shape

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6.toml

modflow6.sgrid.planar.nx

Planar support cell count along x used by MODFLOW 6.

40

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6.toml

modflow6.sgrid.planar.ny

Planar support cell count along y used by MODFLOW 6.

5

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6.toml

modflow6.sgrid.planar.resampling

Planar support resampling mode used by MODFLOW 6.

nearest

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6.toml

modflow6.sgrid.vertical.nlay

Number of vertical layers used by MODFLOW 6.

1

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6.toml

Field

Meaning

Value

Source

modflow6.runtime.mf6_ims_complexity

Linear-solver complexity preset used by MODFLOW 6.

COMPLEX

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6_irregular_tri.toml

modflow6.runtime.mf_verbose

Solver-specific override applied to MODFLOW 6.

false

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6_irregular_tri.toml

modflow6.process_specific.vka

Vertical anisotropy ratio passed to MODFLOW 6.

1

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6_irregular_tri.toml

modflow6.sgrid.vertical.nlay

Number of vertical layers used by MODFLOW 6.

1

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6_irregular_tri.toml

mesh_input.mesh_path

Committed unstructured mesh file used by the irregular-mesh solver variant.

../../../shared/mesh_bundles/sloping_substratum_irregular_tri_400x50/mesh_2d.msh

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6_irregular_tri.toml

mesh_input.bundle_dir

Committed mesh-bundle directory used to recover support metadata for the irregular-mesh solver variant.

../../../shared/mesh_bundles/sloping_substratum_irregular_tri_400x50

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6_irregular_tri.toml

Field

Meaning

Value

Source

flow.runtime_backend

Runtime backend selected for the in-house solver.

petsc

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_boussinesq.toml

Acceptance Criteria#

Field

Meaning

Value

Source

output.observable_name

Simulated observable compared against the reference solution.

watertable_elevation

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

output.expected_shape

Expected spatial output shape checked by the validation helper.

[5, 40]

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

Acceptance Criteria by Solver#

Field

Meaning

Value

Source

expected_output

Expected output shape or time-space layout checked for this solver.

Expected shape: 5 x 40

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

head_profile.rmse

Maximum accepted root-mean-square error for head profile.

0.04

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances.toml

head_profile.max_abs_error

Maximum accepted absolute error for head profile.

0.05

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances.toml

head_profile.row_spread

Maximum accepted cross-row spread for head profile.

1e-05

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances.toml

Field

Meaning

Value

Source

expected_output

Expected output shape or time-space layout checked for this solver.

Expected shape: 5 x 40

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

head_profile.rmse

Maximum accepted root-mean-square error for head profile.

0.04

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances.toml

head_profile.max_abs_error

Maximum accepted absolute error for head profile.

0.05

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances.toml

head_profile.row_spread

Maximum accepted cross-row spread for head profile.

1e-05

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances.toml

Field

Meaning

Value

Source

expected_output

Expected output shape or time-space layout checked for this solver.

Expected shape: 5 x 40

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

head_profile.rmse

Maximum accepted root-mean-square error for head profile.

0.12

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances_modflow6_irregular_tri.toml

head_profile.max_abs_error

Maximum accepted absolute error for head profile.

0.25

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances_modflow6_irregular_tri.toml

head_profile.row_spread

Maximum accepted cross-row spread for head profile.

1e-09

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances_modflow6_irregular_tri.toml

Field

Meaning

Value

Source

expected_output

Expected output shape or time-space layout checked for this solver.

Expected shape: 5 x 40

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

head_profile.rmse

Maximum accepted root-mean-square error for head profile.

0.25

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances_boussinesq.toml

head_profile.max_abs_error

Maximum accepted absolute error for head profile.

0.35

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances_boussinesq.toml

head_profile.row_spread

Maximum accepted cross-row spread for head profile.

1e-05

validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances_boussinesq.toml

Source Pointers#

  • validation_cases/README.md

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/README.md

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/reference.py

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/comparison.py

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/plotting.py

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/run_case.py

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/metadata.toml

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_common.toml

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/runtime_boussinesq.py

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances.toml

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances_boussinesq.toml

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/tolerances_modflow6_irregular_tri.toml

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflownwt.toml

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6.toml

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_modflow6_irregular_tri.toml

  • validation_cases/analytical/steady/boussinesq_sloping_substratum_uniform_recharge_1d/config_boussinesq.toml

  • validation_cases/analytical/steady/boussinesq_sloping_substratum.py

  • validation_cases/shared/boussinesq_uniform_strip.py

Artifacts#

  • docs/source/_static/capability_gallery/validation/boussinesq_sloping_substratum_uniform_recharge_1d__modflownwt.png

  • docs/source/_static/capability_gallery/validation/boussinesq_sloping_substratum_uniform_recharge_1d__modflow6.png

  • docs/source/_static/capability_gallery/validation/boussinesq_sloping_substratum_uniform_recharge_1d__modflow6_irregular_tri.png

  • docs/source/_static/capability_gallery/validation/boussinesq_sloping_substratum_uniform_recharge_1d__boussinesq.png

  • docs/source/_static/capability_gallery/validation/boussinesq_sloping_substratum_uniform_recharge_1d_summary.json stores the displayed metrics plus source hashes used by python -m tools.doc_gallery --check.