OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
openswmm_infrastructure.h File Reference

OpenSWMM Engine — Infrastructure (Transects, Streets, Inlets, LIDs) C API. More...

#include "openswmm_engine.h"
Include dependency graph for openswmm_infrastructure.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

SWMM_ENGINE_API int swmm_transect_add (SWMM_Engine engine, const char *id)
 Add a new transect for irregular cross-sections.
 
SWMM_ENGINE_API int swmm_transect_set_roughness (SWMM_Engine engine, int idx, double n_left, double n_right, double n_channel)
 Set Manning's roughness for left overbank, right overbank, and channel.
 
SWMM_ENGINE_API int swmm_transect_add_station (SWMM_Engine engine, int idx, double station, double elevation)
 Add a station–elevation data point to a transect.
 
SWMM_ENGINE_API int swmm_transect_count (SWMM_Engine engine)
 Get the total number of transects in the model.
 
SWMM_ENGINE_API int swmm_street_add (SWMM_Engine engine, const char *id)
 Add a new street cross-section definition.
 
SWMM_ENGINE_API int swmm_street_set_params (SWMM_Engine engine, int idx, double t_crown, double h_curb, double sx, double n_road, double gutter_depres, double gutter_width, int sides, double back_width, double back_slope, double back_n)
 Set the geometric parameters for a street cross-section.
 
SWMM_ENGINE_API int swmm_street_count (SWMM_Engine engine)
 Get the total number of street definitions in the model.
 
SWMM_ENGINE_API int swmm_inlet_add (SWMM_Engine engine, const char *id, const char *type)
 Add a new inlet definition.
 
SWMM_ENGINE_API int swmm_inlet_set_params (SWMM_Engine engine, int idx, double length, double width, const char *grate_type, double open_area, double splash_veloc)
 Set the geometric parameters for an inlet.
 
SWMM_ENGINE_API int swmm_inlet_count (SWMM_Engine engine)
 Get the total number of inlet definitions in the model.
 
SWMM_ENGINE_API int swmm_lid_add (SWMM_Engine engine, const char *id, int type)
 Add a new LID (Low Impact Development) control.
 
SWMM_ENGINE_API int swmm_lid_set_surface (SWMM_Engine engine, int idx, double storage, double roughness, double slope)
 Set the surface layer properties for a LID control.
 
SWMM_ENGINE_API int swmm_lid_set_soil (SWMM_Engine engine, int idx, double thick, double porosity, double fc, double wp, double ksat, double kslope)
 Set the soil layer properties for a LID control.
 
SWMM_ENGINE_API int swmm_lid_set_storage (SWMM_Engine engine, int idx, double thick, double void_frac, double ksat)
 Set the storage layer properties for a LID control.
 
SWMM_ENGINE_API int swmm_lid_set_drain (SWMM_Engine engine, int idx, double coeff, double expon, double offset)
 Set the underdrain properties for a LID control.
 
SWMM_ENGINE_API int swmm_lid_count (SWMM_Engine engine)
 Get the total number of LID controls in the model.
 
SWMM_ENGINE_API int swmm_lid_usage_add (SWMM_Engine engine, int subcatch_idx, int lid_idx, int number, double area, double width, double init_sat, double from_imperv)
 Assign a LID control to a subcatchment.
 

Detailed Description

OpenSWMM Engine — Infrastructure (Transects, Streets, Inlets, LIDs) C API.

Transect creation and station data, street parameters, inlet definitions, LID control layers, and LID usage assignment.

See also
openswmm_engine.h
Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License\n MIT License

Function Documentation

◆ swmm_inlet_add()

SWMM_ENGINE_API int swmm_inlet_add ( SWMM_Engine  engine,
const char *  id,
const char *  type 
)

Add a new inlet definition.

Parameters
engineEngine handle (SWMM_STATE_BUILDING).
idUnique null-terminated identifier.
typeInlet type string (e.g., "GRATE", "CURB", "SLOTTED", "CUSTOM").
Returns
SWMM_OK on success, or an error code.

