![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Placeholder GPU surface-solver plugin (Phase 0 scaffold). More...
Functions | |
| OPENSWMM_GPU_ABI int | openswmm_gpu_probe (OpenSwmmGpuProbe *out) |
| Query the plugin for a usable GPU device. | |
| OPENSWMM_GPU_ABI void * | openswmm_make_gpu_explicit_solver (const OpenSwmmGpuProbe *) |
| Construct the Kokkos explicit LTS marcher surface solver. | |
Placeholder GPU surface-solver plugin (Phase 0 scaffold).
Implements the GpuPluginAbi.h contract with NO actual GPU backend. It exists so the runtime discovery / dlopen / fallback wiring can be built and exercised without a device toolchain. The probe reports "no device", so the core's auto-selection falls back to the serial CPU ExplicitInertialSolver.
This translation unit deliberately depends on NOTHING beyond the C ABI header and the C++ standard library — no Kokkos — so it compiles with a plain host compiler on every platform.
| OPENSWMM_GPU_ABI int openswmm_gpu_probe | ( | OpenSwmmGpuProbe * | out | ) |
Query the plugin for a usable GPU device.
Must be cheap and side-effect-free beyond backend initialization.
| out | Caller-allocated struct to fill. Zero-initialized on entry by the plugin. |
| OPENSWMM_GPU_ABI void * openswmm_make_gpu_explicit_solver | ( | const OpenSwmmGpuProbe * | probe | ) |
Construct the Kokkos explicit LTS marcher surface solver.
The only solver factory in the contract: the core dlsym()s it and falls back to the serial CPU ExplicitInertialSolver when a plugin does not export it. Implements BOTH cell closures (FLAT and VFR). Returns an ISurfaceSolver* (as void*) owned by the caller, or NULL.