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

\[\frac{1}{r}\frac{\mathrm{d}}{\mathrm{d}r}\left(r\,K\,H\,\frac{\mathrm{d}H}{\mathrm{d}r}\right)+R=0\]
\[H(r)^2=H(a)^2+\frac{R}{2K}\left(a^2-r^2\right)\]
\[h(r)=z_b+\sqrt{\left(h_{\mathrm{sea}}-z_b\right)^2+\frac{R}{2K}\left(a^2-r^2\right)}\]

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.toml

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

  • Expected 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.toml

  • Tolerances: validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_modflow6.toml

  • Expected 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.toml

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

  • Expected 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.toml

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

  • Expected 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

crs

Coordinate reference system used by the synthetic geometry.

EPSG:2154

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

xmin

Minimum x coordinate of the analytical reference domain.

265400

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

ymin

Minimum y coordinate of the analytical reference domain.

6.7841e+06

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

length_x_m

Reference-domain length along the x axis.

610 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

length_y_m

Reference-domain length along the y axis.

610 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

nx

Reference discretization count along the x axis used by the comparison helper.

61

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

ny

Reference discretization count along the y axis used by the comparison helper.

61

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

center_x_m

Reference x coordinate of the domain centre or pumping location.

265705 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

center_y_m

Reference y coordinate of the domain centre or pumping location.

6.7844e+06 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

sea_level_m

Sea level used by the coastal or island reference.

0 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

ocean_floor_elevation_m

Ocean-floor elevation used by the coastal reference geometry.

-1 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

crest_elevation_m

Crest elevation used by the synthetic island topography.

12 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

island_radius_m

Island radius used by the radial reference domain.

200 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

comparison_radius_max_m

Maximum radius used when sampling radial comparisons.

190 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

radial_bin_width_m

Radial bin width used when aggregating the numerical solution.

10 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

substratum_elevation_m

Substratum elevation used to build the analytical aquifer geometry.

-5 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

hydraulic_conductivity_m_per_s

Hydraulic conductivity used by the analytical or benchmark reference.

5e-06 m/s

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

recharge_mm_day

Recharge rate used by the reference solution.

1 mm/day

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

comparison_radius_max_by_solver.boussinesq

Maximum comparison radius retained for boussinesq.

170

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/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/dupuit_circular_island_ocean_2d/config_modflownwt.toml

simulation.time.start_datetime

Simulation start time used by the benchmark.

2003-01-01 00:00:00

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

simulation.time.end_datetime

Simulation end time used by the benchmark.

2003-01-02 00:00:00

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

simulation.time.step_value

Nominal time step used by the benchmark.

1 day

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

geographic.synthetic.grid.length_x

Synthetic-domain length along the x axis.

610.0 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

geographic.synthetic.grid.length_y

Synthetic-domain length along the y axis.

610.0 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

geographic.synthetic.grid.nx

Grid cell count along the x axis.

61

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

geographic.synthetic.grid.ny

Grid cell count along the y axis.

61

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

geographic.synthetic.topography.kind

Synthetic topography shape used by the benchmark.

radial_island

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

geographic.synthetic.topography.base_elevation

Base land-surface elevation of the synthetic topography.

-1 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

geographic.synthetic.topography.crest_elevation

Crest elevation used by the synthetic topography.

12 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

geographic.synthetic.topography.island_radius

Island radius used by the synthetic topography.

200.0 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

domain.depth_model.type

Depth model used to build the aquifer support.

flat_substratum

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

domain.depth_model.substratum_elevation

Substratum elevation used to build the synthetic support.

-5 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

data.types

External data families loaded by the benchmark.

[oceanic, recharge]

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

data.oceanic.sources[0].source

Oceanic data source mode used by the benchmark.

constant

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

data.oceanic.sources[0].value

Ocean level value supplied to the benchmark.

0 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

data.recharge.sources[0].source

Recharge data source mode used by the benchmark.

synthetic

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

data.recharge.sources[0].values

Recharge values used by the benchmark forcing.

[1 mm/day]

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

data.recharge.sources[0].runoff_ratio

Runoff ratio applied when converting recharge forcing to effective infiltration.

0

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

flow.flow_regime

Steady or transient flow regime used by the benchmark.

steady

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

flow.active_sinks_sources

Sink and source families activated in the benchmark.

[recharge]

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

flow.active_bc

Boundary-condition families activated in the benchmark.

[ocean]

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

flow.param_list

Hydraulic parameter families explicitly configured by the benchmark.

[K]

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

flow.param.K.field.kind

Parameterization mode used for K.

homogeneous

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

flow.param.K.field.value

Homogeneous K value used by the benchmark.

5e-6 m/s

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

flow.ic.type

Initial-condition policy used to start the benchmark.

custom

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

flow.ic.value

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

1.0 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

flow.bc.dirichlet.ocean.value

Fixed head applied on the ocean boundary.

0.0 m

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.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/dupuit_circular_island_ocean_2d/config_modflownwt.toml

