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

Backend-neutral interface for the 2D surface-routing time integrator. More...

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

Go to the source code of this file.

Classes

class  openswmm::twoD::ISurfaceSolver
 Abstract time integrator for the 2D surface-routing ODE system. More...
 

Namespaces

namespace  openswmm
 
namespace  openswmm::twoD
 

Detailed Description

Backend-neutral interface for the 2D surface-routing time integrator.

Phase 0 of the portable GPU CVODE strategy (docs/2D_GPU_PORTABLE_CVODE_STRATEGY.md §6). Extracts the solver contract that SurfaceRouter2D depends on so the concrete solver can be chosen at runtime:

ISurfaceSolver ├── CvodeSurfaceSolver (serial CPU; today's path, default) └── CvodeKokkosSurfaceSolver (GPU plugin; lands Phase 2+)

This header is dependency-free (no SUNDIALS, no Kokkos): it only forward-declares the 2D data types it passes by reference, so it compiles regardless of which backend — if any — is available.

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