![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
LID layer topology and geometry, shared by every species track. More...
Go to the source code of this file.
Classes | |
| struct | openswmm::transport::Donors |
Namespaces | |
| namespace | openswmm |
| namespace | openswmm::transport |
Functions | |
| Donors | openswmm::transport::donorsFor (lid::LIDType t, bool has_soil) |
| void | openswmm::transport::layerVolumes (const lid::LIDGroupSoA &g, std::size_t ui, double(&v)[kNL]) |
| std::vector< int > | openswmm::transport::buildOffsets (const lid::LIDSolver &solver) |
Flat index of each per-type group's first unit; back() == n_units. | |
Variables | |
| constexpr int | openswmm::transport::kNL = LidLayerSpeciesState::kLayerCount |
| constexpr int | openswmm::transport::kExternal = -1 |
| -1 means "external to the unit"; -2 means "this type has no such layer". | |
| constexpr int | openswmm::transport::kAbsent = -2 |
| constexpr int | openswmm::transport::kSurf = static_cast<int>(LidLayer::SURFACE) |
| constexpr int | openswmm::transport::kPave = static_cast<int>(LidLayer::PAVEMENT) |
| constexpr int | openswmm::transport::kSoil = static_cast<int>(LidLayer::SOIL) |
| constexpr int | openswmm::transport::kStor = static_cast<int>(LidLayer::STORAGE) |
LID layer topology and geometry, shared by every species track.
A4 wrote these as file-local helpers in WaterAgeLid.cpp, when age was the only species. H5b adds temperature and needs the same three facts: which layer feeds which, how much water each holds, and how the per-type groups flatten to unit indices.
They are extracted rather than copied. Copies of exactly this kind of shared expression are what let RadiativeExchange acquire its own element traversal and thereby its own copy of H2's divergence (D-H5e, lesson 81) — and the donor map is worse to duplicate than a traversal, because it encodes eight hand-checked per-type stacks.