OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
ExplicitInertialSolver.hpp File Reference

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"
Include dependency graph for ExplicitInertialSolver.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openswmm::twoD::ExplicitInertialSolver
 

Namespaces

namespace  openswmm
 
namespace  openswmm::twoD
 

Detailed Description

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.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License\n Apache-2.0