OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
openswmm_solver.h File Reference
#include "openswmmcore_solver_export.h"
Include dependency graph for openswmm_solver.h:

Go to the source code of this file.

Classes

struct  swmm_SubcatchStats
 Cumulative subcatchment statistics. More...
 
struct  swmm_NodeStats
 Cumulative node statistics. More...
 
struct  swmm_StorageStats
 Cumulative storage node statistics. More...
 
struct  swmm_OutfallStats
 Cumulative outfall node statistics. More...
 
struct  swmm_LinkStats
 Cumulative link statistics. More...
 
struct  swmm_PumpStats
 Cumulative pump statistics. More...
 
struct  swmm_RoutingTotals
 System-level flow routing mass balance totals (all in ft3 or m3). More...
 
struct  swmm_RunoffTotals
 System-level surface runoff mass balance totals. More...
 

Macros

#define SWMM_MAX_FLOW_CLASSES   7
 Maximum number of flow classification classes for link statistics.
 

Typedefs

typedef void(* progress_callback) (double progress)
 Callback function for progress reporting.
 

Enumerations

enum  swmm_Object {
  swmm_GAGE ,
  swmm_SUBCATCH ,
  swmm_NODE ,
  swmm_LINK ,
  swmm_POLLUTANT ,
  swmm_LANDUSE ,
  swmm_TIME_PATTERN ,
  swmm_CURVE ,
  swmm_TIMESERIES ,
  swmm_CONTROL_RULE ,
  swmm_TRANSECT ,
  swmm_AQUIFER ,
  swmm_UNIT_HYDROGRAPH ,
  swmm_SNOWPACK ,
  smmm_XSECTION_SHAPE ,
  swmm_LID ,
  swmm_STREET ,
  swmm_INLET ,
  swmm_SYSTEM = 100
}
 Enumeration of object types used in SWMM5. More...
 
enum  swmm_NodeType {
  swmm_JUNCTION = 0 ,
  swmm_OUTFALL = 1 ,
  swmm_STORAGE = 2 ,
  swmm_DIVIDER = 3
}
 Enumeration of node types used in SWMM5. More...
 
enum  swmm_LinkType {
  swmm_CONDUIT = 0 ,
  swmm_PUMP = 1 ,
  swmm_ORIFICE = 2 ,
  swmm_WEIR = 3 ,
  swmm_OUTLET = 4
}
 Enumeration of link types used in SWMM5. More...
 
enum  swmm_GageProperty {
  swmm_GAGE_TOTAL_PRECIPITATION = 100 ,
  swmm_GAGE_RAINFALL ,
  swmm_GAGE_SNOWFALL
}
 Enumeration of gage properties used in SWMM5. More...
 
enum  swmm_SubcatchProperty {
  swmm_SUBCATCH_AREA = 200 ,
  swmm_SUBCATCH_RAINGAGE ,
  swmm_SUBCATCH_RAINFALL ,
  swmm_SUBCATCH_EVAP ,
  swmm_SUBCATCH_INFIL ,
  swmm_SUBCATCH_RUNOFF ,
  swmm_SUBCATCH_RPTFLAG ,
  swmm_SUBCATCH_WIDTH ,
  swmm_SUBCATCH_SLOPE ,
  swmm_SUBCATCH_OUTLET_TYPE ,
  swmm_SUBCATCH_OUTLET_INDEX ,
  swmm_SUBCATCH_INFILTRATION_MODEL ,
  swmm_SUBCATCH_FRACTION_IMPERVIOUS ,
  swmm_SUBCATCH_SUB_AREA_ROUTE_TO ,
  swmm_SUBCATCH_SUB_AREA_FRACTION_OUTLET ,
  swmm_SUBCATCH_SUB_AREA_MANNINGS_N ,
  swmm_SUBCATCH_SUB_AREA_FRACTION_AREA ,
  swmm_SUBCATCH_SUB_AREA_DEPRESSION_STORAGE ,
  swmm_SUBCATCH_SUB_AREA_INFLOW ,
  swmm_SUBCATCH_SUB_AREA_RUNOFF ,
  swmm_SUBCATCH_SUB_AREA_DEPTH ,
  swmm_SUBCATCH_LID_UNITS_COUNT ,
  swmm_SUBCATCH_LID_UNITS_PERV_AREA ,
  swmm_SUBCATCH_LID_UNITS_FLOW_TO_PERV_AREA ,
  swmm_SUBCATCH_LID_UNITS_DRAIN_FLOW ,
  swmm_SUBCATCH_LID_UNIT_REPLICATES ,
  swmm_SUBCATCH_LID_UNIT_AREA ,
  swmm_SUBCATCH_LID_UNIT_FULL_WIDTH ,
  swmm_SUBCATCH_LID_UNIT_BOTTOM_WIDTH ,
  swmm_SUBCATCH_LID_UNIT_INIT_SATURATION ,
  swmm_SUBCATCH_LID_UNIT_FROM_IMPERVIOUS ,
  swmm_SUBCATCH_LID_UNIT_FROM_PERVIOUS ,
  swmm_SUBCATCH_LID_UNIT_TO_PERVIOUS ,
  swmm_SUBCATCH_LID_UNIT_RECEIVING_OUTLET_TYPE ,
  swmm_SUBCATCH_LID_UNIT_RECEIVING_OUTLET_INDEX ,
  swmm_SUBCATCH_LID_UNIT_SURFACE_DEPTH ,
  swmm_SUBCATCH_LID_UNIT_SOIL_MOISTURE ,
  swmm_SUBCATCH_LID_UNIT_GREEN_AMPT_CAPILLARY_SUCTION ,
  swmm_SUBCATCH_LID_UNIT_GREEN_AMPT_SATURATED_CONDUCTIVITY ,
  swmm_SUBCATCH_LID_UNIT_GREEN_AMPT_MAXIMUM_SOIL_MOISTURE_DEFICIT ,
  swmm_SUBCATCH_CURB_LENGTH ,
  swmm_SUBCATCH_API_RAINFALL ,
  swmm_SUBCATCH_API_SNOWFALL ,
  swmm_SUBCATCH_POLLUTANT_BUILDUP ,
  swmm_SUBCATCH_EXTERNAL_POLLUTANT_BUILDUP ,
  swmm_SUBCATCH_POLLUTANT_RUNOFF_CONCENTRATION ,
  swmm_SUBCATCH_POLLUTANT_PONDED_CONCENTRATION ,
  swmm_SUBCATCH_POLLUTANT_TOTAL_LOAD
}
 Enumeration of subcatchment properties used in SWMM5 \TODO Add LID properties to this enum. More...
 
