16#ifndef OPENSWMM_LINKS_H
17#define OPENSWMM_LINKS_H
128 int from_node_idx,
int to_node_idx);
226 int shape,
double geom1,
double geom2,
227 double geom3,
double geom4);
241 int* shape,
double* geom1,
double* geom2,
242 double* geom3,
double* geom4);
672 int pollutant_idx,
double* conc);
714 double* buf,
int count);
void * SWMM_Engine
Opaque handle to an OpenSWMM Engine instance.
Definition openswmm_callbacks.h:35
OpenSWMM Engine — primary transparent C API (master header).
#define SWMM_ENGINE_API
Definition openswmm_engine.h:87
SWMM_ENGINE_API int swmm_link_set_seep_rate(SWMM_Engine engine, int idx, double rate)
Set the seepage loss rate for a conduit.
Definition openswmm_links_impl.cpp:586
SWMM_ENGINE_API int swmm_link_set_closed(SWMM_Engine engine, int idx, int closed)
Open or close a link.
Definition openswmm_links_impl.cpp:367
SWMM_ENGINE_API int swmm_link_get_stat_max_filling(SWMM_Engine engine, int idx, double *val)
Get the maximum depth/full-depth ratio (filling) in a link.
Definition openswmm_links_impl.cpp:681
SWMM_ENGINE_API int swmm_link_set_end_contractions(SWMM_Engine engine, int idx, double n)
Set the number of end contractions for a weir link.
Definition openswmm_links_impl.cpp:525
SWMM_ENGINE_API int swmm_link_set_roughness(SWMM_Engine engine, int idx, double n)
Set the Manning's roughness coefficient.
Definition openswmm_links_impl.cpp:112
SWMM_ENGINE_API int swmm_link_set_xsect(SWMM_Engine engine, int idx, int shape, double geom1, double geom2, double geom3, double geom4)
Set the cross-section geometry for a conduit link.
Definition openswmm_links_impl.cpp:161
SWMM_ENGINE_API int swmm_link_get_velocity(SWMM_Engine engine, int idx, double *velocity)
Get the current flow velocity in a link.
Definition openswmm_links_impl.cpp:289
SWMM_ENGINE_API int swmm_link_get_type(SWMM_Engine engine, int idx, int *type)
Get the type of a link.
Definition openswmm_links_impl.cpp:236
SWMM_ENGINE_API int swmm_link_set_culvert_code(SWMM_Engine engine, int idx, int code)
Set the FHWA culvert inlet geometry code.
Definition openswmm_links_impl.cpp:603
SWMM_ENGINE_API int swmm_link_get_crest_height(SWMM_Engine engine, int idx, double *h)
Get the crest height for a weir link.
Definition openswmm_links_impl.cpp:500
SWMM_ENGINE_API int swmm_link_set_length(SWMM_Engine engine, int idx, double length)
Set the conduit length.
Definition openswmm_links_impl.cpp:103
SWMM_ENGINE_API int swmm_link_get_stat_max_velocity(SWMM_Engine engine, int idx, double *val)
Get the maximum velocity recorded in a link.
Definition openswmm_links_impl.cpp:673
SWMM_ENGINE_API int swmm_link_get_roughness(SWMM_Engine engine, int idx, double *n)
Get the Manning's roughness coefficient.
Definition openswmm_links_impl.cpp:252
SWMM_ENGINE_API int swmm_link_set_pump_curve(SWMM_Engine engine, int idx, int curve_idx)
Assign a pump curve to a pump link.
Definition openswmm_links_impl.cpp:453
SWMM_ENGINE_API int swmm_link_get_length(SWMM_Engine engine, int idx, double *length)
Get the conduit length.
Definition openswmm_links_impl.cpp:244
SWMM_ENGINE_API int swmm_link_get_slope(SWMM_Engine engine, int idx, double *slope)
Get the computed slope of a conduit.
Definition openswmm_links_impl.cpp:637
SWMM_ENGINE_API int swmm_link_set_control_setting(SWMM_Engine engine, int idx, double setting)
Override control/pump setting on a link.
Definition openswmm_links_impl.cpp:333
SWMM_ENGINE_API int swmm_link_get_from_node(SWMM_Engine engine, int idx, int *node_idx)
Get the upstream (inlet) node index of a link.
Definition openswmm_links_impl.cpp:83
SWMM_ENGINE_API int swmm_link_get_stat_surcharge_time(SWMM_Engine engine, int idx, double *val)
Get the total surcharge duration for a link.
Definition openswmm_links_impl.cpp:697
SWMM_ENGINE_API int swmm_link_get_loss_coeff(SWMM_Engine engine, int idx, double *inlet, double *outlet, double *avg)
Get entry, exit, and average loss coefficients for a conduit.
Definition openswmm_links_impl.cpp:558
SWMM_ENGINE_API int swmm_link_set_nodes(SWMM_Engine engine, int idx, int from_node_idx, int to_node_idx)
Set the upstream and downstream nodes of a link.
Definition openswmm_links_impl.cpp:72
SWMM_ENGINE_API int swmm_link_set_target_setting(SWMM_Engine engine, int idx, double setting)
Set the target setting for a link (for gradual transitions).
Definition openswmm_links_impl.cpp:350
SWMM_ENGINE_API int swmm_link_set_initial_flow(SWMM_Engine engine, int idx, double flow)
Set the initial flow in a link at simulation start.
Definition openswmm_links_impl.cpp:139
SWMM_ENGINE_API int swmm_link_get_culvert_code(SWMM_Engine engine, int idx, int *code)
Get the FHWA culvert inlet geometry code.
Definition openswmm_links_impl.cpp:612
SWMM_ENGINE_API int swmm_link_get_quality(SWMM_Engine engine, int link_idx, int pollutant_idx, double *conc)
Get the pollutant concentration in a link.
Definition openswmm_links_impl.cpp:388
SWMM_ENGINE_API int swmm_link_count(SWMM_Engine engine)
Get the total number of links in the model.
Definition openswmm_links_impl.cpp:28
SWMM_ENGINE_API int swmm_link_get_depth(SWMM_Engine engine, int idx, double *depth)
Get the current water depth in a link.
Definition openswmm_links_impl.cpp:281
SWMM_ENGINE_API int swmm_link_get_flow(SWMM_Engine engine, int idx, double *flow)
Get the current flow rate in a link.
Definition openswmm_links_impl.cpp:264
SWMM_ENGINE_API int swmm_link_get_discharge_coeff(SWMM_Engine engine, int idx, double *cd)
Get the discharge coefficient for a weir link.
Definition openswmm_links_impl.cpp:517
SWMM_ENGINE_API int swmm_link_get_pump_curve(SWMM_Engine engine, int idx, int *curve_idx)
Get the pump curve index assigned to a pump link.
Definition openswmm_links_impl.cpp:462
SWMM_ENGINE_API int swmm_link_get_capacity(SWMM_Engine engine, int idx, double *capacity)
Get the current flow capacity utilization (depth / full depth).
Definition openswmm_links_impl.cpp:308
SWMM_ENGINE_API int swmm_link_set_flows_bulk(SWMM_Engine engine, const double *buf, int count)
Set flow rates for all links in a single call (runtime override).
Definition openswmm_links_impl.cpp:423
SWMM_ENGINE_API int swmm_link_index(SWMM_Engine engine, const char *id)
Look up a link's zero-based index by its string identifier.
Definition openswmm_links_impl.cpp:33
SWMM_XSectShape
Cross-section shape codes for conduit links.
Definition openswmm_links.h:47
@ SWMM_XSECT_CATENARY
Definition openswmm_links.h:65
@ SWMM_XSECT_SEMIELLIPTICAL
Definition openswmm_links.h:66
@ SWMM_XSECT_RECT_TRIANG
Definition openswmm_links.h:56
@ SWMM_XSECT_POWER
Definition openswmm_links.h:55
@ SWMM_XSECT_RECT_ROUND
Definition openswmm_links.h:57
@ SWMM_XSECT_RECT_CLOSED
Definition openswmm_links.h:50
@ SWMM_XSECT_TRAPEZOIDAL
Definition openswmm_links.h:52
@ SWMM_XSECT_RECT_OPEN
Definition openswmm_links.h:51
@ SWMM_XSECT_FILLED_CIRCULAR
Definition openswmm_links.h:49
@ SWMM_XSECT_HORSESHOE
Definition openswmm_links.h:63
@ SWMM_XSECT_TRIANGULAR
Definition openswmm_links.h:53
@ SWMM_XSECT_PARABOLIC
Definition openswmm_links.h:54
@ SWMM_XSECT_VERT_ELLIPSE
Definition openswmm_links.h:60
@ SWMM_XSECT_GOTHIC
Definition openswmm_links.h:64
@ SWMM_XSECT_MOD_BASKET
Definition openswmm_links.h:58
@ SWMM_XSECT_CIRCULAR
Definition openswmm_links.h:48
@ SWMM_XSECT_ARCH
Definition openswmm_links.h:61
@ SWMM_XSECT_HORIZ_ELLIPSE
Definition openswmm_links.h:59
@ SWMM_XSECT_EGGSHAPED
Definition openswmm_links.h:62
@ SWMM_XSECT_IRREGULAR
Definition openswmm_links.h:67
SWMM_ENGINE_API int swmm_link_set_offset_up(SWMM_Engine engine, int idx, double offset)
Set the upstream (inlet) offset above the upstream node invert.
Definition openswmm_links_impl.cpp:121
SWMM_ENGINE_API int swmm_link_add(SWMM_Engine engine, const char *id, int type)
Add a new link to the model.
Definition openswmm_links_impl.cpp:49
SWMM_ENGINE_API int swmm_link_set_max_flow(SWMM_Engine engine, int idx, double flow)
Set the maximum allowable flow in a link.
Definition openswmm_links_impl.cpp:148
SWMM_ENGINE_API int swmm_link_get_offset_dn(SWMM_Engine engine, int idx, double *offset)
Get the downstream (outlet) offset.
Definition openswmm_links_impl.cpp:653
SWMM_ENGINE_API int swmm_link_get_stat_max_flow(SWMM_Engine engine, int idx, double *val)
Get the maximum flow recorded in a link during the simulation.
Definition openswmm_links_impl.cpp:665
SWMM_ENGINE_API int swmm_link_get_pump_init_state(SWMM_Engine engine, int idx, int *on)
Get the initial on/off state of a pump.
Definition openswmm_links_impl.cpp:479
SWMM_ENGINE_API int swmm_link_set_loss_coeff(SWMM_Engine engine, int idx, double inlet, double outlet, double avg)
Set entry, exit, and average loss coefficients for a conduit.
Definition openswmm_links_impl.cpp:546
SWMM_ENGINE_API int swmm_link_get_end_contractions(SWMM_Engine engine, int idx, double *n)
Get the number of end contractions for a weir link.
Definition openswmm_links_impl.cpp:534
SWMM_ENGINE_API int swmm_link_get_barrels(SWMM_Engine engine, int idx, int *n)
Get the number of parallel barrels in a conduit.
Definition openswmm_links_impl.cpp:629
SWMM_ENGINE_API int swmm_link_get_volume(SWMM_Engine engine, int idx, double *volume)
Get the current water volume stored in a link.
Definition openswmm_links_impl.cpp:321
SWMM_ENGINE_API int swmm_link_set_pump_init_state(SWMM_Engine engine, int idx, int on)
Set the initial on/off state of a pump at simulation start.
Definition openswmm_links_impl.cpp:470
SWMM_ENGINE_API int swmm_link_set_offset_dn(SWMM_Engine engine, int idx, double offset)
Set the downstream (outlet) offset above the downstream node invert.
Definition openswmm_links_impl.cpp:130
SWMM_ENGINE_API int swmm_link_get_to_node(SWMM_Engine engine, int idx, int *node_idx)
Get the downstream (outlet) node index of a link.
Definition openswmm_links_impl.cpp:91
SWMM_ENGINE_API int swmm_link_set_discharge_coeff(SWMM_Engine engine, int idx, double cd)
Set the discharge coefficient for a weir link.
Definition openswmm_links_impl.cpp:508
SWMM_ENGINE_API int swmm_link_get_offset_up(SWMM_Engine engine, int idx, double *offset)
Get the upstream (inlet) offset.
Definition openswmm_links_impl.cpp:645
SWMM_ENGINE_API const char * swmm_link_id(SWMM_Engine engine, int idx)
Get the string identifier of a link by index.
Definition openswmm_links_impl.cpp:38
SWMM_ENGINE_API int swmm_link_get_stat_vol_flow(SWMM_Engine engine, int idx, double *val)
Get the total volume conveyed through a link.
Definition openswmm_links_impl.cpp:689
SWMM_LinkType
Link type classification.
Definition openswmm_links.h:32
@ SWMM_LINK_PUMP
Definition openswmm_links.h:34
@ SWMM_LINK_ORIFICE
Definition openswmm_links.h:35
@ SWMM_LINK_CONDUIT
Definition openswmm_links.h:33
@ SWMM_LINK_OUTLET
Definition openswmm_links.h:37
@ SWMM_LINK_WEIR
Definition openswmm_links.h:36
SWMM_ENGINE_API int swmm_link_get_flows_bulk(SWMM_Engine engine, double *buf, int count)
Get flow rates for all links in a single call.
Definition openswmm_links_impl.cpp:405
SWMM_ENGINE_API int swmm_link_get_xsect(SWMM_Engine engine, int idx, int *shape, double *geom1, double *geom2, double *geom3, double *geom4)
Get the cross-section geometry for a conduit link.
Definition openswmm_links_impl.cpp:217
SWMM_ENGINE_API int swmm_link_get_quality_bulk(SWMM_Engine engine, int pollutant_idx, double *buf, int count)
Get pollutant concentrations for all links for one pollutant.
Definition openswmm_links_impl.cpp:433
SWMM_ENGINE_API int swmm_link_get_depths_bulk(SWMM_Engine engine, double *buf, int count)
Get water depths for all links in a single call.
Definition openswmm_links_impl.cpp:414
SWMM_ENGINE_API int swmm_link_get_seep_rate(SWMM_Engine engine, int idx, double *rate)
Get the seepage loss rate for a conduit.
Definition openswmm_links_impl.cpp:595
SWMM_ENGINE_API int swmm_link_set_crest_height(SWMM_Engine engine, int idx, double h)
Set the crest height for a weir link.
Definition openswmm_links_impl.cpp:491
SWMM_ENGINE_API int swmm_link_get_closed(SWMM_Engine engine, int idx, int *closed)
Get link open/closed status. Returns 1 if closed, 0 if open.
Definition openswmm_links_impl.cpp:376
SWMM_ENGINE_API int swmm_link_set_barrels(SWMM_Engine engine, int idx, int n)
Set the number of parallel barrels in a conduit.
Definition openswmm_links_impl.cpp:620
SWMM_ENGINE_API int swmm_link_get_control_setting(SWMM_Engine engine, int idx, double *setting)
Get current control setting.
Definition openswmm_links_impl.cpp:342
SWMM_ENGINE_API int swmm_link_get_target_setting(SWMM_Engine engine, int idx, double *setting)
Get the current target setting.
Definition openswmm_links_impl.cpp:359
SWMM_ENGINE_API int swmm_link_set_flow(SWMM_Engine engine, int idx, double flow)
Set the flow rate in a link (runtime override).
Definition openswmm_links_impl.cpp:272
SWMM_ENGINE_API int swmm_link_set_flap_gate(SWMM_Engine engine, int idx, int has_gate)
Set whether a flap gate exists on a link.
Definition openswmm_links_impl.cpp:569
SWMM_ENGINE_API int swmm_link_get_flap_gate(SWMM_Engine engine, int idx, int *has_gate)
Get whether a flap gate exists on a link.
Definition openswmm_links_impl.cpp:578