OpenSWMM Engine  6.0.0-alpha.3
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.3)
Loading...
Searching...
No Matches
openswmm_solver.h File Reference
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.
 
typedef void(* swmm_LegacyWarningCallback) (const char *message, void *userData)
 Callback type invoked for each warning the engine emits.
 

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 ,
  swmm_GAGE_SCALEFACTOR
}
 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 ,
  swmm_SUBCATCH_API_PET ,
  swmm_SUBCATCH_GW_MOISTURE ,
  swmm_SUBCATCH_GW_LOWER_DEPTH ,
  swmm_SUBCATCH_SNOW_SWE ,
  swmm_SUBCATCH_SNOW_FW ,
  swmm_SUBCATCH_SNOW_ATI ,
  swmm_SUBCATCH_SNOW_COLDC ,
  swmm_SUBCATCH_RAIN_SCALE_FACTOR ,
  swmm_SUBCATCH_SNOW_SCALE_FACTOR
}
 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 ,
  swmm_NODE_OUTFLOW
}
 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_PollutProperty {
  swmm_POLLUT_RAIN_CONCEN = 500 ,
  swmm_POLLUT_GW_CONCEN ,
  swmm_POLLUT_RDII_CONCEN ,
  swmm_POLLUT_DWF_CONCEN ,
  swmm_POLLUT_KDECAY ,
  swmm_POLLUT_CO_POLLUTANT ,
  swmm_POLLUT_CO_FRACTION ,
  swmm_POLLUT_SNOW_ONLY ,
  swmm_POLLUT_INIT_CONCEN
}
 Enumeration of pollutant properties used in SWMM5. More...
 
enum  swmm_PatternProperty {
  swmm_PATTERN_FACTOR = 600 ,
  swmm_PATTERN_COUNT ,
  swmm_PATTERN_TYPE
}
 Enumeration of time-pattern properties used in SWMM5. More...
 
enum  swmm_LanduseProperty {
  swmm_LANDUSE_SWEEP_INTERVAL = 700 ,
  swmm_LANDUSE_SWEEP_REMOVAL ,
  swmm_LANDUSE_BUILDUP_FUNC ,
  swmm_LANDUSE_BUILDUP_COEFF1 ,
  swmm_LANDUSE_BUILDUP_COEFF2 ,
  swmm_LANDUSE_BUILDUP_COEFF3 ,
  swmm_LANDUSE_BUILDUP_NORMALIZER ,
  swmm_LANDUSE_WASHOFF_FUNC ,
  swmm_LANDUSE_WASHOFF_COEFF ,
  swmm_LANDUSE_WASHOFF_EXPON ,
  swmm_LANDUSE_WASHOFF_SWEEP_EFFIC ,
  swmm_LANDUSE_WASHOFF_BMP_EFFIC
}
 Enumeration of land-use properties used in SWMM5. More...
 
enum  swmm_AquiferProperty {
  swmm_AQUIFER_POROSITY = 800 ,
  swmm_AQUIFER_WILTING_POINT ,
  swmm_AQUIFER_FIELD_CAPACITY ,
  swmm_AQUIFER_CONDUCTIVITY ,
  swmm_AQUIFER_CONDUCT_SLOPE ,
  swmm_AQUIFER_TENSION_SLOPE ,
  swmm_AQUIFER_UPPER_EVAP_FRAC ,
  swmm_AQUIFER_LOWER_EVAP_DEPTH ,
  swmm_AQUIFER_LOWER_LOSS_COEFF ,
  swmm_AQUIFER_BOTTOM_ELEV ,
  swmm_AQUIFER_WATER_TABLE_ELEV ,
  swmm_AQUIFER_UPPER_MOISTURE
}
 Enumeration of aquifer 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 ,
  swmm_EVAPRATE = 41 ,
  swmm_TEMPERATURE = 42 ,
  swmm_API_TEMPERATURE = 43 ,
  swmm_WINDSPEED = 44 ,
  swmm_API_WINDSPEED = 45 ,
  swmm_API_EVAP = 46 ,
  swmm_EVAP_DRY_ONLY = 47
}
 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_getRunningMassBalErr (float *runoffErr, float *flowErr)
 Get the running (timestep-by-timestep) continuity errors while a simulation is in progress.
 
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_setWarningCallback (swmm_LegacyWarningCallback cb, void *userData)
 Registers a callback invoked for each warning the engine emits.
 
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.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_setTreatment (int nodeIndex, int pollutantIndex, const char *expression)
 Set (or replace) the treatment expression for a node/pollutant pair.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_clearTreatment (int nodeIndex, int pollutantIndex)
 Remove the treatment expression for a node/pollutant pair.
 