enum  swmm_NodeProperty {
  swmm_NODE_TYPE = 300 ,
  swmm_NODE_ELEV ,
  swmm_NODE_MAXDEPTH ,
  swmm_NODE_DEPTH ,
  swmm_NODE_HEAD ,
  swmm_NODE_VOLUME ,
  swmm_NODE_LATFLOW ,
  swmm_NODE_INFLOW ,
  swmm_NODE_OVERFLOW ,
  swmm_NODE_RPTFLAG ,
  swmm_NODE_SURCHARGE_DEPTH ,
  swmm_NODE_PONDED_AREA ,
  swmm_NODE_INITIAL_DEPTH ,
  swmm_NODE_POLLUTANT_CONCENTRATION ,
  swmm_NODE_POLLUTANT_LATMASS_FLUX
}
 Enumeration of node properties used in SWMM5. More...
 
enum  swmm_LinkProperty {
  swmm_LINK_TYPE = 400 ,
  swmm_LINK_NODE1 = 401 ,
  swmm_LINK_NODE2 = 402 ,
  swmm_LINK_LENGTH = 403 ,
  swmm_LINK_SLOPE = 404 ,
  swmm_LINK_FULLDEPTH = 405 ,
  swmm_LINK_FULLFLOW = 406 ,
  swmm_LINK_SETTING = 407 ,
  swmm_LINK_TIMEOPEN = 408 ,
  swmm_LINK_TIMECLOSED = 409 ,
  swmm_LINK_FLOW = 410 ,
  swmm_LINK_DEPTH = 411 ,
  swmm_LINK_VELOCITY = 412 ,
  swmm_LINK_TOPWIDTH = 413 ,
  swmm_LINK_VOLUME = 414 ,
  swmm_LINK_CAPACITY = 415 ,
  swmm_LINK_RPTFLAG = 416 ,
  swmm_LINK_OFFSET1 = 417 ,
  swmm_LINK_OFFSET2 = 418 ,
  swmm_LINK_INITIAL_FLOW = 419 ,
  swmm_LINK_FLOW_LIMIT = 420 ,
  swmm_LINK_INLET_LOSS = 421 ,
  swmm_LINK_OUTLET_LOSS = 422 ,
  swmm_LINK_AVERAGE_LOSS = 423 ,
  swmm_LINK_SEEPAGE_RATE = 424 ,
  swmm_LINK_HAS_FLAPGATE = 425 ,
  swmm_LINK_POLLUTANT_CONCENTRATION = 426 ,
  swmm_LINK_POLLUTANT_LOAD = 427 ,
  swmm_LINK_POLLUTANT_LATMASS_FLUX = 428
}
 Enumeration of link properties used in SWMM5. More...
 
