OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
Runoff.hpp File Reference

Subcatchment runoff generation — batch-oriented nonlinear reservoir. More...

#include "../data/SubcatchData.hpp"
#include "surface/InfilBank.hpp"
#include <vector>
#include <array>
#include <functional>
#include <utility>
Include dependency graph for Runoff.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmm::runoff::RunoffSourceForcing
 
struct  openswmm::runoff::CompletedSubareaWater
 
struct  openswmm::runoff::RunoffSoA
 
class  openswmm::runoff::RunoffSolver
 Owned three-pool non-LID reservoir, native soil state and completed routing history. Initialize against one compatible model before use. Geometry is cached; execute mutates both owner and context, invokes an optional borrowed callback, and is not a transaction. Completed-source drivers must trial copies and publish after all coupled water owners accept. Serialize all mutation, borrowing and archives. More...
 

Namespaces

namespace  openswmm
 
namespace  openswmm::detail
 
namespace  openswmm::runoff
 

Variables

constexpr double openswmm::runoff::MEXP
 Manning's exponent (legacy subcatch.c:55 literal — match bit-for-bit, NOT 5.0/3.0)
 
constexpr double openswmm::runoff::ODETOL = 0.0001
 ODE solver tolerance (matching legacy)
 
constexpr double openswmm::runoff::PHI = 1.486
 Manning's US customary constant.
 

Detailed Description

Subcatchment runoff generation — batch-oriented nonlinear reservoir.

Three subareas per subcatchment (matching legacy subcatch.c):

  • IMPERV0: Impervious with zero depression storage (PctZero fraction)
  • IMPERV1: Impervious with depression storage
  • PERV: Pervious with depression storage and infiltration

Depth integration uses the adaptive explicit RK45 ODE solver (matching legacy odesolve.c) to integrate: dd/dt = inflow - alpha * (d - Ds)^(5/3)

Note
Legacy reference: src/legacy/engine/runoff.c, subcatch.c, odesolve.c
Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License
Apache-2.0