Basal boundaries
Drainage capacity and basal boundary assumptions.
Practical basal-boundary models.
The classes in this module represent two useful end-member concepts:
InfiniteDrainageBoundary: a pervious/semi-infinite basal domain with high drainage capacity.FinitePerchedBoundary: a finite or restrictive basal domain that promotes perched-water buildup and water-table rise.
Both boundaries expose the same methods, so notebooks can compare them easily.
BasalBoundary
dataclass
Base class for practical basal-boundary behavior.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
drainage_efficiency
|
float
|
Multiplier in [0, 1] controlling effective basal drainage capacity, not the fraction of incoming water that drains. Higher values increase capacity. Even 1 does not prevent accumulation if input exceeds capacity. |
required |
name
|
str
|
Descriptive boundary name used in result metadata. |
required |
has_finite_base
property
has_finite_base: bool
Whether maximum_depth represents a finite restrictive base.
drainage_capacity
drainage_capacity(hydro: HydraulicProperties) -> float
Return effective drainage capacity in m/s.
This capacity adapts Baum et al. (2010), Eqs. (10a)--(10c), using the sign correction to Eq. (10a) in Baum and Godt (2013):
q_capacity = eta * Ks * sin(slope)**2
where eta is drainage_efficiency. This external capacity assumption
is retained in both equation sets; it is not re-derived from the
selected reconstructed pressure gradient.
excess_flux
excess_flux(basal_flux: ndarray, hydro: HydraulicProperties) -> np.ndarray
Return the part of basal flux that accumulates instead of draining.
positive_pressure
positive_pressure(z: ndarray, *, hydro: HydraulicProperties, water_table_depth: float) -> np.ndarray
Pressure head below a moving water table.
Algebraic form of Baum et al. (2010), Eq. (3b), and Baum et al. (2008), Eq. (3B), extended beyond their initially upward-flow case using the selected background gradient. This is not saturated diffusion.
z_w is the current water-table depth, measured downward. Above the water table the returned pressure is zero. Below the water table:
psi = beta * (z - z_w)
InfiniteDrainageBoundary
dataclass
Bases: BasalBoundary
Pervious/semi-infinite basal boundary.
This boundary represents efficient drainage into a deep or highly pervious domain. In most moderate rainfall cases, little or no water-table rise is produced because drainage capacity is high.
FinitePerchedBoundary
dataclass
Bases: BasalBoundary
Finite/restrictive basal boundary.
This boundary represents a lower-permeability contact or finite saturated layer that restricts drainage and promotes perched-water accumulation.