GAH-3D is an infiltration-basin design tool for Australian urban drainage. You enter your site location, the contributing catchments, the basin geometry and the soil/hydraulic parameters you have measured on site, and the tool:
As an engineer using the tool, a typical workflow is:
Each parameter is explained in the sections below, together with the theory behind it and guidance on what value to enter.
Latitude, Longitude (Australian extents: −44 to −10° lat, 112 to 154° lon).The site coordinate is the single most important input because it determines all the rainfall data. GAH-3D uses it to:
Click the map to drop a marker, or drag it; the latitude/longitude fields update automatically. For design work, use the centroid of the contributing catchments (rainfall is assumed spatially uniform over the catchment).
%USERPROFILE%\.soaksim\cache. If the network is unavailable it falls back to the bundled sample dataset. The BoM IFD endpoint blocks automated scraping — for production work, export the IFD JSON from the BoM tool and supply it via the SOAKSIM_BOM_IFD_JSON environment variable.
Each catchment represents an area draining to the basin. GAH-3D converts rainfall to runoff with the ILSAX model. ILSAX splits every catchment into three surface types that are modelled independently and then summed:
| Surface | Loss model | Typical examples |
|---|---|---|
| Paved (directly-connected impervious, DCIA) | Depression storage only | Roofs, sealed car parks draining straight to the basin |
| Supplementary (indirectly-connected impervious) | Depression storage only | Paved areas that drain across grass before reaching the basin |
| Grassed (pervious) | Horton infiltration + depression storage | Lawns, gardens, verges |
area_ha, slope.Area is the total catchment area in hectares. Slope is the general catchment grade (m/m). Both feed the time-area routing.
paved_fraction, supplementary_fraction, grassed_fraction (must sum to 1.0).The three fractions allocate the total area to the three surface types. For a roof-only catchment use paved = 1.0.
For each surface, the time of entry is computed from the kinematic-wave equation (Ragan & Duru, 1972):
$$t_e = 6.94\,\frac{(L\,n^*)^{0.6}}{I^{0.4}\,S^{0.3}} + t_{\text{add}}$$paved_depression_storage_mm (typ. 1 mm), supplementary_... (typ. 1 mm), grassed_... (typ. 5 mm).Depression storage is an initial-loss bucket that must fill before any runoff occurs from that surface.
The grassed surface infiltrates according to the Horton capacity curve:
$$f(t) = f_c + (f_0 - f_c)\,e^{-k\,t}$$soil_type (1=A sandy … 4=D clay), amc (antecedent moisture condition 1=dry … 4=saturated).The soil type selects $f_0$ (initial rate) and $f_c$ (final rate) from the standard Horton infiltration tables; the AMC adjusts the starting point on the curve. GAH-3D evaluates Horton with Watson's non-iterative method (Watson, 1981) for numerical stability.
| Soil type | $f_0$ (mm/hr) | $f_c$ (mm/hr) |
|---|---|---|
| A (Sandy) | 250 | 25 |
| B (Sandy Loam) | 200 | 13 |
| C (Clay Loam) | 125 | 6 |
| D (Heavy Clay) | 75 | 3 |
The decay constant $k = 2.0$ hr$^{-1}$ for all soil types.
Excess rainfall from each surface is convolved with a linear time-area histogram to produce a discharge hydrograph:
$$Q_n = \frac{A}{360}\sum_i h_i\,I_{n-i}$$where $A$ is the contributing area (ha), $h_i$ the fractional area ordinates, and $I$ the excess intensity (mm/hr); the factor 360 converts ha·mm/hr to m³/s. The three surface hydrographs are summed to give the total catchment hydrograph routed to the basin.
aep_percentages (multi-select: 63.2%, 50%, 20%, 10%, 5%, 2%, 1%).The AEP is the probability of a given rainfall depth being exceeded in any one year. Select all the events you want to analyse. The design AEP defaults to the rarest (smallest percentage) selected — this is the event the basin is sized to contain.
| AEP | ARI (approx.) | Common use |
|---|---|---|
| 63.2% (EY 1) | 1 year | Minor / frequent event |
| 10% | 10 year | Typical minor-street drainage |
| 5% | 20 year | Common basin design event |
| 1% | 100 year | Major / floor-level check |
durations_minutes (checkbox grid: 1 min … 168 hr).GAH-3D routes every selected duration so the critical duration (the one producing the greatest peak basin depth) is found automatically. For basin sizing, select a range that brackets the catchment response — typically 30 min to 6 hr for urban catchments. The computational timestep adapts to the duration (finer for short storms).
For the site coordinate, GAH-3D retrieves the design rainfall depth $P$ (mm) for every selected (AEP, duration) pair from the Bureau of Meteorology Revised IFD Design Rainfall Data System (2016), consistent with ARR 2019.
ARR 2019 provides an ensemble of 10 temporal patterns per (AEP, duration). Each pattern is a cumulative-fraction array $\{F_1,\ldots,F_n\}$ with $F_n=1.0$, representing one historically-observed way rainfall can be distributed across the storm. GAH-3D routes all 10 patterns to avoid bias toward any single distribution.
Each pattern is combined with the BoM depth to form a hyetograph:
basin_base_length_m, basin_base_width_m, basin_side_slope_ratio (H:V), basin_max_depth_m.The basin is a trapezoidal excavation with battered sides. Let $L_b$, $W_b$ be the base length and width, $m$ the side-slope ratio ($1{:}m$, e.g. 4 for 4H:1V), and $D_b$ the maximum depth. At depth $z$ the plan dimensions grow with the batters:
$$L(z) = L_b + 2mz, \qquad W(z) = W_b + 2mz$$The plan area and storage volume up to depth $z$ are:
$$A(z) = (L_b + 2mz)(W_b + 2mz)$$ $$V(z) = L_bW_bz + m(L_b+W_b)z^2 + \tfrac{4}{3}m^2 z^3$$The full basin capacity is $V(D_b)$. During routing, the water depth is recovered by numerically inverting $V(z)$.
basin_side_infil_enabled (side-wall infiltration on/off).When side infiltration is enabled, the active infiltration area includes the sloping batter faces wetted by the current depth; otherwise only the basin floor infiltrates.
vertical_k_mm_per_hr (entered in m/day in the UI, converted internally).Kv governs the vertical, gravity-and-capillary-driven flux of the Green-Ampt wetting front beneath the basin floor. Enter the raw, site-specific field-measured value from shallow, unsaturated-zone testing — ideally a double-ring infiltrometer or shallow constant-head permeameter. If the water table is too shallow for a field test, use an undisturbed core with a laboratory constant-head test. For imported fill, Kv must represent the compacted fill as specified in your compaction design.
horizontal_k_mm_per_hr (leave blank for Kh = Kv).Kh governs the lateral transmissivity $T = K_h \cdot b$ of the aquifer that dissipates the groundwater mound. Use saturated-zone testing — slug tests, pump tests, or deep borehole permeability below the water table. If you leave it blank, GAH-3D assumes isotropy (Kh = Kv), which is conservative because it limits lateral dissipation and produces a larger mound.
soil_moderation_factor (Sand 0.5, Sandy Clay 1.0, Medium/Heavy Clay 2.0).Soils are heterogeneous: point-scale field tests mis-represent the areal conductivity — they tend to overestimate sand and underestimate clay. The Soil Moderation Factor (Engineers Australia, 2006) corrects for this. GAH-3D applies it to the field-measured K internally:
$$k_{\text{adj}} = k_{\text{field}} \cdot U$$| Soil | U | Rationale |
|---|---|---|
| Sand | 0.5 | Field tests overestimate areal K → halve the rate |
| Sandy Clay | 1.0 | No correction |
| Medium / Heavy Clay | 2.0 | Field tests underestimate areal K → double the rate |
These three parameters drive the unsaturated-zone and aquifer behaviour of the GAH-3D engine. You can either pick a USDA soil-texture class (Sand, Loamy Sand, … Clay) to auto-fill the defaults from the Carsel & Parrish (1988) / Van Genuchten (1980) tables, or switch to custom values and enter your own.
initial_moisture_deficit (0–0.5; Sand ≈ 0.20, Clay ≈ 0.12).Δθ is the fillable porosity of the unsaturated column above the water table — the difference between saturated and initial water content. It controls how fast the Green-Ampt wetting front descends: a larger deficit means the same infiltrated volume advances the front more slowly ($Z_f = \int f/\Delta\theta\, dt$). It is distinct from the specific yield (which governs the saturated mound). If you have a measured initial moisture content, use Δθ = θs − θinitial.
capillary_suction_head_m (Sand ≈ 0.10 m, Clay ≈ 0.28 m).ψ is the effective capillary drive ahead of the wetting front. In the Green-Ampt equation it adds to the ponding depth to pull water into dry soil, so the early-time infiltration rate exceeds the saturated conductivity. Coarser soils have smaller suction heads; finer soils larger.
specific_yield (Sand ≈ 0.27, Clay ≈ 0.03).Sy is the drainable porosity of the aquifer — the volume of water released per unit area per unit drop of the water table. It governs the Hantush groundwater mound: a smaller Sy means a given infiltrated volume raises the mound more, so shallow-water-table sites with low-Sy soils see faster mounding. The soil-texture defaults come from the Carsel & Parrish (1988) / Johnson (1967) tables.
surface_level_m_ahd (basin invert), design_gwl_m_ahd (design groundwater level), base_aquifer_level_m_ahd (impermeable base).These three levels, in m AHD, define the unsaturated column and the saturated aquifer beneath the basin:
Enter the design (seasonally-high) groundwater level, not the level on the day you tested. The groundwater mound rises from this initial level during the storm and is capped at the ground surface.
The Green-Ampt-Hantush 3D (GAH-3D) engine couples two classical solutions at each timestep: the descending unsaturated wetting front (Green-Ampt) and the ascending saturated groundwater mound beneath the rectangular basin footprint (Hantush, 1967).
The wetting-front depth $Z_f$ is advanced with the moisture deficit Δθ as the Green-Ampt porosity. The potential flux is:
$$f_{GA} = k_{\text{adj}}\left(1 + \frac{\psi\,\Delta\theta + h}{F}\right) \;\geq\; k_{\text{adj}}$$where $h$ is the current ponding depth and $F = Z_f\,\Delta\theta$ the cumulative infiltrated depth. GAH-3D solves the implicit Green-Ampt quadratic for numerical stability at $Z_f \to 0$. Note $f_{GA} \geq k_{\text{adj}}$ always — capillary drive adds to gravity.
Once the cumulative infiltration has filled the unsaturated column ($z_{wf} \ge D_{gw}$), the wetting front meets the water table and a saturated connection forms between the ponded surface and the aquifer. The flux is then the Darcy gradient down the saturated column:
$$f_{\text{sat}} = k_{\text{adj}}\,\frac{D_{gw} + h - H_m}{D_{gw}}$$As the mound $H_m$ rises toward the basin the driving gradient shrinks and the flux falls — this is the physical mechanism by which mounding throttles infiltration on shallow-water-table sites. (This explicit saturated gradient replaces the earlier logistic “collision-smoothing” damper; it matches the validated phase-4 GAH-2D formulation.)
If a clogged layer is enabled, infiltration is additionally capped by Darcy flow through the low-permeability skin of conductivity $K_c$ and thickness $z_c$ on the basin floor:
$$f_{\text{clogged}} = K_c\,\frac{h + z_c}{z_c}, \qquad f_{\text{actual}} = \min(f_{\text{actual}},\,f_{\text{clogged}})$$When side-wall infiltration is enabled the clogged cap is evaluated over the full wetted area (floor + batter faces + corners), so clogging is applied to the true 3D infiltrating surface rather than as a blanket reduction factor.
The unsaturated column has a fixed storage capacity $V_{\text{vadose}} = D_{gw}\,\Delta\theta$. Each timestep, infiltration first fills the remaining vadose capacity; only the overflow becomes recharge $R$ to the water table. After breakthrough, all infiltration becomes recharge. This split conserves mass exactly — cumulative infiltration equals the vadose fill plus cumulative recharge, $F = V_{\text{filled}} + \sum R\,\Delta t$, to machine precision.
The recharge $R(t)$ drives a Hantush (1967) rectangular-footprint mound at the basin centre. The mound height is the linear superposition of the recharge history, evaluated with the error-function kernel for the basin length $L$ and width $W$:
$$H_m(t) = \frac{\Delta t}{S_y}\sum_j R_j\;\text{erf}\!\left(\frac{L/2}{\sqrt{4\alpha\,\tau_j}}\right)\text{erf}\!\left(\frac{W/2}{\sqrt{4\alpha\,\tau_j}}\right)$$where $\alpha = T/S_y = K_h b / S_y$ is the aquifer diffusivity and $\tau_j$ the elapsed time since parcel $j$ arrived. The mound is capped at the basin invert plus a permitted rise into the ponded column, $H_{\text{cap}} = D_{gw} + \alpha_r h$; the shipped default $\alpha_r = 0$ pins the mound at the basin bottom, a conservative, peak-preserving recession. If the tentative mound would exceed the cap, GAH-3D back-calculates the recharge rate that holds it exactly at the cap and reduces the surface infiltration flux to match, so the mound never overshoots and mass is preserved.
At every timestep GAH-3D steps the forward mass balance:
$$S(t+\Delta t) = S(t) + Q_{\text{in}}\Delta t - Q_{\text{infil}}\Delta t$$with $Q_{\text{infil}} = f_{\text{actual}} \cdot A_{\text{active}}(h)$, where $A_{\text{active}}$ is the wetted plan area (including batters) at the current depth. After the storm ends ($Q_{\text{in}}=0$) routing continues until the basin drains. The total post-storm drain time is reported.
GAH-3D does not shed water when inflow exceeds basin capacity plus infiltration. Instead, water is assumed to pool above the basin crest (overtopping): the reported depth is extrapolated beyond $D_b$ using the batter geometry, so the depth time-series may exceed the design maximum depth.
This is a conservative indicator: a peak depth greater than $D_b$ means the basin is undersized for that event. The reported total_overflow_m3 is the volume stored above the crest. When overtopping occurs, GAH-3D adds a warning — a summary line (how many of the routed events overtop, and the worst peak depth) plus one line per overtopping event.
Infiltration basins usually include a controlled outflow so that events larger than the infiltration design are released to a downstream system rather than overtopping uncontrolled (§12). GAH-3D lets you add surface-outflow structures that discharge once the ponded level reaches their crest/inlet/invert. They operate on the surface storage only: each timestep the structure discharge is computed from the current ponded depth and removed from storage, capped to the water available. The infiltration and groundwater-mound mechanics (§11) are unchanged, so the validated GAH-3D engine is preserved — structures simply lower the ponded depth and shorten the drain time.
Discharge follows the broad-crested weir equation once the water surface exceeds the crest (head $H$):
$$Q = C_d\,L\,H^{3/2}, \qquad H = \max(0,\; \text{water level} - \text{crest})$$The discharge coefficient $C_d$ depends on the crest lining (concrete 1.71, rock-lined 1.49, bare earth 1.32; Henderson 1966, Bos 1989).
Each culvert is evaluated with the FHWA HY-8 method (HIF-12-026): the capacity is the lesser of inlet control (an orifice/nomograph relationship on the headwater above the invert) and outlet control (Manning's friction through the barrel, with roughness $n$ set by material). The governing (smaller) capacity is used and multiplied by the number of barrels.
A surcharge grated pit (QUDM 2013, §7.6) is taken as the lesser of a weir inflow around the grate perimeter (shallow head) and an orifice inflow through the open grate area (deeper head):
$$Q = \min\!\big(C_w\,P\,H^{3/2},\; C_o\,A_{\text{open}}\sqrt{2gH}\big)$$where $P$ is the grate perimeter, $A_{\text{open}}$ the open area (plan area × open-area ratio), and $H$ the head above the grate.
All structures appear in the Design Preview section and plan at their set levels (§17), and their discharge is deducted from surface storage during routing.
climate_scenario (SSP1-2.6 … SSP5-8.5, or Historical), climate_epoch (2030–2100).GAH-3D can uplift the historical BoM IFD design depths using the nationally-uniform ARR climate-change factors (ARR 2019, Book 1 Ch. 6), based on CMIP6 SSP scenarios and IPCC AR6 temperature projections re-baselined to 1961–1990. The multiplicative factor depends on the SSP, the planning-horizon year, and the storm-duration bin:
$$P_{\text{future}} = P_{\text{historical}} \times \text{factor}(\text{SSP}, \text{epoch}, \text{duration})$$Select "Historical" for an unadjusted assessment (factor = 1.0). For a 2050, 5%-AEP basin on the Swan Coastal Plain, SSP2-4.5 typically adds ~25% to short-duration depths.
clogging_years (asset life), final_k_cl_m_per_day (clogged K at end of life), final_l_cl_m (clogged thickness at end of life) — set in the Maintenance Planning tab.Basin infiltration declines over the asset life as a clogging layer (silt, biological crust) builds on the floor. This is not an optional analysis — an infiltration basin must be designed for its end-of-life (clogged) performance, not just its as-new condition. A basin that drains acceptably when new can overtop or fail to drain within the design time as it ages, so the clogging assessment is a required part of the design, not a check to skip.
The assessment re-routes all design storms for each year from new (year 0) to end of life. The clogged-layer conductivity $K_c$ decays geometrically (exponentially) from the as-built value (the native $K_v$) to your end-of-life value, while the skin thickness $z_c$ grows linearly; the tool reports how peak depth and drain time degrade over time. Exponential decay is used because a linear $K_c$ ramp is non-physical here — it keeps the skin as permeable as the native soil until $K_c$ collapses in the final year, giving a “cliff-edge” timeline (flat for the whole asset life, then a sudden jump). Geometric decay instead produces gradual, year-on-year degradation. Because the critical event is re-evaluated each year and the groundwater mound is computed, you can see whether the basin will overtop or fail to drain within the design time as it ages — supporting a maintenance/rehabilitation schedule. The $K_c$ and $z_c$ used for every year are listed in the results table, shown on the timeline chart, and included in the PDF report.
Year 0 is the as-built, clean basin and reproduces the main (unclogged) design run exactly — it reuses the same soil-moderation factor, groundwater levels and design storm, with no clogged layer. The clogged skin is introduced only from year 1 onward as it accumulates, so the timeline begins from a value you can cross-check against the Results Dashboard.
This analysis routes all 14 standard ARR durations × 10 patterns per year with a 72-hour drain window, so it is much slower than a normal Run; a per-year progress bar streams as it runs.
ARR 2019 provides 10 temporal patterns per duration, none of which has a defined probability. To avoid picking the worst or best case, GAH-3D uses the probability-neutral method:
GAH-3D also separately tracks the critical drawdown event (the adopted pattern with the longest post-storm drain time), so you can check both peak-storage and drain-time performance.
| Output | What it means |
|---|---|
| Peak depth (m) | Maximum water depth in the basin during the critical event. If it exceeds the design max depth, the basin overtops (see §12). |
| Peak storage (m³) | Maximum stored volume during the critical event. |
| Total infiltration (m³) | Cumulative volume infiltrated over the routing window. |
| Drain time (hr) | Time from storm end to the basin effectively emptying. Compare against your council's drain-time criterion (often 24–72 hr). |
| Peak mound (m) | Maximum groundwater-mound rise above the static water table beneath the basin centre. |
| Overtopping / overflow (m³) | Volume stored above the basin crest when the design depth is exceeded. |
| Warnings | Summary and per-event overtopping notices (see §12). |
The Design Preview shows a live, interactive cross-section and plan of the basin that update as you edit the geometry, groundwater levels and hydraulic structures — before you run. The section is drawn to true 1:1 scale, so the batters are shown at exactly the side slope you entered, together with the design groundwater level, the saturated zone and the base aquifer. After a run it overlays the critical ponded water level and the peak groundwater mound.
The Results Dashboard plots the ponded-depth time-series for a selected duration (all 10 temporal patterns, with the median-peak pattern highlighted and the allowable depth marked), plus the groundwater response (mound, effective infiltration rate, cumulative infiltration) for the median pattern. Toggle buttons jump to the critical depth and critical drawdown events. The Design Summary tab also shows a median ponded depth per duration bar chart, so you can see at a glance which durations approach or exceed the allowable depth.
Once results are on screen the design inputs are locked so the displayed results always correspond to the inputs that produced them. Use Clear Results to unlock the inputs (and reset the preview to design mode) before changing parameters and re-running.
Generate Report produces a PDF design record containing: the site location; the hydrology (AEP, durations, catchments); the soil, hydraulic and groundwater parameters; the cross-section and plan; the results summary with the median-depth-per-duration chart; the critical ponded-depth and critical-drawdown graphs; and the clogging (Maintenance Planning) timeline and table. The full design-storm hydrographs are exported alongside as a CSV rather than enlarging the PDF. The report requires a completed Maintenance Planning run (§15) — clogging must be considered before a design record is issued.
GAH-3D — © 2024–2026 Innealta Engineering