![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Explicit local-inertial FV time-marcher for the 2D surface. More...
#include <array>#include <cstdint>#include <string>#include <vector>#include "ISurfaceSolver.hpp"#include "InertialEdges.hpp"#include "../data/SolverOptions2D.hpp"Go to the source code of this file.
Classes | |
| class | openswmm::twoD::ExplicitInertialSolver |
Namespaces | |
| namespace | openswmm |
| namespace | openswmm::twoD |
Explicit local-inertial FV time-marcher for the 2D surface.
Phase 1 of the 2026-07-29 2D reimplementation plan. A CFL-driven explicit marcher over the unique-face layout (InertialEdges): cell volume V is the conserved state (SurfaceStateData::volume, in place), one prognostic unit-width discharge q per interior face, semi-implicit friction, positivity limiter (V ≥ 0 always — no negative-volume debt machinery), and a flux-active cell set with lazy source-only integration for rain-on-grid thin films.
advance(t0, t1) ALWAYS reaches t1 (the step size is known a priori from the CFL bound), so none of the router's failed/frozen/ partial-window machinery ever engages on this path. No linear solver, no Jacobian, no preconditioner.
Tiered local timestepping (LTS_TIERS > 1) lands in Phase 2; this phase steps the whole active set at the global CFL dt.