enum  swmm_SystemProperty {
  swmm_STARTDATE = 0 ,
  swmm_CURRENTDATE = 1 ,
  swmm_ELAPSEDTIME = 2 ,
  swmm_ROUTESTEP = 3 ,
  swmm_MAXROUTESTEP = 4 ,
  swmm_REPORTSTEP = 5 ,
  swmm_TOTALSTEPS = 6 ,
  swmm_NOREPORT = 7 ,
  swmm_FLOWUNITS = 8 ,
  swmm_ENDDATE = 9 ,
  swmm_REPORTSTART = 10 ,
  swmm_UNITSYSTEM = 11 ,
  swmm_SURCHARGEMETHOD = 12 ,
  swmm_ALLOWPONDING = 13 ,
  swmm_INERTIADAMPING = 14 ,
  swmm_NORMALFLOWLTD = 15 ,
  swmm_SKIPSTEADYSTATE = 16 ,
  swmm_IGNORERAINFALL = 17 ,
  swmm_IGNORERDII = 18 ,
  swmm_IGNORESNOWMELT = 19 ,
  swmm_IGNOREGROUNDWATER = 20 ,
  swmm_IGNOREROUTING = 21 ,
  swmm_IGNOREQUALITY = 22 ,
  swmm_ERROR_CODE = 23 ,
  swmm_RULESTEP = 24 ,
  swmm_SWEEPSTART = 25 ,
  swmm_SWEEPEND = 26 ,
  swmm_MAXTRIALS = 27 ,
  swmm_NUMTHREADS = 28 ,
  swmm_MINROUTESTEP = 29 ,
  swmm_LENGTHENINGSTEP = 30 ,
  swmm_STARTDRYDAYS = 31 ,
  swmm_COURANTFACTOR = 32 ,
  swmm_MINSURFAREA = 33 ,
  swmm_MINSLOPE = 34 ,
  swmm_RUNOFFERROR = 35 ,
  swmm_FLOWERROR = 36 ,
  swmm_QUALERROR = 37 ,
  swmm_HEADTOL = 38 ,
  swmm_SYSFLOWTOL = 39 ,
  swmm_LATFLOWTOL = 40
}
 Enumeration of system properties used in SWMM5. More...
 
enum  swmm_FlowUnitsProperty {
  swmm_CFS = 0 ,
  swmm_GPM = 1 ,
  swmm_MGD = 2 ,
  swmm_CMS = 3 ,
  swmm_LPS = 4 ,
  swmm_MLD = 5
}
 Enumeration of flow units used in SWMM5. More...
 
enum  swmm_API_Errors {
  ERR_API_NOT_OPEN = -999901 ,
  ERR_API_NOT_STARTED = -999902 ,
  ERR_API_NOT_ENDED = -999903 ,
  ERR_API_OBJECT_TYPE = -999904 ,
  ERR_API_OBJECT_INDEX = -999905 ,
  ERR_API_OBJECT_NAME = -999906 ,
  ERR_API_PROPERTY_TYPE = -999907 ,
  ERR_API_PROPERTY_VALUE = -999908 ,
  ERR_API_TIME_PERIOD = -999909 ,
  ERR_API_HOTSTART_FILE_OPEN = -999910 ,
  ERR_API_HOTSTART_FILE_FORMAT = -999911 ,
  ERR_API_IS_RUNNING = -999912
}
 Enumeration of API errors used in SWMM5. More...
 

Functions

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_run (const char *inputFile, const char *reportFile, const char *outputFile)
 Run a SWMM simulation with the given input file, report file, and output file.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_run_with_callback (const char *inputFile, const char *reportFile, const char *outputFile, progress_callback callback)
 Run a SWMM simulation with the given input file, report file, and output file with a progress callback.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_open (const char *inputFile, const char *reportFile, const char *outputFile)
 Open a SWMM simulation with the given input file, report file, and output file.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_start (int saveFlag)
 Start a SWMM simulation with the given save flag.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_step (double *elapsedTime)
 Perform a SWMM simulation step and return the elapsed time.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_stride (int strideStep, double *elapsedTime)
 Perform a SWMM simulation step with a stride step and return the elapsed time.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_useHotStart (const char *hotStartFile)
 Set hotstart file for SWMM simulation.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_saveHotStart (const char *hotStartFile)
 Save hotstart file for SWMM simulation at current time.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_end (void)
 End a SWMM simulation.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_report (void)
 Writes simulation results to the report file.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_close (void)
 Close a SWMM simulation.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getMassBalErr (float *runoffErr, float *flowErr, float *qualErr)
 Get the mass balance errors for a SWMM simulation.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getVersion (void)
 Get the version of the SWMM engine.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getError (char *errMsg, int msgLen)
 Retrieves the code number and text of the error condition that caused SWMM to abort its analysis.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getErrorFromCode (int error_code, char *outErrMsg[1024])
 Retrieves the text of the error message that corresponds to the error code number.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getWarnings (void)
 Gets the number of warnings issued during a simulation.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getCount (int objType)
 Retrieves the number of objects of a specific type.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getName (int objType, int index, char *name, int size)
 Retrieves the ID name of an object.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getIndex (int objType, const char *name)
 Retrieves the index of a named object.
 
double EXPORT_OPENSWMMCORE_SOLVER_API swmm_getValue (int property, int index)
 Get the value of a property for an object of a given property in the SWMM model.
 
double EXPORT_OPENSWMMCORE_SOLVER_API swmm_getValueExpanded (int objType, int property, int index, int subIndex, int pollutantIndex)
 Get the value of a property for an object given property, index, and subindex in the SWMM model.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_setValue (int property, int index, double value)
 Set the value of a property for an object of a given property and index in the SWMM model.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_setValueExpanded (int objType, int property, int index, int subIndex, int pollutantIndex, double value)
 Set the value of a property for an object given property, index, and subindex in the SWMM model.
 
double EXPORT_OPENSWMMCORE_SOLVER_API swmm_getSavedValue (int property, int index, int period)
 Get saved value of.
 
