Validation Benchmarks#

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.

These cases show how HydroModPy validates numerical behaviour against lightweight analytical references, with metrics that stay readable in a doc page.

See also

Read How to read gallery, comparison, and validation pages if you want a guided entry point before opening the case pages below.

Current Coverage#

  • Process families populated today: Flow (24).

  • Benchmark families: Core 1D Dupuit Baselines (3), Steady 1D Boussinesq with Heterogeneous Conductivity (3), Steady 1D Boussinesq with Topography or Sloping Substratum (6), Steady 2D Radial or Island Cases (2), Transient 1D Boundary or Recharge Forcing (5), Transient 1D Recession or Interception Dynamics (3), Transient 2D Radial Response (1), XT3D Choice For Irregular MF6 Meshes (1).

  • Reference styles: Analytical Exact (10), Analytical Series (11), Diagnostic Comparison (1), Semi-Analytical / Diagnostic (2).

  • Solver variants discovered: MODFLOW-NWT (21), MODFLOW 6 (21), MODFLOW 6 irregular triangles (21), Boussinesq (21).

Latest Batch Reports#

  • MODFLOW-NWT: 21/21 cases passed on 2026-05-02T17:32:36.764494+00:00 (848.5 s), report validation_cases/reports/latest/modflownwt_both.json.

  • MODFLOW 6: 21/21 cases passed on 2026-05-02T17:43:05.264506+00:00 (627.5 s), report validation_cases/reports/latest/modflow6_both.json.

  • MODFLOW 6 irregular triangles: 21/21 cases passed on 2026-05-03T16:18:34.893535+00:00 (522.2 s), report validation_cases/reports/latest/modflow6_irregular_tri_both.json.

  • MODFLOW 6 irregular triangles: 11/11 cases passed on 2026-05-02T00:31:05.408573+00:00 (168.9 s), report validation_cases/reports/latest/modflow6_irregular_tri_steady.json.

  • Boussinesq: 21/21 cases passed on 2026-05-06T07:41:24.118686+00:00 (659.8 s), report validation_cases/reports/latest/boussinesq_both.json.

Grouped Benchmarks#

The landing page is grouped by process family first, then by benchmark family. This keeps the current flow benchmarks readable and leaves room for future transport and particle-tracking validations.

Flow#

Core 1D Dupuit Baselines#

3 cases in this family.

Dupuit Divide-River 1D

Steady synthetic groundwater-flow case used to validate the launcher workflow against the Dupuit analytical profile for a homogeneous unconfined aquifer with:

Dupuit Divide-River 1D

Dupuit Fixed-Head 1D

Steady synthetic groundwater-flow case used to validate the launcher workflow against the Dupuit analytical profile for an unconfined aquifer with fixed heads at both ends.

Dupuit Fixed-Head 1D

Dupuit Uniform Recharge 1D

Steady synthetic groundwater-flow case used to validate the launcher workflow against the Dupuit analytical profile for a homogeneous unconfined aquifer with uniform recharge and fixed heads at both ends.

Dupuit Uniform Recharge 1D

Steady 1D Boussinesq with Heterogeneous Conductivity#

3 cases in this family.

Boussinesq Divide-Fixed-Head Piecewise-K 1D

Steady synthetic groundwater-flow case used to validate the launcher workflow against the exact 1D Boussinesq solution written on U = h^2 for an unconfined aquifer with:

Boussinesq Divide-Fixed-Head Piecewise-K 1D

Boussinesq Fixed-Head Piecewise-K 1D

Steady synthetic groundwater-flow case used to validate the launcher workflow against the exact 1D Boussinesq solution written on U = h^2 for an unconfined aquifer with:

Boussinesq Fixed-Head Piecewise-K 1D

Boussinesq Uniform-Recharge Piecewise-K 1D

Steady synthetic groundwater-flow case used to validate the launcher workflow against the exact 1D Boussinesq solution written on U = h^2 for an unconfined aquifer with:

Boussinesq Uniform-Recharge Piecewise-K 1D

Steady 1D Boussinesq with Topography or Sloping Substratum#

6 cases in this family.

Boussinesq Hillslope Interception 1D

Steady synthetic groundwater-flow case used to validate the PETSc VI obstacle flow/boussinesq runtime on a sloping hillslope where the water table reaches the land surface near the outlet.