int EXPORT_OPENSWMMCORE_SOLVER_API swmm_setLidDrain (int lidIndex, double coeff, double expon, double offset)
 Set the underdrain flow parameters of a LID process at runtime.
 
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

typedef void(* progress_callback) (double progress)

Callback function for progress reporting.

Parameters
[in]progressProgress value between 0 and 1

◆ swmm_LegacyWarningCallback

typedef void(* swmm_LegacyWarningCallback) (const char *message, void *userData)

Callback type invoked for each warning the engine emits.

Parameters
messageNull-terminated warning text.
userDataOpaque pointer supplied to swmm_setWarningCallback.

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_AquiferProperty

Enumeration of aquifer properties used in SWMM5.

Values use input-file units (the [AQUIFERS] line columns). The flux-coefficient properties (conductivity, slopes, evap/loss coefficients) are read live each step, so they are settable both before the simulation starts and while it is running; the structural / initial-condition properties (porosity, wilting point, field capacity, bottom elevation, water table elevation, upper moisture) bound or seed the groundwater state and return ERR_API_IS_RUNNING while the simulation is running.

Enumerator
swmm_AQUIFER_POROSITY 

Porosity (volumetric fraction, pre-start-only)

swmm_AQUIFER_WILTING_POINT 

Wilting point (volumetric fraction, pre-start-only)

swmm_AQUIFER_FIELD_CAPACITY 

Field capacity (volumetric fraction, pre-start-only)

swmm_AQUIFER_CONDUCTIVITY 

Saturated hydraulic conductivity (in/hr or mm/hr)

swmm_AQUIFER_CONDUCT_SLOPE 

Conductivity slope (unitless)

swmm_AQUIFER_TENSION_SLOPE 

Tension slope (ft or m)

swmm_AQUIFER_UPPER_EVAP_FRAC 

Upper-zone evaporation fraction (0-1)

swmm_AQUIFER_LOWER_EVAP_DEPTH 

Lower-zone evaporation depth (ft or m)

swmm_AQUIFER_LOWER_LOSS_COEFF 

Lower-zone seepage-loss coefficient (in/hr or mm/hr)

swmm_AQUIFER_BOTTOM_ELEV 

Aquifer bottom elevation (ft or m, pre-start-only)

swmm_AQUIFER_WATER_TABLE_ELEV 

Initial water table elevation (ft or m, pre-start-only)

swmm_AQUIFER_UPPER_MOISTURE 

Initial upper-zone moisture (volumetric fraction, pre-start-only)

◆ 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_GAGE_SCALEFACTOR 

Rainfall scaling factor (dimensionless, > 0).

◆ swmm_LanduseProperty

Enumeration of land-use properties used in SWMM5.

Street-sweeping parameters are settable both before the simulation starts and while it is running; they are read per step when sweeping is evaluated, so a mid-run edit takes effect on the next step.

Enumerator
swmm_LANDUSE_SWEEP_INTERVAL 

Street-sweeping interval (days)

swmm_LANDUSE_SWEEP_REMOVAL 

Fraction of buildup available for sweeping (0-1)

swmm_LANDUSE_BUILDUP_FUNC 

Buildup function type code (subIndex = pollutant index)

swmm_LANDUSE_BUILDUP_COEFF1 

Buildup coefficient c0 / max buildup (subIndex = pollutant)

swmm_LANDUSE_BUILDUP_COEFF2 

Buildup coefficient c1 / rate (subIndex = pollutant)

swmm_LANDUSE_BUILDUP_COEFF3 

Buildup coefficient c2 / exponent (subIndex = pollutant)

swmm_LANDUSE_BUILDUP_NORMALIZER 

Buildup normalizer code: 0 area, 1 curb length (subIndex = pollutant)

swmm_LANDUSE_WASHOFF_FUNC 

Washoff function type code (subIndex = pollutant)

swmm_LANDUSE_WASHOFF_COEFF 

