![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Plan PE — per-element radiative and bed attributes. More...
#include <cstddef>#include <cstdint>#include <string>#include <vector>Go to the source code of this file.
Classes | |
| struct | openswmm::HeatElement |
| Which element a flux evaluator is being called for. More... | |
| struct | openswmm::HeatOverrideRow |
Namespaces | |
| namespace | openswmm |
Functions | |
| bool | openswmm::isSedimentAttr (HeatAttr a) noexcept |
| Classify an attribute ordinal by the sediment-family boundary. | |
Plan PE — per-element radiative and bed attributes.
Shading, sky view, land-cover emissivity and temperature, burial depth, ground temperature, hyporheic velocity and bed material are properties of a PLACE. Until PE they were one number for the whole model, which collapses exactly the spatial signal a heat model exists to produce: a shaded riparian reach and an exposed concrete channel shared one shade factor, and a 4 m trunk and a 0.8 m lateral shared one ground depth.
HeatElement — a kind and an index. ARD cells and LARD parcels deliberately do NOT get their own kind: both resolve to their parent LINK. Shading does not vary within one conduit in any data a modeller can supply, and a finer table would be one nothing can fill. Do not "improve" this into a per-cell table.resolveHeatOverrides runs once at open, after every component has applied, and materialises a dense vector only if at least one row targets that family. The step loop then reads ov.empty() ? global : ov[i] — one predictable branch, no hashing, no search.Two properties follow, and both are the reason for the choice: a model with no overrides allocates nothing and passes the same global object it passed before PE, so byte-identity is structural rather than tested; and the per-step cost of this whole feature on such a model is one .empty() check.
GLOBAL < TAG < element. Most specific wins. TAG reads SWMM's own [TAGS] section, already parsed and already round-tripped, so fifty shaded conduits are tagged once rather than listed fifty times. This replaces the reference's <from> <to> element range, which does not map onto a network graph with no linear element ordering.