OpenSWMM Engine  6.0.0-alpha.3
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.3)
Loading...
Searching...
No Matches
SurfaceFluxCalculator.cpp File Reference

Implementation of gradient computation, slope limiting, and edge fluxes. More...

#include "SurfaceFluxCalculator.hpp"
#include "../data/ActiveSetData.hpp"
#include "../data/BoundaryData.hpp"
#include <cmath>
#include <algorithm>
#include <cstdlib>
Include dependency graph for SurfaceFluxCalculator.cpp:

Namespaces

namespace  openswmm
 
namespace  openswmm::twoD
 

Functions

void openswmm::twoD::computeUnlimitedGradients (const MeshData &mesh, SurfaceStateData &state, int nthreads=1)
 Compute unlimited gradients for all triangles via Green-Gauss theorem.
 
void openswmm::twoD::computeLimitedGradients (const MeshData &mesh, SurfaceStateData &state, double epsilon, int nthreads=1)
 Apply Jawahar-Kamath slope limiter (Eq. [23]–[24]).
 
void openswmm::twoD::computeEdgeFluxes (const MeshData &mesh, SurfaceStateData &state, const SolverOptions2D &opts)
 Compute edge fluxes for all triangles.
 
void openswmm::twoD::assembleRHS (const MeshData &mesh, const SurfaceStateData &state, const SolverOptions2D &opts, double *ydot)
 Assemble the RHS of the ODE system: dψ/dt for each triangle.
 
void openswmm::twoD::assembleImplicitRHS (const MeshData &mesh, const SurfaceStateData &state, const SolverOptions2D &opts, double *ydot)
 Implicit half of the IMEX split: the flux divergence only (ARKODE F_I).
 
void openswmm::twoD::assembleExplicitRHS (const MeshData &mesh, const SurfaceStateData &state, const SolverOptions2D &opts, const double *y, double *ydot)
 Explicit half of the IMEX split: source/sink forcing (ARKODE F_E).
 
void openswmm::twoD::computeCellContinuity (const MeshData &mesh, SurfaceStateData &state, const SolverOptions2D &opts, double dt)
 Compute the per-cell continuity residual (local mass-balance check).
 
void openswmm::twoD::computeFaceVelocity (const MeshData &mesh, SurfaceStateData &state, const SolverOptions2D &opts)
 Reconstruct cell-centred velocity (vx, vy) from edge fluxes (RT0).
 

Detailed Description

Implementation of gradient computation, slope limiting, and edge fluxes.

See also
SurfaceFluxCalculator.hpp