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

Dry-cell active-set (wet-front) mask for the 2D RHS pipeline. More...

#include <cstdint>
#include <vector>
Include dependency graph for ActiveSetData.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmm::twoD::ActiveSetData
 

Namespaces

namespace  openswmm
 
namespace  openswmm::twoD
 

Detailed Description

Dry-cell active-set (wet-front) mask for the 2D RHS pipeline.

Most urban-flood meshes are dry over most of the simulation, with water confined to a moving front around coupled nodes, outfalls and boundary inflows. The active set restricts the per-RHS-evaluation work (reconstruction, gradients, limiter, edge fluxes, assembly) to the cells that can possibly change state this advance window:

active = wet ∪ sourced ∪ halo(N rings of neighbours)

The CVODE system stays FULL SIZE — inactive components simply get ydot ≡ 0, which is bit-exact: a dry, source-free cell walled off from the front has exactly zero RHS in the unmasked pipeline too, so its finite-difference Jacobian column/row, Krylov components and Nordsieck history are all exactly zero/frozen. No CVodeReInit is needed as the front moves; the mask is rebuilt once per advance.

Safety: the halo gives the front room to move within one window; if any outer-ring cell wets during the advance, the window is discarded and redone with a doubled halo (SurfaceRouter2D). An active→inactive edge is treated as a wall (flux 0) so any mask error is locally conservative, never a leak.

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