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

Kokkos (OpenMP/CUDA/HIP/SYCL) port of the explicit local-inertial FV marcher with tiered local timestepping. More...

#include <array>
#include <string>
#include <utility>
#include <vector>
#include "../solver/ISurfaceSolver.hpp"
#include "../solver/InertialEdges.hpp"
#include "KokkosTypes.hpp"
Include dependency graph for ExplicitKokkosSurfaceSolver.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openswmm::twoD::gpu::ExplicitKokkosSurfaceSolver
 

Namespaces

namespace  openswmm
 
namespace  openswmm::twoD
 
namespace  openswmm::twoD::gpu
 

Detailed Description

Kokkos (OpenMP/CUDA/HIP/SYCL) port of the explicit local-inertial FV marcher with tiered local timestepping.

P5 of the 2026-07-29 2D reimplementation plan. Same numerical scheme as the serial ExplicitInertialSolver — the scalar kernel bodies are the SAME code (InertialKernels.hpp / VfrClosure.hpp, compiled here with OPENSWMM_KERNEL_FN = KOKKOS_INLINE_FUNCTION) — only the loop structure changes:

face sweep / positivity / cell gather → parallel_for per tier active-set + tier compaction → parallel_scan (device) dt0 → min-reduce (exact in FP) boundary edges + live junction exchange → single-thread device kernel (serial order preserved → deterministic shared- cell/node budgets, exactly the serial semantics)

Host↔device traffic happens ONLY at advance() boundaries (the co-advance sync batches): forcings + frozen 1D node arrays in, {volume, head, depth, edge_flux, ∫Q dt} out. All marching state (V, η, h, q, accumulators, tiers, active sets) is device-resident.

Determinism: every kernel writes disjoint outputs in fixed CSR order and the only reductions are min (FP-exact) — on the OpenMP backend results are bit-identical to the serial marcher for any thread count (gated by test_2d_omp_explicit).

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