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

Modern engine implementation, data model and public interfaces. More...

Collaboration diagram for OpenSWMM Engine:

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
 
file  Link.hpp
 
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.
 

Detailed Description

Modern engine implementation, data model and public interfaces.