Skip to content

Column solver

Single-column infiltration, storage, and stability simulation.

High-level one-column solver.

run_single_column

run_single_column(*, hydro: HydraulicProperties, rainfall: RainfallSeries, strength: StrengthProperties, boundary: BasalBoundary, output_times: ndarray, depth_to_failure_plane: float | None = None, antecedent: AntecedentRainfall | None = None, storage_time_step: float | None = None) -> ColumnResult

Simulate a triggering event, optionally preceded by antecedent rain.

Parameters:

Name Type Description Default
hydro HydraulicProperties

Hydraulic properties and geometry in SI units. maximum_depth defines the reporting column; initial water-table depth is independent. long_term_infiltration is the equilibrium background before any antecedent period.

required
rainfall RainfallSeries

Gross triggering precipitation, with rainfall breakpoints relative to the trigger. Infiltration is capped at local Ks; rainfall excess is discarded.

required
strength StrengthProperties

Effective cohesion, friction angle and unit weights.

required
boundary BasalBoundary

Event drainage capacity and newly saturated pressure assumptions.

required
output_times ndarray

Instants at which time series and depth profiles are returned, in hours relative to the triggering event. Must be finite, strictly increasing, and start at zero; the last value sets the simulated event horizon. These nodes also seed the storage integration grid. Internal storage refinement does not add returned profiles.

required
depth_to_failure_plane float

Vertical depth in (0, maximum_depth] for extracting pressure and FS time series. Defaults to maximum_depth. It does not change flow, storage, or the full-column hydraulic and stability profiles.

None
antecedent AntecedentRainfall

Previous rainfall history and its drainage efficiency. Use AntecedentRainfall.uniform(total_rainfall_mm, duration, ...) for a uniform history or wrap a RainfallSeries for a hyetograph. Moisture, conductivity and basal storage continue into the event. Output times stay event-relative; water-table rise and storage reference the beginning of the complete history.

None
storage_time_step float

Maximum interval in hours for integrating the basal storage balance. Intervals longer than this are subdivided; each uses Simpson endpoint and midpoint flux evaluations. Smaller values can improve retained storage, water-table rise and FS accuracy at greater computational cost. This does not set rainfall intervals or saved output times. Default None adds no subdivision without antecedent; with antecedent, None selects 1 h. Output nodes, rainfall breakpoints, and any drainage transition are always included in the storage integration grid.

None

Returns:

Type Description
ColumnResult

Event time series, profiles and model/budget diagnostics. Depth increases downward. FS at the declared plane is distinct from a minimum over all depths. Antecedent conditions can change FS at zero.

Notes

No evapotranspiration, interception or numerical Richards solver is used. The analytical time factor does not change with initial wetness. Basal capacity is eta * Ks * sin(slope)**2, not a drained rainfall fraction. Even eta=1 does not enforce fixed NF. A different antecedent efficiency is an explicit boundary assumption. The approximate moving-NF saturation overlay, surface cap and lack of separate aquifer recession still apply.