42#ifndef OPENSWMM_ENGINE_SIMULATION_OPTIONS_HPP
43#define OPENSWMM_ENGINE_SIMULATION_OPTIONS_HPP
48#include <unordered_map>
368 double humidity[12] = {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50};
701 double evap_values[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
713 double pan_coeff[12] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
741 double wind_speed[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
778 double adc_perv[10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
Carrier for an external file reference in a SWMM model.
Option struct for the explicit finite-volume 1D network solver.
@ NONE
Definition SimulationContext.hpp:183
Definition ExchangeLaw.hpp:60
InfiltrationModel
Infiltration methods.
Definition SimulationOptions.hpp:111
@ MOD_GREEN_AMPT
Definition SimulationOptions.hpp:115
@ CURVE_NUMBER
Definition SimulationOptions.hpp:116
@ GREEN_AMPT
Definition SimulationOptions.hpp:114
@ HORTON
Definition SimulationOptions.hpp:112
@ MOD_HORTON
Definition SimulationOptions.hpp:113
FlowUnits
Flow unit systems.
Definition SimulationOptions.hpp:64
@ GPM
Gallons per minute.
Definition SimulationOptions.hpp:66
@ MGD
Million gallons per day.
Definition SimulationOptions.hpp:67
@ CFS
Cubic feet per second.
Definition SimulationOptions.hpp:65
@ MLD
Million liters per day.
Definition SimulationOptions.hpp:70
@ CMS
Cubic meters per second.
Definition SimulationOptions.hpp:68
@ LPS
Liters per second.
Definition SimulationOptions.hpp:69
QualitySolverKind
Water-quality engine ([OPTIONS] QUALITY_SOLVER, master plan D-UT6).
Definition SimulationOptions.hpp:87
@ EULERIAN_ARD
Eulerian ARD on the FV cell mesh (all routing models)
Definition SimulationOptions.hpp:89
@ LEGACY
Legacy-parity CSTR mixing (QualityRouting.cpp)
Definition SimulationOptions.hpp:88
@ LAGRANGIAN
Definition SimulationOptions.hpp:90
NodeContinuity
Node continuity formulation for depth update.
Definition SimulationOptions.hpp:145
@ EXPLICIT
Classic explicit two-branch (default)
Definition SimulationOptions.hpp:146
@ SEMI_IMPLICIT
Unified semi-implicit formulation.
Definition SimulationOptions.hpp:147
@ LEGACY
Definition SimulationContext.hpp:188
RunoffModel
Runoff routing methods.
Definition SimulationOptions.hpp:123
@ NL_POND
Non-linear reservoir (default)
Definition SimulationOptions.hpp:125
RoutingModel
Flow routing methods.
Definition SimulationOptions.hpp:77
@ FV
Explicit conservative finite volume (Godunov, HLL/HLLC)
Definition SimulationOptions.hpp:81
@ KINWAVE
Kinematic wave approximation.
Definition SimulationOptions.hpp:79
@ STEADY
Steady-state (no routing)
Definition SimulationOptions.hpp:78
@ DYNWAVE
Dynamic wave (full Saint-Venant, implicit Picard)
Definition SimulationOptions.hpp:80
Two-string carrier for any external file path that appears in a SWMM .inp file.
Definition FilePathPair.hpp:63
All SWMM simulation options parsed from [OPTIONS] section.
Definition SimulationOptions.hpp:168
std::string humidity_ts_name
Timeseries name for humidity (humidity_type == 2).
Definition SimulationOptions.hpp:379
double water_density
Water density, kg/m³ ([OPTIONS] WATER_DENSITY; CSH Table 4.1).
Definition SimulationOptions.hpp:388
bool ignore_groundwater
Ignore groundwater.
Definition SimulationOptions.hpp:587
double dry_step
Dry-weather runoff timestep in seconds.
Definition SimulationOptions.hpp:218
bool rpt_disabled
TRUE if all reporting is disabled.
Definition SimulationOptions.hpp:785
double adc_imperv[10]
Areal depletion curve for impervious surfaces (10 fractions).
Definition SimulationOptions.hpp:775
bool outfall_backflow_zero
[OPTIONS] OUTFALL_BACKFLOW_QUALITY LAST|ZERO — quality carried by reverse flow at outfalls (false = L...
Definition SimulationOptions.hpp:338
bool rpt_continuity
Report continuity errors (default true).
Definition SimulationOptions.hpp:800
double routing_step
Hydraulic routing timestep in seconds. Legacy default: 20.
Definition SimulationOptions.hpp:195
double humidity[12]
Monthly relative humidity, % ([TEMPERATURE] HUMIDITY).
Definition SimulationOptions.hpp:368
double variable_step
Courant factor for variable time stepping (0 = fixed step).
Definition SimulationOptions.hpp:231
bool ignore_routing
Ignore routing.
Definition SimulationOptions.hpp:593
int report_signed_heads
Report signed piezometric heads: 0 = NO (default, legacy bit-parity — NODE_HEAD is rebuilt as f32(flo...
Definition SimulationOptions.hpp:478
double snow_min_melt
Snowmelt: minimum melt coefficient.
Definition SimulationOptions.hpp:769
int rpt_links
Link reporting: 0=NONE, 1=ALL, 2=SOME. Default ALL.
Definition SimulationOptions.hpp:794
double min_routing_step
Minimum routing timestep in seconds (CFL floor).
Definition SimulationOptions.hpp:215
double end_date
Simulation end date/time (decimal days, OADate (days since 12/30/1899)).
Definition SimulationOptions.hpp:178
std::string crs
Coordinate reference system string.
Definition SimulationOptions.hpp:668
FlowUnits flow_units
Flow units system.
Definition SimulationOptions.hpp:251
int evap_type
Evaporation type: 0=CONSTANT, 1=MONTHLY, 2=TIMESERIES, 3=TEMPERATURE, 4=FILE.
Definition SimulationOptions.hpp:698
double lat_flow_tol
Lateral inflow tolerance (fraction, e.g., 0.05 = 5%).
Definition SimulationOptions.hpp:551
bool ignore_rainfall
Ignore rainfall (for hot start runs).
Definition SimulationOptions.hpp:581
double wet_step
Wet-weather runoff timestep in seconds.
Definition SimulationOptions.hpp:221
double snow_divt
Snowmelt: dividing temperature.
Definition SimulationOptions.hpp:744
std::string evap_ts_name
Timeseries name for evaporation (evap_type == 2).
Definition SimulationOptions.hpp:704
int rwpt_seed
[OPTIONS] RWPT_SEED — deterministic counter-RNG seed (D-L6). Same seed ⇒ bit-identical runs at any th...
Definition SimulationOptions.hpp:306
std::string evap_recovery_pat
Recovery pattern name for evaporation.
Definition SimulationOptions.hpp:707
int wind_type
Wind speed type: 0=MONTHLY, 1=FILE.
Definition SimulationOptions.hpp:738
RoutingModel routing_model
Routing method. Legacy default: DYNWAVE.
Definition SimulationOptions.hpp:254
bool ignore_snow_melt
Ignore snowmelt.
Definition SimulationOptions.hpp:584
std::unordered_map< std::string, std::string > ext_options
Key-value map for unknown [OPTIONS] keys.
Definition SimulationOptions.hpp:691
std::vector< std::string > rpt_link_names
Named links to report (used when rpt_links == 2).
Definition SimulationOptions.hpp:824
bool rpt_flowstats
Report flow statistics (default true).
Definition SimulationOptions.hpp:803
double snow_dtlong
Snowmelt: longitude/solar-time correction (minutes).
Definition SimulationOptions.hpp:760
int surcharge_method
Surcharge method: 0=EXTRAN, 1=SLOT, 2=DYNAMIC_SLOT (DPS).
Definition SimulationOptions.hpp:431
double dps_decay_time
DPS decay time scale (seconds).
Definition SimulationOptions.hpp:457
double pan_coeff[12]
Monthly pan coefficients (used when evap_type == 4/FILE).
Definition SimulationOptions.hpp:713
QualitySolverKind quality_solver
Water-quality engine selection ([OPTIONS] QUALITY_SOLVER).
Definition SimulationOptions.hpp:268
bool rpt_controls
Report control actions (default false).
Definition SimulationOptions.hpp:806
double head_tol
Convergence head tolerance in project length units.
Definition SimulationOptions.hpp:543
bool skip_steady_state
Skip routing when system is in steady state.
Definition SimulationOptions.hpp:557
double water_specific_heat
Water specific heat capacity, J/kg/°C (WATER_SPECIFIC_HEAT_CAPACITY).
Definition SimulationOptions.hpp:391
double snow_elev
Snowmelt: site elevation above sea level (ft, internal units).
Definition SimulationOptions.hpp:766
int rpt_nodes
Node reporting: 0=NONE, 1=ALL, 2=SOME. Default ALL.
Definition SimulationOptions.hpp:791
double tpa_celerity
TPA acoustic celerity a for SURCHARGE_METHOD TPA (PROJECT length units per second,...
Definition SimulationOptions.hpp:437
double evap_values[12]
Monthly evaporation values (used when evap_type == 0 or 1).
Definition SimulationOptions.hpp:701
double snow_nrg_ratio
Snowmelt: negative melt ratio.
Definition SimulationOptions.hpp:750
double total_duration_ms
Total simulation duration in milliseconds, or -1 if not set.
Definition SimulationOptions.hpp:189
double totalDurationMs() const
Total simulation duration in milliseconds (legacy TotalDuration).
Definition SimulationOptions.hpp:831
double dps_target_celerity
DPS target pressure celerity (m/s, converted to ft/s at init).
Definition SimulationOptions.hpp:443
int unsteady_friction
Unsteady friction model: 0=NONE (default, inert), 1=VITKOVSKY.
Definition SimulationOptions.hpp:471
bool rpt_link_steps
Report the per-conduit time step summary (default false).
Definition SimulationOptions.hpp:815
double snow_max_melt
Snowmelt: maximum melt coefficient.
Definition SimulationOptions.hpp:772
double linkValidateRoutingStep() const noexcept
The routing step legacy's link_validate saw (see routing_step_authored).
Definition SimulationOptions.hpp:210
RunoffModel runoff_model
Runoff routing method.
Definition SimulationOptions.hpp:419
int rpt_subcatchments
Subcatchment reporting: 0=NONE, 1=ALL, 2=SOME. Default ALL.
Definition SimulationOptions.hpp:788
int sweep_start
Street sweeping start day-of-year (1-365). 0 = not set.
Definition SimulationOptions.hpp:241
double routing_step_authored
The ROUTING_STEP as authored, before WARNING 07 reduces routing_step to the wet-weather step (SWMMEng...
Definition SimulationOptions.hpp:207
int inertial_damping
Inertial damping: 0=NONE, 1=PARTIAL, 2=FULL.
Definition SimulationOptions.hpp:526
double snow_lat
Snowmelt: latitude (degrees).
Definition SimulationOptions.hpp:753
std::string temp_ts_name
Timeseries name for temperature data.
Definition SimulationOptions.hpp:723
std::vector< std::string > rpt_node_names
Named nodes to report (used when rpt_nodes == 2).
Definition SimulationOptions.hpp:821
double wind_func_coeff_b
Definition SimulationOptions.hpp:398
int humidity_type
Humidity source: 0=CONSTANT, 1=MONTHLY, 2=TIMESERIES.
Definition SimulationOptions.hpp:371
FilePathPair temp_file
File path for temperature data. Carries {absolute, original}.
Definition SimulationOptions.hpp:726
double temp_file_start
Temperature file start date (OADate).
Definition SimulationOptions.hpp:729
double report_start
Report start date/time.
Definition SimulationOptions.hpp:192
bool ignore_quality
Ignore water quality.
Definition SimulationOptions.hpp:596
double sys_flow_tol
System flow tolerance (fraction, e.g., 0.05 = 5%).
Definition SimulationOptions.hpp:547
bool lard_rwpt
[OPTIONS] DISPERSION RWPT|OFF — LARD RWPT dispersion (X3b; strategy §5; the GUI plan's Lagrangian-gro...
Definition SimulationOptions.hpp:300
bool write_absolute_paths
Slice IO-4 opt-out: emit external-file paths verbatim absolute.
Definition SimulationOptions.hpp:568
double wind_func_coeff_a
Wind-function coefficients (WIND_FUNC_COEFF_A / _B), CSH Table 4.1 — f(w) = a + b·w,...
Definition SimulationOptions.hpp:397
int normal_flow_ltd
Normal flow limitation: 0=SLOPE, 1=FROUDE, 2=BOTH, 3=NEITHER.
Definition SimulationOptions.hpp:518
double uf_k3
Unsteady friction coefficient k3 (dimensionless).
Definition SimulationOptions.hpp:484
bool water_age
[OPTIONS] WATER_AGE ON|OFF — transported water-age tracking (water age plan §1, reserved species WATE...
Definition SimulationOptions.hpp:318
int force_main_eqn
Force main equation: 0=Hazen-Williams, 1=Darcy-Weisbach.
Definition SimulationOptions.hpp:522
NodeContinuity node_continuity
Node continuity formulation for depth update. Default: EXPLICIT (legacy).
Definition SimulationOptions.hpp:487
std::vector< std::string > rpt_subcatch_names
Named subcatchments to report (used when rpt_subcatchments == 2).
Definition SimulationOptions.hpp:818
bool rpt_averages
Report time-averaged results (default false).
Definition SimulationOptions.hpp:809
double rule_step
Control rule evaluation interval (seconds).
Definition SimulationOptions.hpp:617
int max_trials
Maximum number of flow routing iterations (dynamic wave).
Definition SimulationOptions.hpp:426
bool rpt_input
Report input summary.
Definition SimulationOptions.hpp:797
int link_offsets
Link offset mode: 0=DEPTH_OFFSET, 1=ELEV_OFFSET.
Definition SimulationOptions.hpp:530
bool evap_dry_only
If true, evaporation only occurs on dry days.
Definition SimulationOptions.hpp:710
double snow_ati_wt
Snowmelt: ATI weight (0–1).
Definition SimulationOptions.hpp:747
double start_date
Simulation start date/time (decimal days, OADate (days since 12/30/1899)).
Definition SimulationOptions.hpp:175
double adc_perv[10]
Areal depletion curve for pervious surfaces (10 fractions).
Definition SimulationOptions.hpp:778
int max_segments_per_link
[OPTIONS] MAX_SEGMENTS_PER_LINK — LARD slab capacity per link (strategy §4.1; default 100,...
Definition SimulationOptions.hpp:289
double min_surf_area
Minimum node surface area (ft²).
Definition SimulationOptions.hpp:536
double wind_speed[12]
Monthly wind speed values (12 months).
Definition SimulationOptions.hpp:741
int humidity_var
Humidity quantity: 0=RELATIVE (%), 1=DEWPOINT (deg F US / deg C SI).
Definition SimulationOptions.hpp:376
bool quality_routing
True if quality routing is enabled.
Definition SimulationOptions.hpp:575
bool allow_ponding
True if evaporation is included.
Definition SimulationOptions.hpp:578
bool anderson_accel
Enable Anderson acceleration for Picard iteration convergence.
Definition SimulationOptions.hpp:514
int virtual_junction_momentum
Virtual-junction momentum treatment. Always 0 (BASIC).
Definition SimulationOptions.hpp:503
double report_step
Reporting output interval in seconds.
Definition SimulationOptions.hpp:224
int temp_source
Temperature source: 0=NONE, 1=TIMESERIES, 2=FILE.
Definition SimulationOptions.hpp:720
InfiltrationModel infiltration
Infiltration method for subcatchments.
Definition SimulationOptions.hpp:416
double quality_step
[OPTIONS] QUALITY_STEP — transport substep, seconds (HH:MM:SS or seconds; 0 = follow ROUTING_STEP).
Definition SimulationOptions.hpp:280
bool ignore_rdii
Ignore RDII.
Definition SimulationOptions.hpp:590
bool ignore_2d
Ignore the 2D surface-routing module.
Definition SimulationOptions.hpp:607
double dry_days
Antecedent dry days.
Definition SimulationOptions.hpp:227
int temp_units
Climate-file temperature units: 0=tenths-degC (C10), 1=degC (C), 2=degF (F); -1 = unspecified (reader...
Definition SimulationOptions.hpp:735
int num_threads
Number of OpenMP threads for parallel solver loops.
Definition SimulationOptions.hpp:646
bool heat_transport
[OPTIONS] HEAT_TRANSPORT ON|OFF — transported temperature (heat plan §1, reserved species TEMPERATURE...
Definition SimulationOptions.hpp:352
fv::FvOptions fv
Knobs for FLOW_ROUTING FV, grouped rather than spread across this struct (plan §4....
Definition SimulationOptions.hpp:413
double dps_alpha
DPS surcharge shock parameter (dimensionless, >= 2).
Definition SimulationOptions.hpp:450
double min_slope
Minimum conduit slope (ft/ft).
Definition SimulationOptions.hpp:533
int sweep_end
Street sweeping end day-of-year (1-365). 0 = not set.
Definition SimulationOptions.hpp:244
double pressure_ratio
Pa/P elevation correction in the Bowen ratio (PRESSURE_RATIO).
Definition SimulationOptions.hpp:401
double lengthening_step
Conduit lengthening timestep (seconds, 0 = use routing_step).
Definition SimulationOptions.hpp:238
Knobs for FLOW_ROUTING FV.
Definition FvOptions.hpp:123