![]() |
OpenSWMM Engine
6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
|
| ▼ include | |
| ▼ openswmm | |
| ► engine | |
| openswmm_2d.h | Optional 2D surface routing module — C API |
| openswmm_callbacks.h | Callback function typedefs for the OpenSWMM Engine C API |
| openswmm_climate.h | OpenSWMM Engine — Climatology configuration C API |
| openswmm_controls.h | OpenSWMM Engine — Control Rules C API |
| openswmm_datetime.h | OpenSWMM Engine — SWMM DateTime conversion utilities (C API) |
| openswmm_edit.h | OpenSWMM Engine — Model editing C API (deletion and type conversion) |
| openswmm_engine.h | OpenSWMM Engine — primary transparent C API (master header) |
| openswmm_engine_export.h | |
| openswmm_forcing.h | Runtime forcing API — inject fluxes with mass-balance tracking |
| openswmm_gages.h | OpenSWMM Engine — Rain Gage C API |
| openswmm_geopackage.h | OpenSWMM Engine — GeoPackage C API |
| openswmm_hotstart.h | Hot start file management — transparent C API |
| openswmm_inflows.h | OpenSWMM Engine — Inflows (External, DWF, RDII) C API |
| openswmm_infrastructure.h | OpenSWMM Engine — Infrastructure (Transects, Streets, Inlets, LIDs) C API |
| openswmm_links.h | OpenSWMM Engine — Link (conduit/pump/orifice/weir/outlet) C API |
| openswmm_massbalance.h | OpenSWMM Engine — Mass Balance / Continuity C API |
| openswmm_model.h | OpenSWMM Engine — Model building and options C API |
| openswmm_nodes.h | OpenSWMM Engine — Node C API |
| openswmm_output.h | OpenSWMM Engine — Output File Reader C API |
| openswmm_pollutants.h | OpenSWMM Engine — Pollutant / Water Quality C API |
| openswmm_quality.h | OpenSWMM Engine — Water Quality (Landuse / Buildup / Washoff / Treatment) C API |
| openswmm_spatial.h | OpenSWMM Engine — Spatial Frame C API |
| openswmm_statistics.h | OpenSWMM Engine — Statistics Query C API |
| openswmm_subcatchments.h | OpenSWMM Engine — Subcatchment C API |
| openswmm_tables.h | OpenSWMM Engine — Tables (Time Series & Curves) and Patterns C API |
| ► legacy | |
| ► engine | |
| openswmm_legacy_solver_export.h | |
| openswmm_solver.h | |
| ► output | |
| openswmm_output.h | Header file for SWMM output API |
| openswmm_output_enums.h | Header file for SWMM output API enumeration types |
| ► plugin_sdk | |
| IInputPlugin.hpp | Interface for input file reader/writer plugins |
| IOutputPlugin.hpp | Interface for output-writing plugins |
| IPluginComponentInfo.hpp | Interface that describes a plugin component — metadata and factory methods |
| IReportPlugin.hpp | Interface for report-writing plugins |
| IStateIOPlugin.hpp | Interface for state / hot-start IO plugins |
| PluginDiscovery.hpp | Public, framework-free facade for enumerating plugin file filters |
| PluginState.hpp | Plugin lifecycle state enumerator |
| SimulationSnapshot.hpp | Read-only snapshot of simulation state passed to plugins |
| ▼ manuals | |
| application | |
| reference | |
| user | |
| ▼ src | |
| ▼ engine | |
| ► 2d | |
| ► api | |
| Api2D.cpp | C API implementation for the 2D surface routing module |
| Api2D.hpp | C API implementation bridge for the 2D surface routing module |
| ► coupling | |
| NodeCoupling.cpp | Implementation of 2D↔1D node coupling via orifice exchange |
| NodeCoupling.hpp | Orifice-equation exchange between 2D surface and SWMM nodes |
| ► data | |
| ActiveSetData.hpp | Dry-cell active-set (wet-front) mask for the 2D RHS pipeline |
| BoundaryData.hpp | Structure-of-Arrays (SoA) storage for 2D mesh boundary conditions |
| MeshData.hpp | Structure-of-Arrays (SoA) storage for 2D triangular mesh geometry |
| PendingRows2D.hpp | Parse-time scratch rows for [2D_BOUNDARY_CONDITIONS] and [2D_EDGE_CONVEYANCE] input sections |
| Serialize2D.hpp | Header-only helpers shared by 2D model serialization consumers (InpWriter [2D_*] emission, GeoPackage writer) |
| SolverOptions2D.hpp | Configuration options for the 2D surface routing solver |
| SurfaceStateData.hpp | Structure-of-Arrays (SoA) storage for 2D surface routing state |
| ► gpu | |
| ArkodeKokkosSurfaceSolver.cpp | Implementation of the Kokkos + ARKStep local-inertial surface solver |
| ArkodeKokkosSurfaceSolver.hpp | Performance-portable local-inertial surface solver (Kokkos + ARKStep) |
| CvodeKokkosSurfaceSolver.cpp | Implementation of the Phase 1 Kokkos/OpenMP CVODE surface solver |
| CvodeKokkosSurfaceSolver.hpp | Performance-portable CVODE surface solver (Phase 1: Kokkos/OpenMP) |
| GpuPluginCuda.cpp | Plugin entry points for the Phase 2 Kokkos/CUDA surface solver |
| GpuPluginHip.cpp | Plugin entry points for the Phase 5 Kokkos/HIP surface solver (AMD) |
| GpuPluginOmp.cpp | Plugin entry points for the Phase 1 Kokkos/OpenMP surface solver |
| GpuPluginStub.cpp | Placeholder GPU surface-solver plugin (Phase 0 scaffold) |
| GpuPluginSycl.cpp | Plugin entry points for the Phase 5 Kokkos/SYCL surface solver (Intel) |
| KokkosAmgPreconditioner.cpp | Hypre BoomerAMG preconditioner for the Kokkos plugin — host (OpenMP) and device (CUDA/HIP) paths. Built only when OPENSWMM_WITH_HYPRE is ON |
| KokkosAmgPreconditioner.hpp | Hypre BoomerAMG preconditioner for the Kokkos GPU plugin (PRECONDITIONER=AMG) — host (OpenMP) and device (CUDA/HIP) paths |
| KokkosInertialKernels.hpp | Performance-portable RHS + preconditioner for the local-inertial solver |
| KokkosSurfaceKernels.hpp | Performance-portable RHS pipeline for the 2D surface router (Phase 1) |
| ► input | |
| SectionHandlers2D.cpp | Implementation of 2D input section parsers |
| SectionHandlers2D.hpp | Input section parsers for the 2D surface routing module |
| ► mesh | |
| MeshBuilder.cpp | Implementation of mesh topology construction and geometry computation |
| MeshBuilder.hpp | Topology construction and geometry precomputation for the 2D mesh |
| RainfallInterpolator.cpp | Implementation of natural-neighbour / IDW rainfall interpolation |
| RainfallInterpolator.hpp | Static per-cell weights mapping raingage rainfall onto the 2D mesh |
| VertexReconstruction.cpp | Implementation of pseudo-Laplacian vertex stencil construction and head reconstruction |
| VertexReconstruction.hpp | Pseudo-Laplacian vertex reconstruction stencil computation |
| ► output | |
| Default2DOutputPlugin.cpp | HDF5 output plugin for 2D surface routing results (CF/UGRID) |
| Default2DOutputPlugin.hpp | Built-in HDF5 output plugin for 2D surface routing results |
| ► solver | |
| ActiveSetBuilder.cpp | Build/refresh the dry-cell active-set mask (see ActiveSetBuilder.hpp) |
| ActiveSetBuilder.hpp | Build/refresh the dry-cell active-set mask (see ActiveSetData.hpp) |
| ArkodeSurfaceSolver.cpp | Implementation of the ARKODE/ARKStep IMEX wrapper for 2D surface routing |
| ArkodeSurfaceSolver.hpp | SUNDIALS ARKODE/ARKStep IMEX integrator for the 2D surface routing ODE |
| CvodeSurfaceSolver.cpp | Implementation of CVODE wrapper for 2D surface routing |
| CvodeSurfaceSolver.hpp | CVODE (SUNDIALS) wrapper for the 2D surface routing ODE system |
| GpuPluginAbi.h | Stable C ABI between the core engine and an optional GPU solver plugin |
| HypreAmgPreconditioner.cpp | Hypre BoomerAMG preconditioner implementation (built only when OPENSWMM_WITH_HYPRE is ON) |
| HypreAmgPreconditioner.hpp | Hypre BoomerAMG algebraic-multigrid preconditioner for the 2D surface CVODE solver (PRECONDITIONER=AMG) |
| InertialEdges.cpp | Implementation of the unique interior-edge builder |
| InertialEdges.hpp | Unique interior-edge structure for the local-inertial momentum DOFs |
| ISurfaceSolver.hpp | Backend-neutral interface for the 2D surface-routing time integrator |
| SurfaceFluxCalculator.cpp | Implementation of gradient computation, slope limiting, and edge fluxes |
| SurfaceFluxCalculator.hpp | Edge flux computation, gradient calculation, and slope limiting |
| SurfaceJacobian.cpp | Implementation of the CSR Newton-matrix assembly |
| SurfaceJacobian.hpp | CSR assembly of the approximate Newton matrix M = I − γ·J for the 2D diffusive-wave surface operator, for use as a preconditioner matrix (hypre BoomerAMG) |
| SurfaceSolverFactory.cpp | Implementation of runtime 2D surface-solver backend selection |
| SurfaceSolverFactory.hpp | Runtime selection of the 2D surface solver backend (Phase 4) |
| SurfaceRouter2D.cpp | Implementation of the 2D surface routing orchestrator |
| SurfaceRouter2D.hpp | Top-level orchestrator for the optional 2D surface routing module |
| ► controls | |
| Controls.cpp | Rule-based control engine — full legacy parity implementation |
| Controls.hpp | Rule-based control engine — full legacy parity |
| ► core | |
| charconv_compat.hpp | Portable from_chars for floating-point types |
| Constants.hpp | Global physical, numerical, and model constants for OpenSWMM Engine |
| DateTime.hpp | DateTime utility functions — numerically identical to legacy datetime.c |
| ErrorCodes.cpp | Error/warning description table and formatting — legacy-compatible |
| ErrorCodes.hpp | Legacy-compatible error and warning codes with description lookup |
| FilePathPair.hpp | Carrier for an external file reference in a SWMM model |
| HotStartManager.cpp | Hot start file I/O — implementation |
| HotStartManager.hpp | Hot start file manager — in-memory representation + I/O |
| InpWriter.cpp | Comprehensive .inp serialisation — round-trip identical output |
| InpWriter.hpp | Write a SimulationContext to a SWMM .inp file |
| InterfaceFile.cpp | Routing interface file — coupling between separate SWMM simulations |
| InterfaceFile.hpp | Routing interface file — coupling between separate SWMM simulations |
| openswmm_api_common.hpp | Internal shared helpers for C API impl files |
| openswmm_climate_impl.cpp | C API implementation — climatology configuration get/set |
| openswmm_controls_impl.cpp | C API implementation — control rules and direct link control actions |
| openswmm_datetime_impl.cpp | C API implementation — SWMM DateTime encode/decode utilities |
| openswmm_edit_impl.cpp | C API implementation — object deletion and type conversion |
| openswmm_engine_impl.cpp | C API implementation — engine lifecycle, callbacks, errors, timing |
| openswmm_forcing_impl.cpp | C API implementation — runtime forcing with mass-balance tracking |
| openswmm_gages_impl.cpp | C API implementation — rain gage identity, creation, properties, state, bulk |
| openswmm_hotstart_impl.cpp | Hot start C API implementation — thin wrappers around HotStartManager |
| openswmm_inflows_impl.cpp | C API implementation — external inflows, DWF, RDII |
| openswmm_infrastructure_impl.cpp | C API implementation — transects, streets, inlets, LID controls, LID usage |
| openswmm_links_impl.cpp | C API implementation — link identity, creation, properties, state, bulk |
| openswmm_massbalance_impl.cpp | C API implementation — continuity errors and flux totals |
| openswmm_model_impl.cpp | C API implementation — model building, options, user flags, CRS |
| openswmm_nodes_impl.cpp | C API implementation — node identity, creation, properties, state, bulk |
| openswmm_pollutants_impl.cpp | C API implementation — pollutant identity, creation, properties, quality injection |
| openswmm_quality_impl.cpp | C API implementation — landuse, buildup, washoff, treatment |
| openswmm_spatial_impl.cpp | C API implementation — spatial frame: CRS, coordinates, vertices, polygons |
| openswmm_statistics_impl.cpp | C API implementation — node, link, subcatchment statistics queries |
| openswmm_subcatchments_impl.cpp | C API implementation — subcatchment identity, creation, properties, state, bulk |
| openswmm_tables_impl.cpp | C API implementation — tables (time series, curves) and patterns |
| PathResolver.cpp | PathResolver implementation — see PathResolver.hpp |
| PathResolver.hpp | Pure-function path normalisation and relative-path math |
| SimulationContext.hpp | The central, reentrant simulation context for the new engine |
| SimulationOptions.hpp | Simulation options parsed from the [OPTIONS] section |
| SpatialFrame.hpp | Spatial frame — CRS specification and coordinate data for nodes/links |
| TypeHelpers.hpp | Shared C↔internal type mapping utilities for node and link type enums |
| UnitConversion.cpp | Global unit conversion — matching legacy SWMM UCF() |
| UnitConversion.hpp | Global unit conversion factors — matching legacy SWMM Ucf[]/Qcf[] |
| UserFlags.hpp | User-defined model flags (InfoWorks ICM-style, two-section design) |
| ► data | |
| ForcingData.hpp | Per-element runtime forcing state — SoA layout |
| GageData.hpp | Structure-of-Arrays (SoA) storage for rain gages |
| HydrologyData.hpp | SoA stores for snowpacks, aquifers, LID controls, and LID usage |
| InflowData.hpp | SoA stores for external inflows, DWF, RDII, and time patterns |
| InfraData.hpp | SoA stores for transects, streets, inlets, and control rules |
| LinkData.hpp | Structure-of-Arrays (SoA) storage for all link types |
| LinkSubtypes.hpp | Relational (normalized) Structure-of-Arrays side-tables for link subtypes |
| NameIndex.hpp | O(1) name-to-index lookup for SWMM objects |
| NodeData.hpp | Structure-of-Arrays (SoA) storage for all node types |
| NodeSubtypes.hpp | Relational (normalized) Structure-of-Arrays side-tables for node subtypes |
| PollutantData.hpp | Structure-of-Arrays (SoA) storage for pollutants and water quality |
| QualityData.hpp | SoA stores for land uses, buildup, washoff, and treatment |
| SubcatchData.hpp | Structure-of-Arrays (SoA) storage for subcatchments |
| TableData.cpp | File-backed I/O, cache management, validation, and multicolumn lookup for Table/TableData |
| TableData.hpp | Time series and rating curve data with bidirectional cursor |
| ► edit | |
| ObjectDeleter.cpp | Implementation of object deletion and cascade analysis |
| ObjectDeleter.hpp | Internal C++ API for object deletion and cascade analysis |
| TypeConverter.cpp | In-place node and link type conversion |
| TypeConverter.hpp | Internal C++ API for in-place node and link type conversion |
| ► hydraulics | |
| Culvert.cpp | Culvert inlet control — numerically identical to legacy culvert.c |
| Culvert.hpp | Culvert inlet control — FHWA HEC-5 equations |
| Divider.cpp | Flow divider — numerically identical to legacy node.c divider logic |
| Divider.hpp | Flow divider node logic — cutoff, overflow, tabular, weir |
| DynamicWave.cpp | Dynamic wave routing – batch-oriented St. Venant equations |
| DynamicWave.hpp | Dynamic wave routing solver — batch-oriented St. Venant equations |
| Exfiltration.cpp | Storage exfiltration — numerically identical to legacy exfil.c |
| Exfiltration.hpp | Storage node exfiltration — Green-Ampt bottom/bank seepage |
| ForceMain.cpp | Force main friction — numerically identical to legacy forcmain.c |
| ForceMain.hpp | Force main friction — Hazen-Williams and Darcy-Weisbach |
| HydStructures.cpp | Non-conduit link flow — batch by type, numerically identical to legacy |
| HydStructures.hpp | Non-conduit link flow: pumps, orifices, weirs, outlets |
| Inlet.cpp | Street inlet capture — numerically identical to legacy inlet.c |
| Inlet.hpp | Street inlet capture efficiency — FHWA HEC-22 |
| KinematicWave.cpp | Kinematic wave routing — batch-oriented, numerically identical to legacy |
| KinematicWave.hpp | Kinematic wave routing solver — batch-oriented design |
| Link.cpp | Link hydraulics — numerically identical to legacy link.c |
| Link.hpp | Link hydraulics — velocity, Froude, Manning conveyance, settings |
| Node.cpp | Node hydraulics — numerically identical to legacy node.c |
| Node.hpp | Node hydraulics — volume/depth/head conversions, surface area, overflow |
| Outfall.cpp | Outfall boundary depths — matching legacy link_setOutfallDepth / outfall_setOutletDepth |
| Outfall.hpp | Outfall boundary depth computation — free/normal/fixed/tidal/timeseries |
| Roadway.cpp | Roadway weir overflow — numerically identical to legacy roadway.c |
| Roadway.hpp | Roadway weir overflow — FHWA HDS-5 |
| Routing.cpp | Top-level routing dispatcher |
| Routing.hpp | Top-level routing dispatcher — KW / DW / Steady-state |
| Street.cpp | Street cross-section — numerically identical to legacy street.c |
| Street.hpp | Street cross-section geometry — gutter + road crown + backing |
| TimestepController.cpp | Explicit next-timestep computation — implementation |
| TimestepController.hpp | Explicit next-timestep computation for the new engine |
| TopoSort.cpp | Topological sort — Kahn's algorithm, numerically identical to legacy |
| TopoSort.hpp | Topological sort of network links for KW/steady-state routing |
| Transect.cpp | Irregular transect — numerically identical to legacy transect.c |
| Transect.hpp | Irregular transect cross-section geometry (HEC-2 style) |
| xsect_tables.hpp | Cross-section lookup tables — translated from legacy xsect.dat |
| XSectBatch.cpp | Data-oriented batch cross-section geometry — shape-grouped SoA |
| XSectBatch.hpp | Cross-section geometry — unified batch + per-element API |
| XSection.cpp | Cross-section geometry — faithful 1:1 port of legacy xsect.c |
| XSectLookup.hpp | Bit-exact geometry-table interpolation — the single source of truth |
| ► hydrology | |
| Climate.cpp | Climate processing — numerically identical to legacy climate.c |
| Climate.hpp | Climate processing — evaporation, temperature, wind |
| ClimateFile.cpp | Multi-format climate file reader — faithful to legacy climate.c |
| ClimateFile.hpp | Multi-format climate file reader for temperature, evaporation, wind |
| Gage.cpp | Rain gage processing — numerically identical to legacy gage.c |
| Gage.hpp | Rain gage processing — rainfall interpolation, type conversion |
| Groundwater.cpp | Two-zone groundwater — matching legacy gwater.c via RKF45 ODE solver |
| Groundwater.hpp | Two-zone groundwater model — batch-oriented ODE integration |
| Infiltration.cpp | Infiltration models — numerically identical to legacy infil.c |
| Infiltration.hpp | Infiltration models — Horton, Green-Ampt, SCS Curve Number |
| Inflow.cpp | External/DWF inflows — batch SoA, numerically identical to legacy |
| Inflow.hpp | External inflows, dry weather flows, and RDII at nodes |
| LID.cpp | LID control modules — batch-oriented, type-grouped |
| LID.hpp | Low Impact Development (LID) control modules |
| RDII.cpp | RDII unit hydrograph convolution — matching legacy rdii.c |
| RDII.hpp | RDII — rainfall-dependent infiltration/inflow via unit hydrograph |
| RdiiInterface.cpp | RDII interface file — use/save pre-computed RDII inflows |
| RdiiInterface.hpp | RDII interface file — use/save pre-computed RDII inflows |
| Runoff.cpp | Subcatchment runoff — 3-subarea nonlinear reservoir model |
| Runoff.hpp | Subcatchment runoff generation — batch-oriented nonlinear reservoir |
| RunoffInterface.cpp | Runoff interface file — binary save/load of pre-computed runoff |
| RunoffInterface.hpp | Runoff interface file — save/load pre-computed runoff results |
| Snow.cpp | Snowmelt — batch-oriented, vectorisable kernels |
| Snow.hpp | Snowmelt — degree-day and rain-on-snow methods |
| ► input | |
| ► geopackage | |
| ► formats | |
| ClimateFormat.cpp | User-CSV climate file — parser + materialiser |
| ClimateFormat.hpp | User-CSV climate-file parser / materialiser |
| FormatTypes.hpp | Plain-data types shared by every external-file format parser |
| HotstartFormat.cpp | Legacy HSF v4 binary hot-start file — parser + materialiser |
| HotstartFormat.hpp | Legacy HSF v4 binary hot-start file — parser / materialiser |
| RaingageFormat.cpp | SWMM "Standard" raingage text format — parser + materialiser |
| RaingageFormat.hpp | SWMM "Standard" raingage text-file parser / materialiser |
| RoutingInterfaceFormat.cpp | SWMM5 routing-interface text format — parser + materialiser |
| RoutingInterfaceFormat.hpp | SWMM5 routing interface text format — parser / materialiser |
| TimeseriesFormat.cpp | SWMM-native timeseries text format — parser + materialiser |
| TimeseriesFormat.hpp | SWMM-native timeseries text-file parser / materialiser |
| ExternalContentReader.cpp | Slice IO-8 — Part D content → SimulationContext slot hydration + scratch-file materialisation |
| ExternalContentReader.hpp | Slice IO-8 — hydrate SimulationContext external-file slots from the Part D GeoPackage tables and materialise scratch files in the legacy on-disk format so legacy fopen sites keep working |
| ExternalContentWriter.cpp | Slice IO-7 — implementation of the Part D content fan-out |
| ExternalContentWriter.hpp | Slice IO-7 — fan-out from in-memory external-file slots to the Part D GeoPackage tables |
| GeoPackageInputPlugin.cpp | IInputPlugin implementation for GeoPackage format |
| GeoPackageInputPlugin.hpp | IInputPlugin implementation for reading/writing SWMM models from/to GeoPackage |
| GeoPackageOutputPlugin.cpp | IOutputPlugin that writes per-timestep results to a GeoPackage |
| GeoPackageOutputPlugin.hpp | IOutputPlugin that writes per-timestep results to a GeoPackage |
| GeoPackagePluginInfo.cpp | IPluginComponentInfo implementation for the GeoPackage I/O plugin |
| GeoPackagePluginInfo.hpp | IPluginComponentInfo implementation for the GeoPackage I/O plugin |
| GeoPackageReader.cpp | Reads a GeoPackage file into a SimulationContext (all SWMM input sections) |
| GeoPackageReader.hpp | Reads a GeoPackage file into a SimulationContext (model input tables) |
| GeoPackageReportPlugin.cpp | IReportPlugin that writes summary statistics to a GeoPackage |
| GeoPackageReportPlugin.hpp | IReportPlugin that writes summary statistics to a GeoPackage |
| GeoPackageSchema.cpp | DDL implementation for the OpenSWMM GeoPackage schema |
| GeoPackageSchema.hpp | DDL and metadata registration for the OpenSWMM GeoPackage schema |
| GeoPackageWriter.cpp | Writes a SimulationContext to GeoPackage (all SWMM input sections) |
| GeoPackageWriter.hpp | Writes a SimulationContext to a GeoPackage file (model input tables) |
| GpkgGeometry.hpp | GeoPackage Binary geometry encoding and decoding (ISO WKB with GP header) |
| GpkgUtils.hpp | RAII wrappers and utilities for SQLite operations in GeoPackage I/O |
| openswmm_geopackage_impl.cpp | C API implementation for GeoPackage I/O |
| ► handlers | |
| CatchmentHandler.cpp | Section handlers for [SUBCATCHMENTS], [SUBAREAS], and [RAINGAGES] |
| CatchmentHandler.hpp | Section handlers for subcatchments and rain gages |
| ControlsHandler.cpp | Section handlers for [CONTROLS] and [REPORT] |
| ControlsHandler.hpp | Section handlers for [CONTROLS] and [REPORT] |
| FilesHandler.cpp | [FILES] section handler — secondary file references |
| FilesHandler.hpp | [FILES] section handler — secondary file references |
| HydrologyHandler.cpp | Section handlers for [EVAPORATION], [TEMPERATURE], [SNOWPACKS], [AQUIFERS], [GROUNDWATER], [GWF], [LID_CONTROLS], and [LID_USAGE] |
| HydrologyHandler.hpp | Section handlers for hydrology-related input sections |
| InflowsHandler.cpp | Section handlers for [PATTERNS], [INFLOWS], [DWF], [RDII], [HYDROGRAPHS], and [RDII_DECAY] |
| InflowsHandler.hpp | Section handlers for patterns, inflows, DWF, and RDII |
| InfraHandler.cpp | Section handlers for [STREETS], [INLETS], [INLET_USAGE], [ADJUSTMENTS], [EVENTS] |
| InfraHandler.hpp | Section handlers for [STREETS], [INLETS], [INLET_USAGE] |
| LinksHandler.cpp | Section handlers for [CONDUITS], [PUMPS], [ORIFICES], [WEIRS], [OUTLETS], [XSECTIONS], [LOSSES], [TRANSECTS] |
| LinksHandler.hpp | Section handlers for link types: CONDUITS, PUMPS, ORIFICES, WEIRS, OUTLETS, XSECTIONS, LOSSES, TRANSECTS |
| NodesHandler.cpp | Section handlers for [JUNCTIONS], [OUTFALLS], [DIVIDERS], [STORAGE], [COORDINATES] |
| NodesHandler.hpp | Section handlers for node types: JUNCTIONS, OUTFALLS, DIVIDERS, STORAGE |
| OptionsHandler.cpp | [OPTIONS] section handler for the new engine |
| OptionsHandler.hpp | [OPTIONS] section handler declaration |
| PluginsHandler.cpp | [PLUGINS] section handler — parses plugin library specs (Phase 4, R12) |
| PluginsHandler.hpp | [PLUGINS] section handler (Phase 4, R12) |
| QualityHandler.cpp | Section handlers for [POLLUTANTS], [LANDUSES], [COVERAGES], [BUILDUP], [WASHOFF], [TREATMENT], and [LOADINGS] |
| QualityHandler.hpp | Section handlers for water quality input sections |
| SpatialHandler.cpp | Section handlers for [MAP], [VERTICES], [POLYGONS], [SYMBOLS] |
| SpatialHandler.hpp | Section handlers for spatial sections: [MAP], [VERTICES], [POLYGONS] |
| TablesHandler.cpp | Section handlers for [TIMESERIES] and [CURVES] |
| TablesHandler.hpp | Section handlers for [TIMESERIES] and [CURVES] |
| TitleHandler.cpp | [TITLE] section handler implementation |
| TitleHandler.hpp | [TITLE] section handler |
| UserFlagsHandler.cpp | [USER_FLAGS] section handler — parses flag schema definitions (R28) |
| UserFlagsHandler.hpp | [USER_FLAGS] section handler (R28) |
| UserFlagValuesHandler.cpp | [USER_FLAG_VALUES] section handler — implements R28 per-object values |
| UserFlagValuesHandler.hpp | [USER_FLAG_VALUES] section handler (R28) |
| InputParseUtils.hpp | Shared parsing utilities for input section handlers |
| InputReader.cpp | Implementation of the top-level SWMM .inp file reader |
| InputReader.hpp | Top-level SWMM .inp file reader |
| PostParseResolver.cpp | Post-parse cross-reference resolution |
| PostParseResolver.hpp | Post-parse cross-reference resolution for the input system |
| SectionParser.hpp | Utility for splitting raw INP section lines into (data, comment) pairs |
| SectionRegistry.cpp | Implementation of the section-handler registry |
| SectionRegistry.hpp | Registry that maps SWMM section tags to handler functions |
| Tokenizer.cpp | Implementation of the multi-delimiter SWMM input tokenizer |
| Tokenizer.hpp | Multi-delimiter tokenizer for SWMM input files |
| ► math | |
| FindRoot.cpp | Newton-Raphson + Ridder — numerically identical to legacy findroot.c |
| FindRoot.hpp | Newton-Raphson and Ridder root finders |
| MathExpr.cpp | Shunting-yard parser + stack evaluator |
| MathExpr.hpp | Mathematical expression parser and evaluator |
| OdeSolver.cpp | RK45 Cash-Karp ODE integrator — numerically identical to legacy |
| OdeSolver.hpp | Runge-Kutta-Cash-Karp (RK45) ODE integrator with adaptive step control |
| SIMD.hpp | SIMD abstraction layer for vectorized arithmetic operations |
| ► output | |
| IOThread.cpp | IOThread — producer/consumer output writer implementation |
| IOThread.hpp | Separate IO writer thread with a bounded task queue (Phase 5, R17) |
| openswmm_output_impl.cpp | C FFI wrapper for the OutputReader class |
| OutputReader.cpp | OutputReader — reads SWMM 5.x binary .out files |
| OutputReader.hpp | Internal C++ class for reading SWMM 5.x binary output files |
| WriteTask.hpp | Ring-buffer task descriptor for the IO thread (Phase 5, R17) |
| ► plugins | |
| BuiltinPluginInfos.cpp | Singletons + file_filters() implementations for built-in plugins |
| BuiltinPluginInfos.hpp | IPluginComponentInfo singletons for the engine's built-in default plugins |
| DefaultInputPlugin.cpp | DefaultInputPlugin — reads/writes SWMM .inp files |
| DefaultInputPlugin.hpp | DefaultInputPlugin — reads/writes SWMM .inp files |
| DefaultOutputPlugin.cpp | DefaultOutputPlugin — SWMM 5.x binary .out file writer |
| DefaultOutputPlugin.hpp | Built-in output plugin that writes the legacy SWMM binary output format |
| DefaultReportPlugin.cpp | DefaultReportPlugin — legacy SWMM-compatible .rpt report writer |
| DefaultReportPlugin.hpp | Built-in report plugin that writes the legacy SWMM .rpt summary |
| DefaultStateIOPlugin.cpp | Built-in state IO plugin implementation |
| DefaultStateIOPlugin.hpp | Built-in state IO plugin — wraps HotStartManager for read/write |
| PluginDiscovery.cpp | Public filter-discovery facade — implementation |
| PluginFactory.cpp | Plugin loader, auto-discovery, and lifecycle manager — implementation |
| PluginFactory.hpp | Plugin loader, auto-discovery, and lifecycle manager |
| ► quality | |
| Landuse.cpp | Pollutant buildup/washoff — batch SoA, numerically identical to legacy |
| Landuse.hpp | Pollutant buildup and washoff per land use — batch SoA |
| QualityRouting.cpp | Water quality routing — batch SoA, numerically identical to legacy |
| QualityRouting.hpp | Water quality routing — constituent transport, mixing, decay |
| Treatment.cpp | Treatment expression parser (Shunting-yard) and evaluator (stack machine) |
| Treatment.hpp | Treatment expression evaluator for water quality |
| ▼ legacy | |
| ► engine | |
| climate.c | Climate related functions |
| consts.h | Header file for SWMM constants |
| controls.c | Rule-based controls functions |
| culvert.c | |
| datetime.c | |
| datetime.h | Header file for date and time functions |
| dwflow.c | |
| dynwave.c | |
| enums.h | Header file for enumerated constants |
| error.c | Error messages |
| error.h | Header file for error codes |
| exfil.c | |
| exfil.h | Exfiltration object header file |
| findroot.c | |
| findroot.h | Header file for root finding method |
| flowrout.c | |
| forcmain.c | |
| funcs.h | Header file for global interfacing functions |
| gage.c | |
| globals.h | |
| gwater.c | |
| hash.c | |
| hash.h | |
| headers.h | |
| hotstart.c | |
| iface.c | |
| infil.c | |
| infil.h | |
| inflow.c | |
| inlet.c | |
| inlet.h | |
| input.c | |
| inputrpt.c | |
| keywords.c | |
| keywords.h | |
| kinwave.c | |
| landuse.c | |
| lid.c | |
| lid.h | |
| lidproc.c | |
| link.c | |
| macros.h | |
| massbal.c | |
| mathexpr.c | |
| mathexpr.h | |
| mempool.c | |
| mempool.h | |
| node.c | |
| objects.h | Definitions of data structures |
| odesolve.c | |
| odesolve.h | |
| output.c | |
| project.c | |
| qualrout.c | |
| rain.c | |
| rdii.c | |
| report.c | |
| roadway.c | |
| routing.c | |
| runoff.c | |
| shape.c | |
| snow.c | |
| stats.c | |
| statsrpt.c | |
| street.c | |
| street.h | |
| subcatch.c | |
| surfqual.c | Subcatchment water quality functions |
| table.c | |
| text.h | |
| toposort.c | |
| transect.c | |
| treatmnt.c | |
| xsect.c | |
| ► output | |
| errormanager.c | Source file providing a simple interface for managing SWMM output API runtime error messages |
| errormanager.h | Header file for SWMM output API error handling |
