SWMM  5.2.0
Documentation
Loading...
Searching...
No Matches
swmm5.h
Go to the documentation of this file.
1
14#ifndef SWMM5_H
15#define SWMM5_H
16
17#include "swmm5_export.h"
18
19// --- use "C" linkage for C++ programs
20#ifdef __cplusplus
21extern "C" {
22#endif
23
69
85
103
117
159
197
263
353
373
405
411typedef void (*progress_callback)(double progress);
412
420int EXPORT_SWMM_SOLVER_API swmm_run(const char *inputFile, const char *reportFile, const char *outputFile);
421
430int EXPORT_SWMM_SOLVER_API swmm_run_with_callback(
431 const char *inputFile, const char *reportFile, const char *outputFile, progress_callback callback);
432
440int EXPORT_SWMM_SOLVER_API swmm_open(const char *inputFile, const char *reportFile, const char *outputFile);
441
447int EXPORT_SWMM_SOLVER_API swmm_start(int saveFlag);
448
454int EXPORT_SWMM_SOLVER_API swmm_step(double *elapsedTime);
455
462int EXPORT_SWMM_SOLVER_API swmm_stride(int strideStep, double *elapsedTime);
463
471int EXPORT_SWMM_SOLVER_API swmm_useHotStart(const char *hotStartFile);
472
478int EXPORT_SWMM_SOLVER_API swmm_saveHotStart(const char *hotStartFile);
479
484int EXPORT_SWMM_SOLVER_API swmm_end(void);
485
490int EXPORT_SWMM_SOLVER_API swmm_report(void);
491
496int EXPORT_SWMM_SOLVER_API swmm_close(void);
497
505int EXPORT_SWMM_SOLVER_API swmm_getMassBalErr(float *runoffErr, float *flowErr, float *qualErr);
506
511int EXPORT_SWMM_SOLVER_API swmm_getVersion(void);
512
520int EXPORT_SWMM_SOLVER_API swmm_getError(char *errMsg, int msgLen);
521
528int EXPORT_SWMM_SOLVER_API swmm_getErrorFromCode(int error_code, char *outErrMsg[1024]);
529
534int EXPORT_SWMM_SOLVER_API swmm_getWarnings(void);
535
541int EXPORT_SWMM_SOLVER_API swmm_getCount(int objType);
542
551int EXPORT_SWMM_SOLVER_API swmm_getName(int objType, int index, char *name, int size);
552
559int EXPORT_SWMM_SOLVER_API swmm_getIndex(int objType, const char *name);
560
568double EXPORT_SWMM_SOLVER_API swmm_getValue(int property, int index);
569
578double EXPORT_SWMM_SOLVER_API swmm_getValueExpanded(int objType, int property, int index, int subIndex);
579
588int EXPORT_SWMM_SOLVER_API swmm_setValue(int property, int index, double value);
589
599int EXPORT_SWMM_SOLVER_API swmm_setValueExpanded(int objType, int property, int index, int subIndex, double value);
600
608double EXPORT_SWMM_SOLVER_API swmm_getSavedValue(int property, int index, int period);
609
614void EXPORT_SWMM_SOLVER_API swmm_writeLine(const char *line);
615
627void EXPORT_SWMM_SOLVER_API swmm_decodeDate(double date, int *year, int *month, int *day,
628 int *hour, int *minute, int *second, int *dayOfWeek);
629
640double EXPORT_SWMM_SOLVER_API swmm_encodeDate(int year, int month, int day,
641 int hour, int minute, int second);
642
643#ifdef __cplusplus
644} // matches the linkage specification from above */
645#endif
646
647#endif // SWMM5_H
void(* progress_callback)(double progress)
Callback function for progress reporting.
Definition swmm5.h:411
int EXPORT_SWMM_SOLVER_API swmm_getName(int objType, int index, char *name, int size)
Retrieves the ID name of an object.
Definition swmm5.c:1130
void EXPORT_SWMM_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.
Definition swmm5.c:1704
int EXPORT_SWMM_SOLVER_API swmm_getErrorFromCode(int error_code, char *outErrMsg[1024])
Retrieves the text of the error message that corresponds to the error code number.
Definition swmm5.c:1106
double EXPORT_SWMM_SOLVER_API swmm_getSavedValue(int property, int index, int period)
Get saved value of.
Definition swmm5.c:1682
int EXPORT_SWMM_SOLVER_API swmm_end(void)
End a SWMM simulation.
Definition swmm5.c:973
int EXPORT_SWMM_SOLVER_API swmm_getVersion(void)
Get the version of the SWMM engine.
Definition swmm5.c:1073
int EXPORT_SWMM_SOLVER_API swmm_getIndex(int objType, const char *name)
Retrieves the index of a named object.
Definition swmm5.c:1192
swmm_SystemProperty
Enumeration of system properties used in SWMM5.
Definition swmm5.h:269
@ swmm_UNITSYSTEM
Unit system.
Definition swmm5.h:293
@ swmm_LENGTHENINGSTEP
Lengthening step.
Definition swmm5.h:331
@ swmm_SWEEPEND
Sweep end.
Definition swmm5.h:323
@ swmm_IGNORERAINFALL
Ignore rainfall.
Definition swmm5.h:305
@ swmm_MINSURFAREA
Minimum surface area.
Definition swmm5.h:337
@ swmm_COURANTFACTOR
Courant factor.
Definition swmm5.h:335
@ swmm_MAXTRIALS
Maximum trials.
Definition swmm5.h:325
@ swmm_IGNOREROUTING
Ignore routing.
Definition swmm5.h:313
@ swmm_SYSFLOWTOL
System flow tolerance.
Definition swmm5.h:349
@ swmm_MINROUTESTEP
Minimum routing step.
Definition swmm5.h:329
@ swmm_MINSLOPE
Minimum slope.
Definition swmm5.h:339
@ swmm_SKIPSTEADYSTATE
Skip steady state.
Definition swmm5.h:303
@ swmm_QUALERROR
Quality error.
Definition swmm5.h:345
@ swmm_MAXROUTESTEP
Maximum routing step.
Definition swmm5.h:279
@ swmm_SWEEPSTART
Sweep start.
Definition swmm5.h:321
@ swmm_IGNOREQUALITY
Ignore quality.
Definition swmm5.h:315
@ swmm_SURCHARGEMETHOD
Surcharge method.
Definition swmm5.h:295
@ swmm_RULESTEP
Rule step.
Definition swmm5.h:319
@ swmm_LATFLOWTOL
Lateral flow tolerance.
Definition swmm5.h:351
@ swmm_ENDDATE
End date.
Definition swmm5.h:289
@ swmm_FLOWERROR
Flow error.
Definition swmm5.h:343
@ swmm_IGNORESNOWMELT
Ignore snowmelt.
Definition swmm5.h:309
@ swmm_STARTDATE
Start date.
Definition swmm5.h:271
@ swmm_INERTIADAMPING
Inertia damping.
Definition swmm5.h:299
@ swmm_CURRENTDATE
Current date.
Definition swmm5.h:273
@ swmm_NOREPORT
No report flag.
Definition swmm5.h:285
@ swmm_IGNORERDII
Ignore RDII.
Definition swmm5.h:307
@ swmm_RUNOFFERROR
Runoff error.
Definition swmm5.h:341
@ swmm_NUMTHREADS
Number of threads.
Definition swmm5.h:327
@ swmm_STARTDRYDAYS
Start dry days.
Definition swmm5.h:333
@ swmm_REPORTSTEP
Reporting step.
Definition swmm5.h:281
@ swmm_FLOWUNITS
Flow units.
Definition swmm5.h:287
@ swmm_ROUTESTEP
Routing step.
Definition swmm5.h:277
@ swmm_ERROR_CODE
Error code.
Definition swmm5.h:317
@ swmm_ALLOWPONDING
Allow ponding.
Definition swmm5.h:297
@ swmm_HEADTOL
Head tolerance.
Definition swmm5.h:347
@ swmm_ELAPSEDTIME
Elapsed time.
Definition swmm5.h:275
@ swmm_NORMALFLOWLTD
Normal flow limited.
Definition swmm5.h:301
@ swmm_REPORTSTART
Report start.
Definition swmm5.h:291
@ swmm_TOTALSTEPS
Total steps.
Definition swmm5.h:283
@ swmm_IGNOREGROUNDWATER
Ignore groundwater.
Definition swmm5.h:311
int EXPORT_SWMM_SOLVER_API swmm_start(int saveFlag)
Start a SWMM simulation with the given save flag.
Definition swmm5.c:605
swmm_SubcatchProperty
Enumeration of subcatchment properties used in SWMM5.
Definition swmm5.h:123
@ swmm_SUBCATCH_SLOPE
Slope.
Definition swmm5.h:141
@ swmm_SUBCATCH_INFIL
Infiltration.
Definition swmm5.h:133
@ swmm_SUBCATCH_RPTFLAG
Report flag.
Definition swmm5.h:137
@ swmm_SUBCATCH_RAINGAGE
Rain gage.
Definition swmm5.h:127
@ swmm_SUBCATCH_RUNOFF
Runoff.
Definition swmm5.h:135
@ swmm_SUBCATCH_POLLUTANT_RUNOFF_CONCENTRATION
Runoff concentration.
Definition swmm5.h:153
@ swmm_SUBCATCH_CURB_LENGTH
Curb length.
Definition swmm5.h:143
@ swmm_SUBCATCH_POLLUTANT_TOTAL_LOAD
Total pollutant load.
Definition swmm5.h:157
@ swmm_SUBCATCH_EXTERNAL_POLLUTANT_BUILDUP
External pollutant buildup.
Definition swmm5.h:151
@ swmm_SUBCATCH_API_SNOWFALL
API provided snowfall.
Definition swmm5.h:147
@ swmm_SUBCATCH_EVAP
Evaporation.
Definition swmm5.h:131
@ swmm_SUBCATCH_API_RAINFALL
API provided rainfall.
Definition swmm5.h:145
@ swmm_SUBCATCH_POLLUTANT_PONDED_CONCENTRATION
Ponded concentration.
Definition swmm5.h:155
@ swmm_SUBCATCH_WIDTH
Width.
Definition swmm5.h:139
@ swmm_SUBCATCH_AREA
Area.
Definition swmm5.h:125
@ swmm_SUBCATCH_RAINFALL
Rainfall.
Definition swmm5.h:129
@ swmm_SUBCATCH_POLLUTANT_BUILDUP
Pollutant buildup.
Definition swmm5.h:149
int EXPORT_SWMM_SOLVER_API swmm_getWarnings(void)
Gets the number of warnings issued during a simulation.
Definition swmm5.c:1081
int EXPORT_SWMM_SOLVER_API swmm_stride(int strideStep, double *elapsedTime)
Perform a SWMM simulation step with a stride step and return the elapsed time.
Definition swmm5.c:769
int EXPORT_SWMM_SOLVER_API swmm_getMassBalErr(float *runoffErr, float *flowErr, float *qualErr)
Get the mass balance errors for a SWMM simulation.
Definition swmm5.c:1054
int EXPORT_SWMM_SOLVER_API swmm_useHotStart(const char *hotStartFile)
Set hotstart file for SWMM simulation.
Definition swmm5.c:817
int EXPORT_SWMM_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.
Definition swmm5.c:1089
swmm_NodeProperty
Enumeration of node properties used in SWMM5.
Definition swmm5.h:165
@ swmm_NODE_SURCHARGE_DEPTH
Surcharge depth.
Definition swmm5.h:187
@ swmm_NODE_POLLUTANT_CONCENTRATION
Pollutant concentration.
Definition swmm5.h:193
@ swmm_NODE_OVERFLOW
Overflow.
Definition swmm5.h:183
@ swmm_NODE_LATFLOW
Lateral inflow.
Definition swmm5.h:179
@ swmm_NODE_INFLOW
Inflow.
Definition swmm5.h:181
@ swmm_NODE_ELEV
Elevation.
Definition swmm5.h:169
@ swmm_NODE_TYPE
Node type.
Definition swmm5.h:167
@ swmm_NODE_VOLUME
Volume.
Definition swmm5.h:177
@ swmm_NODE_MAXDEPTH
Maximum depth.
Definition swmm5.h:171
@ swmm_NODE_PONDED_AREA
Ponded area.
Definition swmm5.h:189
@ swmm_NODE_DEPTH
Depth.
Definition swmm5.h:173
@ swmm_NODE_RPTFLAG
Report flag.
Definition swmm5.h:185
@ swmm_NODE_INITIAL_DEPTH
Initial depth.
Definition swmm5.h:191
@ swmm_NODE_POLLUTANT_LATMASS_FLUX
Pollutant lateral mass flux inflow.
Definition swmm5.h:195
@ swmm_NODE_HEAD
Hydraulic head.
Definition swmm5.h:175
int EXPORT_SWMM_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.
Definition swmm5.c:551
int EXPORT_SWMM_SOLVER_API swmm_close(void)
Close a SWMM simulation.
Definition swmm5.c:1029
int EXPORT_SWMM_SOLVER_API swmm_saveHotStart(const char *hotStartFile)
Save hotstart file for SWMM simulation at current time.
Definition swmm5.c:850
void EXPORT_SWMM_SOLVER_API swmm_writeLine(const char *line)
Write a line of text to the SWMM report file.
Definition swmm5.c:1020
swmm_LinkType
Enumeration of link types used in SWMM5.
Definition swmm5.h:91
@ swmm_ORIFICE
Orifice link.
Definition swmm5.h:97
@ swmm_PUMP
Pump link.
Definition swmm5.h:95
@ swmm_CONDUIT
Conduit link.
Definition swmm5.h:93
@ swmm_OUTLET
Outlet link.
Definition swmm5.h:101
@ swmm_WEIR
Weir link.
Definition swmm5.h:99
int EXPORT_SWMM_SOLVER_API swmm_step(double *elapsedTime)
Perform a SWMM simulation step and return the elapsed time.
Definition swmm5.c:708
swmm_Object
Enumeration of object types used in SWMM5.
Definition swmm5.h:29
@ swmm_CONTROL_RULE
Control rules.
Definition swmm5.h:49
@ swmm_CURVE
Curve functions.
Definition swmm5.h:45
@ swmm_TIMESERIES
Time series.
Definition swmm5.h:47
@ swmm_INLET
Inlet.
Definition swmm5.h:65
@ swmm_STREET
Street.
Definition swmm5.h:63
@ swmm_TRANSECT
Transects.
Definition swmm5.h:51
@ swmm_POLLUTANT
Pollutants.
Definition swmm5.h:39
@ swmm_TIME_PATTERN
Time patterns.
Definition swmm5.h:43
@ smmm_XSECTION_SHAPE
Cross section shape.
Definition swmm5.h:59
@ swmm_UNIT_HYDROGRAPH
Unit hydrographs.
Definition swmm5.h:55
@ swmm_LID
Low impact development units.
Definition swmm5.h:61
@ swmm_AQUIFER
Aquifers.
Definition swmm5.h:53
@ swmm_SYSTEM
System.
Definition swmm5.h:67
@ swmm_LINK
Links.
Definition swmm5.h:37
@ swmm_SNOWPACK
Snow packs.
Definition swmm5.h:57
@ swmm_GAGE
Rain gages.
Definition swmm5.h:31
@ swmm_SUBCATCH
Subcatchments.
Definition swmm5.h:33
@ swmm_NODE
Nodes.
Definition swmm5.h:35
@ swmm_LANDUSE
Land uses.
Definition swmm5.h:41
int EXPORT_SWMM_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 callbac...
Definition swmm5.c:495
int EXPORT_SWMM_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.
Definition swmm5.c:431
swmm_LinkProperty
Enumeration of link properties used in SWMM5.
Definition swmm5.h:203
@ swmm_LINK_TIMEOPEN
Time open.
Definition swmm5.h:221
@ swmm_LINK_VELOCITY
Velocity.
Definition swmm5.h:229
@ swmm_LINK_POLLUTANT_LATMASS_FLUX
Pollutant lateral mass flux.
Definition swmm5.h:261
@ swmm_LINK_CAPACITY
Capacity.
Definition swmm5.h:235
@ swmm_LINK_INITIAL_FLOW
Initial flow.
Definition swmm5.h:243
@ swmm_LINK_NODE1
Upstream node.
Definition swmm5.h:207
@ swmm_LINK_POLLUTANT_CONCENTRATION
Pollutant concentration.
Definition swmm5.h:257
@ swmm_LINK_OFFSET2
Downstream invert offset.
Definition swmm5.h:241
@ swmm_LINK_AVERAGE_LOSS
Average loss.
Definition swmm5.h:251
@ swmm_LINK_VOLUME
Volume.
Definition swmm5.h:233
@ swmm_LINK_SEEPAGE_RATE
Seepage rate.
Definition swmm5.h:253
@ swmm_LINK_TIMECLOSED
Time closed.
Definition swmm5.h:223
@ swmm_LINK_TYPE
Link type.
Definition swmm5.h:205
@ swmm_LINK_OFFSET1
Upstream invert offset.
Definition swmm5.h:239
@ swmm_LINK_OUTLET_LOSS
Outlet loss.
Definition swmm5.h:249
@ swmm_LINK_FULLDEPTH
Full depth.
Definition swmm5.h:215
@ swmm_LINK_SLOPE
Slope.
Definition swmm5.h:213
@ swmm_LINK_POLLUTANT_LOAD
Pollutant load.
Definition swmm5.h:259
@ swmm_LINK_DEPTH
Depth.
Definition swmm5.h:227
@ swmm_LINK_FLOW
Flow.
Definition swmm5.h:225
@ swmm_LINK_FULLFLOW
Full flow.
Definition swmm5.h:217
@ swmm_LINK_LENGTH
Length.
Definition swmm5.h:211
@ swmm_LINK_RPTFLAG
Report flag.
Definition swmm5.h:237
@ swmm_LINK_FLOW_LIMIT
Flow limit.
Definition swmm5.h:245
@ swmm_LINK_INLET_LOSS
Inlet loss.
Definition swmm5.h:247
@ swmm_LINK_NODE2
Downstream node.
Definition swmm5.h:209
@ swmm_LINK_SETTING
Setting.
Definition swmm5.h:219
@ swmm_LINK_HAS_FLAPGATE
Flap gate.
Definition swmm5.h:255
@ swmm_LINK_TOPWIDTH
Top width.
Definition swmm5.h:231
double EXPORT_SWMM_SOLVER_API swmm_encodeDate(int year, int month, int day, int hour, int minute, int second)
Encode date values into a double date value.
Definition swmm5.c:1715
swmm_GageProperty
Enumeration of gage properties used in SWMM5.
Definition swmm5.h:109
@ swmm_GAGE_RAINFALL
Rainfall.
Definition swmm5.h:113
@ swmm_GAGE_TOTAL_PRECIPITATION
Total precipitation.
Definition swmm5.h:111
@ swmm_GAGE_SNOWFALL
Snowfall.
Definition swmm5.h:115
swmm_API_Errors
Enumeration of API errors used in SWMM5.
Definition swmm5.h:379
@ ERR_API_OBJECT_TYPE
API error for errorneous object type.
Definition swmm5.h:387
@ ERR_API_HOTSTART_FILE_FORMAT
API error for errorneous hotstart file format.
Definition swmm5.h:401
@ ERR_API_NOT_ENDED
API error for API not ended.
Definition swmm5.h:385
@ ERR_API_TIME_PERIOD
API error for errorneous time period.
Definition swmm5.h:397
@ ERR_API_IS_RUNNING
API error for API already running.
Definition swmm5.h:403
@ ERR_API_NOT_OPEN
API error for file not opened.
Definition swmm5.h:381
@ ERR_API_HOTSTART_FILE_OPEN
API error for errorneous hotstart file open.
Definition swmm5.h:399
@ ERR_API_OBJECT_INDEX
API error for errorneous object index.
Definition swmm5.h:389
@ ERR_API_PROPERTY_TYPE
API error for errorneous property type.
Definition swmm5.h:393
@ ERR_API_PROPERTY_VALUE
API error for errorneous property value.
Definition swmm5.h:395
@ ERR_API_OBJECT_NAME
API error for errorneous object name.
Definition swmm5.h:391
@ ERR_API_NOT_STARTED
API error for API not started.
Definition swmm5.h:383
double EXPORT_SWMM_SOLVER_API swmm_getValueExpanded(int objType, int property, int index, int subIndex)
Get the value of a property for an object given property, index, and subindex in the SWMM model.
Definition swmm5.c:1225
double EXPORT_SWMM_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.
Definition swmm5.c:1204
int EXPORT_SWMM_SOLVER_API swmm_getCount(int objType)
Retrieves the number of objects of a specific type.
Definition swmm5.c:1118
int EXPORT_SWMM_SOLVER_API swmm_setValueExpanded(int objType, int property, int index, int subIndex, double value)
Set the value of a property for an object given property, index, and subindex in the SWMM model.
Definition swmm5.c:1304
int EXPORT_SWMM_SOLVER_API swmm_report(void)
Writes simulation results to the report file.
Definition swmm5.c:1010
swmm_FlowUnitsProperty
Enumeration of flow units used in SWMM5.
Definition swmm5.h:359
@ swmm_CFS
Cubic feet per second.
Definition swmm5.h:361
@ swmm_MGD
Million gallons per day.
Definition swmm5.h:365
@ swmm_LPS
Liters per second.
Definition swmm5.h:369
@ swmm_CMS
Cubic meters per second.
Definition swmm5.h:367
@ swmm_GPM
Gallons per minute.
Definition swmm5.h:363
@ swmm_MLD
Million liters per day.
Definition swmm5.h:371
swmm_NodeType
Enumeration of node types used in SWMM5.
Definition swmm5.h:75
@ swmm_DIVIDER
Divider node.
Definition swmm5.h:83
@ swmm_OUTFALL
Outfall node.
Definition swmm5.h:79
@ swmm_JUNCTION
Junction node.
Definition swmm5.h:77
@ swmm_STORAGE
Storage node.
Definition swmm5.h:81
int EXPORT_SWMM_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.
Definition swmm5.c:1250