◆ swmm_inlet_count()

SWMM_ENGINE_API int swmm_inlet_count ( SWMM_Engine  engine)

Get the total number of inlet definitions in the model.

Parameters
engineEngine handle.
Returns
Number of inlets, or -1 on error.

◆ swmm_inlet_set_params()

SWMM_ENGINE_API int swmm_inlet_set_params ( SWMM_Engine  engine,
int  idx,
double  length,
double  width,
const char *  grate_type,
double  open_area,
double  splash_veloc 
)

Set the geometric parameters for an inlet.

Parameters
engineEngine handle.
idxZero-based inlet index.
lengthInlet length.
widthInlet width.
grate_typeGrate type string (e.g., "P-50", "GENERIC").
open_areaOpen area fraction (0–1).
splash_velocSplash-over velocity threshold.
Returns
SWMM_OK on success, or an error code.

◆ swmm_lid_add()

SWMM_ENGINE_API int swmm_lid_add ( SWMM_Engine  engine,
const char *  id,
int  type 
)

Add a new LID (Low Impact Development) control.

LID types: 0=BIO_CELL, 1=RAIN_GARDEN, 2=GREEN_ROOF, 3=INFIL_TRENCH, 4=PERM_PAVEMENT, 5=RAIN_BARREL, 6=ROOFTOP_DISCONN, 7=VEGETATIVE_SWALE.

Parameters
engineEngine handle (SWMM_STATE_BUILDING).
idUnique null-terminated identifier.
typeLID type code.
Returns
SWMM_OK on success, or an error code.

◆ swmm_lid_count()

SWMM_ENGINE_API int swmm_lid_count ( SWMM_Engine  engine)

Get the total number of LID controls in the model.

Parameters
engineEngine handle.
Returns
Number of LID controls, or -1 on error.

◆ swmm_lid_set_drain()

SWMM_ENGINE_API int swmm_lid_set_drain ( SWMM_Engine  engine,
int  idx,
double  coeff,
double  expon,
double  offset 
)

Set the underdrain properties for a LID control.

Parameters
engineEngine handle.
idxZero-based LID index.
coeffDrain coefficient.
exponDrain exponent.
offsetDrain offset height above the storage layer bottom.
Returns
SWMM_OK on success, or an error code.

◆ swmm_lid_set_soil()

SWMM_ENGINE_API int swmm_lid_set_soil ( SWMM_Engine  engine,
int  idx,
double  thick,
double  porosity,
double  fc,
double  wp,
double  ksat,
double  kslope 
)

Set the soil layer properties for a LID control.

Parameters
engineEngine handle.
idxZero-based LID index.
thickSoil thickness.
porositySoil porosity (fraction).
fcField capacity (fraction).
wpWilting point (fraction).
ksatSaturated hydraulic conductivity.
kslopeSlope of the conductivity–moisture curve.
Returns
SWMM_OK on success, or an error code.

◆ swmm_lid_set_storage()

SWMM_ENGINE_API int swmm_lid_set_storage ( SWMM_Engine  engine,
int  idx,
double  thick,
double  void_frac,
double  ksat 
)

Set the storage layer properties for a LID control.

Parameters
engineEngine handle.
idxZero-based LID index.
thickStorage layer thickness.
void_fracVoid fraction (porosity of gravel/aggregate).
ksatSeepage rate through the storage layer bottom.
Returns
SWMM_OK on success, or an error code.

◆ swmm_lid_set_surface()

SWMM_ENGINE_API int swmm_lid_set_surface ( SWMM_Engine  engine,
int  idx,
double  storage,
double  roughness,
double  slope 
)

Set the surface layer properties for a LID control.

Parameters
engineEngine handle.
idxZero-based LID index.
storageSurface storage depth.
roughnessSurface Manning's n.
slopeSurface slope (fraction).
Returns
SWMM_OK on success, or an error code.