void EXPORT_OPENSWMMCORE_SOLVER_API swmm_writeLine (const char *line)
 Write a line of text to the SWMM report file.
 
void EXPORT_OPENSWMMCORE_SOLVER_API swmm_decodeDate (double date, int *year, int *month, int *day, int *hour, int *minute, int *second, int *dayOfWeek)
 Decode double date value into year, month, day, hour, minute, second, and day of week.
 
double EXPORT_OPENSWMMCORE_SOLVER_API swmm_encodeDate (int year, int month, int day, int hour, int minute, int second)
 Encode date values into a double date value.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getSubcatchStats (int index, swmm_SubcatchStats *stats)
 Get cumulative subcatchment statistics.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getNodeStats (int index, swmm_NodeStats *stats)
 Get cumulative node statistics.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getStorageStats (int index, swmm_StorageStats *stats)
 Get cumulative storage node statistics.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getOutfallStats (int index, swmm_OutfallStats *stats)
 Get cumulative outfall node statistics.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getLinkStats (int index, swmm_LinkStats *stats)
 Get cumulative link statistics.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getPumpStats (int index, swmm_PumpStats *stats)
 Get cumulative pump statistics.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getSystemRoutingTotals (swmm_RoutingTotals *totals)
 Get system-level flow routing mass balance totals.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getSystemRunoffTotals (swmm_RunoffTotals *totals)
 Get system-level surface runoff mass balance totals.
 

Macro Definition Documentation

◆ SWMM_MAX_FLOW_CLASSES

#define SWMM_MAX_FLOW_CLASSES   7

Maximum number of flow classification classes for link statistics.

Typedef Documentation

◆ progress_callback

progress_callback

Callback function for progress reporting.

Parameters
[in]progressProgress value between 0 and 1

Enumeration Type Documentation

◆ swmm_API_Errors

Enumeration of API errors used in SWMM5.

Enumerator
ERR_API_NOT_OPEN 

API error for file not opened.

ERR_API_NOT_STARTED 

API error for API not started.

ERR_API_NOT_ENDED 

API error for API not ended.

ERR_API_OBJECT_TYPE 

API error for errorneous object type.

ERR_API_OBJECT_INDEX 

API error for errorneous object index.

ERR_API_OBJECT_NAME 

API error for errorneous object name.

ERR_API_PROPERTY_TYPE 

API error for errorneous property type.

ERR_API_PROPERTY_VALUE 

API error for errorneous property value.

ERR_API_TIME_PERIOD 

API error for errorneous time period.

ERR_API_HOTSTART_FILE_OPEN 

API error for errorneous hotstart file open.

ERR_API_HOTSTART_FILE_FORMAT 

API error for errorneous hotstart file format.

ERR_API_IS_RUNNING 

API error for API already running.

◆ swmm_FlowUnitsProperty

Enumeration of flow units used in SWMM5.

Enumerator
swmm_CFS 

Cubic feet per second.

swmm_GPM 

Gallons per minute.

swmm_MGD 

Million gallons per day.

swmm_CMS 

Cubic meters per second.

swmm_LPS 

Liters per second.

swmm_MLD 

Million liters per day.

◆ swmm_GageProperty

Enumeration of gage properties used in SWMM5.

Enumerator
swmm_GAGE_TOTAL_PRECIPITATION 

Total precipitation.

swmm_GAGE_RAINFALL 

Rainfall.

swmm_GAGE_SNOWFALL 

Snowfall.

◆ swmm_LinkProperty

Enumeration of link properties used in SWMM5.

Enumerator
swmm_LINK_TYPE 

Link type.

swmm_LINK_NODE1 

Upstream node.

swmm_LINK_NODE2 

Downstream node.

swmm_LINK_LENGTH 

Length.

swmm_LINK_SLOPE 

Slope.

swmm_LINK_FULLDEPTH 

Full depth.

swmm_LINK_FULLFLOW 

Full flow.

swmm_LINK_SETTING 

Setting.

swmm_LINK_TIMEOPEN 

Time open.

swmm_LINK_TIMECLOSED 

Time closed.

swmm_LINK_FLOW 

Flow.

swmm_LINK_DEPTH 

Depth.

swmm_LINK_VELOCITY 

Velocity.

swmm_LINK_TOPWIDTH 

Top width.

swmm_LINK_VOLUME 

Volume.

swmm_LINK_CAPACITY 

Capacity.

swmm_LINK_RPTFLAG 

Report flag.

swmm_LINK_OFFSET1 

Upstream invert offset.

swmm_LINK_OFFSET2 

Downstream invert offset.

swmm_LINK_INITIAL_FLOW 

Initial flow.

swmm_LINK_FLOW_LIMIT 

Flow limit.

swmm_LINK_INLET_LOSS 

Inlet loss.

swmm_LINK_OUTLET_LOSS 

Outlet loss.

swmm_LINK_AVERAGE_LOSS 

Average loss.

swmm_LINK_SEEPAGE_RATE 

Seepage rate.

swmm_LINK_HAS_FLAPGATE 

Flap gate.

swmm_LINK_POLLUTANT_CONCENTRATION 

