Late-Time Unconfined Pumping 2D#
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.
This v1 case validates one transient non-confined pumping response in a pragmatic way.
Case Setup#
geometry: square Cartesian grid (101 x 101, single layer),
flow regime: transient unconfined flow,
all outer boundaries: fixed at the initial head,
initial condition: uniform 30.0 m,
forcing: one constant pumping well at the domain center,
simulated observable: watertable_elevation.
Available solver variants: MODFLOW-NWT, MODFLOW 6, MODFLOW 6 irregular triangles, Boussinesq.
What It Shows#
Transient well forcing, late-time radial drawdown scaling, and numerical radial symmetry around the well
Primary metrics: space-time RMSE, space-time max abs error, final-time RMSE, final-time max abs error, azimuthal spread.
Solver-specific figures and metrics are shown side by side so the same benchmark can be read across backends.
Analytical Reference#
the numerical model is non-confined,
the analytical reference is intentionally limited to the late-time regime,
drawdown is compared against the Theis well function using T = K * href and S = Sy,
early delayed-yield effects are excluded from the comparison window.
Solver Coverage#
Default solver: MODFLOW-NWT
Available variants: MODFLOW-NWT, MODFLOW 6, MODFLOW 6 irregular triangles, Boussinesq

Metrics - Space-time RMSE: 0.0113 m - Space-time max abs error: 0.0624 m - Final-time RMSE: 0.0053 m - Azimuthal spread: 1.91e-06 m
Config file:
validation_cases/analytical/transient/late_time_unconfined_pumping_2d/config_modflownwt.tomlTolerances:
validation_cases/analytical/transient/late_time_unconfined_pumping_2d/tolerances.tomlExpected output: 30 periods, spatial shape 101 x 101
python -m validation_cases.analytical.transient.late_time_unconfined_pumping_2d.run_case --no-show --solver modflow_nwt

Metrics - Space-time RMSE: 0.0114 m - Space-time max abs error: 0.0623 m - Final-time RMSE: 0.0057 m - Azimuthal spread: 1.96e-07 m
Config file:
validation_cases/analytical/transient/late_time_unconfined_pumping_2d/config_modflow6.tomlTolerances:
validation_cases/analytical/transient/late_time_unconfined_pumping_2d/tolerances_modflow6.tomlExpected output: 30 periods, spatial shape 101 x 101
python -m validation_cases.analytical.transient.late_time_unconfined_pumping_2d.run_case --no-show --solver modflow6

Metrics - Space-time RMSE: 0.0134 m - Space-time max abs error: 0.0567 m - Final-time RMSE: 0.0084 m - Azimuthal spread: 8.83e-02 m
Config file:
validation_cases/analytical/transient/late_time_unconfined_pumping_2d/config_modflow6_irregular_tri.tomlTolerances:
validation_cases/analytical/transient/late_time_unconfined_pumping_2d/tolerances_modflow6_irregular_tri.tomlExpected output: 30 periods, spatial shape 101 x 101
python -m validation_cases.analytical.transient.late_time_unconfined_pumping_2d.run_case --no-show --solver modflow6_irregular_tri