◆ swmm_lid_usage_add()

SWMM_ENGINE_API int swmm_lid_usage_add ( SWMM_Engine  engine,
int  subcatch_idx,
int  lid_idx,
int  number,
double  area,
double  width,
double  init_sat,
double  from_imperv 
)

Assign a LID control to a subcatchment.

Multiple LID units of the same or different types can be assigned to a single subcatchment.

Parameters
engineEngine handle.
subcatch_idxZero-based subcatchment index.
lid_idxZero-based LID control index.
numberNumber of replicate LID units.
areaArea of each LID unit in project area units.
widthTop width of the overland flow surface per unit.
init_satInitial saturation of the soil layer (0–1).
from_impervFraction of impervious area runoff treated by this LID (0–1).
Returns
SWMM_OK on success, or an error code.

◆ swmm_street_add()

SWMM_ENGINE_API int swmm_street_add ( SWMM_Engine  engine,
const char *  id 
)

Add a new street cross-section definition.

Parameters
engineEngine handle (SWMM_STATE_BUILDING).
idUnique null-terminated identifier.
Returns
SWMM_OK on success, or an error code.

◆ swmm_street_count()

SWMM_ENGINE_API int swmm_street_count ( SWMM_Engine  engine)

Get the total number of street definitions in the model.

Parameters
engineEngine handle.
Returns
Number of streets, or -1 on error.

◆ swmm_street_set_params()

SWMM_ENGINE_API int swmm_street_set_params ( SWMM_Engine  engine,
int  idx,
double  t_crown,
double  h_curb,
double  sx,
double  n_road,
double  gutter_depres,
double  gutter_width,
int  sides,
double  back_width,
double  back_slope,
double  back_n 
)

Set the geometric parameters for a street cross-section.

Parameters
engineEngine handle.
idxZero-based street index.
t_crownCrown thickness (rise of the crown above the gutter).
h_curbCurb height.
sxCross slope of the roadway.
n_roadManning's n for the road surface.
gutter_depresGutter depression depth.
gutter_widthGutter width.
sidesNumber of sides (1 or 2).
back_widthBacking (sidewalk) width.
back_slopeBacking slope.
back_nManning's n for the backing area.
Returns
SWMM_OK on success, or an error code.

◆ swmm_transect_add()

SWMM_ENGINE_API int swmm_transect_add ( SWMM_Engine  engine,
const char *  id 
)

Add a new transect for irregular cross-sections.

Parameters
engineEngine handle (SWMM_STATE_BUILDING).
idUnique null-terminated identifier.
Returns
SWMM_OK on success, or an error code.

◆ swmm_transect_add_station()

SWMM_ENGINE_API int swmm_transect_add_station ( SWMM_Engine  engine,
int  idx,
double  station,
double  elevation 
)

Add a station–elevation data point to a transect.

Stations must be added in order from left to right across the cross-section.

Parameters
engineEngine handle.
idxZero-based transect index.
stationHorizontal distance (station) from a reference.
elevationElevation at this station.
Returns
SWMM_OK on success, or an error code.

◆ swmm_transect_count()

SWMM_ENGINE_API int swmm_transect_count ( SWMM_Engine  engine)

Get the total number of transects in the model.

Parameters
engineEngine handle.
Returns
Number of transects, or -1 on error.

◆ swmm_transect_set_roughness()

SWMM_ENGINE_API int swmm_transect_set_roughness ( SWMM_Engine  engine,
int  idx,
double  n_left,
double  n_right,
double  n_channel 
)

Set Manning's roughness for left overbank, right overbank, and channel.

Parameters
engineEngine handle.
idxZero-based transect index.
n_leftManning's n for the left overbank.
n_rightManning's n for the right overbank.
n_channelManning's n for the main channel.
Returns
SWMM_OK on success, or an error code.