#include <RDII.hpp>
|
| static int | getRainInterval (const UnitHydParams &uh, double wet_step) |
| | Compute rain processing interval for a UH (minimum limb duration, capped by wet_step).
|
| |
| static int | getMaxPeriods (const UnitHydParams &uh, int response, int rainInterval) |
| | Compute max past periods for a UH response given a rain interval.
|
| |
◆ UhNameMap
UH name → index map type; case-insensitive (legacy hash.c parity).
◆ addUnitHydParams()
| int openswmm::rdii::RDIISolver::addUnitHydParams |
( |
const std::string & | name, |
|
|
const UnitHydParams & | params ) |
Register a unit hydrograph parameter set by name.
- Parameters
-
| name | Unit hydrograph name (e.g. from [HYDROGRAPHS] section). |
| params | Complete UH parameters for all 12 months x 3 responses. |
- Returns
- Index of the registered UH parameter set.
◆ advance()
| void openswmm::rdii::RDIISolver::advance |
( |
SimulationContext & | ctx, |
|
|
double | new_elapsed_sec ) |
Advance the strict-grid RDII computation to a runoff clock time.
Embeds legacy createRdiiFile()'s driver at runtime: RDII is evaluated on the fixed RdiiStep (= wet_step) grid anchored at simulation start, with each group's rainfall processed in its own rain_interval chunks — NOT on the runoff substep cadence. (The previous per-substep accumulator crossed at most one rain interval per runoff substep, so a DRY_STEP jump swallowed the intermediate intervals: dry-period tracking, IA recovery and the convolution grid all corrupted, showing as an RDII onset lead/lag of about one wet step.)
Call once per runoff substep after gage rates (and monthly adjustment) are updated, with the substep's END elapsed time. The substep never crosses a gage entry boundary (the runoff timestep is capped to the next rain date), so the current gage rate is exact for every chunk starting inside the substep. Per-tick node flows are stored float32 with the legacy ZERO_RDII threshold, one grid row per tick, zero-order held over [tick, tick + wet_step) at lookup, matching the RDII interface file's record windows.
◆ applyRdiiInflows()
| void openswmm::rdii::RDIISolver::applyRdiiInflows |
( |
SimulationContext & | ctx, |
|
|
double | elapsed_sec ) const |
Apply RDII inflows at a routing time to node lateral flows.
Looks up the strict-grid row whose window contains elapsed_sec (the START of the routing step, matching legacy addRdiiInflows(currentDate) with currentDate taken at routing_execute entry) and adds the stored float32 flows to nodes.rdii_inflow.
◆ findUnitHyd()
| int openswmm::rdii::RDIISolver::findUnitHyd |
( |
const std::string & | name | ) |
const |
Look up unit hydrograph index by name.
- Returns
- Index, or -1 if not found.
◆ getMaxPeriods()
| int openswmm::rdii::RDIISolver::getMaxPeriods |
( |
const UnitHydParams & | uh, |
|
|
int | response, |
|
|
int | rainInterval ) |
|
static |
Compute max past periods for a UH response given a rain interval.
◆ getRainInterval()
| int openswmm::rdii::RDIISolver::getRainInterval |
( |
const UnitHydParams & | uh, |
|
|
double | wet_step ) |
|
static |
Compute rain processing interval for a UH (minimum limb duration, capped by wet_step).
◆ init()
◆ nodeFlows()
| const std::vector< double > & openswmm::rdii::RDIISolver::nodeFlows |
( |
| ) |
const |
|
inline |
Buffered per-node RDII flow (CFS), sized n_nodes. Read by the RDII interface file SAVE path (RdiiInterfaceFile::saveFlows).
◆ rdiiNodeList()
| std::vector< int > openswmm::rdii::RDIISolver::rdiiNodeList |
( |
| ) |
const |
Sorted unique node indices that have an RDII unit-hydrograph inflow (legacy RdiiNodeIndex; used as the SAVE-file header node list).
◆ uhNameIndex()
| const UhNameMap & openswmm::rdii::RDIISolver::uhNameIndex |
( |
| ) |
const |
|
inline |
Read-only access to the UH name → index map (for validation).
◆ decay_params
| std::vector<std::array<ExpDecayParams, 3> > openswmm::rdii::RDIISolver::decay_params |
Exponential decay params per UH group × response. Same indexing as uh_params; each entry holds [SHORT, MEDIUM, LONG]. active == false means the response uses the legacy linear IA model.
◆ uh_params
The documentation for this class was generated from the following files:
- /home/runner/work/openswmm.engine/openswmm.engine/src/engine/hydrology/RDII.hpp
- /home/runner/work/openswmm.engine/openswmm.engine/src/engine/hydrology/RDII.cpp