![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
C API implementation — subcatchment identity, creation, properties, state, bulk. More...
#include "openswmm_api_common.hpp"#include "StringCase.hpp"#include "../hydrology/Groundwater.hpp"#include "../math/MathExpr.hpp"#include "../../../include/openswmm/engine/openswmm_subcatchments.h"#include <algorithm>#include <array>#include <cstring>#include <string>#include <vector>Functions | |
| SWMM_ENGINE_API int | swmm_subcatch_count (SWMM_Engine engine) |
| Get the total number of subcatchments in the model. | |
| 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. | |
| SWMM_ENGINE_API const char * | swmm_subcatch_id (SWMM_Engine engine, int idx) |
| Get the string identifier of a subcatchment by index. | |
| SWMM_ENGINE_API int | swmm_subcatch_add (SWMM_Engine engine, const char *id) |
| Add a new subcatchment to the model. | |
| 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. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_area (SWMM_Engine engine, int idx, double area) |
| Set the subcatchment area. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_width (SWMM_Engine engine, int idx, double width) |
| Set the characteristic overland flow width. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_slope (SWMM_Engine engine, int idx, double slope) |
| Set the average surface slope. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_imperv_pct (SWMM_Engine engine, int idx, double pct) |
| Set the percentage of impervious area. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_zero_imperv_pct (SWMM_Engine engine, int idx, double pct) |
| Set the percentage of the impervious area having no depression storage. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_n_imperv (SWMM_Engine engine, int idx, double n) |
| Set Manning's n for the impervious area. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_n_perv (SWMM_Engine engine, int idx, double n) |
| Set Manning's n for the pervious area. | |
| 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. | |
| 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. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_gage (SWMM_Engine engine, int idx, int gage_idx) |
| Assign a rain gage to a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_infil_horton (SWMM_Engine engine, int idx, double f0, double fmin, double decay, double dry_time) |
| Select ordinary Horton infiltration and store its input parameters. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_infil_green_ampt (SWMM_Engine engine, int idx, double suction, double conductivity, double initial_deficit) |
| Select ordinary Green-Ampt infiltration and store input parameters. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_infil_curve_number (SWMM_Engine engine, int idx, double cn, double drying_time) |
| Set Curve Number infiltration parameters. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_infil_model (SWMM_Engine engine, int idx, int model) |
| Set ONLY the infiltration model code for a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_area (SWMM_Engine engine, int idx, double *area) |
| Get the subcatchment area. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_imperv_pct (SWMM_Engine engine, int idx, double *pct) |
| Get the percentage of impervious area. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_zero_imperv_pct (SWMM_Engine engine, int idx, double *pct) |
| Get the percentage of the impervious area having no depression storage. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_outlet (SWMM_Engine engine, int idx, int *node_idx) |
| Get the outlet node index for a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_width (SWMM_Engine engine, int idx, double *w) |
| Get the characteristic overland flow width. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_slope (SWMM_Engine engine, int idx, double *s) |
| Get the average surface slope. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_n_imperv (SWMM_Engine engine, int idx, double *n) |
| Get Manning's n for the impervious area. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_n_perv (SWMM_Engine engine, int idx, double *n) |
| Get Manning's n for the pervious area. | |
| 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. | |
| 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. | |
| 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. | |
| 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). | |
| 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). | |
| SWMM_ENGINE_API int | swmm_subcatch_get_infil_model (SWMM_Engine engine, int idx, int *model) |
| Get the infiltration model type for a subcatchment. | |
| 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. | |
| 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. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_infil_curve_number (SWMM_Engine engine, int idx, double *cn, double *drying_time) |
| Get the Curve Number infiltration parameters for a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_stat_precip (SWMM_Engine engine, int idx, double *vol) |
| Get the total precipitation volume at a subcatchment. | |
| 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. | |
| 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. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_coverage (SWMM_Engine engine, int sc_idx, int lu_idx, double fraction) |
| Set the land use coverage percent for a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_coverage (SWMM_Engine engine, int sc_idx, int lu_idx, double *fraction) |
| Get the land use coverage percent for a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_coverages (SWMM_Engine engine, int sc_idx, double *out, int n) |
| Get all land use coverage percents for a subcatchment in one call. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_initial_loading (SWMM_Engine engine, int sc_idx, int pollut_idx, double buildup) |
| Set the initial pollutant buildup on a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_initial_loading (SWMM_Engine engine, int sc_idx, int pollut_idx, double *buildup) |
| Get the initial pollutant buildup on a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_runoff (SWMM_Engine engine, int idx, double *runoff) |
| Get the current runoff rate from a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_groundwater (SWMM_Engine engine, int idx, double *gw_flow) |
| Get the current groundwater flow from a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_rainfall (SWMM_Engine engine, int idx, double *rainfall) |
| Get the current rainfall intensity at a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_snow_depth (SWMM_Engine engine, int idx, double *depth) |
| Get the current snow depth on a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_aquifer (SWMM_Engine engine, int idx, int aquifer_idx) |
| Assign the aquifer used for groundwater. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_aquifer (SWMM_Engine engine, int idx, int *aquifer_idx) |
| Read the assigned aquifer used for groundwater. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_gw_node (SWMM_Engine engine, int idx, int node_idx) |
| Assign the node receiving groundwater. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_gw_node (SWMM_Engine engine, int idx, int *node_idx) |
| Read the assigned node receiving groundwater. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_gw_params (SWMM_Engine engine, int idx, double surf_elev, double a1, double b1, double a2, double b2, double a3, double tw, double hstar) |
| Assign the input groundwater flow-law parameters. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_gw_params (SWMM_Engine engine, int idx, double *surf_elev, double *a1, double *b1, double *a2, double *b2, double *a3, double *tw, double *hstar) |
| Read the input groundwater flow-law parameters. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_gwf_expression (SWMM_Engine engine, int index, int type, char *buf, int buflen) |
| Read a subcatchment's custom groundwater flow expression. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_gwf_expression (SWMM_Engine engine, int index, int type, const char *expr) |
| Set or clear a subcatchment's custom groundwater flow expression. | |
| SWMM_ENGINE_API int | swmm_gwf_validate_expression (SWMM_Engine engine, const char *expr, char *errbuf, int buflen, int *col_out) |
| Validate a [GWF] expression WITHOUT modifying engine state. | |
| SWMM_ENGINE_API int | swmm_gwf_variable_count (SWMM_Engine engine) |
| Number of variables a [GWF] expression may reference. | |
| SWMM_ENGINE_API int | swmm_gwf_variable_name (SWMM_Engine engine, int i, char *buf, int buflen) |
| Name of the i-th [GWF] variable (upper-case, e.g. "HGW"). | |
| SWMM_ENGINE_API int | swmm_gwf_variable_description (SWMM_Engine engine, int i, char *buf, int buflen) |
| Short English description of the i-th [GWF] variable, with a units placeholder, e.g. "Water table height above aquifer bottom (ft or m)". | |
| SWMM_ENGINE_API int | swmm_gwf_function_count (SWMM_Engine engine) |
| Number of built-in functions a [GWF] expression may call. | |
| SWMM_ENGINE_API int | swmm_gwf_function_name (SWMM_Engine engine, int i, char *buf, int buflen) |
| Name of the i-th expression function (lower-case, stable order: abs, sgn, sqrt, log, exp, sin, cos, tan, asin, acos, atan, step, min, max, cot, sinh, cosh, tanh, coth, log10, acot). | |
| SWMM_ENGINE_API int | swmm_subcatch_set_gw_state (SWMM_Engine engine, int idx, double theta, double lower_depth) |
| Set the groundwater state on a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_gw_state (SWMM_Engine engine, int idx, double *theta, double *lower_depth) |
| Get the groundwater state on a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_snow_state (SWMM_Engine engine, int idx, int surface, double swe, double fw, double ati, double coldc) |
| Set degree-day snow state on one snow subarea of a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_snow_state (SWMM_Engine engine, int idx, int surface, double *swe, double *fw, double *ati, double *coldc) |
| Get degree-day snow state on one snow subarea of a subcatchment. UEB callers use swmm_subcatch_get_snow_process_state in openswmm_snow.h. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_evap (SWMM_Engine engine, int idx, double *evap) |
| Get the current evaporation rate at a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_infil (SWMM_Engine engine, int idx, double *infil) |
| Get the current infiltration rate at a subcatchment. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_rainfall (SWMM_Engine engine, int idx, double rainfall) |
| Overwrite the current subcatchment rainfall state during RUNNING. | |
| 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. | |
| 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. | |
| 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. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_rainfall_bulk (SWMM_Engine engine, double *buf, int count) |
| Copy rainfall values for a prefix of subcatchments. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_evap_bulk (SWMM_Engine engine, double *buf, int count) |
| Copy evap values for a prefix of subcatchments. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_infil_bulk (SWMM_Engine engine, double *buf, int count) |
| Copy infil values for a prefix of subcatchments. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_snow_depth_bulk (SWMM_Engine engine, double *buf, int count) |
| Copy snow depth values for a prefix of subcatchments. | |
| 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). | |
| SWMM_ENGINE_API int | swmm_subcatch_get_ponded_quality (SWMM_Engine engine, int subcatch_idx, int pollutant_idx, double *mass) |
| Read a pollutant's ponded surface mass. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_ponded_quality (SWMM_Engine engine, int subcatch_idx, int pollutant_idx, double mass) |
| Replace a pollutant's ponded surface mass. | |
| SWMM_ENGINE_API int | swmm_subcatch_rename (SWMM_Engine engine, int idx, const char *newId) |
| Rename a subcatchment in its name registry. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_tag (SWMM_Engine engine, int idx, char *buf, int buflen) |
| Copy a subcatchment tag. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_tag (SWMM_Engine engine, int idx, const char *tag) |
| Replace or clear a copied subcatchment tag. | |
| SWMM_ENGINE_API int | swmm_aquifer_count (SWMM_Engine engine) |
| Get the total number of aquifer definitions in the model. | |
| 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. | |
| SWMM_ENGINE_API const char * | swmm_aquifer_id (SWMM_Engine engine, int idx) |
| Get the string identifier of an aquifer definition by index. | |
| SWMM_ENGINE_API int | swmm_aquifer_add (SWMM_Engine engine, const char *id) |
| Add a new aquifer definition with default (zero) parameters. | |
| SWMM_ENGINE_API int | swmm_aquifer_rename (SWMM_Engine engine, int idx, const char *new_id) |
| Rename an aquifer in place. | |
| SWMM_ENGINE_API int | swmm_aquifer_get_param (SWMM_Engine engine, int idx, int param, double *value) |
| Get an aquifer parameter (input-file units). | |
| SWMM_ENGINE_API int | swmm_aquifer_set_param (SWMM_Engine engine, int idx, int param, double value) |
| Set an aquifer parameter (input-file units). | |
| SWMM_ENGINE_API int | swmm_aquifer_get_evap_pattern (SWMM_Engine engine, int idx, char *buf, int buflen) |
| Read the aquifer's upper-zone evaporation pattern name. | |
| SWMM_ENGINE_API int | swmm_aquifer_set_evap_pattern (SWMM_Engine engine, int idx, const char *name) |
| Set or clear the aquifer's upper-zone evaporation pattern name. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_snowpack (SWMM_Engine engine, int idx, const char *name) |
| Assign an existing snowpack before initialization. | |
| SWMM_ENGINE_API const char * | swmm_subcatch_get_snowpack (SWMM_Engine engine, int idx) |
| Borrow the assigned snowpack ID. | |
| SWMM_ENGINE_API int | swmm_snowpack_count (SWMM_Engine engine) |
| Get the total number of snowpack definitions in the model. | |
| 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. | |
| SWMM_ENGINE_API const char * | swmm_snowpack_id (SWMM_Engine engine, int idx) |
| Get the string identifier of a snowpack definition by index. | |
| SWMM_ENGINE_API int | swmm_snowpack_add (SWMM_Engine engine, const char *id) |
| Add a new snowpack definition with default (zero) parameters. | |
| SWMM_ENGINE_API int | swmm_snowpack_rename (SWMM_Engine engine, int idx, const char *new_id) |
| Rename a snow pack in place. | |
| SWMM_ENGINE_API int | swmm_snowpack_set_plowable (SWMM_Engine engine, int idx, double cmin, double cmax, double tbase, double fwfrac, double sd0, double fw0, double last) |
| Assign the plowable snow-melt surface parameters. | |
| SWMM_ENGINE_API int | swmm_snowpack_get_plowable (SWMM_Engine engine, int idx, double *cmin, double *cmax, double *tbase, double *fwfrac, double *sd0, double *fw0, double *last) |
| Read the plowable snow-melt surface parameters. | |
| SWMM_ENGINE_API int | swmm_snowpack_set_impervious (SWMM_Engine engine, int idx, double cmin, double cmax, double tbase, double fwfrac, double sd0, double fw0, double last) |
| Assign the impervious snow-melt surface parameters. | |
| SWMM_ENGINE_API int | swmm_snowpack_get_impervious (SWMM_Engine engine, int idx, double *cmin, double *cmax, double *tbase, double *fwfrac, double *sd0, double *fw0, double *last) |
| Read the impervious snow-melt surface parameters. | |
| SWMM_ENGINE_API int | swmm_snowpack_set_pervious (SWMM_Engine engine, int idx, double cmin, double cmax, double tbase, double fwfrac, double sd0, double fw0, double last) |
| Assign the pervious snow-melt surface parameters. | |
| SWMM_ENGINE_API int | swmm_snowpack_get_pervious (SWMM_Engine engine, int idx, double *cmin, double *cmax, double *tbase, double *fwfrac, double *sd0, double *fw0, double *last) |
| Read the pervious snow-melt surface parameters. | |
| SWMM_ENGINE_API int | swmm_snowpack_set_removal (SWMM_Engine engine, int idx, double dsnow, double fout, double fimp, double fperv, double fimelt, double fsubcatch) |
| Assign snow redistribution parameters. | |
| SWMM_ENGINE_API int | swmm_snowpack_get_removal (SWMM_Engine engine, int idx, double *dsnow, double *fout, double *fimp, double *fperv, double *fimelt, double *fsubcatch) |
| Read snow redistribution parameters. | |
| SWMM_ENGINE_API int | swmm_snowpack_set_removal_subcatch (SWMM_Engine engine, int idx, const char *name) |
| Set or clear the copied snow-removal destination name. | |
| SWMM_ENGINE_API int | swmm_snowpack_get_removal_subcatch (SWMM_Engine engine, int idx, char *buf, int buflen) |
| Copy the snow-removal destination name. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_rain_scale_factor (SWMM_Engine engine, int idx, double factor) |
| Replace the rain precipitation multiplier. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_rain_scale_factor (SWMM_Engine engine, int idx, double *factor) |
| Read the rain precipitation multiplier. | |
| SWMM_ENGINE_API int | swmm_subcatch_set_snow_scale_factor (SWMM_Engine engine, int idx, double factor) |
| Replace the snow precipitation multiplier. | |
| SWMM_ENGINE_API int | swmm_subcatch_get_snow_scale_factor (SWMM_Engine engine, int idx, double *factor) |
| Read the snow precipitation multiplier. | |
C API implementation — subcatchment identity, creation, properties, state, bulk.
| SWMM_ENGINE_API int swmm_aquifer_add | ( | SWMM_Engine | engine, |
| const char * | id ) |
Add a new aquifer definition with default (zero) parameters.
Parameters default to 0.0 / empty strings — use the property setters from Slice BP AquiferEditor to configure porosity, conductivity, etc. Lifecycle: BUILDING or OPENED.
| [in] | engine | Engine handle. |
| [in] | id | Unique null-terminated identifier. |
| SWMM_ENGINE_API int swmm_aquifer_count | ( | SWMM_Engine | engine | ) |
Get the total number of aquifer definitions in the model.
| [in] | engine | Engine handle. |
| SWMM_ENGINE_API int swmm_aquifer_get_evap_pattern | ( | SWMM_Engine | engine, |
| int | idx, | ||
| char * | buf, | ||
| int | buflen ) |
Read the aquifer's upper-zone evaporation pattern name.
The optional monthly time pattern ([PATTERNS] MONTHLY) that scales the upper-zone evaporation fraction — the trailing [ETupat] column of the [AQUIFERS] line. The 12 numeric parameters are reached via swmm_aquifer_get_param; this completes the round-trip for the one string-valued column. Writes a NUL-terminated string into buf (empty when no pattern is assigned), truncating if buflen is too small.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based aquifer index. |
| [out] | buf | Destination buffer for the pattern name. |
| [in] | buflen | Size of buf in bytes (must be > 0). |
| SWMM_ENGINE_API int swmm_aquifer_get_param | ( | SWMM_Engine | engine, |
| int | idx, | ||
| int | param, | ||
| double * | value ) |
Get an aquifer parameter (input-file units).
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based aquifer index. |
| [in] | param | A SWMM_AquiferParam code. |
| [out] | value | Receives the parameter value. |
| SWMM_ENGINE_API const char * swmm_aquifer_id | ( | SWMM_Engine | engine, |
| int | idx ) |
Get the string identifier of an aquifer definition by index.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based aquifer index. |
| 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.
| [in] | engine | Engine handle. |
| [in] | id | Null-terminated aquifer identifier. |
| SWMM_ENGINE_API int swmm_aquifer_rename | ( | SWMM_Engine | engine, |
| int | idx, | ||
| const char * | new_id ) |
Rename an aquifer in place.
Updates both the name vector and the name registry so swmm_aquifer_id() and swmm_aquifer_index() stay in agreement. [GROUNDWATER] holds an aquifer INDEX, not a name, so subcatchment references follow automatically. Lifecycle: BUILDING or OPENED.
| [in] | engine | Engine handle. |
| [in] | idx | Aquifer index. |
| [in] | new_id | New unique name (non-empty). A pure case-respelling of this same aquifer is allowed. |
| SWMM_ENGINE_API int swmm_aquifer_set_evap_pattern | ( | SWMM_Engine | engine, |
| int | idx, | ||
| const char * | name ) |
Set or clear the aquifer's upper-zone evaporation pattern name.
Inverse of swmm_aquifer_get_evap_pattern. The name is resolved to a [PATTERNS] entry at start(); a null or empty string clears the assignment. Pre-start-only (BUILDING / OPENED): the pattern index is bound when the simulation starts, so a mid-run change returns SWMM_ERR_LIFECYCLE.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based aquifer index. |
| [in] | name | Pattern name, or null/empty to clear. |
| SWMM_ENGINE_API int swmm_aquifer_set_param | ( | SWMM_Engine | engine, |
| int | idx, | ||
| int | param, | ||
| double | value ) |
Set an aquifer parameter (input-file units).
Flux-coefficient parameters take effect on the next step when set mid-run (the groundwater solver's per-subcatchment copies are refreshed); structural / initial-condition parameters return SWMM_ERR_LIFECYCLE while the simulation is running.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based aquifer index. |
| [in] | param | A SWMM_AquiferParam code. |
| [in] | value | New parameter value. |
| SWMM_ENGINE_API int swmm_gwf_function_count | ( | SWMM_Engine | engine | ) |
Number of built-in functions a [GWF] expression may call.
| [in] | engine | Engine handle. |
| SWMM_ENGINE_API int swmm_gwf_function_name | ( | SWMM_Engine | engine, |
| int | i, | ||
| char * | buf, | ||
| int | buflen ) |
Name of the i-th expression function (lower-case, stable order: abs, sgn, sqrt, log, exp, sin, cos, tan, asin, acos, atan, step, min, max, cot, sinh, cosh, tanh, coth, log10, acot).
| [in] | engine | Engine handle. |
| [in] | i | Zero-based index, < swmm_gwf_function_count(). |
| [out] | buf | Destination buffer (NUL-terminated, truncated if too small). |
| [in] | buflen | Size of buf in bytes (must be > 0). |
| SWMM_ENGINE_API int swmm_gwf_validate_expression | ( | SWMM_Engine | engine, |
| const char * | expr, | ||
| char * | errbuf, | ||
| int | buflen, | ||
| int * | col_out ) |
Validate a [GWF] expression WITHOUT modifying engine state.
Editor-support peer of swmm_treatment_validate_expression: grammar-only, never mutates the engine, so it is safe to invoke per keystroke. Stricter than the runtime parser: unknown characters, unknown identifiers (must be a GW variable or a function), unbalanced parentheses, misplaced operators and wrong function arity (min/max take 2 arguments, all others 1) are errors. An empty or whitespace-only expression is INVALID ("expression is empty") — callers treat empty as "clear" themselves.
| [in] | engine | Engine handle (grammar only; no model data is read). |
| [in] | expr | Expression text. |
| [out] | errbuf | Receives the diagnostic on failure ("" on success). May be NULL. |
| [in] | buflen | Size of errbuf in bytes. |
| [out] | col_out | Receives the 0-based character offset of the error, or -1 when not attributable. May be NULL. |
| SWMM_ENGINE_API int swmm_gwf_variable_count | ( | SWMM_Engine | engine | ) |
Number of variables a [GWF] expression may reference.
| [in] | engine | Engine handle. |
| SWMM_ENGINE_API int swmm_gwf_variable_description | ( | SWMM_Engine | engine, |
| int | i, | ||
| char * | buf, | ||
| int | buflen ) |
Short English description of the i-th [GWF] variable, with a units placeholder, e.g. "Water table height above aquifer bottom (ft or m)".
| [in] | engine | Engine handle. |
| [in] | i | Zero-based index, < swmm_gwf_variable_count(). |
| [out] | buf | Destination buffer (NUL-terminated, truncated if too small). |
| [in] | buflen | Size of buf in bytes (must be > 0). |
| SWMM_ENGINE_API int swmm_gwf_variable_name | ( | SWMM_Engine | engine, |
| int | i, | ||
| char * | buf, | ||
| int | buflen ) |
Name of the i-th [GWF] variable (upper-case, e.g. "HGW").
| [in] | engine | Engine handle. |
| [in] | i | Zero-based index, < swmm_gwf_variable_count(). |
| [out] | buf | Destination buffer (NUL-terminated, truncated if too small). |
| [in] | buflen | Size of buf in bytes (must be > 0). |
| SWMM_ENGINE_API int swmm_snowpack_add | ( | SWMM_Engine | engine, |
| const char * | id ) |
Add a new snowpack definition with default (zero) parameters.
All three surface arrays (plowable / impervious / pervious) and the removal row are zero-initialised. Use the property setters from Slice BP SnowpackEditor to configure melt coefficients, ATI, negative-melt-ratio, and removal fractions. Lifecycle: BUILDING or OPENED.
| [in] | engine | Engine handle. |
| [in] | id | Unique null-terminated identifier. |
| SWMM_ENGINE_API int swmm_snowpack_count | ( | SWMM_Engine | engine | ) |
Get the total number of snowpack definitions in the model.
| [in] | engine | Engine handle. |
| SWMM_ENGINE_API int swmm_snowpack_get_impervious | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | cmin, | ||
| double * | cmax, | ||
| double * | tbase, | ||
| double * | fwfrac, | ||
| double * | sd0, | ||
| double * | fw0, | ||
| double * | last ) |
Read the impervious snow-melt surface parameters.
No lifecycle check; reads stored input values.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing snowpack definition index. |
| [out] | cmin | Optional output. Minimum melt factor, inches/hour/degree F or mm/hour/degree C. |
| [out] | cmax | Optional output. Maximum melt factor in the same units. |
| [out] | tbase | Optional output. Base melt temperature, degrees F for US or C for SI. |
| [out] | fwfrac | Optional output. Free-water capacity fraction. |
| [out] | sd0 | Optional output. Initial snow water-equivalent depth, inches/mm. |
| [out] | fw0 | Optional output. Initial free-water depth, inches/mm. |
| [out] | last | Optional output. Snow water-equivalent depth for complete cover, inches/mm. |
| SWMM_ENGINE_API int swmm_snowpack_get_pervious | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | cmin, | ||
| double * | cmax, | ||
| double * | tbase, | ||
| double * | fwfrac, | ||
| double * | sd0, | ||
| double * | fw0, | ||
| double * | last ) |
Read the pervious snow-melt surface parameters.
No lifecycle check; reads stored input values.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing snowpack definition index. |
| [out] | cmin | Optional output. Minimum melt factor, inches/hour/degree F or mm/hour/degree C. |
| [out] | cmax | Optional output. Maximum melt factor in the same units. |
| [out] | tbase | Optional output. Base melt temperature, degrees F for US or C for SI. |
| [out] | fwfrac | Optional output. Free-water capacity fraction. |
| [out] | sd0 | Optional output. Initial snow water-equivalent depth, inches/mm. |
| [out] | fw0 | Optional output. Initial free-water depth, inches/mm. |
| [out] | last | Optional output. Snow water-equivalent depth for complete cover, inches/mm. |
| SWMM_ENGINE_API int swmm_snowpack_get_plowable | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | cmin, | ||
| double * | cmax, | ||
| double * | tbase, | ||
| double * | fwfrac, | ||
| double * | sd0, | ||
| double * | fw0, | ||
| double * | last ) |
Read the plowable snow-melt surface parameters.
No lifecycle check; reads stored input values.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing snowpack definition index. |
| [out] | cmin | Optional output. Minimum melt factor, inches/hour/degree F or mm/hour/degree C. |
| [out] | cmax | Optional output. Maximum melt factor in the same units. |
| [out] | tbase | Optional output. Base melt temperature, degrees F for US or C for SI. |
| [out] | fwfrac | Optional output. Free-water capacity fraction. |
| [out] | sd0 | Optional output. Initial snow water-equivalent depth, inches/mm. |
| [out] | fw0 | Optional output. Initial free-water depth, inches/mm. |
| [out] | last | Optional output. Plowable fraction of impervious area. |
| SWMM_ENGINE_API int swmm_snowpack_get_removal | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | dsnow, | ||
| double * | fout, | ||
| double * | fimp, | ||
| double * | fperv, | ||
| double * | fimelt, | ||
| double * | fsubcatch ) |
Read snow redistribution parameters.
No lifecycle check.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing snowpack definition index. |
| [out] | dsnow | Optional output. Snow depth at which removal begins, inches/mm. |
| [out] | fout | Optional output. Fraction exported out of the watershed. |
| [out] | fimp | Optional output. Fraction routed to impervious surface. |
| [out] | fperv | Optional output. Fraction routed to pervious surface. |
| [out] | fimelt | Optional output. Fraction converted to immediate melt. |
| [out] | fsubcatch | Optional output. Fraction transferred to the separately named destination subcatchment. |
| SWMM_ENGINE_API int swmm_snowpack_get_removal_subcatch | ( | SWMM_Engine | engine, |
| int | idx, | ||
| char * | buf, | ||
| int | buflen ) |
Copy the snow-removal destination name.
No lifecycle check; empty when no destination is assigned.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing snowpack definition index. |
| [out] | buf | Non-null caller-owned buffer, NUL-terminated and silently truncated to buflen-1 bytes. |
| [in] | buflen | Positive capacity in bytes including NUL. |
| SWMM_ENGINE_API const char * swmm_snowpack_id | ( | SWMM_Engine | engine, |
| int | idx ) |
Get the string identifier of a snowpack definition by index.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based snowpack index. |
| 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.
| [in] | engine | Engine handle. |
| [in] | id | Null-terminated snowpack identifier. |
| SWMM_ENGINE_API int swmm_snowpack_rename | ( | SWMM_Engine | engine, |
| int | idx, | ||
| const char * | new_id ) |
Rename a snow pack in place.
Updates both the name vector (read by swmm_snowpack_id() and the [SNOWPACKS] writer) and the name registry (read by swmm_snowpack_index() and the [SUBCATCHMENTS] snow-pack column), plus the deferred-resolution name held per subcatchment. Melt parameters and subcatchment assignments are index-based and follow automatically. Lifecycle: BUILDING or OPENED.
| [in] | engine | Engine handle. |
| [in] | idx | Snow pack index. |
| [in] | new_id | New unique name (non-empty). A pure case-respelling of this same snow pack is allowed. |
| SWMM_ENGINE_API int swmm_snowpack_set_impervious | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | cmin, | ||
| double | cmax, | ||
| double | tbase, | ||
| double | fwfrac, | ||
| double | sd0, | ||
| double | fw0, | ||
| double | last ) |
Assign the impervious snow-melt surface parameters.
Requires BUILDING/OPENED. Values seed snow state at start; this setter stores them without finite/range checks.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing snowpack definition index. |
| [in] | cmin | Minimum melt factor, inches/hour/degree F or mm/hour/degree C. |
| [in] | cmax | Maximum melt factor in the same units. |
| [in] | tbase | Base melt temperature, degrees F for US or C for SI. |
| [in] | fwfrac | Free-water capacity fraction. |
| [in] | sd0 | Initial snow water-equivalent depth, inches/mm. |
| [in] | fw0 | Initial free-water depth, inches/mm. |
| [in] | last | Snow water-equivalent depth for complete cover, inches/mm. |
| SWMM_ENGINE_API int swmm_snowpack_set_pervious | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | cmin, | ||
| double | cmax, | ||
| double | tbase, | ||
| double | fwfrac, | ||
| double | sd0, | ||
| double | fw0, | ||
| double | last ) |
Assign the pervious snow-melt surface parameters.
Requires BUILDING/OPENED. Values seed snow state at start; this setter stores them without finite/range checks.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing snowpack definition index. |
| [in] | cmin | Minimum melt factor, inches/hour/degree F or mm/hour/degree C. |
| [in] | cmax | Maximum melt factor in the same units. |
| [in] | tbase | Base melt temperature, degrees F for US or C for SI. |
| [in] | fwfrac | Free-water capacity fraction. |
| [in] | sd0 | Initial snow water-equivalent depth, inches/mm. |
| [in] | fw0 | Initial free-water depth, inches/mm. |
| [in] | last | Snow water-equivalent depth for complete cover, inches/mm. |
| SWMM_ENGINE_API int swmm_snowpack_set_plowable | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | cmin, | ||
| double | cmax, | ||
| double | tbase, | ||
| double | fwfrac, | ||
| double | sd0, | ||
| double | fw0, | ||
| double | last ) |
Assign the plowable snow-melt surface parameters.
Requires BUILDING/OPENED. Values seed snow state at start; this setter stores them without finite/range checks.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing snowpack definition index. |
| [in] | cmin | Minimum melt factor, inches/hour/degree F or mm/hour/degree C. |
| [in] | cmax | Maximum melt factor in the same units. |
| [in] | tbase | Base melt temperature, degrees F for US or C for SI. |
| [in] | fwfrac | Free-water capacity fraction. |
| [in] | sd0 | Initial snow water-equivalent depth, inches/mm. |
| [in] | fw0 | Initial free-water depth, inches/mm. |
| [in] | last | Plowable fraction of impervious area. |
| SWMM_ENGINE_API int swmm_snowpack_set_removal | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | dsnow, | ||
| double | fout, | ||
| double | fimp, | ||
| double | fperv, | ||
| double | fimelt, | ||
| double | fsubcatch ) |
Assign snow redistribution parameters.
Requires BUILDING/OPENED. Does not validate individual values, fraction sum or destination; stores authoring inputs verbatim.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing snowpack definition index. |
| [in] | dsnow | Snow depth at which removal begins, inches/mm. |
| [in] | fout | Fraction exported out of the watershed. |
| [in] | fimp | Fraction routed to impervious surface. |
| [in] | fperv | Fraction routed to pervious surface. |
| [in] | fimelt | Fraction converted to immediate melt. |
| [in] | fsubcatch | Fraction transferred to the separately named destination subcatchment. |
| SWMM_ENGINE_API int swmm_snowpack_set_removal_subcatch | ( | SWMM_Engine | engine, |
| int | idx, | ||
| const char * | name ) |
Set or clear the copied snow-removal destination name.
Requires BUILDING/OPENED. Stores the name without resolving existence here.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing snowpack definition index. |
| [in] | name | Borrowed NUL-terminated subcatchment name; NULL/empty clears it. |
| SWMM_ENGINE_API int swmm_subcatch_add | ( | SWMM_Engine | engine, |
| const char * | id ) |
Add a new subcatchment to the model.
The engine must be in SWMM_STATE_BUILDING or SWMM_STATE_OPENED. Returns SWMM_ERR_LIFECYCLE for any other state. After creation, use the property setters to configure area, slope, imperviousness, etc.
| [in] | engine | Engine handle. |
| [in] | id | Unique null-terminated identifier for the new subcatchment. |
| SWMM_ENGINE_API int swmm_subcatch_count | ( | SWMM_Engine | engine | ) |
Get the total number of subcatchments in the model.
| [in] | engine | Engine handle. |
| SWMM_ENGINE_API int swmm_subcatch_get_aquifer | ( | SWMM_Engine | engine, |
| int | idx, | ||
| int * | aquifer_idx ) |
Read the assigned aquifer used for groundwater.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [out] | aquifer_idx | Optional stored target-index output; -1 denotes none. |
| SWMM_ENGINE_API int swmm_subcatch_get_area | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | area ) |
Get the subcatchment area.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | area | Receives the area in project area units. |
| SWMM_ENGINE_API int swmm_subcatch_get_coverage | ( | SWMM_Engine | engine, |
| int | sc_idx, | ||
| int | lu_idx, | ||
| double * | fraction ) |
Get the land use coverage percent for a subcatchment.
| [in] | engine | Engine handle. |
| [in] | sc_idx | Zero-based subcatchment index. |
| [in] | lu_idx | Zero-based land use index. |
| [out] | fraction | Receives the coverage in percent (0–100). |
| SWMM_ENGINE_API int swmm_subcatch_get_coverages | ( | SWMM_Engine | engine, |
| int | sc_idx, | ||
| double * | out, | ||
| int | n ) |
Get all land use coverage percents for a subcatchment in one call.
Bulk peer of swmm_subcatch_get_coverage for grid editors: fills out[0..n-1] with the coverage percent for land uses 0..n-1. n must not exceed the engine's land use count.
| [in] | engine | Engine handle. |
| [in] | sc_idx | Zero-based subcatchment index. |
| [out] | out | Caller-owned array receiving n percents (0–100). |
| [in] | n | Number of land uses to fetch (array capacity). |
| 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.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | ds | Receives the depression storage depth. |
| 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.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | ds | Receives the depression storage depth. |
| SWMM_ENGINE_API int swmm_subcatch_get_evap | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | evap ) |
Get the current evaporation rate at a subcatchment.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | evap | Receives the evaporation rate. |
| SWMM_ENGINE_API int swmm_subcatch_get_evap_bulk | ( | SWMM_Engine | engine, |
| double * | buf, | ||
| int | count ) |
Copy evap values for a prefix of subcatchments.
Writes min(count,subcatchment count) elements and preserves any remaining buffer tail. No lifecycle check; returns the current stored state.
| [in] | engine | Non-null live engine; caller serializes access. |
| [out] | buf | Non-null caller-owned array with room for min(count,subcatchment count) doubles. Evaporation loss rate in inches/day or mm/day. |
| [in] | count | Positive destination element capacity; a short buffer selects the corresponding model prefix. |
| 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.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | gage_idx | Receives the gage index. |
| SWMM_ENGINE_API int swmm_subcatch_get_groundwater | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | gw_flow ) |
Get the current groundwater flow from a subcatchment.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | gw_flow | Receives the groundwater flow in project flow units. |
| SWMM_ENGINE_API int swmm_subcatch_get_gw_node | ( | SWMM_Engine | engine, |
| int | idx, | ||
| int * | node_idx ) |
Read the assigned node receiving groundwater.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [out] | node_idx | Optional stored target-index output; -1 denotes none. |
| SWMM_ENGINE_API int swmm_subcatch_get_gw_params | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | surf_elev, | ||
| double * | a1, | ||
| double * | b1, | ||
| double * | a2, | ||
| double * | b2, | ||
| double * | a3, | ||
| double * | tw, | ||
| double * | hstar ) |
Read the input groundwater flow-law parameters.
Values retain input-file units. No lifecycle check; does not read runtime theta/lower_depth.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [out] | surf_elev | Optional output. Ground surface elevation, ft/m. |
| [out] | a1 | Optional output. Groundwater outflow coefficient in the project input groundwater law. |
| [out] | b1 | Optional output. Dimensionless groundwater outflow exponent. |
| [out] | a2 | Optional output. Surface-water outflow coefficient in the project input groundwater law. |
| [out] | b2 | Optional output. Dimensionless surface-water outflow exponent. |
| [out] | a3 | Optional output. Surface/groundwater interaction coefficient in the project input law. |
| [out] | tw | Optional output. Fixed receiving surface-water depth, ft/m; zero uses live node depth. |
| [out] | hstar | Optional output. Lateral-flow threshold water-table elevation, ft/m; -1e10 uses receiving-node invert. Other values, including -99, are literal elevations. |
| SWMM_ENGINE_API int swmm_subcatch_get_gw_state | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | theta, | ||
| double * | lower_depth ) |
Get the groundwater state on a subcatchment.
| [in] | engine | Engine handle. |
| [in] | idx | Subcatchment index (must have groundwater). |
| [out] | theta | Receives the upper zone moisture content. |
| [out] | lower_depth | Receives the saturated zone depth (user length units). |
| SWMM_ENGINE_API int swmm_subcatch_get_gwf_expression | ( | SWMM_Engine | engine, |
| int | index, | ||
| int | type, | ||
| char * | buf, | ||
| int | buflen ) |
Read a subcatchment's custom groundwater flow expression.
Writes a NUL-terminated string into buf (empty when no expression is set), truncating if buflen is too small.
| [in] | engine | Engine handle. |
| [in] | index | Zero-based subcatchment index. |
| [in] | type | A SWMM_GwfType code. |
| [out] | buf | Destination buffer for the expression text. |
| [in] | buflen | Size of buf in bytes (must be > 0). |
| 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).
Format identical to swmm_node_get_ids_bulk.
| [in] | engine | Engine handle. |
| [out] | buf | Caller-allocated buffer of stride*count bytes. |
| [in] | stride | Per-ID slot size in bytes (must be > 1). |
| [in] | count | Number of IDs to read. |
SWMM_OK on success; SWMM_ERR_BADHANDLE if engine is invalid; SWMM_ERR_BADPARAM if buf is NULL, stride < 2, or count <= 0. | SWMM_ENGINE_API int swmm_subcatch_get_imperv_pct | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | pct ) |
Get the percentage of impervious area.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | pct | Receives the imperviousness percentage (0–100). |
| SWMM_ENGINE_API int swmm_subcatch_get_infil | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | infil ) |
Get the current infiltration rate at a subcatchment.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | infil | Receives the infiltration rate. |
| SWMM_ENGINE_API int swmm_subcatch_get_infil_bulk | ( | SWMM_Engine | engine, |
| double * | buf, | ||
| int | count ) |
Copy infil values for a prefix of subcatchments.
Writes min(count,subcatchment count) elements and preserves any remaining buffer tail. No lifecycle check; returns the current stored state.
| [in] | engine | Non-null live engine; caller serializes access. |
| [out] | buf | Non-null caller-owned array with room for min(count,subcatchment count) doubles. Infiltration loss rate in inches/hour or mm/hour. |
| [in] | count | Positive destination element capacity; a short buffer selects the corresponding model prefix. |
| SWMM_ENGINE_API int swmm_subcatch_get_infil_curve_number | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | cn, | ||
| double * | drying_time ) |
Get the Curve Number infiltration parameters for a subcatchment.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | cn | Receives the SCS curve number. May be NULL. |
| [out] | drying_time | Receives the drying time in days. May be NULL. |
| 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.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | suction | Receives the soil capillary suction head. |
| [out] | conductivity | Receives the saturated hydraulic conductivity. |
| [out] | deficit | Receives the initial moisture deficit (fraction). |
| 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.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | f0 | Receives the maximum infiltration rate. |
| [out] | fmin | Receives the minimum infiltration rate. |
| [out] | decay | Receives the decay constant (1/hr). |
| [out] | dry_time | Receives the time to fully dry (hours). |
| SWMM_ENGINE_API int swmm_subcatch_get_infil_model | ( | SWMM_Engine | engine, |
| int | idx, | ||
| int * | model ) |
Get the infiltration model type for a subcatchment.
Returns an integer code: 0=HORTON, 1=MOD_HORTON, 2=GREEN_AMPT, 3=MOD_GREEN_AMPT, 4=CURVE_NUMBER.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | model | Receives the infiltration model code. |
| SWMM_ENGINE_API int swmm_subcatch_get_initial_loading | ( | SWMM_Engine | engine, |
| int | sc_idx, | ||
| int | pollut_idx, | ||
| double * | buildup ) |
Get the initial pollutant buildup on a subcatchment.
| [in] | engine | Engine handle. |
| [in] | sc_idx | Zero-based subcatchment index. |
| [in] | pollut_idx | Zero-based pollutant index. |
| [out] | buildup | Receives the initial buildup (mass per unit area). |
| SWMM_ENGINE_API int swmm_subcatch_get_n_imperv | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | n ) |
Get Manning's n for the impervious area.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | n | Receives Manning's n. |
| SWMM_ENGINE_API int swmm_subcatch_get_n_perv | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | n ) |
Get Manning's n for the pervious area.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | n | Receives Manning's n. |
| SWMM_ENGINE_API int swmm_subcatch_get_outlet | ( | SWMM_Engine | engine, |
| int | idx, | ||
| int * | node_idx ) |
Get the outlet node index for a subcatchment.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | node_idx | Receives the outlet node index. |
| 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).
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | sc_idx | Receives the downstream subcatchment index, or -1 if none. |
| SWMM_ENGINE_API int swmm_subcatch_get_ponded_quality | ( | SWMM_Engine | engine, |
| int | subcatch_idx, | ||
| int | pollutant_idx, | ||
| double * | mass ) |
Read a pollutant's ponded surface mass.
Mass uses the surface-quality kernel's internal constituent mass convention (mg for mass-based pollutant transport). No lifecycle check. A missing slot returns zero.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | subcatch_idx | Zero-based existing subcatchment index. |
| [in] | pollutant_idx | Zero-based pollutant index in the allocated concentration stride; reaction/reserved species are not selected by this API. |
| [out] | mass | Optional output of stored mass, zero when no ponded slot exists. |
| 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.
| [in] | engine | Engine handle. |
| [in] | subcatch_idx | Zero-based subcatchment index. |
| [in] | pollutant_idx | Zero-based pollutant index. |
| [out] | conc | Receives the concentration in pollutant units. |
| 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.
| [in] | engine | Engine handle. |
| [in] | pollutant_idx | Zero-based pollutant index. |
| [out] | buf | Caller-allocated buffer of at least count doubles. |
| [in] | count | Number of elements (should equal swmm_subcatch_count()). |
| SWMM_ENGINE_API int swmm_subcatch_get_rain_scale_factor | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | factor ) |
Read the rain precipitation multiplier.
No lifecycle guard. The runoff precipitation path applies it on subsequent rain evaluation, in addition to the gage factor.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [out] | factor | Optional dimensionless stored factor output. |
| SWMM_ENGINE_API int swmm_subcatch_get_rainfall | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | rainfall ) |
Get the current rainfall intensity at a subcatchment.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | rainfall | Receives the rainfall in project rate units. |
| SWMM_ENGINE_API int swmm_subcatch_get_rainfall_bulk | ( | SWMM_Engine | engine, |
| double * | buf, | ||
| int | count ) |
Copy rainfall values for a prefix of subcatchments.
Writes min(count,subcatchment count) elements and preserves any remaining buffer tail. No lifecycle check; returns the current stored state.
| [in] | engine | Non-null live engine; caller serializes access. |
| [out] | buf | Non-null caller-owned array with room for min(count,subcatchment count) doubles. Rainfall intensity in inches/hour or mm/hour. |
| [in] | count | Positive destination element capacity; a short buffer selects the corresponding model prefix. |
| SWMM_ENGINE_API int swmm_subcatch_get_runoff | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | runoff ) |
Get the current runoff rate from a subcatchment.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | runoff | Receives the runoff rate in project flow units. |
| 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.
| [in] | engine | Engine handle. |
| [out] | buf | Caller-allocated buffer of at least count doubles. |
| [in] | count | Number of elements (should equal swmm_subcatch_count()). |
| SWMM_ENGINE_API int swmm_subcatch_get_slope | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | s ) |
Get the average surface slope.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | s | Receives the slope percentage. |
| SWMM_ENGINE_API int swmm_subcatch_get_snow_depth | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | depth ) |
Get the current snow depth on a subcatchment.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | depth | Receives the snow depth in project length units. |
| SWMM_ENGINE_API int swmm_subcatch_get_snow_depth_bulk | ( | SWMM_Engine | engine, |
| double * | buf, | ||
| int | count ) |
Copy snow depth values for a prefix of subcatchments.
Writes min(count,subcatchment count) elements and preserves any remaining buffer tail. This implementation zero-fills the prefix; unlike the scalar snow-depth getter it does not sample integrated snow state.
| [in] | engine | Non-null live engine; caller serializes access. |
| [out] | buf | Non-null caller-owned array with room for min(count,subcatchment count) doubles. Placeholder zero, not a sampled SnowSolver depth. |
| [in] | count | Positive destination element capacity; a short buffer selects the corresponding model prefix. |
| SWMM_ENGINE_API int swmm_subcatch_get_snow_scale_factor | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | factor ) |
Read the snow precipitation multiplier.
No lifecycle guard. The runoff precipitation path applies it on subsequent snow evaluation, in addition to the gage factor.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [out] | factor | Optional dimensionless stored factor output. |
| SWMM_ENGINE_API int swmm_subcatch_get_snow_state | ( | SWMM_Engine | engine, |
| int | idx, | ||
| int | surface, | ||
| double * | swe, | ||
| double * | fw, | ||
| double * | ati, | ||
| double * | coldc ) |
Get degree-day snow state on one snow subarea of a subcatchment. UEB callers use swmm_subcatch_get_snow_process_state in openswmm_snow.h.
| [in] | engine | Engine handle. |
| [in] | idx | Subcatchment index (must have a snow pack). |
| [in] | surface | Snow subarea: 0 plowable, 1 impervious, 2 pervious. |
| [out] | swe | Receives SWE (user depth units); may be NULL. |
| [out] | fw | Receives free water (user depth units); may be NULL. |
| [out] | ati | Receives ATI (user temperature units); may be NULL. |
| [out] | coldc | Receives cold content (user depth units); may be NULL. |
| SWMM_ENGINE_API const char * swmm_subcatch_get_snowpack | ( | SWMM_Engine | engine, |
| int | idx ) |
Borrow the assigned snowpack ID.
Do not free; copy before renaming/removing the snowpack or closing/destroying the engine.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| 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.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | rate | Receives the maximum runoff rate in project flow units. |
| SWMM_ENGINE_API int swmm_subcatch_get_stat_precip | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | vol ) |
Get the total precipitation volume at a subcatchment.
| [in] | engine | Engine handle (ENDED or RUNNING state). |
| [in] | idx | Zero-based subcatchment index. |
| [out] | vol | Receives the precipitation volume in project volume units. |
| 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.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | vol | Receives the runoff volume in project volume units. |
| SWMM_ENGINE_API int swmm_subcatch_get_tag | ( | SWMM_Engine | engine, |
| int | idx, | ||
| char * | buf, | ||
| int | buflen ) |
Copy a subcatchment tag.
Missing tags copy as empty text. No lifecycle check.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [out] | buf | Non-null caller-owned buffer, NUL-terminated and silently truncated to buflen-1 bytes. |
| [in] | buflen | Positive capacity in bytes including NUL. |
| SWMM_ENGINE_API int swmm_subcatch_get_width | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | w ) |
Get the characteristic overland flow width.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | w | Receives the width in project length units. |
| SWMM_ENGINE_API int swmm_subcatch_get_zero_imperv_pct | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double * | pct ) |
Get the percentage of the impervious area having no depression storage.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [out] | pct | Receives the zero-depression-storage percentage (0–100). |
| SWMM_ENGINE_API const char * swmm_subcatch_id | ( | SWMM_Engine | engine, |
| int | idx ) |
Get the string identifier of a subcatchment by index.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| 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.
| [in] | engine | Engine handle. |
| [in] | id | Null-terminated subcatchment identifier. |
| SWMM_ENGINE_API int swmm_subcatch_rename | ( | SWMM_Engine | engine, |
| int | idx, | ||
| const char * | newId ) |
Rename a subcatchment in its name registry.
Requires BUILDING/OPENED. Uses the registry collision policy; returns BADPARAM on collision. This wrapper does not explicitly migrate name-keyed GWF expression options.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [in] | newId | Non-null, nonempty copied unique ID; case-only respelling of this row is permitted. |
| SWMM_ENGINE_API int swmm_subcatch_set_aquifer | ( | SWMM_Engine | engine, |
| int | idx, | ||
| int | aquifer_idx ) |
Assign the aquifer used for groundwater.
Requires BUILDING/OPENED. Stores the reference verbatim without changing current groundwater state.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [in] | aquifer_idx | Existing zero-based target index or -1 for none; the target range is NOT checked by this wrapper. |
| SWMM_ENGINE_API int swmm_subcatch_set_area | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | area ) |
Set the subcatchment area.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | area | Area in project area units (acres or hectares). |
| SWMM_ENGINE_API int swmm_subcatch_set_coverage | ( | SWMM_Engine | engine, |
| int | sc_idx, | ||
| int | lu_idx, | ||
| double | fraction ) |
Set the land use coverage percent for a subcatchment.
Assigns what percent of a subcatchment's area is covered by a particular land use category (for buildup/washoff modeling). Stored and reported verbatim in PERCENT (0–100), matching the [COVERAGES] .inp convention.
| [in] | engine | Engine handle. |
| [in] | sc_idx | Zero-based subcatchment index. |
| [in] | lu_idx | Zero-based land use index. |
| [in] | fraction | Coverage in percent (0–100). |
| 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.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | ds | Depression storage in project length units. |
| 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.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | ds | Depression storage in project length units. |
| SWMM_ENGINE_API int swmm_subcatch_set_gage | ( | SWMM_Engine | engine, |
| int | idx, | ||
| int | gage_idx ) |
Assign a rain gage to a subcatchment.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | gage_idx | Zero-based rain gage index. |
| SWMM_ENGINE_API int swmm_subcatch_set_gw_node | ( | SWMM_Engine | engine, |
| int | idx, | ||
| int | node_idx ) |
Assign the node receiving groundwater.
Requires BUILDING/OPENED. Stores the reference verbatim without changing current groundwater state.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [in] | node_idx | Existing zero-based target index or -1 for none; the target range is NOT checked by this wrapper. |
| SWMM_ENGINE_API int swmm_subcatch_set_gw_params | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | surf_elev, | ||
| double | a1, | ||
| double | b1, | ||
| double | a2, | ||
| double | b2, | ||
| double | a3, | ||
| double | tw, | ||
| double | hstar ) |
Assign the input groundwater flow-law parameters.
Values retain input-file units. Requires BUILDING/OPENED. Stores values without finite/range validation; does not inject runtime groundwater state.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [in] | surf_elev | Ground surface elevation, ft/m. |
| [in] | a1 | Groundwater outflow coefficient in the project input groundwater law. |
| [in] | b1 | Dimensionless groundwater outflow exponent. |
| [in] | a2 | Surface-water outflow coefficient in the project input groundwater law. |
| [in] | b2 | Dimensionless surface-water outflow exponent. |
| [in] | a3 | Surface/groundwater interaction coefficient in the project input law. |
| [in] | tw | Fixed receiving surface-water depth, ft/m; zero uses live node depth. |
| [in] | hstar | Lateral-flow threshold water-table elevation, ft/m; -1e10 uses receiving-node invert. Other values, including -99, are literal elevations. |
| SWMM_ENGINE_API int swmm_subcatch_set_gw_state | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | theta, | ||
| double | lower_depth ) |
Set the groundwater state on a subcatchment.
State injection for data assimilation / external coupling. Pass a negative value to leave that component unchanged. Note that mass balance reports will reflect the storage discontinuity, mirroring hotstart loading.
| [in] | engine | Engine handle. |
| [in] | idx | Subcatchment index (must have groundwater). |
| [in] | theta | Upper zone moisture content (0..porosity), or < 0 to keep. |
| [in] | lower_depth | Saturated zone depth above aquifer bottom in user length units (ft US, m SI), or < 0 to keep. |
| SWMM_ENGINE_API int swmm_subcatch_set_gwf_expression | ( | SWMM_Engine | engine, |
| int | index, | ||
| int | type, | ||
| const char * | expr ) |
Set or clear a subcatchment's custom groundwater flow expression.
Inverse of swmm_subcatch_get_gwf_expression. A null or empty string clears the expression. The text is stored as given and is NOT validated here (so files with legacy quirks still load); use swmm_gwf_validate_expression first. An invalid expression fails start() with ERROR 233. Pre-start-only (BUILDING / OPENED): the expression is compiled when the simulation starts, so a mid-run change returns SWMM_ERR_LIFECYCLE.
| [in] | engine | Engine handle. |
| [in] | index | Zero-based subcatchment index. |
| [in] | type | A SWMM_GwfType code. |
| [in] | expr | Expression text, or null/empty to clear. |
| SWMM_ENGINE_API int swmm_subcatch_set_imperv_pct | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | pct ) |
Set the percentage of impervious area.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | pct | Imperviousness as a percentage (0–100). |
| SWMM_ENGINE_API int swmm_subcatch_set_infil_curve_number | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | cn, | ||
| double | drying_time ) |
Set Curve Number infiltration parameters.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | cn | SCS curve number (clamped to 10–99 by the runoff solver). |
| [in] | drying_time | Days for a fully saturated soil to dry, matching the third [INFILTRATION] column and legacy curvenum_setParams p[2]. Drives the regeneration constant; a value <= 0 disables regeneration. |
| SWMM_ENGINE_API int swmm_subcatch_set_infil_green_ampt | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | suction, | ||
| double | conductivity, | ||
| double | initial_deficit ) |
Select ordinary Green-Ampt infiltration and store input parameters.
Requires BUILDING/OPENED. Sets model=2 and slots 1..3 without finite/range checks; later parameter slots remain unchanged.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [in] | suction | Wetting-front suction head, inches/mm. |
| [in] | conductivity | Saturated hydraulic conductivity, inches/hour or mm/hour. |
| [in] | initial_deficit | Initial volumetric soil-moisture deficit fraction. |
| SWMM_ENGINE_API int swmm_subcatch_set_infil_horton | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | f0, | ||
| double | fmin, | ||
| double | decay, | ||
| double | dry_time ) |
Select ordinary Horton infiltration and store its input parameters.
Requires BUILDING/OPENED. Sets model=0 and parameter slots 1..4 without finite/range checks; leaves the fifth slot unchanged. Selecting a modified model later requires swmm_subcatch_set_infil_model().
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [in] | f0 | Initial maximum capacity, inches/hour or mm/hour. |
| [in] | fmin | Minimum capacity, inches/hour or mm/hour. |
| [in] | decay | Exponential capacity decay constant, per hour. |
| [in] | dry_time | Drying/regeneration time, days. |
| SWMM_ENGINE_API int swmm_subcatch_set_infil_model | ( | SWMM_Engine | engine, |
| int | idx, | ||
| int | model ) |
Set ONLY the infiltration model code for a subcatchment.
model: 0=HORTON, 1=MOD_HORTON, 2=GREEN_AMPT, 3=MOD_GREEN_AMPT, 4=CURVE_NUMBER. The per-model parameters are positionally overloaded, so after switching the model code callers should set the matching parameters via swmm_subcatch_set_infil_horton / _green_ampt / _curve_number.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | model | Infiltration model code (0..4). |
| SWMM_ENGINE_API int swmm_subcatch_set_initial_loading | ( | SWMM_Engine | engine, |
| int | sc_idx, | ||
| int | pollut_idx, | ||
| double | buildup ) |
Set the initial pollutant buildup on a subcatchment.
The [LOADINGS] value: initial buildup mass per unit area (normalizer units) present at the simulation start, overriding the DRY_DAYS-derived buildup for the pollutant.
| [in] | engine | Engine handle. |
| [in] | sc_idx | Zero-based subcatchment index. |
| [in] | pollut_idx | Zero-based pollutant index. |
| [in] | buildup | Initial buildup (mass per unit area). |
| SWMM_ENGINE_API int swmm_subcatch_set_n_imperv | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | n ) |
Set Manning's n for the impervious area.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | n | Manning's roughness coefficient. |
| SWMM_ENGINE_API int swmm_subcatch_set_n_perv | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | n ) |
Set Manning's n for the pervious area.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | n | Manning's roughness coefficient. |
| 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.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | node_idx | Zero-based node index of the receiving node. |
| 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).
When a subcatchment drains to another subcatchment instead of directly to a node, use this function. Mutually exclusive with swmm_subcatch_set_outlet().
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | sc_idx | Zero-based index of the receiving subcatchment. |
| SWMM_ENGINE_API int swmm_subcatch_set_ponded_quality | ( | SWMM_Engine | engine, |
| int | subcatch_idx, | ||
| int | pollutant_idx, | ||
| double | mass ) |
Replace a pollutant's ponded surface mass.
Mass uses the surface-quality kernel's internal constituent mass convention (mg for mass-based pollutant transport). No lifecycle check. A valid index with no allocated ponded slot succeeds without writing; injection is not booked as an external source in this wrapper.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | subcatch_idx | Zero-based existing subcatchment index. |
| [in] | pollutant_idx | Zero-based pollutant index in the allocated concentration stride; reaction/reserved species are not selected by this API. |
| [in] | mass | Raw stored ponded mass; no finite/range validation or unit conversion. |
| SWMM_ENGINE_API int swmm_subcatch_set_rain_scale_factor | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | factor ) |
Replace the rain precipitation multiplier.
No lifecycle guard. The runoff precipitation path applies it on subsequent rain evaluation, in addition to the gage factor.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [in] | factor | Dimensionless multiplier; values <=0 are refused. Supply a finite positive value because no explicit finiteness check is made. |
| SWMM_ENGINE_API int swmm_subcatch_set_rainfall | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | rainfall ) |
Overwrite the current subcatchment rainfall state during RUNNING.
Directly replaces the stored rainfall value; the next hydrology/forcing update can overwrite it. Does not register a persistent forcing provider.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [in] | rainfall | Rainfall intensity, inches/hour or mm/hour; converted to internal ft/s without finite/range validation. |
| SWMM_ENGINE_API int swmm_subcatch_set_slope | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | slope ) |
Set the average surface slope.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | slope | Slope as a percentage (e.g., 2.0 = 2%). |
| SWMM_ENGINE_API int swmm_subcatch_set_snow_scale_factor | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | factor ) |
Replace the snow precipitation multiplier.
No lifecycle guard. The runoff precipitation path applies it on subsequent snow evaluation, in addition to the gage factor.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [in] | factor | Dimensionless multiplier; values <=0 are refused. Supply a finite positive value because no explicit finiteness check is made. |
| SWMM_ENGINE_API int swmm_subcatch_set_snow_state | ( | SWMM_Engine | engine, |
| int | idx, | ||
| int | surface, | ||
| double | swe, | ||
| double | fw, | ||
| double | ati, | ||
| double | coldc ) |
Set degree-day snow state on one snow subarea of a subcatchment.
State injection for data assimilation (e.g. observed SWE). Pass a negative value to leave that component unchanged.
| [in] | engine | Engine handle. |
| [in] | idx | Subcatchment index (must have a snow pack). |
| [in] | surface | Snow subarea: 0 plowable, 1 impervious, 2 pervious. |
| [in] | swe | Snow water equivalent in user depth units (in US, mm SI), or < 0 to keep. |
| [in] | fw | Free water in user depth units, or < 0 to keep. |
| [in] | ati | Antecedent temperature index (deg F US, deg C SI); pass <= -999 to keep (negative temperatures are valid). |
| [in] | coldc | Cold content in user depth units of melt equivalent, or < 0 to keep. |
| SWMM_ENGINE_API int swmm_subcatch_set_snowpack | ( | SWMM_Engine | engine, |
| int | idx, | ||
| const char * | name ) |
Assign an existing snowpack before initialization.
Requires BUILDING/OPENED. Unknown nonempty names return BADPARAM without changing the assignment; stores both resolved index and canonical name.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [in] | name | Borrowed snowpack ID resolved case-insensitively; NULL/empty clears the assignment. |
| SWMM_ENGINE_API int swmm_subcatch_set_tag | ( | SWMM_Engine | engine, |
| int | idx, | ||
| const char * | tag ) |
Replace or clear a copied subcatchment tag.
No lifecycle check. Stored per object, so a registry rename preserves the tag.
| [in] | engine | Non-null live engine; caller serializes access. |
| [in] | idx | Zero-based existing subcatchment index. |
| [in] | tag | Borrowed NUL-terminated tag; NULL/empty clears it. |
| SWMM_ENGINE_API int swmm_subcatch_set_width | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | width ) |
Set the characteristic overland flow width.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | width | Width in project length units. |
| SWMM_ENGINE_API int swmm_subcatch_set_zero_imperv_pct | ( | SWMM_Engine | engine, |
| int | idx, | ||
| double | pct ) |
Set the percentage of the impervious area having no depression storage.
The [SUBAREAS] PctZero column; legacy Subcatch[i].fracImperv2.
| [in] | engine | Engine handle. |
| [in] | idx | Zero-based subcatchment index. |
| [in] | pct | Zero-depression-storage impervious area as a percentage (0–100) of the impervious area. |