modflownwt.sgrid.planar.nx

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

61

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

modflownwt.sgrid.planar.ny

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

61

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

modflownwt.sgrid.planar.resampling

Planar support resampling mode used by MODFLOW-NWT.

nearest

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

modflownwt.sgrid.vertical.nlay

Number of vertical layers used by MODFLOW-NWT.

1

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflownwt.toml

Field

Meaning

Value

Source

modflow6.runtime.mf_verbose

Solver-specific override applied to MODFLOW 6.

false

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6.toml

modflow6.runtime.mf6_ims_complexity

Linear-solver complexity preset used by MODFLOW 6.

COMPLEX

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6.toml

modflow6.sgrid.planar.mode

Planar support construction mode used by MODFLOW 6.

resample_to_shape

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6.toml

modflow6.sgrid.planar.nx

Planar support cell count along x used by MODFLOW 6.

61

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6.toml

modflow6.sgrid.planar.ny

Planar support cell count along y used by MODFLOW 6.

61

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6.toml

modflow6.sgrid.planar.resampling

Planar support resampling mode used by MODFLOW 6.

nearest

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6.toml

modflow6.sgrid.vertical.nlay

Number of vertical layers used by MODFLOW 6.

1

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6.toml

Field

Meaning

Value

Source

modflow6.runtime.mf_verbose

Solver-specific override applied to MODFLOW 6.

false

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6_irregular_tri.toml

modflow6.runtime.mf6_ims_complexity

Linear-solver complexity preset used by MODFLOW 6.

COMPLEX

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6_irregular_tri.toml

modflow6.process_specific.vka

Vertical anisotropy ratio passed to MODFLOW 6.

1

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6_irregular_tri.toml

modflow6.sgrid.vertical.nlay

Number of vertical layers used by MODFLOW 6.

1

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/config_modflow6_irregular_tri.toml

mesh_input.mesh_path

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

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/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/dupuit_circular_island_ocean_irregular_tri_radial_48

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/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/dupuit_circular_island_ocean_2d/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/dupuit_circular_island_ocean_2d/metadata.toml

output.expected_shape

Expected spatial output shape checked by the validation helper.

[61, 61]

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/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: 61 x 61

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

radial_profile.rmse

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

0.25

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.toml

radial_profile.max_abs_error

Maximum accepted absolute error for radial profile.

0.5

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.toml

radial_profile.azimuthal_spread

Acceptance threshold for radial_profile.azimuthal_spread.

0.25

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.toml

radial_profile.ocean_head_max_error

Acceptance threshold for radial_profile.ocean_head_max_error.

1e-06

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.toml

radial_profile.min_land_clearance

Acceptance threshold for radial_profile.min_land_clearance.

0.1

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.toml

Field

Meaning

Value

Source

expected_output

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

Expected shape: 61 x 61

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

radial_profile.rmse

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

0.15

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_modflow6.toml

radial_profile.max_abs_error

Maximum accepted absolute error for radial profile.

0.18

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_modflow6.toml

radial_profile.azimuthal_spread

Acceptance threshold for radial_profile.azimuthal_spread.

0.15

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_modflow6.toml

radial_profile.ocean_head_max_error

Acceptance threshold for radial_profile.ocean_head_max_error.

1e-08

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_modflow6.toml

radial_profile.min_land_clearance

Acceptance threshold for radial_profile.min_land_clearance.

0.6

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_modflow6.toml

Field

Meaning

Value

Source

expected_output

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

Expected shape: 61 x 61

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

radial_profile.rmse

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

0.25

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.toml

radial_profile.max_abs_error

Maximum accepted absolute error for radial profile.

0.5

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.toml

radial_profile.azimuthal_spread

Acceptance threshold for radial_profile.azimuthal_spread.

0.25

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.toml

radial_profile.ocean_head_max_error

Acceptance threshold for radial_profile.ocean_head_max_error.

1e-06

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.toml

radial_profile.min_land_clearance

Acceptance threshold for radial_profile.min_land_clearance.

0.1

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances.toml

Field

Meaning

Value

Source

expected_output

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

Expected shape: 61 x 61

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/metadata.toml

radial_profile.rmse

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

0.15

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_boussinesq.toml

radial_profile.max_abs_error

Maximum accepted absolute error for radial profile.

0.35

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_boussinesq.toml

radial_profile.azimuthal_spread

Acceptance threshold for radial_profile.azimuthal_spread.

0.25

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_boussinesq.toml

radial_profile.ocean_head_max_error

Acceptance threshold for radial_profile.ocean_head_max_error.

1e-08

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_boussinesq.toml

radial_profile.min_land_clearance

Acceptance threshold for radial_profile.min_land_clearance.

0.75

validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_boussinesq.toml

Source Pointers#

  • validation_cases/README.md

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

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

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

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

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

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

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

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

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

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

  • validation_cases/analytical/steady/dupuit_circular_island_ocean_2d/tolerances_modflow6.toml

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

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

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

Artifacts#

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

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

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

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

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