Dupuit Circular-Island Ocean 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.
Steady synthetic groundwater-flow case used to validate the launcher workflow against the axisymmetric Dupuit-Boussinesq solution for a circular island with:
Case Setup#
Circular synthetic island on Cartesian grid, uniform recharge, flat substratum, ocean top BC
Available solver variants: MODFLOW-NWT, MODFLOW 6, MODFLOW 6 irregular triangles, Boussinesq.
What It Shows#
validate the ocean boundary condition on a genuinely 2D synthetic geometry,
verify that the numerical solution preserves radial symmetry on a Cartesian grid,
keep an analytical benchmark where the water table remains below the island topography.
Ocean BC activation, radial symmetry preservation, 2D synthetic topography with the water table kept below land surface
Primary metrics: radial RMSE, radial max abs error, azimuthal spread, ocean head error, minimum land freeboard.
Solver-specific figures and metrics are shown side by side so the same benchmark can be read across backends.
Analytical Reference#
compared quantity: annular mean head profile on land
reference: steady radial Dupuit-Boussinesq solution with fixed coastal head
Solver Coverage#
Default solver: MODFLOW-NWT
Available variants: MODFLOW-NWT, MODFLOW 6, MODFLOW 6 irregular triangles, Boussinesq

Metrics - Radial head-profile RMSE: 0.0489 m - Radial head-profile max abs error: 0.0918 m - Azimuthal spread: 0.1120 m - Ocean head max abs error: 0.00e+00 m - Minimum land freeboard: 0.7869 m
Config file:
validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.tomlTolerances:
validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.tomlExpected shape: 61 x 61
python -m validation_cases.analytical.steady.dupuit_circular_island_ocean_2d.run_case --no-show --solver modflow_nwt

Metrics - Radial head-profile RMSE: 0.1181 m - Radial head-profile max abs error: 0.1514 m - Azimuthal spread: 0.1159 m - Ocean head max abs error: 0.00e+00 m - Minimum land freeboard: 0.7405 m
Config file:
validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6.tomlTolerances:
validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_modflow6.tomlExpected shape: 61 x 61
python -m validation_cases.analytical.steady.dupuit_circular_island_ocean_2d.run_case --no-show --solver modflow6

Metrics - Radial head-profile RMSE: 0.1256 m - Radial head-profile max abs error: 0.1959 m - Azimuthal spread: 0.1837 m - Ocean head max abs error: 0.00e+00 m - Minimum land freeboard: 0.6655 m
Config file:
validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6_irregular_tri.tomlTolerances:
validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.tomlExpected shape: 61 x 61
python -m validation_cases.analytical.steady.dupuit_circular_island_ocean_2d.run_case --no-show --solver modflow6_irregular_tri

