OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
openswmm_links.h
Go to the documentation of this file.
1
16#ifndef OPENSWMM_LINKS_H
17#define OPENSWMM_LINKS_H
18
19#include "openswmm_engine.h"
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
39
69
70/* =========================================================================
71 * Identity
72 * ========================================================================= */
73
80
87SWMM_ENGINE_API int swmm_link_index(SWMM_Engine engine, const char* id);
88
95SWMM_ENGINE_API const char* swmm_link_id(SWMM_Engine engine, int idx);
96
97/* =========================================================================
98 * Creation (BUILDING state only)
99 * ========================================================================= */
100
113SWMM_ENGINE_API int swmm_link_add(SWMM_Engine engine, const char* id, int type);
114
115/* =========================================================================
116 * Connectivity (BUILDING or OPENED)
117 * ========================================================================= */
118
128 int from_node_idx, int to_node_idx);
129
137SWMM_ENGINE_API int swmm_link_get_from_node(SWMM_Engine engine, int idx, int* node_idx);
138
146SWMM_ENGINE_API int swmm_link_get_to_node(SWMM_Engine engine, int idx, int* node_idx);
147
148/* =========================================================================
149 * Geometry setters (BUILDING or OPENED)
150 * ========================================================================= */
151
159SWMM_ENGINE_API int swmm_link_set_length(SWMM_Engine engine, int idx, double length);
160
168SWMM_ENGINE_API int swmm_link_set_roughness(SWMM_Engine engine, int idx, double n);
169
177SWMM_ENGINE_API int swmm_link_set_offset_up(SWMM_Engine engine, int idx, double offset);
178
186SWMM_ENGINE_API int swmm_link_set_offset_dn(SWMM_Engine engine, int idx, double offset);
187
195SWMM_ENGINE_API int swmm_link_set_initial_flow(SWMM_Engine engine, int idx, double flow);
196
204SWMM_ENGINE_API int swmm_link_set_max_flow(SWMM_Engine engine, int idx, double flow);
205
206/* =========================================================================
207 * Cross-section (BUILDING or OPENED)
208 * ========================================================================= */
209
226 int shape, double geom1, double geom2,
227 double geom3, double geom4);
228
241 int* shape, double* geom1, double* geom2,
242 double* geom3, double* geom4);
243
244/* =========================================================================
245 * Geometry getters
246 * ========================================================================= */
247
255SWMM_ENGINE_API int swmm_link_get_type(SWMM_Engine engine, int idx, int* type);
256
264SWMM_ENGINE_API int swmm_link_get_length(SWMM_Engine engine, int idx, double* length);
265
273SWMM_ENGINE_API int swmm_link_get_roughness(SWMM_Engine engine, int idx, double* n);
274
275/* =========================================================================
276 * Hydraulic state getters/setters
277 * ========================================================================= */
278
286SWMM_ENGINE_API int swmm_link_get_flow(SWMM_Engine engine, int idx, double* flow);
287
295SWMM_ENGINE_API int swmm_link_set_flow(SWMM_Engine engine, int idx, double flow);
296
304SWMM_ENGINE_API int swmm_link_get_depth(SWMM_Engine engine, int idx, double* depth);
305
313SWMM_ENGINE_API int swmm_link_get_velocity(SWMM_Engine engine, int idx, double* velocity);
314
322SWMM_ENGINE_API int swmm_link_get_capacity(SWMM_Engine engine, int idx, double* capacity);
323
331SWMM_ENGINE_API int swmm_link_get_volume(SWMM_Engine engine, int idx, double* volume);
332
333/* --- Runtime forcing (RUNNING state only) --- */
334
341SWMM_ENGINE_API int swmm_link_set_control_setting(SWMM_Engine engine, int idx, double setting);
342
344SWMM_ENGINE_API int swmm_link_get_control_setting(SWMM_Engine engine, int idx, double* setting);
345
355SWMM_ENGINE_API int swmm_link_set_target_setting(SWMM_Engine engine, int idx, double setting);
356
358SWMM_ENGINE_API int swmm_link_get_target_setting(SWMM_Engine engine, int idx, double* setting);
359
367SWMM_ENGINE_API int swmm_link_set_closed(SWMM_Engine engine, int idx, int closed);
368
370SWMM_ENGINE_API int swmm_link_get_closed(SWMM_Engine engine, int idx, int* closed);
371
372/* =========================================================================
373 * Pump Link API
374 * ========================================================================= */
375
387SWMM_ENGINE_API int swmm_link_set_pump_curve(SWMM_Engine engine, int idx, int curve_idx);
388
396SWMM_ENGINE_API int swmm_link_get_pump_curve(SWMM_Engine engine, int idx, int* curve_idx);
397
406
414SWMM_ENGINE_API int swmm_link_get_pump_init_state(SWMM_Engine engine, int idx, int* on);
415
416/* =========================================================================
417 * Weir Link API
418 * ========================================================================= */
419
427SWMM_ENGINE_API int swmm_link_set_crest_height(SWMM_Engine engine, int idx, double h);
428
436SWMM_ENGINE_API int swmm_link_get_crest_height(SWMM_Engine engine, int idx, double* h);
437
445SWMM_ENGINE_API int swmm_link_set_discharge_coeff(SWMM_Engine engine, int idx, double cd);
446
454SWMM_ENGINE_API int swmm_link_get_discharge_coeff(SWMM_Engine engine, int idx, double* cd);
455
467SWMM_ENGINE_API int swmm_link_set_end_contractions(SWMM_Engine engine, int idx, double n);
468
476SWMM_ENGINE_API int swmm_link_get_end_contractions(SWMM_Engine engine, int idx, double* n);
477
478/* =========================================================================
479 * Conduit Loss Coefficients
480 * ========================================================================= */
481
491SWMM_ENGINE_API int swmm_link_set_loss_coeff(SWMM_Engine engine, int idx, double inlet, double outlet, double avg);
492
502SWMM_ENGINE_API int swmm_link_get_loss_coeff(SWMM_Engine engine, int idx, double* inlet, double* outlet, double* avg);
503
514SWMM_ENGINE_API int swmm_link_set_flap_gate(SWMM_Engine engine, int idx, int has_gate);
515
523SWMM_ENGINE_API int swmm_link_get_flap_gate(SWMM_Engine engine, int idx, int* has_gate);
524
532SWMM_ENGINE_API int swmm_link_set_seep_rate(SWMM_Engine engine, int idx, double rate);
533
541SWMM_ENGINE_API int swmm_link_get_seep_rate(SWMM_Engine engine, int idx, double* rate);
542
554SWMM_ENGINE_API int swmm_link_set_culvert_code(SWMM_Engine engine, int idx, int code);
555
563SWMM_ENGINE_API int swmm_link_get_culvert_code(SWMM_Engine engine, int idx, int* code);
564
572SWMM_ENGINE_API int swmm_link_set_barrels(SWMM_Engine engine, int idx, int n);
573
581SWMM_ENGINE_API int swmm_link_get_barrels(SWMM_Engine engine, int idx, int* n);
582
590SWMM_ENGINE_API int swmm_link_get_slope(SWMM_Engine engine, int idx, double* slope);
591
599SWMM_ENGINE_API int swmm_link_get_offset_up(SWMM_Engine engine, int idx, double* offset);
600
608SWMM_ENGINE_API int swmm_link_get_offset_dn(SWMM_Engine engine, int idx, double* offset);
609
610/* =========================================================================
611 * Link Statistics
612 * ========================================================================= */
613
621SWMM_ENGINE_API int swmm_link_get_stat_max_flow(SWMM_Engine engine, int idx, double* val);
622
630SWMM_ENGINE_API int swmm_link_get_stat_max_velocity(SWMM_Engine engine, int idx, double* val);
631
639SWMM_ENGINE_API int swmm_link_get_stat_max_filling(SWMM_Engine engine, int idx, double* val);
640
648SWMM_ENGINE_API int swmm_link_get_stat_vol_flow(SWMM_Engine engine, int idx, double* val);
649
657SWMM_ENGINE_API int swmm_link_get_stat_surcharge_time(SWMM_Engine engine, int idx, double* val);
658
659/* =========================================================================
660 * Water quality
661 * ========================================================================= */
662
671SWMM_ENGINE_API int swmm_link_get_quality(SWMM_Engine engine, int link_idx,
672 int pollutant_idx, double* conc);
673
674/* =========================================================================
675 * Bulk access
676 * ========================================================================= */
677
685SWMM_ENGINE_API int swmm_link_get_flows_bulk(SWMM_Engine engine, double* buf, int count);
686
694SWMM_ENGINE_API int swmm_link_get_depths_bulk(SWMM_Engine engine, double* buf, int count);
695
703SWMM_ENGINE_API int swmm_link_set_flows_bulk(SWMM_Engine engine, const double* buf, int count);
704
713SWMM_ENGINE_API int swmm_link_get_quality_bulk(SWMM_Engine engine, int pollutant_idx,
714 double* buf, int count);
715
716#ifdef __cplusplus
717} /* extern "C" */
718#endif
719
720#endif /* OPENSWMM_LINKS_H */
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