#include <LID.hpp>
|
| static void | batchBioCellFlux (LIDGroupSoA &g, double rainfall, const double *evap_rate, double dt) |
| | Batch bio-cell flux rates — VECTORISABLE.
|
| |
| static void | batchBarrelFlux (LIDGroupSoA &g, double rainfall, double dt) |
| | Batch rain barrel flux rates — VECTORISABLE (simplest)
|
| |
| static void | batchSwaleFlux (LIDGroupSoA &g, double rainfall, const double *evap_rate, double dt) |
| | Batch vegetative swale flux rates — VECTORISABLE.
|
| |
| static void | batchGreenRoofFlux (LIDGroupSoA &g, double rainfall, const double *evap_rate, double dt) |
| | Batch green roof flux rates — VECTORISABLE.
|
| |
| static void | batchInfilTrenchFlux (LIDGroupSoA &g, double rainfall, const double *evap_rate, double dt) |
| |
| static void | batchPavementFlux (LIDGroupSoA &g, double rainfall, const double *evap_rate, double dt) |
| | Batch permeable pavement flux rates — VECTORISABLE.
|
| |
| static void | batchRoofDisconFlux (LIDGroupSoA &g, double rainfall, const double *evap_rate, double dt) |
| | Batch roof disconnection flux rates — VECTORISABLE.
|
| |
| static void | batchSwaleModPuls (LIDGroupSoA &g, double rainfall, const double *evap_rate, double dt) |
| |
◆ batchBarrelFlux()
| void openswmm::lid::LIDSolver::batchBarrelFlux |
( |
LIDGroupSoA & | g, |
|
|
double | rainfall, |
|
|
double | dt ) |
|
static |
Batch rain barrel flux rates — VECTORISABLE (simplest)
◆ batchBioCellFlux()
| void openswmm::lid::LIDSolver::batchBioCellFlux |
( |
LIDGroupSoA & | g, |
|
|
double | rainfall, |
|
|
const double * | evap_rate, |
|
|
double | dt ) |
|
static |
Batch bio-cell flux rates — VECTORISABLE.
◆ batchGreenRoofFlux()
| void openswmm::lid::LIDSolver::batchGreenRoofFlux |
( |
LIDGroupSoA & | g, |
|
|
double | rainfall, |
|
|
const double * | evap_rate, |
|
|
double | dt ) |
|
static |
Batch green roof flux rates — VECTORISABLE.
◆ batchInfilTrenchFlux()
| void openswmm::lid::LIDSolver::batchInfilTrenchFlux |
( |
LIDGroupSoA & | g, |
|
|
double | rainfall, |
|
|
const double * | evap_rate, |
|
|
double | dt ) |
|
static |
Batch infiltration trench flux rates — VECTORISABLE Surface drains directly to storage (no soil layer), matching legacy trenchFluxRates().
◆ batchPavementFlux()
| void openswmm::lid::LIDSolver::batchPavementFlux |
( |
LIDGroupSoA & | g, |
|
|
double | rainfall, |
|
|
const double * | evap_rate, |
|
|
double | dt ) |
|
static |
Batch permeable pavement flux rates — VECTORISABLE.
◆ batchRoofDisconFlux()
| void openswmm::lid::LIDSolver::batchRoofDisconFlux |
( |
LIDGroupSoA & | g, |
|
|
double | rainfall, |
|
|
const double * | evap_rate, |
|
|
double | dt ) |
|
static |
Batch roof disconnection flux rates — VECTORISABLE.
◆ batchSwaleFlux()
| void openswmm::lid::LIDSolver::batchSwaleFlux |
( |
LIDGroupSoA & | g, |
|
|
double | rainfall, |
|
|
const double * | evap_rate, |
|
|
double | dt ) |
|
static |
Batch vegetative swale flux rates — VECTORISABLE.
◆ batchSwaleModPuls()
| void openswmm::lid::LIDSolver::batchSwaleModPuls |
( |
LIDGroupSoA & | g, |
|
|
double | rainfall, |
|
|
const double * | evap_rate, |
|
|
double | dt ) |
|
static |
Batch Modified Puls solver for swale (omega=0.5, iterative). Computes flux rates and iterates until convergence.
◆ execute()
| void openswmm::lid::LIDSolver::execute |
( |
SimulationContext & | ctx, |
|
|
double | dt, |
|
|
double | rainfall, |
|
|
double | evap_rate ) |
Compute LID performance for all units (batch by type).
For each LID type group:
- Gather inputs (rainfall, evap, inflow from impervious area)
- Batch flux-rate computation (type-specific, vectorisable)
- Batch Euler integration of layer depths
- Scatter outputs to subcatchment runoff totals
- Parameters
-
| ctx | Simulation context. |
| dt | Timestep (seconds). |
| rainfall | Rainfall rate (ft/sec). |
| evap_rate | Evaporation rate (ft/sec). Per-unit effective rates are resolved internally from any prescribed PET forcing on each unit's parent subcatchment. |
◆ group() [1/2]
| LIDGroupSoA & openswmm::lid::LIDSolver::group |
( |
int | type_index | ) |
|
|
inline |
Access a type group (for testing or external queries).
◆ group() [2/2]
| const LIDGroupSoA & openswmm::lid::LIDSolver::group |
( |
int | type_index | ) |
const |
|
inline |
◆ init()
◆ numGroups()
| int openswmm::lid::LIDSolver::numGroups |
( |
| ) |
const |
|
inline |
◆ storedVolume()
| double openswmm::lid::LIDSolver::storedVolume |
( |
| ) |
const |
Total water volume currently stored in all LID units (ft³), for the runoff mass balance (legacy lid_getStoredVolume()). This is the one SWMMEngine calls (runoff_init_store / runoff_final_store).
◆ totalEvapVolume()
| double openswmm::lid::LIDSolver::totalEvapVolume |
( |
| ) |
const |
◆ totalInfilVolume()
| double openswmm::lid::LIDSolver::totalInfilVolume |
( |
| ) |
const |
◆ totalInitVolume()
| double openswmm::lid::LIDSolver::totalInitVolume |
( |
| ) |
const |
◆ totalStoredVolume()
| double openswmm::lid::LIDSolver::totalStoredVolume |
( |
| ) |
const |
Water-balance-ledger volume queries (#102 C), summing the per-unit wb_* accumulators over the unit footprints.
MERGE REPAIR (a38f0c0b, 2026-08-29): these four were DEFINED in LID.cpp on the incoming swmm6_rel side with no declaration on EITHER side of the merge — that branch does not compile as it stands, and neither did the merge result. The definitions are kept and declared here rather than deleted, because deleting is the one choice that cannot be undone by whoever wires them up. Nothing calls them yet: storedVolume() above, not totalStoredVolume(), is what the runoff mass balance uses, and the two measure different things (void-weighted layer depths vs the wb_ ledger's final volume).
The documentation for this class was generated from the following files:
- /home/runner/work/openswmm.engine/openswmm.engine/src/engine/hydrology/LID.hpp
- /home/runner/work/openswmm.engine/openswmm.engine/src/engine/hydrology/LID.cpp