Metrics - Radial head-profile RMSE: 0.1326 m - Radial head-profile max abs error: 0.3216 m - Azimuthal spread: 0.2059 m - Ocean head max abs error: 0.00e+00 m - Minimum land freeboard: 1.0392 m
Config file:
validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_boussinesq.tomlTolerances:
validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_boussinesq.tomlExpected shape: 61 x 61
python -m validation_cases.analytical.steady.dupuit_circular_island_ocean_2d.run_case --no-show --solver boussinesq
Reproduce#
Run the underlying example or validation case with:
python -m validation_cases.analytical.steady.dupuit_circular_island_ocean_2d.run_case --no-show
Refresh the committed gallery artifacts with:
python -m tools.doc_gallery
Case Parameters#
Reference Parameters#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Coordinate reference system used by the synthetic geometry. |
EPSG:2154 |
|
|
Minimum x coordinate of the analytical reference domain. |
265400 |
|
|
Minimum y coordinate of the analytical reference domain. |
6.7841e+06 |
|
|
Reference-domain length along the x axis. |
610 m |
|
|
Reference-domain length along the y axis. |
610 m |
|
|
Reference discretization count along the x axis used by the comparison helper. |
61 |
|
|
Reference discretization count along the y axis used by the comparison helper. |
61 |
|
|
Reference x coordinate of the domain centre or pumping location. |
265705 m |
|
|
Reference y coordinate of the domain centre or pumping location. |
6.7844e+06 m |
|
|
Sea level used by the coastal or island reference. |
0 m |
|
|
Ocean-floor elevation used by the coastal reference geometry. |
-1 m |
|
|
Crest elevation used by the synthetic island topography. |
12 m |
|
|
Island radius used by the radial reference domain. |
200 m |
|
|
Maximum radius used when sampling radial comparisons. |
190 m |
|
|
Radial bin width used when aggregating the numerical solution. |
10 m |
|
|
Substratum elevation used to build the analytical aquifer geometry. |
-5 m |
|
|
Hydraulic conductivity used by the analytical or benchmark reference. |
5e-06 m/s |
|
|
Recharge rate used by the reference solution. |
1 mm/day |
|
|
Maximum comparison radius retained for boussinesq. |
170 |
|
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-02 00:00:00 |
|
|
Nominal time step used by the benchmark. |
1 day |
|
|
Synthetic-domain length along the x axis. |
610.0 m |
|
|
Synthetic-domain length along the y axis. |
610.0 m |
|
|
Grid cell count along the x axis. |
61 |
|
|
Grid cell count along the y axis. |
61 |
|
|
Synthetic topography shape used by the benchmark. |
radial_island |
|
|
Base land-surface elevation of the synthetic topography. |
-1 m |
|
|
Crest elevation used by the synthetic topography. |
12 m |
|
|
Island radius used by the synthetic topography. |
200.0 m |
|
|
Depth model used to build the aquifer support. |
flat_substratum |
|
|
Substratum elevation used to build the synthetic support. |
-5 m |
|
|
External data families loaded by the benchmark. |
[oceanic, recharge] |
|
|
Oceanic data source mode used by the benchmark. |
constant |
|
|
Ocean level value supplied to the benchmark. |
0 m |
|
|
Recharge data source mode used by the benchmark. |
synthetic |
|
|
Recharge values used by the benchmark forcing. |
[1 mm/day] |
|
|
Runoff ratio applied when converting recharge forcing to effective infiltration. |
0 |
|
|
Steady or transient flow regime used by the benchmark. |
steady |
|
|
Sink and source families activated in the benchmark. |
[recharge] |
|
|
Boundary-condition families activated in the benchmark. |
[ocean] |
|
|
Hydraulic parameter families explicitly configured by the benchmark. |
[K] |
|
|
Parameterization mode used for K. |
homogeneous |
|
|
Homogeneous K value used by the benchmark. |
5e-6 m/s |
|
|
Initial-condition policy used to start the benchmark. |
custom |
|
|
Scalar initial head or top offset used by the initial-condition policy. |
1.0 m |
|
|
Fixed head applied on the ocean boundary. |
0.0 m |
|
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. |
61 |
|
|
Planar support cell count along y used by MODFLOW-NWT. |
61 |
|
|
Planar support resampling mode used by MODFLOW-NWT. |
nearest |
|
|
Number of vertical layers used by MODFLOW-NWT. |
1 |
|
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. |
61 |
|
|
Planar support cell count along y used by MODFLOW 6. |
61 |
|
|
Planar support resampling mode used by MODFLOW 6. |
nearest |
|
|
Number of vertical layers used by MODFLOW 6. |
1 |
|
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 |
|
|
Committed unstructured mesh file used by the irregular-mesh solver variant. |
../../../shared/mesh_bundles/dupuit_circular_island_ocean_irregular_tri_radial_48/mesh_2d.msh |
|
|
Committed mesh-bundle directory used to recover support metadata for the irregular-mesh solver variant. |
../../../shared/mesh_bundles/dupuit_circular_island_ocean_irregular_tri_radial_48 |
|
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 spatial output shape checked by the validation helper. |
[61, 61] |
|
Acceptance Criteria by Solver#
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Expected output shape or time-space layout checked for this solver. |
Expected shape: 61 x 61 |
|
|
Maximum accepted root-mean-square error for radial profile. |
0.25 |
|
|
Maximum accepted absolute error for radial profile. |
0.5 |
|
|
Acceptance threshold for radial_profile.azimuthal_spread. |
0.25 |
|
|
Acceptance threshold for radial_profile.ocean_head_max_error. |
1e-06 |
|
|
Acceptance threshold for radial_profile.min_land_clearance. |
0.1 |
|
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Expected output shape or time-space layout checked for this solver. |
Expected shape: 61 x 61 |
|
|
Maximum accepted root-mean-square error for radial profile. |
0.15 |
|
|
Maximum accepted absolute error for radial profile. |
0.18 |
|
|
Acceptance threshold for radial_profile.azimuthal_spread. |
0.15 |
|
|
Acceptance threshold for radial_profile.ocean_head_max_error. |
1e-08 |
|
|
Acceptance threshold for radial_profile.min_land_clearance. |
0.6 |
|
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Expected output shape or time-space layout checked for this solver. |
Expected shape: 61 x 61 |
|
|
Maximum accepted root-mean-square error for radial profile. |
0.25 |
|
|
Maximum accepted absolute error for radial profile. |
0.5 |
|
|
Acceptance threshold for radial_profile.azimuthal_spread. |
0.25 |
|
|
Acceptance threshold for radial_profile.ocean_head_max_error. |
1e-06 |
|
|
Acceptance threshold for radial_profile.min_land_clearance. |
0.1 |
|
Field |
Meaning |
Value |
Source |
|---|---|---|---|
|
Expected output shape or time-space layout checked for this solver. |
Expected shape: 61 x 61 |
|
|
Maximum accepted root-mean-square error for radial profile. |
0.15 |
|
|
Maximum accepted absolute error for radial profile. |
0.35 |
|
|
Acceptance threshold for radial_profile.azimuthal_spread. |
0.25 |
|
|
Acceptance threshold for radial_profile.ocean_head_max_error. |
1e-08 |
|
|
Acceptance threshold for radial_profile.min_land_clearance. |
0.75 |
|
Source Pointers#
validation_cases/README.mdvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/README.mdvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/reference.pyvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/comparison.pyvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/plotting.pyvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/run_case.pyvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.tomlvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.tomlvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/runtime_boussinesq.pyvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.tomlvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_boussinesq.tomlvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_modflow6.tomlvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6.tomlvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6_irregular_tri.tomlvalidation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_boussinesq.toml
Artifacts#
docs/source/_static/capability_gallery/validation/dupuit_circular_island_ocean_2d__modflownwt.pngdocs/source/_static/capability_gallery/validation/dupuit_circular_island_ocean_2d__modflow6.pngdocs/source/_static/capability_gallery/validation/dupuit_circular_island_ocean_2d__modflow6_irregular_tri.pngdocs/source/_static/capability_gallery/validation/dupuit_circular_island_ocean_2d__boussinesq.pngdocs/source/_static/capability_gallery/validation/dupuit_circular_island_ocean_2d_summary.jsonstores the displayed metrics plus source hashes used bypython -m tools.doc_gallery --check.