Pollutant concentration.

swmm_LINK_POLLUTANT_LOAD 

Pollutant load.

swmm_LINK_POLLUTANT_LATMASS_FLUX 

Pollutant lateral mass flux.

◆ swmm_LinkType

Enumeration of link types used in SWMM5.

Enumerator
swmm_CONDUIT 

Conduit link.

swmm_PUMP 

Pump link.

swmm_ORIFICE 

Orifice link.

swmm_WEIR 

Weir link.

swmm_OUTLET 

Outlet link.

◆ swmm_NodeProperty

Enumeration of node properties used in SWMM5.

Enumerator
swmm_NODE_TYPE 

Node type.

swmm_NODE_ELEV 

Elevation.

swmm_NODE_MAXDEPTH 

Maximum depth.

swmm_NODE_DEPTH 

Depth.

swmm_NODE_HEAD 

Hydraulic head.

swmm_NODE_VOLUME 

Volume.

swmm_NODE_LATFLOW 

Lateral inflow.

swmm_NODE_INFLOW 

Inflow.

swmm_NODE_OVERFLOW 

Overflow.

swmm_NODE_RPTFLAG 

Report flag.

swmm_NODE_SURCHARGE_DEPTH 

Surcharge depth.

swmm_NODE_PONDED_AREA 

Ponded area.

swmm_NODE_INITIAL_DEPTH 

Initial depth.

swmm_NODE_POLLUTANT_CONCENTRATION 

Pollutant concentration.

swmm_NODE_POLLUTANT_LATMASS_FLUX 

Pollutant lateral mass flux inflow.

◆ swmm_NodeType

Enumeration of node types used in SWMM5.

Enumerator
swmm_JUNCTION 

Junction node.

swmm_OUTFALL 

Outfall node.

swmm_STORAGE 

Storage node.

swmm_DIVIDER 

Divider node.

◆ swmm_Object

Enumeration of object types used in SWMM5.

Enumerator
swmm_GAGE 

Rain gages.

swmm_SUBCATCH 

Subcatchments.

swmm_NODE 

Nodes.

swmm_LINK 

Links.

swmm_POLLUTANT 

Pollutants.

swmm_LANDUSE 

Land uses.

swmm_TIME_PATTERN 

Time patterns.

swmm_CURVE 

Curve functions.

swmm_TIMESERIES 

Time series.

swmm_CONTROL_RULE 

Control rules.

swmm_TRANSECT 

Transects.

swmm_AQUIFER 

Aquifers.

swmm_UNIT_HYDROGRAPH 

Unit hydrographs.

swmm_SNOWPACK 

Snow packs.

smmm_XSECTION_SHAPE 

Cross section shape.

swmm_LID 

Low impact development units.

swmm_STREET 

Street.

swmm_INLET 

Inlet.

swmm_SYSTEM 

System.

◆ swmm_SubcatchProperty

Enumeration of subcatchment properties used in SWMM5 \TODO Add LID properties to this enum.

Enumerator
swmm_SUBCATCH_AREA 

Area.

swmm_SUBCATCH_RAINGAGE 

Rain gage.

swmm_SUBCATCH_RAINFALL 

Rainfall.

swmm_SUBCATCH_EVAP 

Evaporation.

swmm_SUBCATCH_INFIL 

Infiltration.

swmm_SUBCATCH_RUNOFF 

Runoff.

swmm_SUBCATCH_RPTFLAG 

Report flag.

swmm_SUBCATCH_WIDTH 

Width.

swmm_SUBCATCH_SLOPE 

Slope.

swmm_SUBCATCH_OUTLET_TYPE 

Outlet type.

swmm_SUBCATCH_OUTLET_INDEX 

Outlet index.

swmm_SUBCATCH_INFILTRATION_MODEL 

Infiltration model.

swmm_SUBCATCH_FRACTION_IMPERVIOUS 

Fraction impervious.

swmm_SUBCATCH_SUB_AREA_ROUTE_TO 

Subarea routing to.

swmm_SUBCATCH_SUB_AREA_FRACTION_OUTLET 

Fraction subarea routed to outlet.

swmm_SUBCATCH_SUB_AREA_MANNINGS_N 

Subarea's Manning's n.

swmm_SUBCATCH_SUB_AREA_FRACTION_AREA 

Subarea's depression storage.

swmm_SUBCATCH_SUB_AREA_DEPRESSION_STORAGE 

Subarea's depression storage.

swmm_SUBCATCH_SUB_AREA_INFLOW 

Subarea's inflow.

swmm_SUBCATCH_SUB_AREA_RUNOFF 

Subarea's runoff.

swmm_SUBCATCH_SUB_AREA_DEPTH 

Subarea's depth.

swmm_SUBCATCH_LID_UNITS_COUNT 

Subcatch's LID unit count.

swmm_SUBCATCH_LID_UNITS_PERV_AREA 

Subcatch's LID pervious area.

swmm_SUBCATCH_LID_UNITS_FLOW_TO_PERV_AREA 

Subcatch's LID flow to pervious area.

swmm_SUBCATCH_LID_UNITS_DRAIN_FLOW 

