Kinematic Wave Flow Routing Functions Summary 🌊🔍💻
The kinwave.c
module in EPA SWMM5, updated in version 5.2 (Build 5.2.0), authored by L. Rossman and M. Tryby, focuses on kinematic wave flow routing functions.
Key Features 📌
- Constants: Includes constants like WX (distance weighting), WT (time weighting), and EPSIL (convergence criterion).
- Shared Variables: Utilizes shared variables such as Beta1, C1, C2, Afull (full area), Qfull (full flow), and a pointer to the cross-section (pXsect).
- Main Function:
kinwave_execute
, responsible for finding outflow over a time step using kinematic wave routing in conduits.- Process Flow:
- Checks for non-conduit links and dummy cross-sections.
- Normalizes previous flows and inflow, and computes evaporation and infiltration loss rate.
- Solves the continuity equation for downstream normalized area (
aout
). - Updates flows and areas for the conduit, and returns the number of iterations used.
- Process Flow:
Continuity Equation Solution 📈
solveContinuity
function aims to solve the continuity equation for normalized area using the Newton-Raphson root finder.- It establishes upper and lower bounds for the area and determines the flow based on these bounds.
- The function
evalContinuity
is used to compute the value of the continuity equation and its derivative with respect to normalized area.
Updates and Improvements 🛠️
- Various updates have been integrated, such as conduit inflow consideration for computing losses, and changes in the arguments to the
link_getLossRate
function.
Technical Specifications 🖥️
- Uses standard mathematical and header files (
math.h
andheaders.h
), and includes thefindroot.h
file for root finding functionalities. - Employs constants and shared variables to simplify and standardize calculations across the module.
- Integrates detailed documentation and update history for better understanding and maintenance.
Overall, the kinwave.c
module is a crucial part of SWMM5, providing advanced routing calculations for modeling flow in urban drainage systems. 🌆🚰🌧️🔢👨💻🔍🌊💧📊🛠️📝🖥️🔄