OpenSWMM Engine  6.0.0-alpha.3
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.3)
Loading...
Searching...
No Matches
openswmm_pollutants_impl.cpp File Reference

C API implementation — pollutant identity, creation, properties, quality injection. More...

Include dependency graph for openswmm_pollutants_impl.cpp:

Functions

SWMM_ENGINE_API int swmm_pollutant_count (SWMM_Engine engine)
 Get the total number of pollutants in the model.
 
SWMM_ENGINE_API int swmm_pollutant_index (SWMM_Engine engine, const char *id)
 Look up a pollutant's zero-based index by its string identifier.
 
SWMM_ENGINE_API const char * swmm_pollutant_id (SWMM_Engine engine, int idx)
 Get the string identifier of a pollutant by index.
 
SWMM_ENGINE_API int swmm_pollutant_add (SWMM_Engine engine, const char *id, int units)
 Add a new pollutant to the model.
 
SWMM_ENGINE_API int swmm_pollutant_set_kdecay (SWMM_Engine engine, int idx, double k)
 Set the first-order decay coefficient for a pollutant.
 
SWMM_ENGINE_API int swmm_pollutant_set_rain_conc (SWMM_Engine engine, int idx, double conc)
 Set the pollutant concentration in rainfall.
 
SWMM_ENGINE_API int swmm_pollutant_set_gw_conc (SWMM_Engine engine, int idx, double conc)
 Set the pollutant concentration in groundwater.
 
SWMM_ENGINE_API int swmm_pollutant_set_init_conc (SWMM_Engine engine, int idx, double conc)
 Set the initial concentration throughout the conveyance system.
 
SWMM_ENGINE_API int swmm_pollutant_set_units (SWMM_Engine engine, int idx, int units)
 Change the concentration units of an existing pollutant.
 
SWMM_ENGINE_API int swmm_pollutant_get_units (SWMM_Engine engine, int idx, int *units)
 Get the concentration units code for a pollutant.
 
SWMM_ENGINE_API int swmm_pollutant_get_kdecay (SWMM_Engine engine, int idx, double *k)
 Get the first-order decay coefficient.
 
SWMM_ENGINE_API int swmm_pollutant_get_rain_conc (SWMM_Engine engine, int idx, double *conc)
 Get the pollutant concentration in rainfall.
 
SWMM_ENGINE_API int swmm_pollutant_get_gw_conc (SWMM_Engine engine, int idx, double *conc)
 Get the pollutant concentration in groundwater.
 
SWMM_ENGINE_API int swmm_pollutant_get_init_conc (SWMM_Engine engine, int idx, double *conc)
 Get the initial concentration throughout the conveyance system.
 
SWMM_ENGINE_API int swmm_pollutant_set_rdii_conc (SWMM_Engine engine, int idx, double conc)
 Set the RDII (Rainfall-Dependent Infiltration/Inflow) concentration.
 
SWMM_ENGINE_API int swmm_pollutant_get_rdii_conc (SWMM_Engine engine, int idx, double *conc)
 Get the RDII concentration.
 
SWMM_ENGINE_API int swmm_pollutant_set_dwf_conc (SWMM_Engine engine, int idx, double conc)
 Set the default dry weather sanitary flow concentration.
 
SWMM_ENGINE_API int swmm_pollutant_get_dwf_conc (SWMM_Engine engine, int idx, double *conc)
 Get the default dry weather sanitary flow concentration.
 
SWMM_ENGINE_API int swmm_pollutant_set_mwt (SWMM_Engine engine, int idx, double mwt)
 Set the molecular weight of a pollutant.
 
SWMM_ENGINE_API int swmm_pollutant_get_mwt (SWMM_Engine engine, int idx, double *mwt)
 Get the molecular weight of a pollutant.
 
SWMM_ENGINE_API int swmm_pollutant_set_co_pollutant (SWMM_Engine engine, int idx, int co_idx, double frac)
 Set a co-pollutant relationship (concentration = fraction * co-pollutant).
 
SWMM_ENGINE_API int swmm_pollutant_get_co_pollutant (SWMM_Engine engine, int idx, int *co_idx, double *frac)
 Get a co-pollutant relationship.
 
SWMM_ENGINE_API int swmm_pollutant_set_snow_only (SWMM_Engine engine, int idx, int flag)
 Set whether a pollutant only builds up during snowfall events.
 
SWMM_ENGINE_API int swmm_pollutant_get_snow_only (SWMM_Engine engine, int idx, int *flag)
 Get whether a pollutant only builds up during snowfall events.
 
SWMM_ENGINE_API int swmm_node_set_quality (SWMM_Engine engine, int node_idx, int pollut_idx, double conc)
 Set the pollutant concentration at a node (runtime override).
 