Washoff coefficient (subIndex = pollutant)

swmm_LANDUSE_WASHOFF_EXPON 

Washoff exponent (subIndex = pollutant)

swmm_LANDUSE_WASHOFF_SWEEP_EFFIC 

Washoff street-sweeping removal efficiency 0-1 (subIndex = pollutant)

swmm_LANDUSE_WASHOFF_BMP_EFFIC 

Washoff BMP removal efficiency 0-1 (subIndex = pollutant)

◆ 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_NODE_OUTFLOW 

Total outflow.

◆ 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_PatternProperty

Enumeration of time-pattern properties used in SWMM5.

Pattern multiplier factors are settable both before the simulation starts and while it is running. They are looked up afresh on every step (DWF/GW/inflow scaling), so a mid-run edit takes effect on the next step. The factor index is passed as the subIndex argument of swmm_setValueExpanded / swmm_getValueExpanded (0-based position within the pattern: 0-11 monthly, 0-6 daily, 0-23 hourly/weekend).

Enumerator
swmm_PATTERN_FACTOR 

One multiplier factor (subIndex = factor position)

swmm_PATTERN_COUNT 

Number of factors in the pattern (read-only)

swmm_PATTERN_TYPE 

Pattern type code (read-only): 0 monthly, 1 daily, 2 hourly, 3 weekend.

◆ swmm_PollutProperty

Enumeration of pollutant properties used in SWMM5.

The source concentrations are settable while the simulation is running, enabling dynamic wet-deposition, groundwater, RDII, and dry weather quality forcing. Values are in the pollutant's concentration units (e.g. mg/L) as defined in the input file.

Enumerator
swmm_POLLUT_RAIN_CONCEN 

Rain (wet deposition) concentration.

swmm_POLLUT_GW_CONCEN 

Groundwater inflow concentration.

swmm_POLLUT_RDII_CONCEN 

RDII inflow concentration.

swmm_POLLUT_DWF_CONCEN 

Dry weather sanitary flow concentration.

swmm_POLLUT_KDECAY 

First-order decay constant (1/day); read live each step.

swmm_POLLUT_CO_POLLUTANT 

Co-pollutant index (-1 = none)

swmm_POLLUT_CO_FRACTION 

Co-pollutant fraction (0-1)

swmm_POLLUT_SNOW_ONLY 

Buildup-only-under-snow flag (0/1)

swmm_POLLUT_INIT_CONCEN 

Initial conveyance-network concentration (pre-start only)

◆ 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_SUBCATCH_API_PET 

API prescribed potential evapotranspiration rate (in/day or mm/day). Settable while the simulation is running; overrides the climate-derived evaporation rate for the subcatchment's surface, LID, and groundwater evaporation. Set a negative value to clear and revert to climate-derived evaporation.

swmm_SUBCATCH_GW_MOISTURE 

Groundwater upper zone moisture content (volume fraction, 0..porosity). Settable while the simulation is running (state injection / data assimilation).

swmm_SUBCATCH_GW_LOWER_DEPTH 

Groundwater saturated (lower) zone depth above the aquifer bottom (ft or m). Settable while the simulation is running.

swmm_SUBCATCH_SNOW_SWE 

Snow pack snow water equivalent on a snow subarea (in or mm; sub_index = 0 plowable, 1 impervious, 2 pervious). Settable while the simulation is running.

swmm_SUBCATCH_SNOW_FW 

Snow pack free water on a snow subarea (in or mm; sub_index as for swmm_SUBCATCH_SNOW_SWE). Settable while the simulation is running.

swmm_SUBCATCH_SNOW_ATI 

Snow pack antecedent temperature index on a snow subarea (deg F or deg C). Settable while the simulation is running.

swmm_SUBCATCH_SNOW_COLDC 

Snow pack cold content on a snow subarea (in or mm of melt equivalent). Settable while the simulation is running.

swmm_SUBCATCH_RAIN_SCALE_FACTOR 

Subcatchment rainfall scale factor (optional token 9 of [SUBCATCHMENTS]; default 1.0 = no scaling). Multiplies the gage-derived rainfall for this subcatchment only, composing multiplicatively with the gage's own scale factor. API-prescribed rainfall is NOT scaled by it. Must be > 0. Settable while the simulation is running.

