Science
Green-Ampt Wetting-Front Soil Infiltration Rate & Ponding Depth
Calculate physically based Green-Ampt soil infiltration capacity f = K_s * (1 + (psi * Delta_theta) / F) (mm/hr) and Mein-Larson Cumulative Ponding Depth F_p = (K_s * psi * Delta_theta) / (i - K_s) (mm).
Model stormwater infiltration from measurable soil suction and porosity!
Unlike purely empirical decay fits, W.H. Green and G.A. Ampt's (1911) physical infiltration model embedded in EPA SWMM and HEC-HMS tracks a sharp piston wetting front advancing downward into unsaturated soil! Driven by gravity PLUS capillary wetting-front suction head psi (mm) across moisture deficit Delta_theta = (theta_s - theta_i), potential infiltration capacity at cumulative infiltrated depth F (mm) is: f = K_s * (1 + (psi * Delta_theta) / F)!
Under steady storm rainfall intensity i (mm/hr), surface ponding NEVER occurs if i <= K_s (all rain infiltrates indefinitely)! When i > K_s, Mein and Larson proved surface ponding and runoff begin at the exact Cumulative Ponding Depth F_p = (K_s * psi * Delta_theta) / (i - K_s), reached at Ponding Time t_p = F_p / i (hours)!
| Storm & Soil State (Loam K_s = 12 mm/hr, Suction psi = 110 mm, Deficit = 0.30) | Cumulative Depth F / Rain i | Calculated Rate or Depth | Hydrologic Regime |
|---|---|---|---|
| Early Wetting Front | F = 25.0 mm | f = 27.84 mm/hr | High capillary suction pull |
| Deep Wetting Front | F = 60.0 mm | f = 18.60 mm/hr | Approaching gravity K_s = 12 |
| Mein-Larson Ponding Threshold | Storm i = 45.0 mm/hr (> K_s) | F_p = 12.00 mm (t_p = 0.267 hr) | Runoff starts after 16 min! |
Green-Ampt Potential Infiltration Capacity f(F) (mm/hr)
Evaluates K_s * (1 + (psi * Delta_theta) / F) from saturated conductivity B2 (mm/hr), suction head B3 (mm), moisture deficit B4, and cumulative depth B5 (mm > 0).
=IF(OR(B2 <= 0, B3 < 0, B4 < 0, B5 <= 0), "Invalid Soil or Depth Input", ROUND(B2 * (1 + ((B3 * B4) / B5)), 2))Mein-Larson Cumulative Infiltration at Surface Ponding F_p (mm)
Checks whether rainfall intensity B6 exceeds K_s (B2); if B6 <= B2, no surface ponding occurs.
=IF(B6 <= B2, "No Ponding (Rainfall Intensity <= Ks)", ROUND((B2 * B3 * B4) / (B6 - B2), 2))Try the example
Use the original values or change them to test your understanding.