![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Shared 1D FV species transport kernels (advection reconstruction, Zalesak FCT flux limiting, implicit per-chain dispersion). More...
#include <algorithm>#include <cmath>#include <vector>#include "../../hydraulics/fv/FvKernels.hpp"#include "../../hydraulics/fv/FvOptions.hpp"#include "../../hydraulics/fv/NetworkMeshData.hpp"Go to the source code of this file.
Classes | |
| struct | openswmm::transport::fvkernels::SpeciesKernelView |
| Non-owning view over everything the species kernels read and write. More... | |
| struct | openswmm::transport::fvkernels::NetworkMeshData |
| SoA mesh geometry and topology for the FV network solver. More... | |
| struct | openswmm::transport::fvkernels::NetworkStateData |
| Mutable solver state — the conserved variables and the node volumes. More... | |
Namespaces | |
| namespace | openswmm |
| namespace | openswmm::transport |
| namespace | openswmm::transport::fvkernels |
Enumerations | |
| enum class | openswmm::transport::fvkernels::Limiter |
| Slope limiter used by the second-order (MUSCL) reconstruction. More... | |
| enum class | openswmm::transport::fvkernels::ScalarScheme |
| Reconstruction used for the advected scalar field. More... | |
Functions | |
| double | openswmm::transport::fvkernels::limitSlope (double a, double b, Limiter lim) |
| void | openswmm::transport::fvkernels::reconstructScalars (const SpeciesKernelView &v, double dt) |
| void | openswmm::transport::fvkernels::limitSpeciesFluxes (const SpeciesKernelView &v, int species, double dt) |
| Assemble the face species fluxes and limit them (Zalesak FCT). | |
| void | openswmm::transport::fvkernels::dispersionSolve (const SpeciesKernelView &v, double dt) |
Shared 1D FV species transport kernels (advection reconstruction, Zalesak FCT flux limiting, implicit per-chain dispersion).
Phase E0 of the Unified Transport suite (plans/transport/EULERIAN_ARD_TRANSPORT_PLAN.md, rev. 2): the species-transport machinery formerly private to hydraulics/fv/ExplicitFvSolver is promoted here VERBATIM so the standalone Eulerian ARD engine and the FV hydraulic solver share one implementation (master plan D-UT1 as amended). The FV solver calls these free functions through a thin view over its own state; behavior is bitwise-identical to the pre-move code by construction (E0 gate).
The kernels operate on the FV cell mesh types (NetworkMeshData / NetworkStateData) and the face records the hydrodynamic solve produced. They own no state: every array — including scratch — is supplied by the caller through SpeciesKernelView, so the same code can later be driven by the HydraulicsProjection path (plan §3.2) without change.