SWMM_ENGINE_API int swmm_link_set_quality (SWMM_Engine engine, int link_idx, int pollut_idx, double conc)
 Set the pollutant concentration in a link (runtime override).
 

Detailed Description

C API implementation — pollutant identity, creation, properties, quality injection.

See also
include/openswmm/engine/openswmm_pollutants.h
Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License\n MIT License

Function Documentation

◆ swmm_link_set_quality()

SWMM_ENGINE_API int swmm_link_set_quality ( SWMM_Engine engine,
int link_idx,
int pollut_idx,
double conc )

Set the pollutant concentration in a link (runtime override).

Parameters
engineEngine handle (RUNNING state).
link_idxZero-based link index.
pollut_idxZero-based pollutant index.
concConcentration in pollutant units.
Returns
SWMM_OK on success, or an error code.

◆ swmm_node_set_quality()

SWMM_ENGINE_API int swmm_node_set_quality ( SWMM_Engine engine,
int node_idx,
int pollut_idx,
double conc )

Set the pollutant concentration at a node (runtime override).

Parameters
engineEngine handle (RUNNING state).
node_idxZero-based node index.
pollut_idxZero-based pollutant index.
concConcentration in pollutant units.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_add()

SWMM_ENGINE_API int swmm_pollutant_add ( SWMM_Engine engine,
const char * id,
int units )

Add a new pollutant to the model.

