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

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

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)
 

Detailed Description

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.

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