32#ifndef OPENSWMM_INFRASTRUCTURE_H
33#define OPENSWMM_INFRASTRUCTURE_H
119 double* n_left,
double* n_right,
double* n_channel);
134 double x_left,
double x_right);
145 double* x_left,
double* x_right);
164 double x_left,
double x_right);
175 double* x_left,
double* x_right);
197 double x_factor,
double y_factor,
double length_factor);
209 double* x_factor,
double* y_factor,
double* length_factor);
253 double* station,
double* elevation);
343 double t_crown,
double h_curb,
double sx,
double n_road,
344 double gutter_depres,
double gutter_width,
int sides,
345 double back_width,
double back_slope,
double back_n);
392 double* t_crown,
double* h_curb,
double* sx,
double* n_road,
393 double* gutter_depres,
double* gutter_width,
int* sides,
394 double* back_width,
double* back_slope,
double* back_n);
436 const char* grate_type,
double open_area,
double splash_veloc);
482 double* length,
double* width,
483 char* grate_type,
int grate_buflen,
484 double* open_area,
double* splash_veloc);
766 double frac_imperv,
double ksat,
double clog_factor,
double regen_days);
835 double* frac_imperv,
double* ksat,
double* clog_factor,
double* regen_days);
887 int* subcatch_idx,
int* lid_idx,
int* number,
888 double* area,
double* width,
double* init_sat,
889 double* from_imperv,
int* to_perv,
double* from_perv);
#define SWMM_ENGINE_API
Definition openswmm_2d.h:53
void * SWMM_Engine
Opaque handle to an OpenSWMM Engine instance.
Definition openswmm_callbacks.h:51
OpenSWMM Engine — primary transparent C API (master header).
SWMM_ENGINE_API int swmm_transect_get_bank_stations(SWMM_Engine engine, int idx, double *x_left, double *x_right)
Get the left and right bank stations for a transect.
Definition openswmm_infrastructure_impl.cpp:148
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.
Definition openswmm_infrastructure_impl.cpp:89
SWMM_ENGINE_API int swmm_transect_get_roughness(SWMM_Engine engine, int idx, double *n_left, double *n_right, double *n_channel)
Get the Manning's roughness values for a transect.
Definition openswmm_infrastructure_impl.cpp:125
SWMM_GrateType
Definition openswmm_infrastructure.h:515
@ SWMM_GRATE_P_BAR_30
Definition openswmm_infrastructure.h:518
@ SWMM_GRATE_P_BAR_50
Definition openswmm_infrastructure.h:516
@ SWMM_GRATE_P_BAR_50x100
Definition openswmm_infrastructure.h:517
@ SWMM_GRATE_TILT_BAR_45
Definition openswmm_infrastructure.h:520
@ SWMM_GRATE_GENERIC
Definition openswmm_infrastructure.h:523
@ SWMM_GRATE_TILT_BAR_30
Definition openswmm_infrastructure.h:521
@ SWMM_GRATE_RETICULINE
Definition openswmm_infrastructure.h:522
@ SWMM_GRATE_CURVED_VANE
Definition openswmm_infrastructure.h:519
SWMM_ENGINE_API int swmm_lid_get_pavement(SWMM_Engine engine, int idx, double *thick, double *void_ratio, double *frac_imperv, double *ksat, double *clog_factor, double *regen_days)
Read the porous-pavement layer. Inverse of swmm_lid_set_pavement. Any out-param may be null.
Definition openswmm_infrastructure_impl.cpp:1127
SWMM_ThroatType
Definition openswmm_infrastructure.h:527
@ SWMM_THROAT_VERTICAL
Definition openswmm_infrastructure.h:530
@ SWMM_THROAT_HORIZONTAL
Definition openswmm_infrastructure.h:528
@ SWMM_THROAT_INCLINED
Definition openswmm_infrastructure.h:529
SWMM_ENGINE_API int swmm_inlet_index(SWMM_Engine engine, const char *id)
Look up an inlet's zero-based index by its string identifier.
Definition openswmm_infrastructure_impl.cpp:509
SWMM_ENGINE_API int swmm_lid_get_surface(SWMM_Engine engine, int idx, double *storage, double *roughness, double *slope)
Read the surface layer properties. Inverse of swmm_lid_set_surface.
Definition openswmm_infrastructure_impl.cpp:1080
SWMM_ENGINE_API int swmm_transect_index(SWMM_Engine engine, const char *id)
Look up a transect's zero-based index by its string identifier.
Definition openswmm_infrastructure_impl.cpp:104
SWMM_InletHostKind
Definition openswmm_infrastructure.h:608
@ SWMM_INLET_HOST_LINK
Definition openswmm_infrastructure.h:609
@ SWMM_INLET_HOST_NODE
Definition openswmm_infrastructure.h:610
SWMM_ENGINE_API int swmm_inlet_get_comment(SWMM_Engine engine, int idx, char *buf, int buflen)
Get/set the free-text description of an inlet design.
Definition openswmm_infrastructure_impl.cpp:729
SWMM_ENGINE_API int swmm_transect_rename(SWMM_Engine engine, int idx, const char *new_id)
Rename an existing transect.
Definition openswmm_infrastructure_impl.cpp:259
SWMM_ENGINE_API int swmm_lid_index(SWMM_Engine engine, const char *id)
Look up a LID control's zero-based index by its string identifier.
Definition openswmm_infrastructure_impl.cpp:1049
SWMM_ENGINE_API int swmm_lid_count(SWMM_Engine engine)
Get the total number of LID controls in the model.
Definition openswmm_infrastructure_impl.cpp:1044
SWMM_ENGINE_API int swmm_lid_set_pavement(SWMM_Engine engine, int idx, double thick, double void_ratio, double frac_imperv, double ksat, double clog_factor, double regen_days)
Set the porous-pavement layer properties for a LID control.
Definition openswmm_infrastructure_impl.cpp:1005
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.
Definition openswmm_infrastructure_impl.cpp:988
SWMM_ENGINE_API int swmm_inlet_usage_find_node(SWMM_Engine engine, int node_idx)
Definition openswmm_infrastructure_impl.cpp:758
SWMM_ENGINE_API int swmm_transect_set_bank_stations(SWMM_Engine engine, int idx, double x_left, double x_right)
Set the left and right bank stations for a transect.
Definition openswmm_infrastructure_impl.cpp:137
SWMM_ENGINE_API int swmm_transect_set_modifiers(SWMM_Engine engine, int idx, double x_factor, double y_factor, double length_factor)
Set the station, elevation, and meander modifiers for a transect.
Definition openswmm_infrastructure_impl.cpp:181
SWMM_ENGINE_API int swmm_transect_get_encroachment_stations(SWMM_Engine engine, int idx, double *x_left, double *x_right)
Get the left and right encroachment stations for a transect (BQ-TR-02).
Definition openswmm_infrastructure_impl.cpp:170
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.
Definition openswmm_infrastructure_impl.cpp:78
SWMM_ENGINE_API int swmm_transect_set_encroachment_stations(SWMM_Engine engine, int idx, double x_left, double x_right)
Set the left and right encroachment stations for a transect (BQ-TR-02).
Definition openswmm_infrastructure_impl.cpp:159
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.
Definition openswmm_infrastructure_impl.cpp:483
SWMM_ENGINE_API int swmm_transect_set_comments(SWMM_Engine engine, int idx, const char *text)
Set the free-form comments / description for a transect.
Definition openswmm_infrastructure_impl.cpp:205
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.
Definition openswmm_infrastructure_impl.cpp:932
SWMM_ENGINE_API int swmm_inlet_get_design(SWMM_Engine engine, int idx, SWMM_InletDesign *out)
Read every field of an inlet design.
Definition openswmm_infrastructure_impl.cpp:597
SWMM_ENGINE_API const char * swmm_street_id(SWMM_Engine engine, int idx)
Get the string identifier of a street by index.
Definition openswmm_infrastructure_impl.cpp:407
SWMM_ENGINE_API int swmm_transect_get_modifiers(SWMM_Engine engine, int idx, double *x_factor, double *y_factor, double *length_factor)
Get the station, elevation, and meander modifiers for a transect.
Definition openswmm_infrastructure_impl.cpp:193
SWMM_ENGINE_API int swmm_transect_count(SWMM_Engine engine)
Get the total number of transects in the model.
Definition openswmm_infrastructure_impl.cpp:99
SWMM_InletCurveKind
Definition openswmm_infrastructure.h:534
@ SWMM_INLET_CURVE_NONE
Definition openswmm_infrastructure.h:535
@ SWMM_INLET_CURVE_RATING
Definition openswmm_infrastructure.h:537
@ SWMM_INLET_CURVE_DIVERSION
Definition openswmm_infrastructure.h:536
SWMM_ENGINE_API int swmm_lid_get_drainmat(SWMM_Engine engine, int idx, double *thick, double *void_frac, double *roughness)
Read the drainage-mat layer. Inverse of swmm_lid_set_drainmat. Any out-param may be null.
Definition openswmm_infrastructure_impl.cpp:1142
SWMM_ENGINE_API int swmm_lid_get_type(SWMM_Engine engine, int idx, int *type)
Read a LID control's type code. Inverse of the type argument to swmm_lid_add.
Definition openswmm_infrastructure_impl.cpp:1072
SWMM_ENGINE_API int swmm_street_count(SWMM_Engine engine)
Get the total number of street definitions in the model.
Definition openswmm_infrastructure_impl.cpp:392
SWMM_ENGINE_API int swmm_transect_get_station(SWMM_Engine engine, int idx, int station_idx, double *station, double *elevation)
Get a single station–elevation pair from a transect.
Definition openswmm_infrastructure_impl.cpp:234
SWMM_ENGINE_API int swmm_inlet_get_params(SWMM_Engine engine, int idx, double *length, double *width, char *grate_type, int grate_buflen, double *open_area, double *splash_veloc)
Read an inlet's geometric parameters. Inverse of swmm_inlet_set_params.
Definition openswmm_infrastructure_impl.cpp:539
SWMM_ENGINE_API int swmm_street_rename(SWMM_Engine engine, int idx, const char *new_id)
Rename a street cross-section in place.
Definition openswmm_infrastructure_impl.cpp:331
SWMM_ENGINE_API int swmm_lid_usage_count(SWMM_Engine engine)
Total number of LID usage rows across all subcatchments.
Definition openswmm_infrastructure_impl.cpp:1182
SWMM_ENGINE_API int swmm_inlet_usage_remove(SWMM_Engine engine, int usage_idx)
Remove a usage row. Removing the row of an inlet junction leaves the node flagged is_inlet; the model...
Definition openswmm_infrastructure_impl.cpp:845
SWMM_ENGINE_API int swmm_street_add(SWMM_Engine engine, const char *id)
Add a new street cross-section definition.
Definition openswmm_infrastructure_impl.cpp:309
SWMM_ENGINE_API int swmm_lid_usage_remove(SWMM_Engine engine, int usage_idx)
Remove one LID usage row by global index.
Definition openswmm_infrastructure_impl.cpp:1210
SWMM_ENGINE_API int swmm_lid_get_storage(SWMM_Engine engine, int idx, double *thick, double *void_frac, double *ksat)
Read the storage layer properties. Inverse of swmm_lid_set_storage. Any out-param may be null.
Definition openswmm_infrastructure_impl.cpp:1105
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.
Definition openswmm_infrastructure_impl.cpp:1157
SWMM_ENGINE_API int swmm_inlet_usage_find_link(SWMM_Engine engine, int link_idx)
Definition openswmm_infrastructure_impl.cpp:753
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.
Definition openswmm_infrastructure_impl.cpp:971
SWMM_ENGINE_API int swmm_inlet_usage_get(SWMM_Engine engine, int usage_idx, SWMM_InletUsage *out)
Read a usage row.
Definition openswmm_infrastructure_impl.cpp:763
SWMM_ENGINE_API int swmm_inlet_count(SWMM_Engine engine)
Get the total number of inlet definitions in the model.
Definition openswmm_infrastructure_impl.cpp:504
SWMM_ENGINE_API int swmm_inlet_usage_set(SWMM_Engine engine, const SWMM_InletUsage *usage, int *usage_idx)
Create or replace the usage row for a host.
Definition openswmm_infrastructure_impl.cpp:785
SWMM_ENGINE_API const char * swmm_lid_id(SWMM_Engine engine, int idx)
Get the string identifier of a LID control by index.
Definition openswmm_infrastructure_impl.cpp:1056
SWMM_ENGINE_API int swmm_inlet_set_design(SWMM_Engine engine, int idx, const SWMM_InletDesign *design)
Overwrite every field of an inlet design (type may change).
Definition openswmm_infrastructure_impl.cpp:632
SWMM_ENGINE_API int swmm_lid_add(SWMM_Engine engine, const char *id, int type)
Add a new LID (Low Impact Development) control.
Definition openswmm_infrastructure_impl.cpp:878
SWMM_ENGINE_API int swmm_lid_rename(SWMM_Engine engine, int idx, const char *new_id)
Rename an LID control in place.
Definition openswmm_infrastructure_impl.cpp:905
SWMM_ENGINE_API int swmm_street_get_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)
Read back the geometric parameters of a street cross-section.
Definition openswmm_infrastructure_impl.cpp:414
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.
Definition openswmm_infrastructure_impl.cpp:369
SWMM_InletType
Definition openswmm_infrastructure.h:504
@ SWMM_INLET_CUSTOM
Definition openswmm_infrastructure.h:511
@ SWMM_INLET_DROP_GRATE
Definition openswmm_infrastructure.h:509
@ SWMM_INLET_COMBO
Definition openswmm_infrastructure.h:507
@ SWMM_INLET_DROP_CURB
Definition openswmm_infrastructure.h:510
@ SWMM_INLET_SLOTTED
Definition openswmm_infrastructure.h:508
@ SWMM_INLET_CURB
Definition openswmm_infrastructure.h:506
@ SWMM_INLET_GRATE
Definition openswmm_infrastructure.h:505
SWMM_ENGINE_API int swmm_transect_get_comments(SWMM_Engine engine, int idx, char *buf, int buflen)
Get the free-form comments / description for a transect.
Definition openswmm_infrastructure_impl.cpp:214
SWMM_ENGINE_API int swmm_lid_get_drain(SWMM_Engine engine, int idx, double *coeff, double *expon, double *offset)
Read the underdrain properties. Inverse of swmm_lid_set_drain. Any out-param may be null.
Definition openswmm_infrastructure_impl.cpp:1116
SWMM_ENGINE_API int swmm_transect_get_station_count(SWMM_Engine engine, int idx)
Get the number of station–elevation points stored for a transect.
Definition openswmm_infrastructure_impl.cpp:227
SWMM_ENGINE_API int swmm_inlet_set_comment(SWMM_Engine engine, int idx, const char *text)
Definition openswmm_infrastructure_impl.cpp:736
SWMM_ENGINE_API int swmm_inlet_add(SWMM_Engine engine, const char *id, const char *type)
Add a new inlet definition.
Definition openswmm_infrastructure_impl.cpp:441
SWMM_ENGINE_API int swmm_transect_clear_stations(SWMM_Engine engine, int idx)
Remove all station–elevation pairs from a transect.
Definition openswmm_infrastructure_impl.cpp:249
SWMM_ENGINE_API int swmm_transect_add(SWMM_Engine engine, const char *id)
Add a new transect for irregular cross-sections.
Definition openswmm_infrastructure_impl.cpp:44
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.
Definition openswmm_infrastructure_impl.cpp:949
SWMM_ENGINE_API int swmm_lid_get_soil(SWMM_Engine engine, int idx, double *thick, double *porosity, double *fc, double *wp, double *ksat, double *kslope)
Read the soil layer properties. Inverse of swmm_lid_set_soil. Any out-param may be null.
Definition openswmm_infrastructure_impl.cpp:1091
SWMM_ENGINE_API const char * swmm_inlet_id(SWMM_Engine engine, int idx)
Get the string identifier of an inlet by index.
Definition openswmm_infrastructure_impl.cpp:519
SWMM_ENGINE_API int swmm_lid_usage_get(SWMM_Engine engine, int usage_idx, int *subcatch_idx, int *lid_idx, int *number, double *area, double *width, double *init_sat, double *from_imperv, int *to_perv, double *from_perv)
Read one LID usage row by global index.
Definition openswmm_infrastructure_impl.cpp:1188
SWMM_ENGINE_API int swmm_street_index(SWMM_Engine engine, const char *id)
Look up a street's zero-based index by its string identifier.
Definition openswmm_infrastructure_impl.cpp:397
SWMM_ENGINE_API int swmm_inlet_usage_count(SWMM_Engine engine)
Definition openswmm_infrastructure_impl.cpp:748
SWMM_ENGINE_API int swmm_inlet_get_type(SWMM_Engine engine, int idx, char *buf, int buflen)
Read an inlet's type string (the value passed to swmm_inlet_add).
Definition openswmm_infrastructure_impl.cpp:559
SWMM_ENGINE_API int swmm_transect_remove(SWMM_Engine engine, int idx)
Remove a transect by index.
Definition openswmm_infrastructure_impl.cpp:280
SWMM_ENGINE_API const char * swmm_transect_id(SWMM_Engine engine, int idx)
Get the string identifier of a transect by index.
Definition openswmm_infrastructure_impl.cpp:114
SWMM_ENGINE_API int swmm_lid_set_drainmat(SWMM_Engine engine, int idx, double thick, double void_frac, double roughness)
Set the drainage-mat layer properties for a LID control.
Definition openswmm_infrastructure_impl.cpp:1027
SWMM_ENGINE_API int swmm_inlet_rename(SWMM_Engine engine, int idx, const char *new_id)
Rename an inlet design in place.
Definition openswmm_infrastructure_impl.cpp:450
SWMM_InletPlacement
Definition openswmm_infrastructure.h:541
@ SWMM_INLET_ON_SAG
Definition openswmm_infrastructure.h:544
@ SWMM_INLET_ON_GRADE
Definition openswmm_infrastructure.h:543
@ SWMM_INLET_AUTOMATIC
Definition openswmm_infrastructure.h:542
Complete description of an inlet design. All dimensions are in the project's display units (ft or m; ...
Definition openswmm_infrastructure.h:551
char curve_id[64]
Definition openswmm_infrastructure.h:567
double slot_length
Definition openswmm_infrastructure.h:564
int type
Definition openswmm_infrastructure.h:552
int grate_type
Definition openswmm_infrastructure.h:556
int throat
Definition openswmm_infrastructure.h:562
int curve_kind
Definition openswmm_infrastructure.h:568
double grate_width
Definition openswmm_infrastructure.h:555
double curb_length
Definition openswmm_infrastructure.h:560
double curb_height
Definition openswmm_infrastructure.h:561
double splash_veloc
Definition openswmm_infrastructure.h:558
double grate_length
Definition openswmm_infrastructure.h:554
double open_area
Definition openswmm_infrastructure.h:557
double slot_width
Definition openswmm_infrastructure.h:565
Definition openswmm_infrastructure.h:613
int capture_node_idx
Definition openswmm_infrastructure.h:617
int host_kind
Definition openswmm_infrastructure.h:614
double local_depress
Definition openswmm_infrastructure.h:621
double pct_clogged
Definition openswmm_infrastructure.h:619
int placement
Definition openswmm_infrastructure.h:623
int num_inlets
Definition openswmm_infrastructure.h:618
int design_idx
Definition openswmm_infrastructure.h:616
double local_width
Definition openswmm_infrastructure.h:622
int host_idx
Definition openswmm_infrastructure.h:615
double flow_limit
Definition openswmm_infrastructure.h:620