Parameters
engineEngine handle (SWMM_STATE_BUILDING).
idUnique null-terminated identifier for the new pollutant.
unitsConcentration units code (0=MG/L, 1=UG/L, 2=#/L).
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_count()

SWMM_ENGINE_API int swmm_pollutant_count ( SWMM_Engine engine)

Get the total number of pollutants in the model.

Parameters
engineEngine handle.
Returns
Number of pollutants, or -1 on error.

◆ swmm_pollutant_get_co_pollutant()

SWMM_ENGINE_API int swmm_pollutant_get_co_pollutant ( SWMM_Engine engine,
int idx,
int * co_idx,
double * frac )

Get a co-pollutant relationship.

Parameters
engineEngine handle.
idxZero-based pollutant index.
[out]co_idxReceives the co-pollutant index (-1 if none).
[out]fracReceives the fraction.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_get_dwf_conc()

SWMM_ENGINE_API int swmm_pollutant_get_dwf_conc ( SWMM_Engine engine,
int idx,
double * conc )

Get the default dry weather sanitary flow concentration.

Parameters
engineEngine handle.
idxZero-based pollutant index.
[out]concReceives the DWF concentration.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_get_gw_conc()

SWMM_ENGINE_API int swmm_pollutant_get_gw_conc ( SWMM_Engine engine,
int idx,
double * conc )

Get the pollutant concentration in groundwater.

Parameters
engineEngine handle.
idxZero-based pollutant index.
[out]concReceives the concentration.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_get_init_conc()

SWMM_ENGINE_API int swmm_pollutant_get_init_conc ( SWMM_Engine engine,
int idx,
double * conc )

Get the initial concentration throughout the conveyance system.

Parameters
engineEngine handle.
idxZero-based pollutant index.
[out]concReceives the initial concentration.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_get_kdecay()

SWMM_ENGINE_API int swmm_pollutant_get_kdecay ( SWMM_Engine engine,
int idx,
double * k )

Get the first-order decay coefficient.

Parameters
engineEngine handle.
idxZero-based pollutant index.
[out]kReceives the decay coefficient (1/day).
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_get_mwt()

SWMM_ENGINE_API int swmm_pollutant_get_mwt ( SWMM_Engine engine,
int idx,
double * mwt )

Get the molecular weight of a pollutant.

Parameters
engineEngine handle.
idxZero-based pollutant index.
[out]mwtReceives the molecular weight.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_get_rain_conc()

SWMM_ENGINE_API int swmm_pollutant_get_rain_conc ( SWMM_Engine engine,
int idx,
double * conc )

Get the pollutant concentration in rainfall.

Parameters
engineEngine handle.
idxZero-based pollutant index.
[out]concReceives the concentration.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_get_rdii_conc()

SWMM_ENGINE_API int swmm_pollutant_get_rdii_conc ( SWMM_Engine engine,
int idx,
double * conc )

Get the RDII concentration.

Parameters
engineEngine handle.
idxZero-based pollutant index.
[out]concReceives the RDII concentration.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_get_snow_only()

SWMM_ENGINE_API int swmm_pollutant_get_snow_only ( SWMM_Engine engine,
int idx,
int * flag )

Get whether a pollutant only builds up during snowfall events.

Parameters
engineEngine handle.
idxZero-based pollutant index.
[out]flagReceives 1 for snow-only, 0 otherwise.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_get_units()

SWMM_ENGINE_API int swmm_pollutant_get_units ( SWMM_Engine engine,
int idx,
int * units )

Get the concentration units code for a pollutant.

Parameters
engineEngine handle.
idxZero-based pollutant index.
[out]unitsReceives the units code (0=MG/L, 1=UG/L, 2=#/L).
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_id()

SWMM_ENGINE_API const char * swmm_pollutant_id ( SWMM_Engine engine,
int idx )

Get the string identifier of a pollutant by index.

Parameters
engineEngine handle.
idxZero-based pollutant index.
Returns
Null-terminated string owned by the engine, or NULL on error.

◆ swmm_pollutant_index()

SWMM_ENGINE_API int swmm_pollutant_index ( SWMM_Engine engine,
const char * id )

Look up a pollutant's zero-based index by its string identifier.

Parameters
engineEngine handle.
idNull-terminated pollutant identifier.
Returns
Zero-based index, or -1 if not found.

◆ swmm_pollutant_set_co_pollutant()

SWMM_ENGINE_API int swmm_pollutant_set_co_pollutant ( SWMM_Engine engine,
int idx,
int co_idx,
double frac )

Set a co-pollutant relationship (concentration = fraction * co-pollutant).

Parameters
engineEngine handle.
idxZero-based pollutant index.
co_idxZero-based index of the co-pollutant.
fracFraction of the co-pollutant concentration.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_set_dwf_conc()

SWMM_ENGINE_API int swmm_pollutant_set_dwf_conc ( SWMM_Engine engine,
int idx,
double conc )

Set the default dry weather sanitary flow concentration.

Runtime-settable: the value feeds the dry weather quality inflow term each routing step.

Parameters
engineEngine handle.
idxZero-based pollutant index.
concDWF concentration in pollutant units.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_set_gw_conc()

SWMM_ENGINE_API int swmm_pollutant_set_gw_conc ( SWMM_Engine engine,
int idx,
double conc )

Set the pollutant concentration in groundwater.

Parameters
engineEngine handle.
idxZero-based pollutant index.
concConcentration in pollutant units.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_set_init_conc()

SWMM_ENGINE_API int swmm_pollutant_set_init_conc ( SWMM_Engine engine,
int idx,
double conc )

Set the initial concentration throughout the conveyance system.

Parameters
engineEngine handle.
idxZero-based pollutant index.
concInitial concentration in pollutant units.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_set_kdecay()

SWMM_ENGINE_API int swmm_pollutant_set_kdecay ( SWMM_Engine engine,
int idx,
double k )

Set the first-order decay coefficient for a pollutant.

Parameters
engineEngine handle.
idxZero-based pollutant index.
kDecay coefficient (1/day).
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_set_mwt()

SWMM_ENGINE_API int swmm_pollutant_set_mwt ( SWMM_Engine engine,
int idx,
double mwt )

Set the molecular weight of a pollutant.

Parameters
engineEngine handle.
idxZero-based pollutant index.
mwtMolecular weight (g/mol).
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_set_rain_conc()

SWMM_ENGINE_API int swmm_pollutant_set_rain_conc ( SWMM_Engine engine,
int idx,
double conc )

Set the pollutant concentration in rainfall.

Parameters
engineEngine handle.
idxZero-based pollutant index.
concConcentration in pollutant units.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_set_rdii_conc()

SWMM_ENGINE_API int swmm_pollutant_set_rdii_conc ( SWMM_Engine engine,
int idx,
double conc )

Set the RDII (Rainfall-Dependent Infiltration/Inflow) concentration.

Parameters
engineEngine handle.
idxZero-based pollutant index.
concRDII concentration in pollutant units.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_set_snow_only()

SWMM_ENGINE_API int swmm_pollutant_set_snow_only ( SWMM_Engine engine,
int idx,
int flag )

Set whether a pollutant only builds up during snowfall events.

Parameters
engineEngine handle.
idxZero-based pollutant index.
flagNon-zero for snow-only; zero otherwise.
Returns
SWMM_OK on success, or an error code.

◆ swmm_pollutant_set_units()

SWMM_ENGINE_API int swmm_pollutant_set_units ( SWMM_Engine engine,
int idx,
int units )

Change the concentration units of an existing pollutant.

Inverse of swmm_pollutant_get_units. The units are normally fixed at creation by swmm_pollutant_add; this lets a model builder (e.g. the GUI pollutant editor) correct them afterwards. Editable in the BUILDING or OPENED (pre-start) states only — units define how every stored/reported concentration is interpreted, so a mid-run change has no well-defined meaning and is rejected with SWMM_ERR_LIFECYCLE.

Parameters
engineEngine handle.
idxZero-based pollutant index.
unitsConcentration units code (0=MG/L, 1=UG/L, 2=#/L).
Returns
SWMM_OK on success, or an error code.