![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Overland transport S1 — per-cell species MASS on the 2D surface. More...
#include <cstddef>#include <string>#include <string_view>#include <vector>Go to the source code of this file.
Classes | |
| struct | openswmm::twoD::SurfaceTransportState |
| struct | openswmm::twoD::SurfaceTransportState::BoundaryQualityRow |
Namespaces | |
| namespace | openswmm |
| namespace | openswmm::twoD |
Overland transport S1 — per-cell species MASS on the 2D surface.
Species are carried as mass, not concentration (D-2DT1). The 2D solver's integrated state is SurfaceStateData::volume, with depth and head reconstructed from it each step; a concentration state would have to be reconstructed against a volume that itself moves, and the two would disagree at every wet/dry transition. Mass is what the flux form conserves, and it makes drying trivial: a cell that empties keeps what it held.
Layout is SPECIES-MAJOR, [s * n_cells + c], matching ArdEngine's cell_phi so the two engines' kernels read alike.
[POLLUTANTS] species only, [0, np). Water age, temperature and MSX rows arrive with S4 and take the same row convention the 1D engines use (pollutants, MSX, age, temperature). n_species is therefore whatever the router sizes it to, and no code in the marcher knows what a row MEANS — it moves mass.