Stream, Ocean, And Drainage Semantics#
Purpose#
This page documents three boundary or exchange families that are easy to confuse because they all live near the land surface:
stream,ocean,drainage.
They do not play the same scientific role.
streamandoceancurrently act as stage or imposed-head style boundaries in the public modelling path,drainageacts as a head-dependent release operator,none of them should be confused with diffuse recharge,
and none of them should be confused with runoff observations.
Conceptual Diagram#
The atmosphere supplies precipitation and a potential ET demand to the land surface, which partitions them hydrologically. From there the following exchanges occur:
the land surface sends recharge to the aquifer; the aquifer can also return ETP / net diffuse loss to the land when groundwater acts as a sink,
the land surface produces runoff, which stays on the surface signal and is read by outlet hydrometry; it is not a Flow forcing,
the river / stream stage and the ocean stage feed the aquifer as stage supports in the current public path,
the solve produces exchanged fluxes that emerge between the aquifer and the stream or ocean stage,
the aquifer also produces a drainage / groundwater release signal that joins runoff at the outlet hydrometry comparison.
The aquifer keeps head h as the primary unknown throughout.
Drainage is a head-dependent outflow operator. It is distinct from recharge, runoff, and stream/ocean stage.
Drainage result example#
On the Nancon reference run, drainage is not a prescribed stream network.
It is a head-dependent release mechanism whose active cells are derived after
the groundwater solve.


Why This Distinction Matters#
Without one dedicated page, it is too easy to read all surface-related objects as if they were just different names for water leaving or entering the model.
That is not the intended meaning.
Family |
Prescribed quantity |
Scientific meaning |
What the solve returns |
|---|---|---|---|
|
stage or head |
Exchange with one river-network support |
resulting groundwater-to-stream or stream-to-groundwater flux |
|
sea level |
Exchange with one coastal support |
resulting coastal inflow or outflow |
|
conductance |
Unilateral head-dependent release |
resulting drainage outflow |
Stream Semantics#
At the current Flow level, stream should be understood as:
one selected stream support on the mesh or grid,
one prescribed stage or head value,
one exchange flux that is not prescribed directly but emerges from the solved head field.
In other words, stream is currently closer to:
a river stage boundary,
or a prescribed surface-water head support,
than to a full surface-routing or river-hydraulics model.
Current public implementation notes:
in MODFLOW-family paths,
streamis currently assembled throughCHD-style constant-head supports rather than a fullRIVlaw;in the Boussinesq path,
streamis resolved to river-tagged cells or edges, then applied as a Dirichlet support.
This is a strong modelling simplification. It is acceptable in controlled setups and in some basin-scale approximations, but it is not equivalent to a riverbed-resistance model with explicitly parameterized conductance.
Ocean Semantics#
ocean is also a stage-controlled boundary family, but its support logic is
different from stream.
Scientifically, ocean means:
the sea level is prescribed,
the coastal support is the part of the domain considered hydraulically connected to the sea,
the exchanged flux is an output of the solve.
Current public implementation notes:
the oceanic data path can inject a mean sea level or a mean time-series value into the active
oceanboundary;in MODFLOW 6, the current public path translates this to
CHDon cells whose support is considered ocean-influenced;in the current Boussinesq slice, coastal support is stage-dependent: cells or edges are selected where topography lies below the current sea threshold.
This means the public ocean path is currently:
stage-controlled,
geometry-aware,
but not yet a conductance-limited
GHB-style coastal exchange law.
Drainage Semantics#
drainage is fundamentally different from stream and ocean.
It does not prescribe a water level. It prescribes an exchange capacity and lets outflow activate only when groundwater reaches the drainage condition.
Scientifically, drainage means:
one head-dependent release mechanism,
usually interpreted as seepage or drainage toward a surface interface or network,
distinct from diffuse recharge,
distinct from observed runoff,
distinct from the current Boussinesq saturation-excess closure.
Current public implementation notes:
in MODFLOW-family paths,
drainageis assembled throughDRN-style head-dependent outflow;in the current Boussinesq slice, it is implemented as a top-drainage operator driven by conductance and activation above the top elevation.
For the broader navigation map across observed stream networks, seepage, and simulation-derived active networks, see Streams And Seepage.
What They Are Not#
stream is not currently:
a full river-routing model,
a full riverbed conductance model in the public MODFLOW 6 path,
a runoff observation.
ocean is not currently:
a tidal hydrodynamics model,
a full conductance-limited coastal interface in the public path,
a recharge term.
drainage is not currently:
direct runoff,
a climatic forcing,
identical to stream exchange,
identical to the saturation-excess operator in the Boussinesq backend.
Current Public Path Diagram#
Backend Reading Guide#
Backend family |
|
|
|---|---|---|
MODFLOW-NWT / MODFLOW 6 |
Stage/head supports currently expressed through |
Head-dependent outflow currently expressed through |
Boussinesq |
Dirichlet supports on resolved cells or edges |
Top outflow operator driven by conductance and head exceedance |
Validation And Comparison Anchors#
Useful pages already exist to validate or inspect these semantics in context.
Stream-style imposed downstream stage: Dupuit Divide-River 1D
Ocean boundary on a radial island benchmark: Dupuit Circular-Island Ocean 2D
Ocean boundary with heterogeneous conductivity and Boussinesq comparison: Boussinesq Circular-Island Piecewise-K 2D
Drainage boundary in a closed-form linearized setting: Linearized Unconfined Drainage 1D
Drainage boundary on sloping topography: Linearized Unconfined Hillslope Drainage 1D
Cross-code behaviour with recharge and emergent drainage: Surface-Interaction Ramp Code Comparison
Current Source Anchors#
hydromodpy.physics.flow.boundary_conditionshydromodpy.physics.flow.structure_bindershydromodpy.solver.modflow6.modflow6hydromodpy.solver.boussinesq.forcing.dirichlet_support_resolutionhydromodpy.solver.boussinesq.forcing.drainage_resolution