![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Implementation of gradient computation, slope limiting, and edge fluxes. More...
#include "SurfaceFluxCalculator.hpp"#include "InertialKernels.hpp"#include "../data/BoundaryData.hpp"#include <cmath>#include <algorithm>#include <cstdlib>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::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). | |
| double | openswmm::twoD::computeBoundaryEdgeFlux (const MeshData &mesh, const SurfaceStateData &state, const SolverOptions2D &opts, double dh_eps, int i, int idx) noexcept |
Boundary-edge flux for cell i across flat mesh edge slot idx (m³/s, inflow-positive). Exported wrapper over the file-local boundary kernel so non-DW solvers (the explicit marcher) evaluate the identical 5-type boundary math per substep. | |
| OPENSWMM_KERNEL_FN double | openswmm::twoD::faceDepthFromEta (double eta, double z_lo, double z_hi) noexcept |
Implementation of gradient computation, slope limiting, and edge fluxes.