Subcatch's LID drain flow.

swmm_SUBCATCH_LID_UNIT_REPLICATES 

Number of Subcatch's LID replicates.

swmm_SUBCATCH_LID_UNIT_AREA 

Subcatch's LID unit area.

swmm_SUBCATCH_LID_UNIT_FULL_WIDTH 

Subcatch's LID unit full top width.

swmm_SUBCATCH_LID_UNIT_BOTTOM_WIDTH 

Subcatch's LID unit bottom width.

swmm_SUBCATCH_LID_UNIT_INIT_SATURATION 

Subcatch's LID unit initial saturation of soil and storage layers.

swmm_SUBCATCH_LID_UNIT_FROM_IMPERVIOUS 

Subcatch's LID unit fraction of impervious area runoff treated.

swmm_SUBCATCH_LID_UNIT_FROM_PERVIOUS 

Subcatch's LID unit fraction of pervious area runoff treated.

swmm_SUBCATCH_LID_UNIT_TO_PERVIOUS 

Whether Subcatch's LID unit's flow is sent to the pervious area.

swmm_SUBCATCH_LID_UNIT_RECEIVING_OUTLET_TYPE 

The object type of the receiving drain flow.

swmm_SUBCATCH_LID_UNIT_RECEIVING_OUTLET_INDEX 

The index of the object receiving drain flow.

swmm_SUBCATCH_LID_UNIT_SURFACE_DEPTH 

Subcatch's LID unit surface depth.

swmm_SUBCATCH_LID_UNIT_SOIL_MOISTURE 

Subcatch's LID unit soil moisture content of biocell soil layer.

swmm_SUBCATCH_LID_UNIT_GREEN_AMPT_CAPILLARY_SUCTION 

Subcatch's LID unit green and ampt soil capillary suction.

swmm_SUBCATCH_LID_UNIT_GREEN_AMPT_SATURATED_CONDUCTIVITY 

Subcatch's LID unit green and ampt saturated conductivity.

swmm_SUBCATCH_LID_UNIT_GREEN_AMPT_MAXIMUM_SOIL_MOISTURE_DEFICIT 

Subcatch's LID unit green and ampt maximum soil moisture deficit.

swmm_SUBCATCH_CURB_LENGTH 

Curb length.

swmm_SUBCATCH_API_RAINFALL 

API provided rainfall.

swmm_SUBCATCH_API_SNOWFALL 

API provided snowfall.

swmm_SUBCATCH_POLLUTANT_BUILDUP 

Pollutant buildup.

swmm_SUBCATCH_EXTERNAL_POLLUTANT_BUILDUP 

External pollutant buildup.

swmm_SUBCATCH_POLLUTANT_RUNOFF_CONCENTRATION 

Runoff concentration.

swmm_SUBCATCH_POLLUTANT_PONDED_CONCENTRATION 

Ponded concentration.

swmm_SUBCATCH_POLLUTANT_TOTAL_LOAD 

Total pollutant load.

◆ swmm_SystemProperty

Enumeration of system properties used in SWMM5.

Enumerator
swmm_STARTDATE 

Start date.

swmm_CURRENTDATE 

Current date.

swmm_ELAPSEDTIME 

Elapsed time.

swmm_ROUTESTEP 

Routing step.

swmm_MAXROUTESTEP 

Maximum routing step.

swmm_REPORTSTEP 

Reporting step.

swmm_TOTALSTEPS 

Total steps.

swmm_NOREPORT 

No report flag.

swmm_FLOWUNITS 

Flow units.

swmm_ENDDATE 

End date.

swmm_REPORTSTART 

Report start.

swmm_UNITSYSTEM 

Unit system.

swmm_SURCHARGEMETHOD 

Surcharge method.

swmm_ALLOWPONDING 

Allow ponding.

swmm_INERTIADAMPING 

Inertia damping.

swmm_NORMALFLOWLTD 

Normal flow limited.

swmm_SKIPSTEADYSTATE 

Skip steady state.

swmm_IGNORERAINFALL 

Ignore rainfall.

swmm_IGNORERDII 

Ignore RDII.

swmm_IGNORESNOWMELT 

Ignore snowmelt.

swmm_IGNOREGROUNDWATER 

Ignore groundwater.

swmm_IGNOREROUTING 

Ignore routing.

swmm_IGNOREQUALITY 

Ignore quality.

swmm_ERROR_CODE 

Error code.

swmm_RULESTEP 

Rule step.

swmm_SWEEPSTART 

Sweep start.

swmm_SWEEPEND 

Sweep end.

swmm_MAXTRIALS 

Maximum trials.

swmm_NUMTHREADS 

Number of threads.

swmm_MINROUTESTEP 

Minimum routing step.

swmm_LENGTHENINGSTEP 

Lengthening step.

swmm_STARTDRYDAYS 

Start dry days.

swmm_COURANTFACTOR 

Courant factor.

swmm_MINSURFAREA 

Minimum surface area.

swmm_MINSLOPE 

Minimum slope.

swmm_RUNOFFERROR 

Runoff error.

swmm_FLOWERROR 

Flow error.

