Mesh And Spatial Support#

This section groups the theory notes for mesh and spatial support choices in HydroModPy.

Mesh choice is not only a preprocessing detail. It controls:

  • which basin, river, geology, and boundary constraints are honoured;

  • how fields are projected to solver cells;

  • which numerical method is appropriate;

  • whether solver comparisons isolate backend behaviour or mix backend and support effects.

Use this section for the concepts. Use the capability-gallery mesh pages for concrete, versioned examples and figures.

Scientific Role#

HydroModPy separates the modelling problem into several layers:

geographic domain
-> planar support or mesh
-> vertical representation
-> field-to-cell transfer
-> solver-specific discretization
-> validation or comparison evidence

That separation matters because the same physical question can be interpreted on different supports:

  • a structured sgrid support for legacy MODFLOW-NWT-style workflows;

  • a MODFLOW 6 support that may remain structured or consume a DISV-style irregular mesh;

  • a triangular finite-volume support used by the Boussinesq backend;

  • a saved mesh bundle reused by comparison and gallery workflows.

Main Questions#

Question

Scientific page

Gallery evidence

Which mesh families exist and why do they matter?

Mesh And Discretization Strategies

Mesh Gallery

How do regular and irregular meshes compare for the same cell budget?

Regular And Irregular Mesh Cell Budgets

Resolution Sensitivity Across Scales

How are geology, hydraulic properties, or forcing mapped to cells?

Field-To-Cell Parameter Transfer

Hydraulic Properties

Which mesh quality checks should be read before trusting a solve?

Mesh Quality And Acceptance Criteria

Mesh Quality Diagnostics (10 km2)

Why does MODFLOW 6 use XT3D on irregular meshes?

XT3D On Irregular DISV Meshes

MODFLOW 6 Irregular Triangles: Why XT3D Is The Default

How does vertical representation affect storage and thickness?

Vertical Representation And Storage Assumptions

Validation and comparison cases that reuse the same support.

Future Evolution#

The current mesh evidence in the documentation is built from static figures generated alongside each gallery case. Browsing a real triangulation, an irregular DISV mesh, or a mesh-quality field today still requires opening the underlying mesh bundle in a desktop tool such as ParaView or Gmsh.

A future iteration could embed an in-browser 3D mesh viewer based on vtk-js directly in the gallery and architecture pages. vtk-js can stream a small VTU/VTP serialized mesh into a WebGL canvas with picking, slicing, and field-by-cell coloring without any server-side rendering.

This is a deliberate non-goal for the current refactor: the dependency surface (WebGL bundle, larger asset payloads, longer page-load budget) is out of scope until analytics confirm that the static figures are no longer enough. If a prototype lands later, it should remain opt-in (loaded only on the case pages that explicitly opt into the viewer) and ship a small, redacted mesh per case rather than the full bundle.