OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
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_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_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_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_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.