swmm_QUALERROR 

Quality error.

swmm_HEADTOL 

Head tolerance.

swmm_SYSFLOWTOL 

System flow tolerance.

swmm_LATFLOWTOL 

Lateral flow tolerance.

Function Documentation

◆ swmm_close()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_close ( void  )

Close a SWMM simulation.

Returns
Error code

◆ swmm_decodeDate()

void EXPORT_OPENSWMMCORE_SOLVER_API swmm_decodeDate ( double  date,
int *  year,
int *  month,
int *  day,
int *  hour,
int *  minute,
int *  second,
int *  dayOfWeek 
)

Decode double date value into year, month, day, hour, minute, second, and day of week.

Parameters
[in]dateDate value
[out]yearYear
[out]monthMonth
[out]dayDay
[out]hourHour
[out]minuteMinute
[out]secondSecond
[out]dayOfWeekDay of week (0=Sunday, 1=Monday, ..., 6=Saturday)

◆ swmm_encodeDate()

double EXPORT_OPENSWMMCORE_SOLVER_API swmm_encodeDate ( int  year,
int  month,
int  day,
int  hour,
int  minute,
int  second 
)

Encode date values into a double date value.

Parameters
[in]yearYear
[in]monthMonth
[in]dayDay
[in]hourHour
[in]minuteMinute
[in]secondSecond
Returns
Date value

◆ swmm_end()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_end ( void  )

End a SWMM simulation.

Returns
Error code

◆ swmm_getCount()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getCount ( int  objType)

Retrieves the number of objects of a specific type.

Parameters
[in]objTypeType of SWMM object
Returns
Number of objects or error code

◆ swmm_getError()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getError ( char *  errMsg,
int  msgLen 
)

Retrieves the code number and text of the error condition that caused SWMM to abort its analysis.

Parameters
[out]errMsgError message text
[in]msgLenMaximum size of errMsg
Returns
Error message code number

◆ swmm_getErrorFromCode()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getErrorFromCode ( int  error_code,
char *  outErrMsg[1024] 
)

Retrieves the text of the error message that corresponds to the error code number.

Parameters
[in]errorCodeError code number
[out]outErrMsgError message text
Returns
Error code

◆ swmm_getIndex()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getIndex ( int  objType,
const char *  name 
)

Retrieves the index of a named object.

Parameters
[in]objTypeType of SWMM object
[in]nameObject name
Returns
Object index or error code

◆ swmm_getLinkStats()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getLinkStats ( int  index,
swmm_LinkStats stats 
)

Get cumulative link statistics.

Parameters
[in]indexLink index
[out]statsPointer to swmm_LinkStats to fill
Returns
Error code (0 = success)

◆ swmm_getMassBalErr()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getMassBalErr ( float *  runoffErr,
float *  flowErr,
float *  qualErr 
)

Get the mass balance errors for a SWMM simulation.

Parameters
[out]runoffErrRunoff error (percent)
[out]flowErrFlow error (percent)
[out]qualErrQuality error (percent)
Returns
Error code

◆ swmm_getName()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getName ( int  objType,
int  index,
char *  name,
int  size 
)

Retrieves the ID name of an object.

Parameters
[in]objTypeType of SWMM object
[in]indexObject index
[out]nameObject name
[in]sizeSize of the name array
Returns
Error code

◆ swmm_getNodeStats()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getNodeStats ( int  index,
swmm_NodeStats stats 
)

Get cumulative node statistics.

Parameters
[in]indexNode index
[out]statsPointer to swmm_NodeStats to fill
Returns
Error code (0 = success)

◆ swmm_getOutfallStats()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getOutfallStats ( int  index,
swmm_OutfallStats stats 
)

Get cumulative outfall node statistics.

Parameters
[in]indexNode index (must be an OUTFALL node)
[out]statsPointer to swmm_OutfallStats to fill
Returns
Error code (0 = success)
Note
Caller must pre-allocate stats->totalLoad with Nobjects[POLLUT] doubles.

◆ swmm_getPumpStats()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getPumpStats ( int  index,
swmm_PumpStats stats 
)

Get cumulative pump statistics.

Parameters
[in]indexLink index (must be a PUMP link)
[out]statsPointer to swmm_PumpStats to fill
Returns
Error code (0 = success)

◆ swmm_getSavedValue()

double EXPORT_OPENSWMMCORE_SOLVER_API swmm_getSavedValue ( int  property,
int  index,
int  period 
)

Get saved value of.

Parameters
[in]propertyProperty type
[in]indexObject index
[in]periodTime period index
Returns
Property value

◆ swmm_getStorageStats()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getStorageStats ( int  index,
swmm_StorageStats stats 
)

Get cumulative storage node statistics.

Parameters
[in]indexNode index (must be a STORAGE node)
[out]statsPointer to swmm_StorageStats to fill
Returns
Error code (0 = success)

◆ swmm_getSubcatchStats()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getSubcatchStats ( int  index,
swmm_SubcatchStats stats 
)

Get cumulative subcatchment statistics.

Parameters
[in]indexSubcatchment index
[out]statsPointer to swmm_SubcatchStats to fill
Returns
Error code (0 = success)

