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
Go to the documentation of this file.
1
16#ifndef OPENSWMM_INFRASTRUCTURE_H
17#define OPENSWMM_INFRASTRUCTURE_H
18
19#include "openswmm_engine.h"
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25/* =========================================================================
26 * Transects
27 * ========================================================================= */
28
35SWMM_ENGINE_API int swmm_transect_add(SWMM_Engine engine, const char* id);
36
46SWMM_ENGINE_API int swmm_transect_set_roughness(SWMM_Engine engine, int idx, double n_left, double n_right, double n_channel);
47
60SWMM_ENGINE_API int swmm_transect_add_station(SWMM_Engine engine, int idx, double station, double elevation);
61
68
75SWMM_ENGINE_API int swmm_transect_index(SWMM_Engine engine, const char* id);
76
83SWMM_ENGINE_API const char* swmm_transect_id(SWMM_Engine engine, int idx);
84
85/* -------------------------------------------------------------------------
86 * Per-field getters / setters (DA-ENG-09 + BQ-TR-02)
87 *
88 * GUI editors (Slice BQ Phase 6.7.4 TransectEditor) need round-trip access
89 * to every transect field; the legacy 3-function surface (add / set_roughness
90 * / add_station) only covers a fraction. The functions below close that gap.
91 * ------------------------------------------------------------------------- */
92
103 double* n_left, double* n_right, double* n_channel);
104
118 double x_left, double x_right);
119
129 double* x_left, double* x_right);
130
148 double x_left, double x_right);
149
159 double* x_left, double* x_right);
160
181 double x_factor, double y_factor, double length_factor);
182
193 double* x_factor, double* y_factor, double* length_factor);
194
202SWMM_ENGINE_API int swmm_transect_set_comments(SWMM_Engine engine, int idx, const char* text);
203
217SWMM_ENGINE_API int swmm_transect_get_comments(SWMM_Engine engine, int idx, char* buf, int buflen);
218
226
236SWMM_ENGINE_API int swmm_transect_get_station(SWMM_Engine engine, int idx, int station_idx,
237 double* station, double* elevation);
238
250
262SWMM_ENGINE_API int swmm_transect_rename(SWMM_Engine engine, int idx, const char* new_id);
263
277
278/* =========================================================================
279 * Streets
280 * ========================================================================= */
281
288SWMM_ENGINE_API int swmm_street_add(SWMM_Engine engine, const char* id);
289
308 double t_crown, double h_curb, double sx, double n_road,
309 double gutter_depres, double gutter_width, int sides,
310 double back_width, double back_slope, double back_n);
311
318
325SWMM_ENGINE_API int swmm_street_index(SWMM_Engine engine, const char* id);
326
333SWMM_ENGINE_API const char* swmm_street_id(SWMM_Engine engine, int idx);
334
335/* =========================================================================
336 * Inlets
337 * ========================================================================= */
338
346SWMM_ENGINE_API int swmm_inlet_add(SWMM_Engine engine, const char* id, const char* type);
347
359SWMM_ENGINE_API int swmm_inlet_set_params(SWMM_Engine engine, int idx, double length, double width,
360 const char* grate_type, double open_area, double splash_veloc);
361
368
375SWMM_ENGINE_API int swmm_inlet_index(SWMM_Engine engine, const char* id);
376
383SWMM_ENGINE_API const char* swmm_inlet_id(SWMM_Engine engine, int idx);
384
385/* =========================================================================
386 * LID controls
387 * ========================================================================= */
388
401SWMM_ENGINE_API int swmm_lid_add(SWMM_Engine engine, const char* id, int type);
402
412SWMM_ENGINE_API int swmm_lid_set_surface(SWMM_Engine engine, int idx, double storage, double roughness, double slope);
413
426SWMM_ENGINE_API int swmm_lid_set_soil(SWMM_Engine engine, int idx, double thick, double porosity, double fc, double wp, double ksat, double kslope);
427
437SWMM_ENGINE_API int swmm_lid_set_storage(SWMM_Engine engine, int idx, double thick, double void_frac, double ksat);
438
448SWMM_ENGINE_API int swmm_lid_set_drain(SWMM_Engine engine, int idx, double coeff, double expon, double offset);
449
456
463SWMM_ENGINE_API int swmm_lid_index(SWMM_Engine engine, const char* id);
464
471SWMM_ENGINE_API const char* swmm_lid_id(SWMM_Engine engine, int idx);
472
473/* =========================================================================
474 * LID usage (assign LID to subcatchment)
475 * ========================================================================= */
476
493SWMM_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);
494
495#ifdef __cplusplus
496} /* extern "C" */
497#endif
498
499#endif /* OPENSWMM_INFRASTRUCTURE_H */
#define SWMM_ENGINE_API
Definition openswmm_2d.h:37
void * SWMM_Engine
Opaque handle to an OpenSWMM Engine instance.
Definition openswmm_callbacks.h:35
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:119
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:61
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:96
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:398
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:76
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:230
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:487
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:482
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:475
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:108
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:152
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:141
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:50
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:130
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:377
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:176
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:454
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:348
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:164
SWMM_ENGINE_API int swmm_transect_count(SWMM_Engine engine)
Get the total number of transects in the model.
Definition openswmm_infrastructure_impl.cpp:71
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:334
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:205
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:289
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:507
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:468
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:393
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:496
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:430
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:311
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:185
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:198
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:359
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:220
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:25
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:461
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:407
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:339
SWMM_ENGINE_API int swmm_transect_remove(SWMM_Engine engine, int idx)
Remove a transect by index.
Definition openswmm_infrastructure_impl.cpp:260
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:85