swmm_SUBCATCH_SNOW_SCALE_FACTOR 

Subcatchment snowfall scale factor (optional token 10 of [SUBCATCHMENTS]; default 1.0 = no scaling). Composes multiplicatively with the gage snow catch factor (SCF): SCF corrects the physical gage's snow-catch deficiency, while this represents spatial variation across the catchment. Must be > 0. Settable while the simulation is running.

◆ 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.

swmm_EVAPRATE 

Current climate-derived evaporation rate (in/day or mm/day), including any monthly adjustments (read-only)

swmm_TEMPERATURE 

Current air temperature (deg F or deg C; read-only)

swmm_API_TEMPERATURE 

API prescribed air temperature (deg F or deg C). Settable while the simulation is running; overrides the climate data-source value (and bypasses monthly adjustments) for snowmelt and evaporation. Set a value <= -999 to clear and revert to climate-derived temperature. Getter returns -999 when no prescription is active.

swmm_WINDSPEED 

Current wind speed (mph or km/hr; read-only)

swmm_API_WINDSPEED 

API prescribed wind speed (mph or km/hr). Settable while the simulation is running; overrides the monthly/file value used in snowmelt. Set a negative value to clear. Getter returns -1 when no prescription is active.

swmm_API_EVAP 

API prescribed system-wide evaporation rate (in/day or mm/day). Settable while the simulation is running; replaces the climate-derived Evap.rate (after monthly adjustments) for every consumer — subcatchments, LID units, groundwater, conduits and storage nodes. Per-subcatchment swmm_SUBCATCH_API_PET still takes precedence. Set a negative value to clear. Getter returns -1 when not prescribed.

swmm_EVAP_DRY_ONLY 

Evaporation DRY_ONLY option (0/1). Settable while the simulation is running.

Function Documentation

◆ swmm_clearTreatment()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_clearTreatment ( int nodeIndex,
int pollutantIndex )

Remove the treatment expression for a node/pollutant pair.

Parameters
[in]nodeIndexNode index
[in]pollutantIndexPollutant index
Returns
Error code

◆ 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_getRunningMassBalErr()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_getRunningMassBalErr ( float * runoffErr,
float * flowErr )

Get the running (timestep-by-timestep) continuity errors while a simulation is in progress.

Unlike swmm_getMassBalErr (which only returns the finalised errors after swmm_end), this recomputes the runoff and flow-routing continuity errors from the live mass-balance accumulators and current system storage, so it may be called between swmm_step calls to surface progress-time continuity. Calling it mid-run has no effect on the final reported errors (massbal_report recomputes them at swmm_end). Returns zeros if called before swmm_start or after swmm_end.

Parameters
[out]runoffErrRunning runoff continuity error (percent)
[out]flowErrRunning flow-routing continuity error (percent)
Returns
Error code

◆ 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_setLidDrain()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_setLidDrain ( int lidIndex,
double coeff,
double expon,
double offset )

Set the underdrain flow parameters of a LID process at runtime.

Parameters
[in]lidIndexLID process index
[in]coeffUnderdrain flow coefficient (in/hr or mm/hr)
[in]exponUnderdrain head exponent
[in]offsetOffset height of underdrain (in or mm)
Returns
Error code

◆ swmm_setTreatment()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_setTreatment ( int nodeIndex,
int pollutantIndex,
const char * expression )

Set (or replace) the treatment expression for a node/pollutant pair.

Parameters
[in]nodeIndexNode index
[in]pollutantIndexPollutant index
[in]expressionTreatment expression in input-file form, e.g. "R = 0.5" or "C = BOD * 0.2"
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_setWarningCallback()

int EXPORT_OPENSWMMCORE_SOLVER_API swmm_setWarningCallback ( swmm_LegacyWarningCallback cb,
void * userData )

Registers a callback invoked for each warning the engine emits.

Mirrors the refactored engine's warning callback so a host (e.g. the legacy worker process) can stream warnings live instead of only reading them from the report (.rpt) file. Register BEFORE swmm_open to also capture warnings issued during input parsing (e.g. unknown section/option keywords). The callback is process-global, which is safe because the legacy engine runs single-threaded within a process.

Parameters
[in]cbCallback function, or NULL to disable.
[in]userDataOpaque pointer passed through to the callback.
Returns
0 on success.

◆ 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