◆ swmm_getSystemRoutingTotals()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getSystemRoutingTotals ( swmm_RoutingTotals totals)

Get system-level flow routing mass balance totals.

Parameters
[out]totalsPointer to swmm_RoutingTotals to fill
Returns
Error code (0 = success)

◆ swmm_getSystemRunoffTotals()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getSystemRunoffTotals ( swmm_RunoffTotals totals)

Get system-level surface runoff mass balance totals.

Parameters
[out]totalsPointer to swmm_RunoffTotals to fill
Returns
Error code (0 = success)

◆ swmm_getValue()

double EXPORT_OPENSWMMCORE_SOLVER_API swmm_getValue ( int  property,
int  index 
)

Get the value of a property for an object of a given property in the SWMM model.

Parameters
[in]propertyProperty type
[in]indexObject index
Returns
Property value
Deprecated:
Use swmm_getValueExpanded instead. Function will be changed to swmm_getValueExpanded in future versions.

◆ swmm_getValueExpanded()

double EXPORT_OPENSWMMCORE_SOLVER_API swmm_getValueExpanded ( int  objType,
int  property,
int  index,
int  subIndex,
int  pollutantIndex 
)

Get the value of a property for an object given property, index, and subindex in the SWMM model.

Parameters
[in]objTypeObject type
[in]propertyProperty type
[in]indexObject index
[in]subIndexOptional Subindex for the property
[in]pollutantIndexOptional Pollutant index for the property
Returns
Property value

◆ swmm_getVersion()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getVersion ( void  )

Get the version of the SWMM engine.

Returns
Version number

◆ swmm_getWarnings()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getWarnings ( void  )

Gets the number of warnings issued during a simulation.

Returns
Number of warning messages issued

◆ swmm_open()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_open ( const char *  inputFile,
const char *  reportFile,
const char *  outputFile 
)

Open a SWMM simulation with the given input file, report file, and output file.

Parameters
[in]inputFilePath to the input file
[in]reportFilePath to the report file
[in]outputFilePath to the output file
Returns
Error code

◆ swmm_report()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_report ( void  )

Writes simulation results to the report file.

Returns
Error code

◆ swmm_run()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_run ( const char *  inputFile,
const char *  reportFile,
const char *  outputFile 
)

Run a SWMM simulation with the given input file, report file, and output file.

Parameters
[in]inputFilePath to the input file
[in]reportFilePath to the report file
[in]outputFilePath to the output file
Returns
Error code

◆ swmm_run_with_callback()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_run_with_callback ( const char *  inputFile,
const char *  reportFile,
const char *  outputFile,
progress_callback  callback 
)

Run a SWMM simulation with the given input file, report file, and output file with a progress callback.

Parameters
[in]inputFilePath to the input file
[in]reportFilePath to the report file
[in]outputFilePath to the output file
[in]callbackProgress callback function
Returns
Error code

◆ swmm_saveHotStart()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_saveHotStart ( const char *  hotStartFile)

Save hotstart file for SWMM simulation at current time.

Parameters
[in]hotStartFilePath to the hotstart file
Returns
Error code

◆ swmm_setValue()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_setValue ( int  property,
int  index,
double  value 
)

Set the value of a property for an object of a given property and index in the SWMM model.

Parameters
[in]propertyProperty type
[in]indexObject index
[in]valueProperty value
Returns
Error code
Deprecated:
Use swmm_setValueExpanded instead. Function will be changed to swmm_setValueExpanded in future versions.

◆ swmm_setValueExpanded()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_setValueExpanded ( int  objType,
int  property,
int  index,
int  subIndex,
int  pollutantIndex,
double  value 
)

Set the value of a property for an object given property, index, and subindex in the SWMM model.

Parameters
[in]objTypeObject type
[in]propertyProperty type
[in]indexObject index
[in]subIndexOptional Subindex for the property
[in]pollutantIndexOptional Pollutant index for the property
[in]valueProperty value
Returns
Error code

◆ swmm_start()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_start ( int  saveFlag)

Start a SWMM simulation with the given save flag.

Parameters
[in]saveFlagFlag to save simulation
Returns
Error code

◆ swmm_step()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_step ( double *  elapsedTime)

Perform a SWMM simulation step and return the elapsed time.

Parameters
[out]elapsedTimeElapsed time in decimal days
Returns
Error code

◆ swmm_stride()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_stride ( int  strideStep,
double *  elapsedTime 
)

Perform a SWMM simulation step with a stride step and return the elapsed time.

Parameters
[in]strideStepStride step
[out]elapsedTimeElapsed time
Returns
Error code

◆ swmm_useHotStart()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_useHotStart ( const char *  hotStartFile)

Set hotstart file for SWMM simulation.

Sets the hotstart file to use for simulation. Errors does not terminate simulation unless there is a prior terminating error.

Parameters
[in]hotStartFilePath to the hotstart file
Returns
Error code

◆ swmm_writeLine()

void EXPORT_OPENSWMMCORE_SOLVER_API swmm_writeLine ( const char *  line)

Write a line of text to the SWMM report file.

Parameters
[in]lineLine of text