![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Modern engine implementation, data model and public interfaces. More...
Topics | |
| Control rules | |
| Parse, evaluate and arbitrate simulation control conditions and actions. | |
| Core Engine The core engine module, including lifecycle management, simulation options, and shared utilities. | |
| Engine data model | |
| Parallel storage, resolved model records and simulation state. | |
| Hydrology and surface processes | |
| Rainfall, runoff, infiltration, groundwater, snow and source delivery. | |
| Engine input | |
| Input dispatch, parsing, path resolution and format-specific readers. | |
| Engine numerical utilities | |
| Numerical expression evaluation, root finding, ordinary differential equations and portable vector operations used by engine solvers. | |
| Serialized output I/O | |
| Saved-result access | |
| Engine water quality | |
| Pollutant and native species surface accumulation, runoff delivery, treatment, conservative routing and segment-based dispersion contracts. | |
| New Engine C API | |
| Hot Start File API | |
| Plugin System | |
Files | |
| file | Controls.cpp |
| Rule-based control engine — full legacy parity implementation. | |
| file | Controls.hpp |
| Rule-based control evaluation, parsing and action arbitration. | |
| file | StorageGeometry.hpp |
| Storage-shape raw parameters ⇄ area-relation coefficients, and the INP/GeoPackage keywords for each shape. | |
| file | Culvert.cpp |
| Culvert inlet control — numerically identical to legacy culvert.c. | |
| file | Culvert.hpp |
| Culvert inlet control — FHWA HEC-5 equations. | |
| file | Divider.cpp |
| Flow divider node logic — legacy-faithful divider_getOutflow. | |
| file | Divider.hpp |
| Flow divider node logic — cutoff, overflow, tabular, weir. | |
| file | DynamicWave.cpp |
| Dynamic wave routing – batch-oriented St. Venant equations. | |
| file | DynamicWave.hpp |
| Dynamic wave routing solver — batch-oriented St. Venant equations. | |
| file | Exfiltration.cpp |
| Storage exfiltration — numerically identical to legacy exfil.c. | |
| file | Exfiltration.hpp |
| Storage node exfiltration — Green-Ampt bottom/bank seepage. | |
| file | ForceMain.cpp |
| Force main friction — numerically identical to legacy forcmain.c. | |
| file | ForceMain.hpp |
| Force main friction — Hazen-Williams and Darcy-Weisbach. | |
| file | HydStructures.cpp |
| Non-conduit link flow — batch by type, numerically identical to legacy. | |
| file | HydStructures.hpp |
| Non-conduit link flow: pumps, orifices, weirs, outlets. | |
| file | Inlet.cpp |
| Street inlet capture — numerically identical to legacy inlet.c. | |
| file | Inlet.hpp |
| Street inlet capture efficiency — FHWA HEC-22. | |
| file | KinematicWave.cpp |
| Kinematic wave routing — batch-oriented, numerically identical to legacy. | |
| file | KinematicWave.hpp |
| Kinematic wave routing solver — batch-oriented design. | |
| file | Link.cpp |
| Link hydraulics — numerically identical to legacy link.c. | |
| file | Link.hpp |
| Link hydraulics — velocity, Froude, Manning conveyance, settings. | |
| file | Node.cpp |
| Node hydraulics — numerically identical to legacy node.c. | |
| file | Node.hpp |
| Node hydraulics — volume/depth/head conversions, surface area, overflow. | |
| file | Outfall.cpp |
| Outfall boundary depths — matching legacy link_setOutfallDepth / outfall_setOutletDepth. | |
| file | Outfall.hpp |
| Outfall boundary depth computation — free/normal/fixed/tidal/timeseries. | |
| file | Roadway.cpp |
| Roadway weir overflow — legacy roadway.c, op for op. | |
| file | Roadway.hpp |
| Roadway weir overflow — FHWA HDS-5 (legacy roadway.c, op for op). | |
| file | Routing.cpp |
| Top-level routing dispatcher. | |
| file | Routing.hpp |
| Top-level routing dispatcher — KW / DW / Steady-state. | |
| file | Street.cpp |
| Street cross-section — numerically identical to legacy street.c. | |
| file | Street.hpp |
| Street cross-section geometry — gutter + road crown + backing. | |
| file | TopoSort.cpp |
| Topological sort — Kahn's algorithm, numerically identical to legacy. | |
| file | TopoSort.hpp |
| Topological sort of network links for KW/steady-state routing. | |
| file | Transect.cpp |
| Irregular transect — numerically identical to legacy transect.c. | |
| file | Transect.hpp |
| Irregular transect cross-section geometry (HEC-2 style). | |
| file | xsect_tables.hpp |
| Cross-section lookup tables — translated from legacy xsect.dat. | |
| file | XSectBatch.cpp |
| Data-oriented batch cross-section geometry — shape-grouped SoA. | |
| file | XSectBatch.hpp |
| Cross-section geometry — unified batch + per-element API. | |
| file | XSection.cpp |
| Cross-section geometry — faithful 1:1 port of legacy xsect.c. | |
| file | XSectKernels.hpp |
| Portable cross-section geometry kernels — one implementation, three consumers (host dynamic wave, host finite volume, device finite volume). | |
| file | XSectLookup.hpp |
| Bit-exact geometry-table interpolation — the single source of truth. | |
| file | Climate.cpp |
| Climate processing — numerically identical to legacy climate.c. | |
| file | Climate.hpp |
| Climate processing — evaporation, temperature, wind. | |
| file | ClimateFile.cpp |
| Multi-format climate file reader — faithful to legacy climate.c. | |
| file | ClimateFile.hpp |
| Multi-format climate file reader for temperature, evaporation, wind. | |
| file | Gage.cpp |
| Rain gage processing — numerically identical to legacy gage.c. | |
| file | Gage.hpp |
| Rain gage processing — rainfall interpolation, type conversion. | |
| file | Groundwater.cpp |
| Two-zone groundwater — matching legacy gwater.c via RKF45 ODE solver. | |
| file | Groundwater.hpp |
| Two-zone groundwater model — batch-oriented ODE integration. | |
| file | Infiltration.cpp |
| Infiltration models — numerically identical to legacy infil.c. | |
| file | Infiltration.hpp |
| Infiltration models — Horton, Green-Ampt, SCS Curve Number. | |
| file | Inflow.cpp |
| External/DWF inflows — batch SoA, numerically identical to legacy. | |
| file | Inflow.hpp |
| External inflows, dry weather flows, and RDII at nodes. | |
| file | LID.cpp |
| LID control modules — batch-oriented, type-grouped. | |
| file | LID.hpp |
| Low Impact Development (LID) control modules. | |
| file | RDII.cpp |
| RDII unit hydrograph convolution — matching legacy rdii.c. | |
| file | RDII.hpp |
| RDII — rainfall-dependent infiltration/inflow via unit hydrograph. | |
| file | RdiiInterface.cpp |
| RDII interface file — use/save pre-computed RDII inflows. | |
| file | RdiiInterface.hpp |
| RDII interface file — use/save pre-computed RDII inflows. | |
| file | Runoff.cpp |
| Subcatchment runoff — 3-subarea nonlinear reservoir model. | |
| file | Runoff.hpp |
| Subcatchment runoff generation — batch-oriented nonlinear reservoir. | |
| file | RunoffInterface.cpp |
| Runoff interface file — binary save/load of pre-computed runoff. | |
| file | RunoffInterface.hpp |
| Runoff interface file — save/load pre-computed runoff results. | |
| file | DegreeDaySnow.cpp |
| Snowmelt — batch-oriented, vectorisable kernels. | |
| file | DegreeDaySnow.hpp |
| Snowmelt — degree-day and rain-on-snow methods. | |
| file | Landuse.cpp |
| Simplified analytic buildup/washoff helpers and surface-quality storage. | |
| file | Landuse.hpp |
| Pollutant buildup and washoff per land use — batch SoA. | |
| file | QualityRouting.cpp |
| Water quality routing — batch SoA, numerically identical to legacy. | |
| file | QualityRouting.hpp |
| Water quality routing — constituent transport, mixing, decay. | |
| file | Treatment.cpp |
| Treatment expression parser (Shunting-yard) and evaluator (stack machine). | |
| file | Treatment.hpp |
| Treatment expression evaluator for water quality. | |
Modern engine implementation, data model and public interfaces.