Boussinesq Hillslope Interception 1D

Boussinesq Sloping-Substratum Constant-Thickness 1D

Steady synthetic groundwater-flow case used to validate the handling of one sloping impermeable bottom on the simplest exact Boussinesq profile.

Boussinesq Sloping-Substratum Constant-Thickness 1D

Boussinesq Sloping-Substratum Fixed-Head 1D

Steady synthetic groundwater-flow case used to validate one sloping substratum profile beyond the trivial constant-thickness solution.

Boussinesq Sloping-Substratum Fixed-Head 1D

Boussinesq Sloping-Substratum Uniform-Recharge 1D

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

Boussinesq Sloping-Substratum Uniform-Recharge 1D

Linearized Unconfined Drainage 1D

Steady synthetic groundwater-flow case used to validate HydroModPy’s top drainage boundary condition against a closed-form linearized 1D reference with:

Linearized Unconfined Drainage 1D

Linearized Unconfined Hillslope Drainage 1D

Steady synthetic groundwater-flow case used to validate one sloping-topography setup with distributed top drainage under the linearized unconfined model.

Linearized Unconfined Hillslope Drainage 1D

XT3D Choice For Irregular MF6 Meshes#

1 case in this family.

MODFLOW 6 Irregular Triangles: Why XT3D Is The Default

Pedagogical comparison of MODFLOW 6 irregular triangles with and without XT3D on the steady analytical strip benchmarks affected by the default change.

MODFLOW 6 Irregular Triangles: Why XT3D Is The Default

Steady 2D Radial or Island Cases#

2 cases in this family.

Boussinesq Circular-Island Piecewise-K 2D

Steady synthetic groundwater-flow case used to validate the launcher workflow against the axisymmetric Dupuit-Boussinesq solution for a circular island with:

Boussinesq Circular-Island Piecewise-K 2D

Dupuit Circular-Island Ocean 2D

Steady synthetic groundwater-flow case used to validate the launcher workflow against the axisymmetric Dupuit-Boussinesq solution for a circular island with:

Dupuit Circular-Island Ocean 2D

Transient 1D Boundary or Recharge Forcing#

5 cases in this family.

Linearized Unconfined Boundary Piecewise 1D

Transient synthetic groundwater-flow case used to validate the launcher workflow against the linearized unconfined analytical response for:

Linearized Unconfined Boundary Piecewise 1D

Linearized Unconfined 1D Boundary Step

This case validates the transient linearized Boussinesq-Dupuit response of an unconfined 1D aquifer submitted to a west-boundary head step at t = 0.

Linearized Unconfined 1D Boundary Step

Linearized Unconfined 1D Periodic Recharge

This case validates the transient linearized Boussinesq-Dupuit response of an unconfined 1D aquifer submitted to a sinusoidal recharge forcing.

Linearized Unconfined 1D Periodic Recharge

Linearized Unconfined 1D Recharge Step

This case validates the transient linearized Boussinesq-Dupuit response of an unconfined 1D aquifer submitted to a recharge step at t = 0.

Linearized Unconfined 1D Recharge Step

Linearized Unconfined 1D Recharge Step (Deep Aquifer)

Variant of the recharge-step transient benchmark with a deeper aquifer, so the linearization error remains smaller for the same recharge forcing.

Linearized Unconfined 1D Recharge Step (Deep Aquifer)

Transient 1D Recession or Interception Dynamics#

3 cases in this family.

Boussinesq Hillslope Recharge-Step Interception 1D

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.

Boussinesq Hillslope Recharge-Step Interception 1D

Brutsaert Recession Validation: Thin Nonlinear Aquifer

This transient validation case checks that the available modflow_nwt, modflow6, and PETSc boussinesq backends reproduce the nonlinear Brutsaert recession law on a thin aquifer.

Brutsaert Recession Validation: Thin Nonlinear Aquifer

Brutsaert Recession Validation: Deep Linearized Aquifer

This transient validation case checks that the available modflow_nwt, modflow6, and PETSc boussinesq backends reproduce the linearized Brutsaert recession law on a deep aquifer.

Brutsaert Recession Validation: Deep Linearized Aquifer

Transient 2D Radial Response#

1 case in this family.

Late-Time Unconfined Pumping 2D

This v1 case validates one transient non-confined pumping response in a pragmatic way.

Late-Time Unconfined Pumping 2D