16#ifndef OPENSWMM_SUBCATCHMENTS_H
17#define OPENSWMM_SUBCATCHMENTS_H
169 double f0,
double fmin,
170 double decay,
double dry_time);
174 double suction,
double conductivity,
175 double initial_deficit);
326 double* f0,
double* fmin,
327 double* decay,
double* dry_time);
339 double* suction,
double* conductivity,
492 int pollutant_idx,
double* conc);
516 double* buf,
int count);
584 int subcatch_idx,
int pollutant_idx,
double* mass);
588 int subcatch_idx,
int pollutant_idx,
double mass);
683 char* buf,
int buflen);
#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_subcatch_set_infil_curve_number(SWMM_Engine engine, int idx, double cn)
Set Curve Number infiltration parameter.
Definition openswmm_subcatchments_impl.cpp:198
SWMM_ENGINE_API int swmm_subcatch_get_infil_curve_number(SWMM_Engine engine, int idx, double *cn)
Get the Curve Number infiltration parameter for a subcatchment.
Definition openswmm_subcatchments_impl.cpp:350
SWMM_ENGINE_API int swmm_subcatch_set_coverage(SWMM_Engine engine, int sc_idx, int lu_idx, double fraction)
Set the land use coverage fraction for a subcatchment.
Definition openswmm_subcatchments_impl.cpp:390
SWMM_ENGINE_API int swmm_subcatch_get_n_perv(SWMM_Engine engine, int idx, double *n)
Get Manning's n for the pervious area.
Definition openswmm_subcatchments_impl.cpp:262
SWMM_ENGINE_API int swmm_subcatch_add(SWMM_Engine engine, const char *id)
Add a new subcatchment to the model.
Definition openswmm_subcatchments_impl.cpp:47
SWMM_ENGINE_API int swmm_subcatch_set_n_imperv(SWMM_Engine engine, int idx, double n)
Set Manning's n for the impervious area.
Definition openswmm_subcatchments_impl.cpp:118
SWMM_ENGINE_API int swmm_subcatch_get_ids_bulk(SWMM_Engine engine, char *buf, int stride, int count)
Get subcatchment IDs for all subcatchments in a single call (stride-packed UTF-8).
Definition openswmm_subcatchments_impl.cpp:593
SWMM_ENGINE_API int swmm_subcatch_get_outlet(SWMM_Engine engine, int idx, int *node_idx)
Get the outlet node index for a subcatchment.
Definition openswmm_subcatchments_impl.cpp:230
SWMM_ENGINE_API int swmm_subcatch_get_quality(SWMM_Engine engine, int subcatch_idx, int pollutant_idx, double *conc)
Get the pollutant concentration in subcatchment runoff.
Definition openswmm_subcatchments_impl.cpp:500
SWMM_ENGINE_API int swmm_subcatch_rename(SWMM_Engine engine, int idx, const char *newId)
Rename the subcatchment at idx to newId. Returns SWMM_ERR_BADPARAM if newId is null,...
Definition openswmm_subcatchments_impl.cpp:645
SWMM_ENGINE_API int swmm_subcatch_set_outlet_subcatch(SWMM_Engine engine, int idx, int sc_idx)
Set a subcatchment's outlet to another subcatchment (cascading).
Definition openswmm_subcatchments_impl.cpp:294
SWMM_ENGINE_API int swmm_subcatch_get_n_imperv(SWMM_Engine engine, int idx, double *n)
Get Manning's n for the impervious area.
Definition openswmm_subcatchments_impl.cpp:254
SWMM_ENGINE_API int swmm_subcatch_set_imperv_pct(SWMM_Engine engine, int idx, double pct)
Set the percentage of impervious area.
Definition openswmm_subcatchments_impl.cpp:109
SWMM_ENGINE_API int swmm_subcatch_set_rainfall(SWMM_Engine engine, int idx, double rainfall)
Override rainfall on a subcatchment for the current timestep.
Definition openswmm_subcatchments_impl.cpp:487
SWMM_ENGINE_API int swmm_subcatch_set_infil_horton(SWMM_Engine engine, int idx, double f0, double fmin, double decay, double dry_time)
Set Horton infiltration parameters.
Definition openswmm_subcatchments_impl.cpp:167
SWMM_ENGINE_API int swmm_subcatch_set_gage(SWMM_Engine engine, int idx, int gage_idx)
Assign a rain gage to a subcatchment.
Definition openswmm_subcatchments_impl.cpp:154
SWMM_ENGINE_API int swmm_subcatch_get_stat_precip(SWMM_Engine engine, int idx, double *vol)
Get the total precipitation volume at a subcatchment.
Definition openswmm_subcatchments_impl.cpp:362
SWMM_ENGINE_API int swmm_subcatch_get_runoff(SWMM_Engine engine, int idx, double *runoff)
Get the current runoff rate from a subcatchment.
Definition openswmm_subcatchments_impl.cpp:434
SWMM_ENGINE_API const char * swmm_snowpack_id(SWMM_Engine engine, int idx)
Get the string identifier of a snowpack definition by index.
Definition openswmm_subcatchments_impl.cpp:749
SWMM_ENGINE_API int swmm_aquifer_index(SWMM_Engine engine, const char *id)
Look up an aquifer's zero-based index by its string identifier.
Definition openswmm_subcatchments_impl.cpp:689
SWMM_ENGINE_API int swmm_subcatch_get_slope(SWMM_Engine engine, int idx, double *s)
Get the average surface slope.
Definition openswmm_subcatchments_impl.cpp:246
SWMM_ENGINE_API int swmm_aquifer_add(SWMM_Engine engine, const char *id)
Add a new aquifer definition with default (zero) parameters.
Definition openswmm_subcatchments_impl.cpp:705
SWMM_ENGINE_API int swmm_subcatch_get_ds_imperv(SWMM_Engine engine, int idx, double *ds)
Get the depression storage depth for the impervious area.
Definition openswmm_subcatchments_impl.cpp:270
SWMM_ENGINE_API int swmm_subcatch_get_imperv_pct(SWMM_Engine engine, int idx, double *pct)
Get the percentage of impervious area.
Definition openswmm_subcatchments_impl.cpp:222
SWMM_ENGINE_API int swmm_subcatch_set_outlet(SWMM_Engine engine, int idx, int node_idx)
Set the outlet node that receives runoff from this subcatchment.
Definition openswmm_subcatchments_impl.cpp:73
SWMM_ENGINE_API int swmm_subcatch_get_infil_bulk(SWMM_Engine engine, double *buf, int count)
Get infiltration losses for all subcatchments in a single call.
Definition openswmm_subcatchments_impl.cpp:572
SWMM_ENGINE_API int swmm_subcatch_get_snow_depth_bulk(SWMM_Engine engine, double *buf, int count)
Get snow depths for all subcatchments in a single call.
Definition openswmm_subcatchments_impl.cpp:582
SWMM_ENGINE_API int swmm_subcatch_set_tag(SWMM_Engine engine, int idx, const char *tag)
Set or clear the subcatchment's tag. Null/empty clears. Persists across rename.
Definition openswmm_subcatchments_impl.cpp:669
SWMM_ENGINE_API int swmm_subcatch_set_ds_perv(SWMM_Engine engine, int idx, double ds)
Set the depression storage depth for the pervious area.
Definition openswmm_subcatchments_impl.cpp:145
SWMM_ENGINE_API int swmm_subcatch_get_infil_horton(SWMM_Engine engine, int idx, double *f0, double *fmin, double *decay, double *dry_time)
Get Horton infiltration parameters for a subcatchment.
Definition openswmm_subcatchments_impl.cpp:323
SWMM_ENGINE_API int swmm_subcatch_get_coverage(SWMM_Engine engine, int sc_idx, int lu_idx, double *fraction)
Get the land use coverage fraction for a subcatchment.
Definition openswmm_subcatchments_impl.cpp:411
SWMM_ENGINE_API int swmm_subcatch_get_tag(SWMM_Engine engine, int idx, char *buf, int buflen)
Read the subcatchment's tag into buf (NUL-terminated, truncated if too small).
Definition openswmm_subcatchments_impl.cpp:654
SWMM_ENGINE_API int swmm_subcatch_get_infil(SWMM_Engine engine, int idx, double *infil)
Get the current infiltration rate at a subcatchment.
Definition openswmm_subcatchments_impl.cpp:475
SWMM_ENGINE_API const char * swmm_aquifer_id(SWMM_Engine engine, int idx)
Get the string identifier of an aquifer definition by index.
Definition openswmm_subcatchments_impl.cpp:698
SWMM_ENGINE_API int swmm_subcatch_get_infil_model(SWMM_Engine engine, int idx, int *model)
Get the infiltration model type for a subcatchment.
Definition openswmm_subcatchments_impl.cpp:315
SWMM_ENGINE_API int swmm_subcatch_get_infil_green_ampt(SWMM_Engine engine, int idx, double *suction, double *conductivity, double *deficit)
Get Green–Ampt infiltration parameters for a subcatchment.
Definition openswmm_subcatchments_impl.cpp:337
SWMM_ENGINE_API int swmm_subcatch_get_evap_bulk(SWMM_Engine engine, double *buf, int count)
Get evaporation losses for all subcatchments in a single call.
Definition openswmm_subcatchments_impl.cpp:562
SWMM_ENGINE_API int swmm_subcatch_get_stat_runoff_vol(SWMM_Engine engine, int idx, double *vol)
Get the total runoff volume from a subcatchment.
Definition openswmm_subcatchments_impl.cpp:370
SWMM_ENGINE_API int swmm_subcatch_get_stat_max_runoff(SWMM_Engine engine, int idx, double *rate)
Get the maximum runoff rate from a subcatchment.
Definition openswmm_subcatchments_impl.cpp:378
SWMM_ENGINE_API int swmm_snowpack_count(SWMM_Engine engine)
Get the total number of snowpack definitions in the model.
Definition openswmm_subcatchments_impl.cpp:735
SWMM_ENGINE_API const char * swmm_subcatch_id(SWMM_Engine engine, int idx)
Get the string identifier of a subcatchment by index.
Definition openswmm_subcatchments_impl.cpp:36
SWMM_ENGINE_API int swmm_subcatch_set_area(SWMM_Engine engine, int idx, double area)
Set the subcatchment area.
Definition openswmm_subcatchments_impl.cpp:82
SWMM_ENGINE_API int swmm_aquifer_count(SWMM_Engine engine)
Get the total number of aquifer definitions in the model.
Definition openswmm_subcatchments_impl.cpp:684
SWMM_ENGINE_API int swmm_snowpack_add(SWMM_Engine engine, const char *id)
Add a new snowpack definition with default (zero) parameters.
Definition openswmm_subcatchments_impl.cpp:756
SWMM_ENGINE_API int swmm_subcatch_get_ponded_quality(SWMM_Engine engine, int subcatch_idx, int pollutant_idx, double *mass)
Get ponded quality mass for a subcatchment-pollutant pair.
Definition openswmm_subcatchments_impl.cpp:617
SWMM_ENGINE_API int swmm_subcatch_get_quality_bulk(SWMM_Engine engine, int pollutant_idx, double *buf, int count)
Get pollutant concentrations for all subcatchments for one pollutant.
Definition openswmm_subcatchments_impl.cpp:526
SWMM_ENGINE_API int swmm_subcatch_get_groundwater(SWMM_Engine engine, int idx, double *gw_flow)
Get the current groundwater flow from a subcatchment.
Definition openswmm_subcatchments_impl.cpp:442
SWMM_ENGINE_API int swmm_subcatch_get_area(SWMM_Engine engine, int idx, double *area)
Get the subcatchment area.
Definition openswmm_subcatchments_impl.cpp:214
SWMM_ENGINE_API int swmm_subcatch_get_evap(SWMM_Engine engine, int idx, double *evap)
Get the current evaporation rate at a subcatchment.
Definition openswmm_subcatchments_impl.cpp:467
SWMM_ENGINE_API int swmm_subcatch_set_infil_green_ampt(SWMM_Engine engine, int idx, double suction, double conductivity, double initial_deficit)
Set Green-Ampt infiltration parameters.
Definition openswmm_subcatchments_impl.cpp:183
SWMM_ENGINE_API int swmm_subcatch_set_width(SWMM_Engine engine, int idx, double width)
Set the characteristic overland flow width.
Definition openswmm_subcatchments_impl.cpp:91
SWMM_ENGINE_API int swmm_subcatch_get_ds_perv(SWMM_Engine engine, int idx, double *ds)
Get the depression storage depth for the pervious area.
Definition openswmm_subcatchments_impl.cpp:278
SWMM_ENGINE_API int swmm_subcatch_get_runoff_bulk(SWMM_Engine engine, double *buf, int count)
Get runoff rates for all subcatchments in a single call.
Definition openswmm_subcatchments_impl.cpp:517
SWMM_ENGINE_API int swmm_subcatch_set_ds_imperv(SWMM_Engine engine, int idx, double ds)
Set the depression storage depth for the impervious area.
Definition openswmm_subcatchments_impl.cpp:136
SWMM_ENGINE_API int swmm_subcatch_get_rainfall_bulk(SWMM_Engine engine, double *buf, int count)
Get rainfall rates for all subcatchments in a single call.
Definition openswmm_subcatchments_impl.cpp:552
SWMM_ENGINE_API int swmm_subcatch_get_outlet_subcatch(SWMM_Engine engine, int idx, int *sc_idx)
Get the downstream subcatchment index (for cascading outlets).
Definition openswmm_subcatchments_impl.cpp:303
SWMM_ENGINE_API int swmm_subcatch_set_n_perv(SWMM_Engine engine, int idx, double n)
Set Manning's n for the pervious area.
Definition openswmm_subcatchments_impl.cpp:127
SWMM_ENGINE_API int swmm_subcatch_get_width(SWMM_Engine engine, int idx, double *w)
Get the characteristic overland flow width.
Definition openswmm_subcatchments_impl.cpp:238
SWMM_ENGINE_API int swmm_subcatch_count(SWMM_Engine engine)
Get the total number of subcatchments in the model.
Definition openswmm_subcatchments_impl.cpp:26
SWMM_ENGINE_API int swmm_subcatch_get_rainfall(SWMM_Engine engine, int idx, double *rainfall)
Get the current rainfall intensity at a subcatchment.
Definition openswmm_subcatchments_impl.cpp:450
SWMM_ENGINE_API int swmm_subcatch_get_gage(SWMM_Engine engine, int idx, int *gage_idx)
Get the rain gage index assigned to a subcatchment.
Definition openswmm_subcatchments_impl.cpp:286
SWMM_ENGINE_API int swmm_subcatch_set_slope(SWMM_Engine engine, int idx, double slope)
Set the average surface slope.
Definition openswmm_subcatchments_impl.cpp:100
SWMM_ENGINE_API int swmm_snowpack_index(SWMM_Engine engine, const char *id)
Look up a snowpack's zero-based index by its string identifier.
Definition openswmm_subcatchments_impl.cpp:740
SWMM_ENGINE_API int swmm_subcatch_get_snow_depth(SWMM_Engine engine, int idx, double *depth)
Get the current snow depth on a subcatchment.
Definition openswmm_subcatchments_impl.cpp:458
SWMM_ENGINE_API int swmm_subcatch_index(SWMM_Engine engine, const char *id)
Look up a subcatchment's zero-based index by its string identifier.
Definition openswmm_subcatchments_impl.cpp:31
SWMM_ENGINE_API int swmm_subcatch_set_ponded_quality(SWMM_Engine engine, int subcatch_idx, int pollutant_idx, double mass)
Set ponded quality mass for a subcatchment-pollutant pair.
Definition openswmm_subcatchments_impl.cpp:631