Metrics - Space-time RMSE: 0.0645 m - Space-time max abs error: 0.0973 m - Final-time RMSE: 0.0706 m - Azimuthal spread: 1.36e-01 m
Config file:
validation_cases/analytical/transient/late_time_unconfined_pumping_2d/config_boussinesq.tomlTolerances:
validation_cases/analytical/transient/late_time_unconfined_pumping_2d/tolerances_boussinesq.tomlExpected output: 30 periods, spatial shape 101 x 101
python -m validation_cases.analytical.transient.late_time_unconfined_pumping_2d.run_case --no-show --solver boussinesq
Reproduce#
Run the underlying example or validation case with:
python -m validation_cases.analytical.transient.late_time_unconfined_pumping_2d.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. |
2000 |
|
|
Minimum y coordinate of the analytical reference domain. |
0 |
|
|
Maximum y coordinate of the analytical reference domain. |
2000 |
|
|
Reference x coordinate of the domain centre or pumping location. |
1000 m |
|
|
Reference y coordinate of the domain centre or pumping location. |
1000 m |
|
|
Baseline hydraulic head around which the linearized reference is expressed. |
30 m |
|
|
Hydraulic conductivity used by the analytical or benchmark reference. |
0.0001 m/s |
|
|
Reference saturated thickness used by the linearized formulation. |
30 m |
|
|
Specific yield used by the transient reference formulation. |
0.15 - |
|
|
Pumping rate used by the radial pumping reference. |
1000 m3/day |
|
|
Start day retained when comparing the numerical and reference time series. |
4 |
|
|
Reference time step used by the analytical evaluator. |
43200 s |
|
Common Numerical Setup#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Case-specific configuration field workflow used by the validation benchmark. |
simulation |
|
|
Simulation start time used by the benchmark. |
2003-01-01 00:00:00 |
|
|
Simulation end time used by the benchmark. |
2003-01-15 23:00:00 |
|
|
Nominal time step used by the benchmark. |
12 hour |
|
|
Synthetic-domain length along the x axis. |
2000.0 m |
|
|
Synthetic-domain length along the y axis. |
2000.0 m |
|
|
Grid cell count along the x axis. |
101 |
|
|
Grid cell count along the y axis. |
101 |
|
|
Synthetic topography shape used by the benchmark. |
flat |
|
|
Base land-surface elevation of the synthetic topography. |
40 m |
|
|
Depth model used to build the aquifer support. |
constant_thickness |
|
|
Aquifer or support thickness used by the benchmark. |
40.0 m |
|
|
Steady or transient flow regime used by the benchmark. |
transient |
|
|
Sink and source families activated in the benchmark. |
[wells] |
|
|
Boundary-condition families activated in the benchmark. |
[west_side, east_side, north_side, south_side] |
|
|
Hydraulic parameter families explicitly configured by the benchmark. |
[K, Ss, Sy] |
|
|
Parameterization mode used for K. |
homogeneous |
|
|
Homogeneous K value used by the benchmark. |
1e-4 m/s |
|
|
Parameterization mode used for Ss. |
homogeneous |
|
|
Homogeneous Ss value used by the benchmark. |
1e-5 m-1 |
|
|
Parameterization mode used for Sy. |
homogeneous |
|
|
Homogeneous Sy value used by the benchmark. |
0.15 - |
|
|
Initial-condition policy used to start the benchmark. |
custom |
|
|
Scalar initial head or top offset used by the initial-condition policy. |
30.0 m |
|
|
Fixed head applied on the west side boundary. |
30.0 m |
|
|
Fixed head applied on the east side boundary. |
30.0 m |
|
|
Fixed head applied on the north side boundary. |
30.0 m |
|
|
Fixed head applied on the south side boundary. |
30.0 m |
|
|
Cell index used by pumping well P1. |
[0, 50, 50] |
|
|
Units used by pumping well P1 forcing. |
m3/day |
|
|
Short description of pumping well P1. |
Central pumping well |
|
|
Forcing mode used by pumping well P1. |
constant |
|
|
Forcing value applied to pumping well P1. |
-1000 |
|
Solver-Specific Overrides#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Planar support construction mode used by MODFLOW-NWT. |
resample_to_shape |
|
|
Planar support cell count along x used by MODFLOW-NWT. |
101 |
|
|
Planar support cell count along y used by MODFLOW-NWT. |
101 |
|
|
Planar support resampling mode used by MODFLOW-NWT. |
nearest |
|
|
Number of vertical layers used by MODFLOW-NWT. |
1 |
|
|
Whether the first time period is treated as steady by MODFLOW-NWT. |
false |
|
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Solver-specific override applied to MODFLOW 6. |
false |
|
|
Linear-solver complexity preset used by MODFLOW 6. |
COMPLEX |
|
|
Planar support construction mode used by MODFLOW 6. |
resample_to_shape |
|
|
Planar support cell count along x used by MODFLOW 6. |
101 |
|
|
Planar support cell count along y used by MODFLOW 6. |
101 |
|
|
Planar support resampling mode used by MODFLOW 6. |
nearest |
|
|
Number of vertical layers used by MODFLOW 6. |
1 |
|
|
Whether the first time period is treated as steady by MODFLOW 6. |
false |
|
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Solver-specific override applied to MODFLOW 6. |
false |
|
|
Linear-solver complexity preset used by MODFLOW 6. |
COMPLEX |
|
|
Vertical anisotropy ratio passed to MODFLOW 6. |
1 |
|
|
Number of vertical layers used by MODFLOW 6. |
1 |
|
|
Whether the first time period is treated as steady by MODFLOW 6. |
false |
|
|
Committed unstructured mesh file used by the irregular-mesh solver variant. |
../../../shared/mesh_bundles/late_time_unconfined_pumping_irregular_tri_refined_center/mesh_2d.msh |
|
|
Committed mesh-bundle directory used to recover support metadata for the irregular-mesh solver variant. |
../../../shared/mesh_bundles/late_time_unconfined_pumping_irregular_tri_refined_center |
|
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Runtime backend selected for the in-house solver. |
petsc |
|
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. |
30 |
|
|
Expected spatial shape for each stored time step. |
[101, 101] |
|
Acceptance Criteria by Solver#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Expected output shape or time-space layout checked for this solver. |
Expected output: 30 periods, spatial shape 101 x 101 |
|
|
Maximum accepted root-mean-square error for space time. |
0.03 |
|
|
Maximum accepted absolute error for space time. |
0.08 |
|
|
Acceptance threshold for space_time.azimuthal_spread. |
0.0005 |
|
|
Maximum accepted root-mean-square error for final time. |
0.02 |
|
|
Maximum accepted absolute error for final time. |
0.03 |
|
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Expected output shape or time-space layout checked for this solver. |
Expected output: 30 periods, spatial shape 101 x 101 |
|
|
Maximum accepted root-mean-square error for space time. |
0.015 |
|
|
Maximum accepted absolute error for space time. |
0.07 |
|
|
Acceptance threshold for space_time.azimuthal_spread. |
1e-05 |
|
|
Maximum accepted root-mean-square error for final time. |
0.008 |
|
|
Maximum accepted absolute error for final time. |
0.015 |
|
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Expected output shape or time-space layout checked for this solver. |
Expected output: 30 periods, spatial shape 101 x 101 |
|
|
Maximum accepted root-mean-square error for space time. |
0.03 |
|
|
Maximum accepted absolute error for space time. |
0.08 |
|
|
Acceptance threshold for space_time.azimuthal_spread. |
0.1 |
|
|
Maximum accepted root-mean-square error for final time. |
0.02 |
|
|
Maximum accepted absolute error for final time. |
0.03 |
|
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Expected output shape or time-space layout checked for this solver. |
Expected output: 30 periods, spatial shape 101 x 101 |
|
|
Maximum accepted root-mean-square error for space time. |
0.1 |
|
|
Maximum accepted absolute error for space time. |
0.12 |
|
|
Acceptance threshold for space_time.azimuthal_spread. |
0.15 |
|
|
Maximum accepted root-mean-square error for final time. |
0.1 |
|
|
Maximum accepted absolute error for final time. |
0.12 |
|
Source Pointers#
validation_cases/README.mdvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/README.mdvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/reference.pyvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/comparison.pyvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/plotting.pyvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/run_case.pyvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/metadata.tomlvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/config_modflownwt.tomlvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/runtime_boussinesq.pyvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/tolerances.tomlvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/tolerances_boussinesq.tomlvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/tolerances_modflow6.tomlvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/tolerances_modflow6_irregular_tri.tomlvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/config_modflow6.tomlvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/config_modflow6_irregular_tri.tomlvalidation_cases/analytical/transient/late_time_unconfined_pumping_2d/config_boussinesq.tomlvalidation_cases/analytical/transient/common.py
Artifacts#
docs/source/_static/capability_gallery/validation/late_time_unconfined_pumping_2d__modflownwt.pngdocs/source/_static/capability_gallery/validation/late_time_unconfined_pumping_2d__modflow6.pngdocs/source/_static/capability_gallery/validation/late_time_unconfined_pumping_2d__modflow6_irregular_tri.pngdocs/source/_static/capability_gallery/validation/late_time_unconfined_pumping_2d__boussinesq.pngdocs/source/_static/capability_gallery/validation/late_time_unconfined_pumping_2d_summary.jsonstores the displayed metrics plus source hashes used bypython -m tools.doc_gallery --check.